]>
granicus.if.org Git - clang/log
Zhongxing Xu [Tue, 7 Oct 2008 10:06:03 +0000 (10:06 +0000)]
Added a function call case that generates sink nodes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57240
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 7 Oct 2008 01:31:04 +0000 (01:31 +0000)]
Migrate MemRegionManager from StateManager to StoreManager.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57225
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 23:49:24 +0000 (23:49 +0000)]
Added prototype serialization code for DeclGroup.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57222
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Mon, 6 Oct 2008 23:16:35 +0000 (23:16 +0000)]
Use getCustomDiagID() instead of specifying the diagnostic in the 'DiagnosticKinds.def' file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57220
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Mon, 6 Oct 2008 23:08:37 +0000 (23:08 +0000)]
Simplify handling of direct initializers by letting Sema::AddInitializerToDecl handle conversions, instead of using Sema::ActOnCXXTypeConstructExpr.
Additional benefit is that diagnostics are the same for both direct-initialization and copy-initialization.
In the case of "int x( expression );":
-The Init expression of VarDecl 'x' will be the expression inside the parentheses.
-VarDecl::hasCXXDirectInitializer for VarDecl 'x' will return true to let clients distinguish from "int x = expression ;".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57219
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 22:51:42 +0000 (22:51 +0000)]
Remove DeclStmt::getDecl(). Now clients of DeclStmt must explicitly reason about a DeclStmt referring to a collection of Decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57217
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 22:45:07 +0000 (22:45 +0000)]
Explicitly access the first Decl* referenced by a DeclStmt instead of using "getDecl()." Added a FIXME indicating that the call to RewriteObjCQualifiedInterfaceTypes() is meant to modifying the type-specifier; hopefully this will be a little more clean once DeclGroups contain type specifiers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57216
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 22:39:38 +0000 (22:39 +0000)]
Use "DeclStmt::getSolitaryDecl()" when accessing the DeclStmt of an @catch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57215
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 22:17:16 +0000 (22:17 +0000)]
Modified DeclGroupRef to always load/store the internal pointer value as Decl*. This hopefully will obviate any concerns with violating strict type-aliasing issues.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57213
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 22:16:13 +0000 (22:16 +0000)]
Use DeclStmt::getSolitaryDecl() instead of DeclStmt::getDecl() when rewriting Objective-c foreach statements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57212
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 20:59:48 +0000 (20:59 +0000)]
Use DeclStmt::getSolitaryDecl() instead of DeclStmt::getDecl() when processing the Decl of an Objective-C foreach statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57209
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 20:58:56 +0000 (20:58 +0000)]
Use DeclStmt::getSolitaryDecl() instead of DeclStmt::getDecl() when processing the Decl of a @catch statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57208
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 20:58:11 +0000 (20:58 +0000)]
When processing Objective-C foreach statements, first check to see if the statement has a DeclStmt with a single Decl. Afterwards, use DeclStmt::getSolitaryDecl() to access that Decl (thus avoiding an assertion being triggered). These changes remove an unneeded use of ScopedDecl::getNextDeclarator() and DeclStmt::getDecl().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57207
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 20:56:19 +0000 (20:56 +0000)]
Use DeclStmt::decl_iterator to walk a group of Decl*'s instead of using the ScopedDecl chain.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57206
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 20:55:44 +0000 (20:55 +0000)]
Don't use DeclStmt::getDecl() to serialize out DeclStmt; use TheDecl directly.
This patch precedes removing getDecl() DeclStmt::entirely.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57205
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 20:54:44 +0000 (20:54 +0000)]
Add DeclStmt::hasSolitaryDecl() and DeclStmt::getSolitaryDecl()
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57204
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 20:35:04 +0000 (20:35 +0000)]
Use "unsigned" instead of "int" for i to remove a "comparison between unsigned and signed" warning (potential integer overflow).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57201
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 6 Oct 2008 19:17:39 +0000 (19:17 +0000)]
Add 'x' constraint character.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57198
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 18:48:35 +0000 (18:48 +0000)]
Use the DeclStmt::decl_iterator to get the first decl in a DeclStmt instead of using DeclStmt::getDecl().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57196
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 18:47:09 +0000 (18:47 +0000)]
In RewriteFunctionBody, using DeclStmt::decl_iterator to rewrite the Decls in a DeclStmt instead of using getDecl() to fetch the first Decl.
Steve: Please review this patch. 'make test' passes, and my cursory scan of the rewriter leads me to believe this doesn't break anything, but I'm not sure.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57195
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 18:43:53 +0000 (18:43 +0000)]
Don't use DeclStmt::getDecl(); this will eventually disappear. Just fetch the first decl using the DeclStmt::decl_iterator.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57194
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 18:42:27 +0000 (18:42 +0000)]
In EmitDeclStmt: use DeclStmt::const_decl_iterator instead of walking the scoped decl chain.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57192
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 18:39:36 +0000 (18:39 +0000)]
Added PrintRawDeclStmt; use this method to print out DeclStmt instead of using PrintRawDecl (which falsely assumes DeclStmts have only one Decl).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57191
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 18:38:35 +0000 (18:38 +0000)]
Use Decl::decl_iterator instead of walking the ScopedDecl chain (which will soon be removed).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57190
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 18:37:46 +0000 (18:37 +0000)]
Use DeclStmt::decl_iterator instead of using Decl::getDecl(). Soon DeclStmts will wrap group of Decls.
Added FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57189
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Mon, 6 Oct 2008 18:37:09 +0000 (18:37 +0000)]
The current semantic process for direct initializers won't work properly for class types.
Add a FIXME until class constructors are supported.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57188
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 18:36:52 +0000 (18:36 +0000)]
Use DeclStmt::decl_iterator instead of walking the ScopedDecl chain (which will soon be removed).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57187
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 18:35:55 +0000 (18:35 +0000)]
Add const_decl_iterator to DecStmt.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57186
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 17:42:44 +0000 (17:42 +0000)]
Update Xcode project.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57180
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Mon, 6 Oct 2008 17:10:33 +0000 (17:10 +0000)]
Implement support for C++ direct initializers in declarations, e.g. "int x(1);".
This is how this kind of initializers appear in the AST:
-The Init expression of the VarDecl is a functional type construction (of the VarDecl's type).
-The new VarDecl::hasCXXDirectInitializer() returns true.
e.g, for "int x(1);":
-VarDecl 'x' has Init with expression "int(1)" (CXXFunctionalCastExpr).
-hasCXXDirectInitializer() of VarDecl 'x' returns true.
A major benefit is that clients that don't particularly care about which exactly form was the initializer can handle both cases without special case code.
Note that codegening works now for "int x(1);" without any changes to CodeGen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57178
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 6 Oct 2008 15:46:11 +0000 (15:46 +0000)]
Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57176
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 07:43:28 +0000 (07:43 +0000)]
fix incorrect rdar number.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57165
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 07:43:09 +0000 (07:43 +0000)]
__CONSTANT_CFSTRINGS__ should be defined even in C mode, otherwise the CFSTR
won't expand to the builtin. This fixes rdar://
6248329
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57164
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 07:26:43 +0000 (07:26 +0000)]
Make sema and codegen allow __builtin___CFStringMakeConstantString as a valid
constant lvalue. Implement this in codegen by moving the code out of CGBuiltin
into EmitConstantExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57163
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 07:20:11 +0000 (07:20 +0000)]
ExprConstant should not abort when it sees a pointer constant that isn't.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57162
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 06:56:41 +0000 (06:56 +0000)]
always try to fold a builtin before emitting it. In the future
it is possible that a builtin could sometimes be folded (e.g. __builtin_clz)
if it's operand is a constant.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57161
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 06:51:12 +0000 (06:51 +0000)]
Remove the 'C' / isConstantExpr flag on builtins. Code should never
depend on the value of this flag, it should depend on whether
tryEvaluate is able to *actually* fold a builtin.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57160
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 06:49:02 +0000 (06:49 +0000)]
Add a Expr::isEvaluatable method, eliminate isBuiltinConstantExpr
which is checking for something that can be inconsistent with
what we can constant fold.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57159
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 06:40:35 +0000 (06:40 +0000)]
Move folding of __builtin_classify_type out of the CallExpr
interface into the constant folding interface.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57158
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 06:31:58 +0000 (06:31 +0000)]
Move handling of __builtin_nan("") out of CGBuiltin.cpp into ExprConstant.cpp
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57157
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Oct 2008 06:09:18 +0000 (06:09 +0000)]
remove some code where CGBuiltin folds constants, and use tryEvaluate to
do it instead. We should still handle __builtin_nan etc, but don't yet.
This fixes incorrect evaluation of __builtin_constant_p, a FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57156
91177308 -0d34-0410-b5e6-
96231b3b80d8
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