]>
granicus.if.org Git - clang/log
Chris Lattner [Mon, 6 Oct 2008 05:59:01 +0000 (05:59 +0000)]
instead of making codegen try to know about all of the builtins to generate
constants for them, just use the constant evaluator to do the job. This
also fixes crashes on 'unknown constant builtins'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57155
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 05:53:16 +0000 (05:53 +0000)]
Teach FloatExprEvaluator to evaluate __builtin_huge_val and inf.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57154
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 05:42:39 +0000 (05:42 +0000)]
"Enhance" CheckArithmeticConstantExpression to accept ?: with a constant
condition as a constant even if the unevaluated side is a not a constant.
We don't do this when extensions are off, and we emit a warning when this
happens:
t.c:22:11: warning: expression is not a constant, but is accepted as one by GNU extensions
short t = __builtin_constant_p(5353) ? 42 : somefunc();
^ ~~~~~~~~~~
suggestions for improvement are welcome. This is obviously horrible, but
is required for real-world code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57153
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 05:28:25 +0000 (05:28 +0000)]
Add a comment that describes tryEvaluate. Make tryEvaluate fold
__builtin_constant_p properly, and add some scaffolding for
FloatExprEvaluator to eventually handle huge_val and inf.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57152
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 05:00:53 +0000 (05:00 +0000)]
add a new CallExpr::isBuiltinCall() method, and use it to simplify some existing
code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57151
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 6 Oct 2008 04:49:00 +0000 (04:49 +0000)]
Actually use the mmintrin.h header, it's good enough now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57150
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 04:48:17 +0000 (04:48 +0000)]
a more efficient test for __builtin_classify_type
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57149
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 6 Oct 2008 03:03:33 +0000 (03:03 +0000)]
Fix typos.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57146
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 6 Oct 2008 02:07:50 +0000 (02:07 +0000)]
Apparently gcc uses pi64 for the shift intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57145
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 6 Oct 2008 00:41:45 +0000 (00:41 +0000)]
Add the 'y' assembler constraint.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57144
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Mon, 6 Oct 2008 00:07:55 +0000 (00:07 +0000)]
Allow variadic arguments without named ones for C++, e.g. "void(...);"
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57143
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 5 Oct 2008 23:32:53 +0000 (23:32 +0000)]
Implement support for the const and pure attributes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57142
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 5 Oct 2008 23:15:41 +0000 (23:15 +0000)]
A tiny optimization; use isCXXFunctionDeclarator only when it's appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57141
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 21:50:58 +0000 (21:50 +0000)]
miscellaneous cleanups
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57140
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 21:49:27 +0000 (21:49 +0000)]
move __FLT_EVAL_METHOD__, __FLT_RADIX__, and __DECIMAL_DIG__ into
target indep code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57139
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 21:42:17 +0000 (21:42 +0000)]
it helps when I save the file before testing and committing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57138
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 21:40:58 +0000 (21:40 +0000)]
suck the rest of the FP macros out of the targets into the PP
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57137
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 5 Oct 2008 21:10:08 +0000 (21:10 +0000)]
Add some text from the C++ standard and additional ambiguity resolution tests.
No funcitonality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57136
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 20:41:42 +0000 (20:41 +0000)]
Set svn:ignore on test/Parser/Output
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57135
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 20:40:30 +0000 (20:40 +0000)]
start moving fp macros over
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57134
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 20:39:30 +0000 (20:39 +0000)]
Add script for checking builtin macros verse another compiler ($CC or
gcc).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57133
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 20:06:37 +0000 (20:06 +0000)]
move a bunch more integer sizing out of target-specific code into
target indep code.
Note that this changes functionality on PIC16: it defines __INT_MAX__
correctly for it, and it changes sizeof(long) to 16-bits (to match
the size of pointer).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57132
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 5 Oct 2008 19:56:22 +0000 (19:56 +0000)]
Handle ambiguities between expressions and type-ids that occur inside parentheses, e.g.:
sizeof(int()) -> "int()" is type-id
sizeof(int()+1) -> "int()+1" is expression.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57131
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 19:44:25 +0000 (19:44 +0000)]
eliminate __USER_LABEL_PREFIX__ from the Targets.cpp file, start moving
integer size #defines over to the Preprocessor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57130
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 19:32:52 +0000 (19:32 +0000)]
gcc no longer defines __block to nothing when blocks aren't enabled.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57129
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 19:32:22 +0000 (19:32 +0000)]
rearrange preprocessor macro definitions into language-specific
then target specific.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57128
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 19:22:37 +0000 (19:22 +0000)]
Implement PR2773, support for __USER_LABEL_PREFIX__
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57127
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 19:05:44 +0000 (19:05 +0000)]
Fix a problem reported in PR2766 that makes clang reject old versions
of GCC's headers. This impacts people that run clang in Tiger systems.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57126
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 5 Oct 2008 18:52:21 +0000 (18:52 +0000)]
Found a subtle bug caused by an implicit enum-to-bool conversion (of the TentativeParsingResult enum).
This was the motivation of the following changes:
-'TentativeParsingResult' enum is replaced by a 'TPResult' class that basically encapsulates the enum.
-TPR_true, TPR_false, TPR_ambiguous, and TPR_error enum constants are replaced by TPResult::True(), TPResult::False(), etc. calls that return a TPResult object.
-Also fixed the subtle bug in Parser::isCXXFunctionDeclarator (caught by the above changes as a compilation error).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57125
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 5 Oct 2008 18:05:59 +0000 (18:05 +0000)]
Add parsing of the sentinel attribute. Still need to create the attribute.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57121
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 5 Oct 2008 18:04:30 +0000 (18:04 +0000)]
Change indentation for a couple of files in the Xcode project.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57120
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 5 Oct 2008 17:34:18 +0000 (17:34 +0000)]
Wrap long lines and other minor cleanups, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57119
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 5 Oct 2008 17:21:08 +0000 (17:21 +0000)]
Remove copyright notice, we decided not to have them.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57118
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 5 Oct 2008 17:02:44 +0000 (17:02 +0000)]
Move the TentativeParsingResult enum closer to where it gets used.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57115
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 5 Oct 2008 15:50:46 +0000 (15:50 +0000)]
Disambiguate between a declaration or an expression, in the 'for-init-statement' part of a 'for' statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57112
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 5 Oct 2008 15:19:49 +0000 (15:19 +0000)]
Fix Parser::isCXXConditionDeclaration to properly resolve declarations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57111
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 5 Oct 2008 15:03:47 +0000 (15:03 +0000)]
Disambiguate between a declaration or expression for the 'condition' part of a if/switch/while/for statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57109
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 5 Oct 2008 14:27:18 +0000 (14:27 +0000)]
Consider GNU attributes when doing ambiguity resolution.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57108
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 5 Oct 2008 12:12:48 +0000 (12:12 +0000)]
Remove redundant parameter and rename StMgr to StateMgr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57107
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 06:38:36 +0000 (06:38 +0000)]
Add X86 builtin code generation test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57104
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 06:36:33 +0000 (06:36 +0000)]
Improve C language testing coverage.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57103
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 06:35:41 +0000 (06:35 +0000)]
Fix X86 palignr[128] builtins to match LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57102
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 06:34:45 +0000 (06:34 +0000)]
Add some builtins to codegen test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57101
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 05:43:11 +0000 (05:43 +0000)]
Make VectorType printing less broken.
- Print size as number of elements times "sizeof(elt type)", not
perfect but better than just printing the completely wrong type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57100
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 05:21:00 +0000 (05:21 +0000)]
Fix another X86 builtin definitions.
- vec_set_v4hi had "v4s" in place of "V4s"
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57099
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 05:14:37 +0000 (05:14 +0000)]
Fix some X86 builtin definitions.
- cmp instructions return int
- storedqu had bad const qualifier
- pmuldq128 used invalid type code
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57098
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 01:39:04 +0000 (01:39 +0000)]
Add -rewrite-macros test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57094
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 01:38:39 +0000 (01:38 +0000)]
Allow -verify to be used with -rewrite-macros.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57093
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 01:04:25 +0000 (01:04 +0000)]
Coverage test for targets.
- This pushes us over 80% coverage of executable LOC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57092
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sun, 5 Oct 2008 00:52:59 +0000 (00:52 +0000)]
Update VC++ project file
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57090
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 00:31:54 +0000 (00:31 +0000)]
Improve codegen coverage tests.
- Hit debug info generation.
- Hit both ObjC runtimes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57088
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 5 Oct 2008 00:31:15 +0000 (00:31 +0000)]
Add dummy -ast-dump support for ObjC category implementations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57087
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sun, 5 Oct 2008 00:12:46 +0000 (00:12 +0000)]
Remove old diag that alerted the user to a limitation we no longer have:-)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57086
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 5 Oct 2008 00:08:56 +0000 (00:08 +0000)]
Append the test runs with '&&'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57085
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 5 Oct 2008 00:06:24 +0000 (00:06 +0000)]
Resolve ambiguous C++ statements (C++ 6.8p1).
'ParseTentative.cpp' implements the functionality needed to resolve ambiguous C++ statements, to either a declaration or an expression, by "tentatively parsing" them.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57084
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sun, 5 Oct 2008 00:06:12 +0000 (00:06 +0000)]
Create a function, eliminating some redundancy between SynthesizeBlockInitExpr() and SynthesizeBlockLiterals().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57083
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sat, 4 Oct 2008 23:47:37 +0000 (23:47 +0000)]
Finish implementing copy/dispose helpers for imported block decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57082
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 4 Oct 2008 23:47:28 +0000 (23:47 +0000)]
Add coverage tests of C and Obj-C language features.
- AST printing, dumping, serialization, codegen.
- HTML printing.
- Parser callbacks.
Several of these are XFAIL because they trigger unimplemented code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57081
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 4 Oct 2008 23:42:49 +0000 (23:42 +0000)]
Set exit code properly on "Unexpected program action".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57080
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 4 Oct 2008 21:05:04 +0000 (21:05 +0000)]
Desensitize env-include-paths.c to the directory it is running in.
- It would probably be better if TestRunner.sh canonicalized this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57075
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 4 Oct 2008 21:00:40 +0000 (21:00 +0000)]
Set svn:ignore on test/{Driver,Coverage}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57073
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 4 Oct 2008 20:58:18 +0000 (20:58 +0000)]
Bug fix, CPATH="" does not add '.' to search path.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57072
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 4 Oct 2008 20:46:41 +0000 (20:46 +0000)]
Add test/Driver.
- env-include-paths.c is XFAIL as it exposed a bug.
Add test/Coverage.
- For tests which achieve code coverage but don't validate anything.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57070
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 4 Oct 2008 19:45:56 +0000 (19:45 +0000)]
De-XFAIL test/Parser/pragma-pack.c
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57069
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 4 Oct 2008 19:43:25 +0000 (19:43 +0000)]
switch to using -verify
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57068
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 4 Oct 2008 19:38:15 +0000 (19:38 +0000)]
Move the expected-warning lines to a place that clang -verify will pick them
up. Speculatularly hacktastic, but strangely beautiful?
Daniel, lines 20/21 are rejected, please investigate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57067
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 4 Oct 2008 19:21:03 +0000 (19:21 +0000)]
Add Parser support for #pragma pack
- Uses Action::ActOnPragmaPack
- Test case is XFAIL pending verifier fixes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57066
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 4 Oct 2008 19:17:46 +0000 (19:17 +0000)]
Add Preprocessor::RemovePragmaHandler.
- No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57065
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sat, 4 Oct 2008 18:52:47 +0000 (18:52 +0000)]
Add indirection required for byref BlockDeclRefExpr's.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57063
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sat, 4 Oct 2008 18:00:11 +0000 (18:00 +0000)]
Handle bookkeeping for imported blocks (in SynthesizeBlockImpl).
This code was "lost" with my recent changes to SynthesizeBlockFunc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57056
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 4 Oct 2008 17:55:52 +0000 (17:55 +0000)]
Add MemRegion.cpp to VS project.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57055
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sat, 4 Oct 2008 17:45:51 +0000 (17:45 +0000)]
Cut/paste error...need to use the expression "name" for member references (or other complex expressions that can embed a block pointer type)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57054
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sat, 4 Oct 2008 17:10:02 +0000 (17:10 +0000)]
Clear the map that associated the rewritten block with it's corresponding BlockExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57053
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sat, 4 Oct 2008 17:06:23 +0000 (17:06 +0000)]
Moved main control flow functions to bottom of file.
Reworked control flow to:
- rewrite the block expr body "in place".
- used Chris's new rewriter hook "getRewritenText" to "lift" the text for later use.
- finally, we do the block expr text replacement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57052
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 4 Oct 2008 06:53:56 +0000 (06:53 +0000)]
Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57045
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 4 Oct 2008 05:50:14 +0000 (05:50 +0000)]
This is a big patch, but the functionality change is small and the rest of the patch consists of deltas due to API changes.
This patch overhauls the "memory region" abstraction that was prototyped (but never really used) as part of the Store.h. This patch adds MemRegion.h and MemRegion.cpp, which defines the class MemRegion and its subclasses. This classes serve to define an abstract representation of memory, with regions being layered on other regions to to capture the relationships between fields and variables, variables and the address space they are allocated in, and so on.
The main motivation of this patch is that key parts of the analyzer assumed that all value bindings were to VarDecls. In the future this won't be the case, and this patch removes lval::DeclVal and replaces it with lval::MemRegionVal. Now all pieces of the analyzer must reason about abstract memory blocks instead of just variables.
There should be no functionality change from this patch, but it opens the door for significant improvements to the analyzer such as field-sensitivity and object-sensitivity, both which were on hold until the memory abstraction got generalized.
The memory region abstraction also allows type-information to literally be affixed to a memory region. This will allow the some now redundant logic to be removed from the retain/release checker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57042
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 4 Oct 2008 05:48:38 +0000 (05:48 +0000)]
Reverse the RHSBlock of LogicalOp && and ||
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57041
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Oct 2008 23:31:37 +0000 (23:31 +0000)]
add a disclaimer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57038
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Oct 2008 23:31:16 +0000 (23:31 +0000)]
add a new Rewriter::getRewritenText method that returns the text for a range
that includes any edits in the range.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57037
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 3 Oct 2008 23:00:50 +0000 (23:00 +0000)]
Remove an old/vacuous if clause.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57036
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 3 Oct 2008 20:28:15 +0000 (20:28 +0000)]
More fun & games with the block rewriter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57028
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 3 Oct 2008 17:33:35 +0000 (17:33 +0000)]
Merge postfix attributes on record decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57019
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 3 Oct 2008 16:42:10 +0000 (16:42 +0000)]
Remove a FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57015
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 3 Oct 2008 15:38:09 +0000 (15:38 +0000)]
Rewrite global block expressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57004
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 3 Oct 2008 15:04:50 +0000 (15:04 +0000)]
- Add a convenience constructor to Type.
- Many rewriter modifications.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57003
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 3 Oct 2008 12:09:49 +0000 (12:09 +0000)]
Rework SynthesizeBlockImpl() to include a constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57001
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 3 Oct 2008 02:05:12 +0000 (02:05 +0000)]
Pass postfix attributes to ActOnFields (mismarked a file).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56993
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 3 Oct 2008 02:03:53 +0000 (02:03 +0000)]
Pass postfix attributes to ActOnFields.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56992
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 3 Oct 2008 01:54:54 +0000 (01:54 +0000)]
Bug fix, ccc was passing -std twice.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56991
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 3 Oct 2008 00:12:09 +0000 (00:12 +0000)]
Get the right location to insert the synthesized block literals/functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56987
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 3 Oct 2008 00:02:03 +0000 (00:02 +0000)]
Add getTypeSpecStartLoc() to VarDecls and FunctionDecls.
This is a temporary solution to help with the block rewriter (though it certainly has general utility).
Once DeclGroup's are implemented, this SourceLocation should be stored with it (since it applies to all the decls).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56985
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Thu, 2 Oct 2008 23:30:43 +0000 (23:30 +0000)]
Name changes and some cleanup of preamble.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56984
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Oct 2008 23:30:31 +0000 (23:30 +0000)]
Add Builtins.def attribute for "can be a constant expression".
- Enabled for builtins which are always constant expressions
(__builtin_huge_val*, __builtin_inf*, __builtin_constant_p,
__builtin_classify_type, __builtin___CFStringMakeConstantString).
Added Builtin::Context::isConstantExpr.
- Currently overly simply interface which only works for builtins
whose constantexprness does not depend on their arguments.
CallExpr::isBuiltinConstantExpr now takes an ASTContext argument.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56983
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Oct 2008 18:44:07 +0000 (18:44 +0000)]
Add support for format string checking of object-size checking
versions of sprintf and friends.
- Added FIXME that this mechanism should be generalized.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56962
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Oct 2008 18:02:06 +0000 (18:02 +0000)]
Emit error unsupported for break/continue/goto inside Obj-C exception
handling blocks.
- This has false positives, but at least prevents miscompiles.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56958
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Oct 2008 17:26:37 +0000 (17:26 +0000)]
Fix ccc handling of -mmacosx-version-min.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56956
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Thu, 2 Oct 2008 17:12:56 +0000 (17:12 +0000)]
Changed Sema::CheckForConstantInitializer to allow global block literals.
This commit also includes some name changes in the blocks rewriter (no functionality change).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56955
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Oct 2008 17:05:36 +0000 (17:05 +0000)]
(LLVM up) Rename IRBuilder::IsNonNull -> IsNotNull.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56954
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Oct 2008 16:40:43 +0000 (16:40 +0000)]
Unbreak build: claim an extra bit for BuiltinID.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56952
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Oct 2008 01:21:33 +0000 (01:21 +0000)]
(llvm up) If the target triple is unspecified, automatically set the
OS version part to that of the host on darwin.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56943
91177308 -0d34-0410-b5e6-
96231b3b80d8