Ted Kremenek
5ee6292e32
Add #include (introduced by dependence on DeclGroup)
...
llvm-svn: 57274
2008-10-07 23:08:39 +00:00
Ted Kremenek
4faf673d7f
Fixed a masked bug when iterating over the child expressions of SizeOfAlignOfTypeExpr. This bug was unmasked by recent changes to StmtIterator.
...
llvm-svn: 57273
2008-10-07 23:07:10 +00:00
Ted Kremenek
12183e25aa
Add const_iterator to DeclGroup.
...
Serialization for OwningDeclGroupRefs now works.
llvm-svn: 57272
2008-10-07 23:06:01 +00:00
Ted Kremenek
f9638bac59
Add StmtIterator support for DeclGroups.
...
llvm-svn: 57271
2008-10-07 23:04:14 +00:00
Argyrios Kyrtzidis
8ae3684aa9
In ParseParenDeclarator match "D.setGroupingParens(true);" with another setGroupingParens call after the ')' is parsed.
...
Fixes this bug:
int (x)(0); // error, expected function declarator where the '(0)' initializer is
llvm-svn: 57241
2008-10-07 10:21:57 +00:00
Zhongxing Xu
de7509f01a
Added a function call case that generates sink nodes.
...
llvm-svn: 57240
2008-10-07 10:06:03 +00:00
Zhongxing Xu
f5e7c90c46
Migrate MemRegionManager from StateManager to StoreManager.
...
llvm-svn: 57225
2008-10-07 01:31:04 +00:00
Ted Kremenek
6553748599
Added prototype serialization code for DeclGroup.
...
llvm-svn: 57222
2008-10-06 23:49:24 +00:00
Argyrios Kyrtzidis
7b41f721b4
Use getCustomDiagID() instead of specifying the diagnostic in the 'DiagnosticKinds.def' file.
...
llvm-svn: 57220
2008-10-06 23:16:35 +00:00
Argyrios Kyrtzidis
997d00dd13
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 ;".
llvm-svn: 57219
2008-10-06 23:08:37 +00:00
Ted Kremenek
21cc560188
Remove DeclStmt::getDecl(). Now clients of DeclStmt must explicitly reason about a DeclStmt referring to a collection of Decls.
...
llvm-svn: 57217
2008-10-06 22:51:42 +00:00
Ted Kremenek
db7f2a74db
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.
...
llvm-svn: 57216
2008-10-06 22:45:07 +00:00
Ted Kremenek
5b6f8ee7b9
Use "DeclStmt::getSolitaryDecl()" when accessing the DeclStmt of an @catch .
...
llvm-svn: 57215
2008-10-06 22:39:38 +00:00
Ted Kremenek
6d60a4ec19
Modified DeclGroupRef to always load/store the internal pointer value as Decl*. This hopefully will obviate any concerns with violating strict type-aliasing issues.
...
llvm-svn: 57213
2008-10-06 22:17:16 +00:00
Ted Kremenek
292b3842a0
Use DeclStmt::getSolitaryDecl() instead of DeclStmt::getDecl() when rewriting Objective-c foreach statements.
...
llvm-svn: 57212
2008-10-06 22:16:13 +00:00
Ted Kremenek
3fef35736e
Use DeclStmt::getSolitaryDecl() instead of DeclStmt::getDecl() when processing the Decl of an Objective-C foreach statement.
...
llvm-svn: 57209
2008-10-06 20:59:48 +00:00
Ted Kremenek
a7297be859
Use DeclStmt::getSolitaryDecl() instead of DeclStmt::getDecl() when processing the Decl of a @catch statement.
...
llvm-svn: 57208
2008-10-06 20:58:56 +00:00
Ted Kremenek
11b004216c
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().
...
llvm-svn: 57207
2008-10-06 20:58:11 +00:00
Ted Kremenek
ef52c641e7
Use DeclStmt::decl_iterator to walk a group of Decl*'s instead of using the ScopedDecl chain.
...
llvm-svn: 57206
2008-10-06 20:56:19 +00:00
Ted Kremenek
a86db10563
Don't use DeclStmt::getDecl() to serialize out DeclStmt; use TheDecl directly.
...
This patch precedes removing getDecl() DeclStmt::entirely.
llvm-svn: 57205
2008-10-06 20:55:44 +00:00
Ted Kremenek
acf920dd39
Add DeclStmt::hasSolitaryDecl() and DeclStmt::getSolitaryDecl()
...
llvm-svn: 57204
2008-10-06 20:54:44 +00:00
Ted Kremenek
7c2d69f007
Use "unsigned" instead of "int" for i to remove a "comparison between unsigned and signed" warning (potential integer overflow).
...
llvm-svn: 57201
2008-10-06 20:35:04 +00:00
Anders Carlsson
5f7ee680f8
Add 'x' constraint character.
...
llvm-svn: 57198
2008-10-06 19:17:39 +00:00
Ted Kremenek
dcd6632463
Use the DeclStmt::decl_iterator to get the first decl in a DeclStmt instead of using DeclStmt::getDecl().
...
llvm-svn: 57196
2008-10-06 18:48:35 +00:00
Ted Kremenek
53532c1fda
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.
llvm-svn: 57195
2008-10-06 18:47:09 +00:00
Ted Kremenek
4db44b62ad
Don't use DeclStmt::getDecl(); this will eventually disappear. Just fetch the first decl using the DeclStmt::decl_iterator.
...
llvm-svn: 57194
2008-10-06 18:43:53 +00:00
Ted Kremenek
704a2505db
In EmitDeclStmt: use DeclStmt::const_decl_iterator instead of walking the scoped decl chain.
...
llvm-svn: 57192
2008-10-06 18:42:27 +00:00
Ted Kremenek
15e6b40832
Added PrintRawDeclStmt; use this method to print out DeclStmt instead of using PrintRawDecl (which falsely assumes DeclStmts have only one Decl).
...
llvm-svn: 57191
2008-10-06 18:39:36 +00:00
Ted Kremenek
62408480d9
Use Decl::decl_iterator instead of walking the ScopedDecl chain (which will soon be removed).
...
llvm-svn: 57190
2008-10-06 18:38:35 +00:00
Ted Kremenek
fae8cb0736
Use DeclStmt::decl_iterator instead of using Decl::getDecl(). Soon DeclStmts will wrap group of Decls.
...
Added FIXME.
llvm-svn: 57189
2008-10-06 18:37:46 +00:00
Argyrios Kyrtzidis
153d967d14
The current semantic process for direct initializers won't work properly for class types.
...
Add a FIXME until class constructors are supported.
llvm-svn: 57188
2008-10-06 18:37:09 +00:00
Ted Kremenek
f8a2765fb7
Use DeclStmt::decl_iterator instead of walking the ScopedDecl chain (which will soon be removed).
...
llvm-svn: 57187
2008-10-06 18:36:52 +00:00
Ted Kremenek
151534a197
Add const_decl_iterator to DecStmt.
...
llvm-svn: 57186
2008-10-06 18:35:55 +00:00
Ted Kremenek
c7d5d976bf
Update Xcode project.
...
llvm-svn: 57180
2008-10-06 17:42:44 +00:00
Argyrios Kyrtzidis
9a1191c047
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.
llvm-svn: 57178
2008-10-06 17:10:33 +00:00
Ted Kremenek
3b670d1a0c
Updated checker build.
...
llvm-svn: 57176
2008-10-06 15:46:11 +00:00
Chris Lattner
25728d931a
fix incorrect rdar number.
...
llvm-svn: 57165
2008-10-06 07:43:28 +00:00
Chris Lattner
1b0a00a4c9
__CONSTANT_CFSTRINGS__ should be defined even in C mode, otherwise the CFSTR
...
won't expand to the builtin. This fixes rdar://6248329
llvm-svn: 57164
2008-10-06 07:43:09 +00:00
Chris Lattner
a97132a9c4
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.
llvm-svn: 57163
2008-10-06 07:26:43 +00:00
Chris Lattner
2c091b1ead
ExprConstant should not abort when it sees a pointer constant that isn't.
...
llvm-svn: 57162
2008-10-06 07:20:11 +00:00
Chris Lattner
24355b5240
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.
llvm-svn: 57161
2008-10-06 06:56:41 +00:00
Chris Lattner
b7c86a211c
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.
llvm-svn: 57160
2008-10-06 06:51:12 +00:00
Chris Lattner
cb13691a62
Add a Expr::isEvaluatable method, eliminate isBuiltinConstantExpr
...
which is checking for something that can be inconsistent with
what we can constant fold.
llvm-svn: 57159
2008-10-06 06:49:02 +00:00
Chris Lattner
86ee286b09
Move folding of __builtin_classify_type out of the CallExpr
...
interface into the constant folding interface.
llvm-svn: 57158
2008-10-06 06:40:35 +00:00
Chris Lattner
0b7282eafc
Move handling of __builtin_nan("") out of CGBuiltin.cpp into ExprConstant.cpp
...
llvm-svn: 57157
2008-10-06 06:31:58 +00:00
Chris Lattner
a1518b1dfe
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.
llvm-svn: 57156
2008-10-06 06:09:18 +00:00
Chris Lattner
e50e90142e
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'.
llvm-svn: 57155
2008-10-06 05:59:01 +00:00
Chris Lattner
37346e081c
Teach FloatExprEvaluator to evaluate __builtin_huge_val and inf.
...
llvm-svn: 57154
2008-10-06 05:53:16 +00:00
Chris Lattner
c43467526d
"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.
llvm-svn: 57153
2008-10-06 05:42:39 +00:00
Chris Lattner
4deaa4ea24
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.
llvm-svn: 57152
2008-10-06 05:28:25 +00:00
Chris Lattner
01ff98a48a
add a new CallExpr::isBuiltinCall() method, and use it to simplify some existing
...
code.
llvm-svn: 57151
2008-10-06 05:00:53 +00:00
Anders Carlsson
1e18220dc4
Actually use the mmintrin.h header, it's good enough now.
...
llvm-svn: 57150
2008-10-06 04:49:00 +00:00
Chris Lattner
d1d152a613
a more efficient test for __builtin_classify_type
...
llvm-svn: 57149
2008-10-06 04:48:17 +00:00
Zhongxing Xu
a4bbcd302e
Fix typos.
...
llvm-svn: 57146
2008-10-06 03:03:33 +00:00
Anders Carlsson
f407150c06
Apparently gcc uses pi64 for the shift intrinsics.
...
llvm-svn: 57145
2008-10-06 02:07:50 +00:00
Anders Carlsson
83661acf30
Add the 'y' assembler constraint.
...
llvm-svn: 57144
2008-10-06 00:41:45 +00:00
Argyrios Kyrtzidis
e8addf5e04
Allow variadic arguments without named ones for C++, e.g. "void(...);"
...
llvm-svn: 57143
2008-10-06 00:07:55 +00:00
Anders Carlsson
b83162840f
Implement support for the const and pure attributes.
...
llvm-svn: 57142
2008-10-05 23:32:53 +00:00
Argyrios Kyrtzidis
4217c7ec81
A tiny optimization; use isCXXFunctionDeclarator only when it's appropriate.
...
llvm-svn: 57141
2008-10-05 23:15:41 +00:00
Chris Lattner
09d98f5d8a
miscellaneous cleanups
...
llvm-svn: 57140
2008-10-05 21:50:58 +00:00
Chris Lattner
ac7ed9a71a
move __FLT_EVAL_METHOD__, __FLT_RADIX__, and __DECIMAL_DIG__ into
...
target indep code.
llvm-svn: 57139
2008-10-05 21:49:27 +00:00
Chris Lattner
c34a35d56f
it helps when I save the file before testing and committing.
...
llvm-svn: 57138
2008-10-05 21:42:17 +00:00
Chris Lattner
6da2f0dd2e
suck the rest of the FP macros out of the targets into the PP
...
llvm-svn: 57137
2008-10-05 21:40:58 +00:00
Argyrios Kyrtzidis
279d9814e5
Add some text from the C++ standard and additional ambiguity resolution tests.
...
No funcitonality change.
llvm-svn: 57136
2008-10-05 21:10:08 +00:00
Chris Lattner
5cd8351808
start moving fp macros over
...
llvm-svn: 57134
2008-10-05 20:40:30 +00:00
Daniel Dunbar
6ba6cc42d4
Add script for checking builtin macros verse another compiler ($CC or
...
gcc).
llvm-svn: 57133
2008-10-05 20:39:30 +00:00
Chris Lattner
6512a88984
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).
llvm-svn: 57132
2008-10-05 20:06:37 +00:00
Argyrios Kyrtzidis
2b1ef227f5
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.
llvm-svn: 57131
2008-10-05 19:56:22 +00:00
Chris Lattner
4ecd753486
eliminate __USER_LABEL_PREFIX__ from the Targets.cpp file, start moving
...
integer size #defines over to the Preprocessor.
llvm-svn: 57130
2008-10-05 19:44:25 +00:00
Chris Lattner
248d3c4192
gcc no longer defines __block to nothing when blocks aren't enabled.
...
llvm-svn: 57129
2008-10-05 19:32:52 +00:00
Chris Lattner
1f7e2d5430
rearrange preprocessor macro definitions into language-specific
...
then target specific.
llvm-svn: 57128
2008-10-05 19:32:22 +00:00
Chris Lattner
f37bafc5ca
Implement PR2773, support for __USER_LABEL_PREFIX__
...
llvm-svn: 57127
2008-10-05 19:22:37 +00:00
Chris Lattner
9daca0e561
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.
llvm-svn: 57126
2008-10-05 19:05:44 +00:00
Argyrios Kyrtzidis
df788f4eea
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).
llvm-svn: 57125
2008-10-05 18:52:21 +00:00
Anders Carlsson
c181b01681
Add parsing of the sentinel attribute. Still need to create the attribute.
...
llvm-svn: 57121
2008-10-05 18:05:59 +00:00
Anders Carlsson
d27a0c2395
Change indentation for a couple of files in the Xcode project.
...
llvm-svn: 57120
2008-10-05 18:04:30 +00:00
Chris Lattner
465fa32cd5
Wrap long lines and other minor cleanups, no functionality change.
...
llvm-svn: 57119
2008-10-05 17:34:18 +00:00
Anders Carlsson
c442c92b6f
Remove copyright notice, we decided not to have them.
...
llvm-svn: 57118
2008-10-05 17:21:08 +00:00
Argyrios Kyrtzidis
5af11b2462
Move the TentativeParsingResult enum closer to where it gets used.
...
No functionality change.
llvm-svn: 57115
2008-10-05 17:02:44 +00:00
Argyrios Kyrtzidis
bc28fefcde
Disambiguate between a declaration or an expression, in the 'for-init-statement' part of a 'for' statement.
...
llvm-svn: 57112
2008-10-05 15:50:46 +00:00
Argyrios Kyrtzidis
2534620b4e
Fix Parser::isCXXConditionDeclaration to properly resolve declarations.
...
llvm-svn: 57111
2008-10-05 15:19:49 +00:00
Argyrios Kyrtzidis
71f3e19df0
Disambiguate between a declaration or expression for the 'condition' part of a if/switch/while/for statement.
...
llvm-svn: 57109
2008-10-05 15:03:47 +00:00
Argyrios Kyrtzidis
7b87f27438
Consider GNU attributes when doing ambiguity resolution.
...
llvm-svn: 57108
2008-10-05 14:27:18 +00:00
Zhongxing Xu
8c9771bdf0
Remove redundant parameter and rename StMgr to StateMgr.
...
llvm-svn: 57107
2008-10-05 12:12:48 +00:00
Daniel Dunbar
93bc49d882
Add X86 builtin code generation test case.
...
llvm-svn: 57104
2008-10-05 06:38:36 +00:00
Daniel Dunbar
363a5c0a1b
Improve C language testing coverage.
...
llvm-svn: 57103
2008-10-05 06:36:33 +00:00
Daniel Dunbar
35bd17f1a5
Fix X86 palignr[128] builtins to match LLVM.
...
llvm-svn: 57102
2008-10-05 06:35:41 +00:00
Daniel Dunbar
b11d5d65e8
Add some builtins to codegen test case.
...
llvm-svn: 57101
2008-10-05 06:34:45 +00:00
Daniel Dunbar
b8ed192605
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.
llvm-svn: 57100
2008-10-05 05:43:11 +00:00
Daniel Dunbar
e47e96a4a5
Fix another X86 builtin definitions.
...
- vec_set_v4hi had "v4s" in place of "V4s"
llvm-svn: 57099
2008-10-05 05:21:00 +00:00
Daniel Dunbar
91d8be141b
Fix some X86 builtin definitions.
...
- cmp instructions return int
- storedqu had bad const qualifier
- pmuldq128 used invalid type code
llvm-svn: 57098
2008-10-05 05:14:37 +00:00
Daniel Dunbar
0af89ff0fb
Add -rewrite-macros test case.
...
llvm-svn: 57094
2008-10-05 01:39:04 +00:00
Daniel Dunbar
374b8b4269
Allow -verify to be used with -rewrite-macros.
...
llvm-svn: 57093
2008-10-05 01:38:39 +00:00
Daniel Dunbar
91d085e368
Coverage test for targets.
...
- This pushes us over 80% coverage of executable LOC.
llvm-svn: 57092
2008-10-05 01:04:25 +00:00
Steve Naroff
47ddedab08
Update VC++ project file
...
llvm-svn: 57090
2008-10-05 00:52:59 +00:00
Daniel Dunbar
05d93dd73d
Improve codegen coverage tests.
...
- Hit debug info generation.
- Hit both ObjC runtimes.
llvm-svn: 57088
2008-10-05 00:31:54 +00:00
Daniel Dunbar
6b57b45b4d
Add dummy -ast-dump support for ObjC category implementations.
...
llvm-svn: 57087
2008-10-05 00:31:15 +00:00
Steve Naroff
8f9be42072
Remove old diag that alerted the user to a limitation we no longer have:-)
...
llvm-svn: 57086
2008-10-05 00:12:46 +00:00
Argyrios Kyrtzidis
72d8149a1e
Append the test runs with '&&'.
...
llvm-svn: 57085
2008-10-05 00:08:56 +00:00
Argyrios Kyrtzidis
2c7137d8d1
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.
llvm-svn: 57084
2008-10-05 00:06:24 +00:00
Steve Naroff
02da7667d2
Create a function, eliminating some redundancy between SynthesizeBlockInitExpr() and SynthesizeBlockLiterals().
...
llvm-svn: 57083
2008-10-05 00:06:12 +00:00
Steve Naroff
c7a80a5533
Finish implementing copy/dispose helpers for imported block decls.
...
llvm-svn: 57082
2008-10-04 23:47:37 +00:00
Daniel Dunbar
83f705ac20
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.
llvm-svn: 57081
2008-10-04 23:47:28 +00:00
Daniel Dunbar
e773d5ff16
Set exit code properly on "Unexpected program action".
...
llvm-svn: 57080
2008-10-04 23:42:49 +00:00
Daniel Dunbar
4777ba0102
Desensitize env-include-paths.c to the directory it is running in.
...
- It would probably be better if TestRunner.sh canonicalized this.
llvm-svn: 57075
2008-10-04 21:05:04 +00:00
Daniel Dunbar
3ca0a634c2
Bug fix, CPATH="" does not add '.' to search path.
...
llvm-svn: 57072
2008-10-04 20:58:18 +00:00
Daniel Dunbar
23bd6cc156
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.
llvm-svn: 57070
2008-10-04 20:46:41 +00:00
Daniel Dunbar
fdfb0a0d5e
De-XFAIL test/Parser/pragma-pack.c
...
llvm-svn: 57069
2008-10-04 19:45:56 +00:00
Chris Lattner
464e17ab20
switch to using -verify
...
llvm-svn: 57068
2008-10-04 19:43:25 +00:00
Chris Lattner
cc498392a2
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.
llvm-svn: 57067
2008-10-04 19:38:15 +00:00
Daniel Dunbar
921b968841
Add Parser support for #pragma pack
...
- Uses Action::ActOnPragmaPack
- Test case is XFAIL pending verifier fixes.
llvm-svn: 57066
2008-10-04 19:21:03 +00:00
Daniel Dunbar
405965323d
Add Preprocessor::RemovePragmaHandler.
...
- No functionality change.
llvm-svn: 57065
2008-10-04 19:17:46 +00:00
Steve Naroff
4017d15fed
Add indirection required for byref BlockDeclRefExpr's.
...
llvm-svn: 57063
2008-10-04 18:52:47 +00:00
Steve Naroff
564e97a2de
Handle bookkeeping for imported blocks (in SynthesizeBlockImpl).
...
This code was "lost" with my recent changes to SynthesizeBlockFunc.
llvm-svn: 57056
2008-10-04 18:00:11 +00:00
Ted Kremenek
c23dcdbb7f
Add MemRegion.cpp to VS project.
...
llvm-svn: 57055
2008-10-04 17:55:52 +00:00
Steve Naroff
87b9d298b8
Cut/paste error...need to use the expression "name" for member references (or other complex expressions that can embed a block pointer type)
...
llvm-svn: 57054
2008-10-04 17:45:51 +00:00
Steve Naroff
756efbc7f7
Clear the map that associated the rewritten block with it's corresponding BlockExpr.
...
llvm-svn: 57053
2008-10-04 17:10:02 +00:00
Steve Naroff
5f96e4dffc
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.
llvm-svn: 57052
2008-10-04 17:06:23 +00:00
Ted Kremenek
d1036be0ef
Updated checker build.
...
llvm-svn: 57045
2008-10-04 06:53:56 +00:00
Ted Kremenek
5ca90a244f
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.
llvm-svn: 57042
2008-10-04 05:50:14 +00:00
Zhongxing Xu
8d1928a4ca
Reverse the RHSBlock of LogicalOp && and ||
...
llvm-svn: 57041
2008-10-04 05:48:38 +00:00
Chris Lattner
879876d26a
add a disclaimer
...
llvm-svn: 57038
2008-10-03 23:31:37 +00:00
Chris Lattner
7c306a70b9
add a new Rewriter::getRewritenText method that returns the text for a range
...
that includes any edits in the range.
llvm-svn: 57037
2008-10-03 23:31:16 +00:00
Steve Naroff
3d5a11c622
Remove an old/vacuous if clause.
...
llvm-svn: 57036
2008-10-03 23:00:50 +00:00
Steve Naroff
e3e45a8c43
More fun & games with the block rewriter.
...
llvm-svn: 57028
2008-10-03 20:28:15 +00:00
Daniel Dunbar
325601a9e5
Merge postfix attributes on record decls.
...
llvm-svn: 57019
2008-10-03 17:33:35 +00:00
Daniel Dunbar
e4ac7a4059
Remove a FIXME.
...
llvm-svn: 57015
2008-10-03 16:42:10 +00:00
Steve Naroff
a2d71df5b9
Rewrite global block expressions.
...
llvm-svn: 57004
2008-10-03 15:38:09 +00:00
Steve Naroff
239f6f9b24
- Add a convenience constructor to Type.
...
- Many rewriter modifications.
llvm-svn: 57003
2008-10-03 15:04:50 +00:00
Steve Naroff
7bf080c9cc
Rework SynthesizeBlockImpl() to include a constructor.
...
llvm-svn: 57001
2008-10-03 12:09:49 +00:00
Daniel Dunbar
4d601119c3
Pass postfix attributes to ActOnFields (mismarked a file).
...
llvm-svn: 56993
2008-10-03 02:05:12 +00:00
Daniel Dunbar
15619c7e4b
Pass postfix attributes to ActOnFields.
...
llvm-svn: 56992
2008-10-03 02:03:53 +00:00
Daniel Dunbar
438b0c0c03
Bug fix, ccc was passing -std twice.
...
llvm-svn: 56991
2008-10-03 01:54:54 +00:00
Steve Naroff
49428dbdd5
Get the right location to insert the synthesized block literals/functions.
...
llvm-svn: 56987
2008-10-03 00:12:09 +00:00
Steve Naroff
2231569f01
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).
llvm-svn: 56985
2008-10-03 00:02:03 +00:00
Steve Naroff
ddb1492288
Name changes and some cleanup of preamble.
...
llvm-svn: 56984
2008-10-02 23:30:43 +00:00
Daniel Dunbar
dc2ab1740a
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.
llvm-svn: 56983
2008-10-02 23:30:31 +00:00
Daniel Dunbar
dd9b2d16f9
Add support for format string checking of object-size checking
...
versions of sprintf and friends.
- Added FIXME that this mechanism should be generalized.
llvm-svn: 56962
2008-10-02 18:44:07 +00:00
Daniel Dunbar
e23f28f8a5
Emit error unsupported for break/continue/goto inside Obj-C exception
...
handling blocks.
- This has false positives, but at least prevents miscompiles.
llvm-svn: 56958
2008-10-02 18:02:06 +00:00
Daniel Dunbar
92c4c4af58
Fix ccc handling of -mmacosx-version-min.
...
llvm-svn: 56956
2008-10-02 17:26:37 +00:00
Steve Naroff
d40a39626c
Changed Sema::CheckForConstantInitializer to allow global block literals.
...
This commit also includes some name changes in the blocks rewriter (no functionality change).
llvm-svn: 56955
2008-10-02 17:12:56 +00:00
Daniel Dunbar
c3d16493ae
(LLVM up) Rename IRBuilder::IsNonNull -> IsNotNull.
...
llvm-svn: 56954
2008-10-02 17:05:36 +00:00
Daniel Dunbar
d55a81e7fc
Unbreak build: claim an extra bit for BuiltinID.
...
llvm-svn: 56952
2008-10-02 16:40:43 +00:00
Daniel Dunbar
d03c02873a
(llvm up) If the target triple is unspecified, automatically set the
...
OS version part to that of the host on darwin.
llvm-svn: 56943
2008-10-02 01:21:33 +00:00
Daniel Dunbar
4dd154663e
Drop code to validate OS part of target triple on darwin, too fragile.
...
llvm-svn: 56941
2008-10-02 00:26:24 +00:00
Ted Kremenek
3aa89a971d
Enhance NSError** checking with analogous checking for CFErrorRef*.
...
Expand checking to include functions, not just methods.
llvm-svn: 56938
2008-10-01 23:24:09 +00:00
Mon P Wang
e13447ec81
Added SSE4.1 blend intrinsics
...
llvm-svn: 56936
2008-10-01 23:08:39 +00:00
Ted Kremenek
e8ce52e44b
Updated checker build.
...
llvm-svn: 56916
2008-10-01 05:27:13 +00:00
Ted Kremenek
63249b6e57
Added test case.
...
llvm-svn: 56915
2008-10-01 05:05:46 +00:00
Ted Kremenek
8dcd40768e
Use LVal::IsLValType(T) instead of checking to see if the type is an "lvalue" type directly.
...
llvm-svn: 56912
2008-10-01 05:02:13 +00:00
Ted Kremenek
f56afd7cdd
Update checker build.
...
llvm-svn: 56909
2008-10-01 02:03:02 +00:00
Daniel Dunbar
e8813812eb
ccc: Use CCC_NATIVE=1 by default.
...
- So far this works fairly well for me for building applications
using clang as a gcc substitute. If you are using ccc for a
different purpose and this is a problem, speak up! Note you can
also use CCC_NATIVE=0 to disable.
- Also, turn CCC_ECHO off as default.
- Also, pass through -Wl, to linker.
llvm-svn: 56904
2008-10-01 01:10:22 +00:00
Daniel Dunbar
fbe68a84f8
NeXT: Update to use CreateRuntimeFunction for the routines it imports.
...
llvm-svn: 56902
2008-10-01 01:06:06 +00:00
Daniel Dunbar
23fd462f48
Add simple interface for protecting runtime functions from name
...
collisions.
- Provide CodeGenModule::CreateRuntimeFunction which guarantees that
the function it creates will have the provided name in the final
module. This allows the runtime to have its functions protected
from declarations of the same name in the source code.
- One could argue that this is a reason to abuse the llvm::Module
namespace for dealing with function redeclarations. However, that
approach seems conceptually flawed to me. This one also happens to
be somewhat more efficient.
No functionality change.
llvm-svn: 56899
2008-10-01 00:49:24 +00:00
Ted Kremenek
d331d09e2f
Add a QualType to ConjuredSymbol to represent the type and size of the symbol.
...
Use this updated interface when invalidating arguments passed by reference; the type of symbol is of the object passed by reference, not the reference itself.
llvm-svn: 56894
2008-10-01 00:21:14 +00:00
Ted Kremenek
e8450fefdd
Support -mmacosx-version-min
...
llvm-svn: 56892
2008-09-30 23:40:25 +00:00
Ted Kremenek
7a93cd8ac6
Set reproducibility back to "Always"
...
llvm-svn: 56891
2008-09-30 23:23:58 +00:00
Daniel Dunbar
969b48cba1
ccc: Add support for another batch of OS X linker options, including
...
-mmacosx-version-min.
One might anticipate that at some point I will just break down and go
through the man page. That seems a little too obvious.
llvm-svn: 56890
2008-09-30 22:54:22 +00:00
Daniel Dunbar
123e7d1c2a
ccc: Infer action type upfront.
...
- More straightforward, e.g. -E should always imply action =
'preprocess' (I think).
- Pass another option through for OS X.
llvm-svn: 56884
2008-09-30 21:20:51 +00:00
Chris Lattner
a1cf5f9663
simplify padding, just fold it into the earlier resize.
...
llvm-svn: 56880
2008-09-30 20:53:45 +00:00
Chris Lattner
8b567f9713
fix a potential buffer overrun that Eli noticed
...
llvm-svn: 56879
2008-09-30 20:51:14 +00:00
Daniel Dunbar
106ab3bb42
Fix help for --suppress-system-warnings
...
llvm-svn: 56878
2008-09-30 20:49:53 +00:00
Chris Lattner
59f09b6fe1
Document assumptions that NumericLiteralParser makes with an assertion.
...
llvm-svn: 56876
2008-09-30 20:45:40 +00:00
Chris Lattner
97d749464d
Handle minor version numbers in __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
...
like "10.3.9"
llvm-svn: 56873
2008-09-30 20:30:12 +00:00
Chris Lattner
b5c15e8228
Finish handling of -mmacosx-version-min. If you now do something like:
...
clang -mmacosx-version-min=10.4.9 ...
you'll end up with a target triple like "i686-apple-darwin8.9".
llvm-svn: 56871
2008-09-30 20:16:56 +00:00
Daniel Dunbar
9e3b917965
scan-view: Remove some debugging prints.
...
llvm-svn: 56864
2008-09-30 17:54:44 +00:00
Ted Kremenek
b6c459ea13
Updated checker build.
...
llvm-svn: 56863
2008-09-30 17:53:26 +00:00
Ted Kremenek
05f3ccda24
Default reproducibility to "Not applicable"
...
llvm-svn: 56860
2008-09-30 17:28:54 +00:00
Daniel Dunbar
5f57710392
Add diagnostic for .{lo,hi,e,o} on odd-sized extended vectors.
...
llvm-svn: 56859
2008-09-30 17:22:47 +00:00
Ted Kremenek
9f403161d7
Make "Performance" the default Radar classification for leaks. "Other" for all others (for now).
...
llvm-svn: 56858
2008-09-30 17:12:32 +00:00
Ted Kremenek
fb0fef9157
Make a separate parameter class for "Radar classifications".
...
Do not save the radar classification to the config file.
llvm-svn: 56856
2008-09-30 17:00:30 +00:00
Ted Kremenek
b166299f2b
Add "SelectionParameter" class to represent drop-down boxes.
...
Added "Classification" field to Radar filing.
Modified FileRadar.scpt to take the classification as an argument.
llvm-svn: 56854
2008-09-30 16:37:50 +00:00
Daniel Dunbar
64fd24812a
Change ccc to not pass -x unknown down.
...
Pass through some more Mac OS X linker options.
llvm-svn: 56853
2008-09-30 16:18:31 +00:00
Ted Kremenek
fef3c4092d
Conditionally load/save default parameter value from config file.
...
llvm-svn: 56852
2008-09-30 16:11:33 +00:00
Ted Kremenek
094ff0b061
Use objects to represent form parameters. This allows us to abstract away some
...
of the details of HTML rendering of form parameters, and also us with the
ability to delegate other actions (such as in the filling in of default values)
to specific parameter objects.
llvm-svn: 56851
2008-09-30 16:08:13 +00:00
Steve Naroff
4a82d815de
Fix <rdar://problem/6191148> [sema] Objective-C method lookup (at global scope) fails to handle overloaded selectors properly.
...
Long standing bug in Sema::ActOnInstanceMessage(). We now warn when messaging an "id" with multiple method signatures in scope. The diags are a little verbose, however they can be streamlined if necessary.
llvm-svn: 56843
2008-09-30 14:38:43 +00:00
Nuno Lopes
a459f12862
fix test for latest changes in llvm asm representation
...
llvm-svn: 56842
2008-09-30 14:37:33 +00:00
Steve Naroff
9f9774cd2b
Improved fix for <rdar://problem/6247781> Parser rejecting properly mismatched properties.
...
Needed to make sure the relaxed type checking only applies to "readonly" properties.
llvm-svn: 56838
2008-09-30 10:07:56 +00:00
Nick Lewycky
e275a66538
Add missing include for use of atoi.
...
llvm-svn: 56836
2008-09-30 07:18:57 +00:00
Ted Kremenek
a930b56252
Tabs -> Spaces.
...
llvm-svn: 56833
2008-09-30 05:45:59 +00:00
Ted Kremenek
f1b299952a
Revert last patch, but add a fixme
...
llvm-svn: 56832
2008-09-30 05:35:42 +00:00
Ted Kremenek
76bccf6221
Within the transfer function of UnaryOperatorExpr, handle implicit promotions
...
from the subexpression type to the expression type.
llvm-svn: 56831
2008-09-30 05:32:44 +00:00
Mon P Wang
553b4b912b
Added support for sse intrinsics loadlpd, loadhpd, muldq128, and mulld128
...
llvm-svn: 56830
2008-09-30 05:31:27 +00:00
Chris Lattner
29c54dd6b9
start handling 'mmacosx-version-min', this is not complete yet.
...
llvm-svn: 56828
2008-09-30 01:13:12 +00:00
Daniel Dunbar
2efd538f61
Add infrastructure for proper @finally support.
...
- Provides a basic primitive to jump to an arbitrary basic block,
through the finally code.
- Only used for return statements and rethrow currently. Still need
to handle break, continue and goto.
- Code still needs to be shuffled around to live elsewhere.
llvm-svn: 56827
2008-09-30 01:06:03 +00:00
Chris Lattner
b3793bb415
The definition of __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ follows
...
the target triple on darwin. For example i386-apple-darwin9 -> 1050 because
darwin9 is "10.5".
llvm-svn: 56826
2008-09-30 01:00:25 +00:00
Chris Lattner
7ed3209332
define __PASCAL_STRINGS__ whenever -fpascal-strings is enabled.
...
llvm-svn: 56824
2008-09-30 00:48:48 +00:00
Chris Lattner
006579ddb5
__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ is a darwin-specific #define
...
llvm-svn: 56822
2008-09-30 00:46:39 +00:00
Steve Naroff
506e717e4f
Fix <rdar://problem/6247781> Parser rejecting properly mismatched properties.
...
llvm-svn: 56821
2008-09-30 00:24:17 +00:00
Ted Kremenek
7273d01dd4
Updated checker build.
...
llvm-svn: 56819
2008-09-29 23:33:12 +00:00
Chris Lattner
fb8b8f298c
Fix the root cause of PR2750 instead of the side effect.
...
NumericLiteral parser is not careful about overrun because
it should never be possible. It implicitly expects that its
input matched the regex for pp-constant. Because of this, it
knows it can't be pointing to a prefix of something that
looks like a number. This is all fine, except that __LINE__
does not prevent implicit concatenation from happening. Fix
__LINE__ to not do this.
llvm-svn: 56818
2008-09-29 23:12:31 +00:00
Ted Kremenek
887c49d592
Really don't add -isysroot twice.
...
llvm-svn: 56815
2008-09-29 23:06:09 +00:00
Ted Kremenek
6b2e07a292
Don't filter out -fpascal-strings.
...
llvm-svn: 56810
2008-09-29 22:45:28 +00:00
Chris Lattner
4a80a59b6e
Fix va_arg handling to do argument decaying at the correct place. This
...
fixes problems handling references of va_list, which happens on x86_64.
This fixes PR2841 and rdar://6252231
llvm-svn: 56809
2008-09-29 22:28:25 +00:00
Chris Lattner
d9a663aeb9
Make some methods const, add some helpers to FullSourceLoc,
...
and add a dump method to FullSourceLoc! Patch by Nico Weber!
llvm-svn: 56806
2008-09-29 21:46:13 +00:00
Chris Lattner
9bb37fec6a
move ExtVectorElementExpr down into the 'clang extensions' section.
...
Wrap line to 80 cols.
llvm-svn: 56805
2008-09-29 21:30:29 +00:00
Ted Kremenek
01c61b9b2a
Update checker build.
...
llvm-svn: 56804
2008-09-29 21:24:37 +00:00
Steve Naroff
38093af363
Add a random C99 comment/reference.
...
llvm-svn: 56800
2008-09-29 20:07:05 +00:00
Ted Kremenek
8715e1c859
Extend 'IsLValType' to handle BlockPointerTypes.
...
llvm-svn: 56797
2008-09-29 19:17:30 +00:00
Steve Naroff
32d072ca45
Teach Sema::CheckAssignmentConstraints() to allow assignments between id and block pointer types (^{}).
...
llvm-svn: 56793
2008-09-29 18:10:17 +00:00
Steve Naroff
03fc762a02
Fix <rdar://problem/6251012> clang: Blocks are objects too.
...
llvm-svn: 56791
2008-09-29 16:51:41 +00:00
Ted Kremenek
8b89a65136
Discard extra -isysroot options. This fixes:
...
<rdar://problem/6253141> Parser rejection occurs when command line has more than one -isysroot switch
llvm-svn: 56790
2008-09-29 16:15:20 +00:00
Daniel Dunbar
068f7f7092
Fix braindead bug, ID number was hardcoded.
...
llvm-svn: 56789
2008-09-29 16:06:43 +00:00
Steve Naroff
c2036d5da4
Fix <rdar://problem/6253149> property declaration doesn't declare getter and setter.
...
llvm-svn: 56785
2008-09-29 14:20:56 +00:00
Nico Weber
378c5539c8
whitespace and comment changes, to fix grammar and 80 col violations
...
llvm-svn: 56776
2008-09-29 00:25:48 +00:00
Steve Naroff
b6b1abb0f5
Change a NOTE to a FIXME based on feedback from clattner.
...
llvm-svn: 56775
2008-09-28 21:07:52 +00:00
Ted Kremenek
c1048153fe
Updated checker build.
...
llvm-svn: 56774
2008-09-28 17:25:56 +00:00
Steve Naroff
8edb573a79
Fix <rdar://problem/6252129> implementation of method in category doesn't effectively declare it for methods below.
...
llvm-svn: 56771
2008-09-28 14:55:53 +00:00
Steve Naroff
4831c74d40
Fix <rdar://problem/6252108> assigning to argument passed to block should not require __block.
...
llvm-svn: 56770
2008-09-28 14:02:55 +00:00
Chris Lattner
037379d767
Fix rdar://6252231 - cannot call vsnprintf with va_list on x86_64,
...
by decaying __builtin_va_list's type when forming builtins. On
x86-64 (and other targets) __builtin_va_list is a typedef for
an array.
llvm-svn: 56768
2008-09-28 06:05:35 +00:00
Chris Lattner
ff2c187e59
Replace a comparison with a static list of builtins that was wrong (it
...
wasn't covering checking builtins like __builtin___vsnprintf_chk) with
a check that won't get out of date.
llvm-svn: 56767
2008-09-28 05:54:29 +00:00
Chris Lattner
e9d291c038
Fix rdar://6251437, references to enum constant decls in a block
...
don't need a BlockDeclRefExpr.
llvm-svn: 56766
2008-09-28 05:30:26 +00:00
Ted Kremenek
7dbc92a269
Add "Path Length" back to the table of bug reports.
...
llvm-svn: 56765
2008-09-28 04:13:09 +00:00
Steve Naroff
e18f94c20d
Fix <rdar://problem/6252216> compare block to NULL.
...
llvm-svn: 56764
2008-09-28 01:11:11 +00:00
Daniel Dunbar
d3dcb4f8ed
Add support for implicit rethrows in @catch blocks.
...
Comment exception-handling code generation strategy.
llvm-svn: 56763
2008-09-28 01:03:14 +00:00
Daniel Dunbar
a2d3570fc9
Skip redundant if.
...
llvm-svn: 56762
2008-09-28 00:19:22 +00:00
Steve Naroff
edec9ba58d
Fix <rdar://problem/6252226> parser thinks block argument is undefined identifier in NSServices.m
...
llvm-svn: 56761
2008-09-28 00:13:36 +00:00
Daniel Dunbar
7f08678f7d
(Update LLVM) Clean up obj-c exception generation to be a bit more
...
readable and to generate more readable IR.
llvm-svn: 56758
2008-09-27 23:30:04 +00:00
Daniel Dunbar
86919f45cc
Bug fix, codegen @catch(id<X> ...) acceptably.
...
- This should be rejected by sema (IMHO) but that needs some
investigation.
llvm-svn: 56756
2008-09-27 22:21:14 +00:00
Ted Kremenek
21c24f1785
Revert 56735. The old bug categories were more informative.
...
llvm-svn: 56755
2008-09-27 22:02:42 +00:00
Daniel Dunbar
523208fb4a
Simplify generate code for exceptions:
...
- There is no need to branch on the rethrow variable to determine if
we need to call objc_exception_try_exit. We know whether an
exception was thrown, so just branch to a different target if we
want to skip the try_exit.
This is a slight semantic departure from gcc, but only for throwing
nil, which is undefined (and for which gcc emits broken code).
- Also fixes a bug in current code which was calling try_exit too
many times when an exception was uncaught (but there were some
handlers).
Fix bug introduced in prev. commit, the type of the @catch parameter
was uninitialized.
llvm-svn: 56754
2008-09-27 07:36:24 +00:00
Daniel Dunbar
aec553bfdb
Prefer llvm::Function::addFnAttr(...) to F->addAttribute(~0, ...).
...
llvm-svn: 56753
2008-09-27 07:16:42 +00:00
Daniel Dunbar
274ff37583
Simplify code to emit the unified return block and move it to the end
...
of the function.
llvm-svn: 56752
2008-09-27 07:15:59 +00:00
Daniel Dunbar
b22ff59750
Bug fix, make sure to initialize exception object (to rethrow) even
...
when there are no @catch blocks.
Also, eliminated unneeded alloca for the rethrow object.
Also, avoid generating code to rethrow exception if the exception will
trivially always be caught.
llvm-svn: 56751
2008-09-27 07:03:52 +00:00
Daniel Dunbar
da04d7f4ec
Easy fix for nasty bug, exception data buffer had wrong type == wrong
...
(smaller) size == garbage on stack == heisenbugs.
llvm-svn: 56750
2008-09-27 06:32:25 +00:00
Zhongxing Xu
612e0c9604
Delete trailing white space. It's over 80 columns.
...
llvm-svn: 56749
2008-09-27 03:27:29 +00:00
Daniel Dunbar
53642c0160
Remove automagic substitution of %llvmgcc
...
- Is unused and somewhat unreliable.
llvm-svn: 56737
2008-09-27 00:47:03 +00:00
Ted Kremenek
16a59fabec
Change "leaks" to have the category "Performance".
...
llvm-svn: 56735
2008-09-27 00:45:27 +00:00
Daniel Dunbar
00e36f4c5c
Fix function-attributes test case to not rely on llvm-gcc.
...
llvm-svn: 56734
2008-09-27 00:44:01 +00:00
Daniel Dunbar
23b46ca198
Fix attributes test case to not run clang umpteen times.
...
llvm-svn: 56733
2008-09-27 00:39:13 +00:00
Ted Kremenek
8bafa2cf9f
Internally store the body of a BlockExpr using a Stmt* instead of a CompoundStmt*, and use the getBody() method to do the appropriate checking. This both removes the type-punning warnings in Expr.cpp and also makes BlockExpr have more consistency checks against modifications to its body (via StmtIterator).
...
llvm-svn: 56710
2008-09-26 23:24:14 +00:00
Ted Kremenek
2e53c51914
Forgot to check in header file with last commit.
...
llvm-svn: 56709
2008-09-26 23:24:05 +00:00
Ted Kremenek
6ed79f0c13
Use a union instead of a bunch of magic casts to implement a variant. This removes the type-punning errors for DeclGroup.
...
llvm-svn: 56708
2008-09-26 23:19:04 +00:00
Ted Kremenek
f5e7e3ae26
Add more control-flow to test case.
...
llvm-svn: 56707
2008-09-26 23:05:47 +00:00
Ted Kremenek
d86d39cc9e
Add CFG support for implicit-control flow for VLA size expressions within an SizeOfAlignOfTypeExpr.
...
llvm-svn: 56706
2008-09-26 22:58:57 +00:00
Devang Patel
597e70876e
Now Attributes are divided in three groups
...
- return attributes - inreg, zext and sext
- parameter attributes
- function attributes - nounwind, readonly, readnone, noreturn
Return attributes use 0 as the index.
Function attributes use ~0U as the index.
llvm-svn: 56705
2008-09-26 22:53:57 +00:00
Ted Kremenek
928f484c2d
Updated checker build.
...
llvm-svn: 56701
2008-09-26 22:00:01 +00:00
Chris Lattner
b03dc76499
clean up a bunch of fixme's I added, by moving
...
DirectoryLookup::DirType into SourceManager.h
llvm-svn: 56692
2008-09-26 21:18:42 +00:00
Chris Lattner
c88a23e8d7
Fix the rest of rdar://6243860 hopefully. This requires changing FileIDInfo
...
to whether the fileid is a 'extern c system header' in addition to whether it
is a system header, most of this is spreading plumbing around. Once we have that,
PPLexerChange bases its "file enter/exit" notifications to PPCallbacks to
base the system header state on FileIDInfo instead of HeaderSearch. Finally,
in Preprocessor::HandleIncludeDirective, mirror logic in GCC: the system headerness
of a file being entered can be set due to the #includer or the #includee.
llvm-svn: 56688
2008-09-26 20:12:23 +00:00
Chris Lattner
71efd8159e
fit in 80 cols.
...
llvm-svn: 56687
2008-09-26 20:05:14 +00:00
Chris Lattner
9627d6720a
alphabetize files
...
llvm-svn: 56673
2008-09-26 18:49:39 +00:00
Ted Kremenek
ac49ea63c6
Do not create CFGs for functions/methods using blocks (need to add control-flow).
...
llvm-svn: 56672
2008-09-26 18:17:07 +00:00
Chris Lattner
6bea488c79
testcase for my previous patch.
...
llvm-svn: 56670
2008-09-26 18:07:51 +00:00
Chris Lattner
e744d32b72
emulate a bit of GCC path lookup weirdness: if a system
...
directory is shadowed by a user directory in the lookup
path, ignore the user directory not the system one. Not
doing this can affect file lookup and the "is a system
header" bit on locations. For example:
clang -v -I/usr/include inc.c -E | & grep /usr/inc
now prints:
# 1 "/usr/include/i386/_types.h" 1 3 4
# 37 "/usr/include/i386/_types.h" 3 4
# 70 "/usr/include/i386/_types.h" 3 4
instead of:
# 1 "/usr/include/i386/_types.h" 1
# 37 "/usr/include/i386/_types.h"
# 70 "/usr/include/i386/_types.h"
This is part of rdar://6243860.
llvm-svn: 56669
2008-09-26 17:46:45 +00:00
Ted Kremenek
68d2190226
Enter a new scope for a @try block.
...
llvm-svn: 56668
2008-09-26 17:32:47 +00:00
Ted Kremenek
a69637ba6d
Updated checker build.
...
llvm-svn: 56666
2008-09-26 17:04:34 +00:00
Ted Kremenek
61a625ff70
Move VLA processing logic from LiveVariables to CFG construction. This way all dataflow analyses "see" the VLA size expressions.
...
llvm-svn: 56655
2008-09-26 16:26:36 +00:00
Steve Naroff
ba756cb3fc
Tweak Expr::isModifiableLvalue() and Expr::isLvalue() to better deal with BlockDeclRef exprs.
...
This fixes <rdar://problem/6248392> clang: Error when using address of stack variable inside block.
llvm-svn: 56652
2008-09-26 14:41:28 +00:00
Ted Kremenek
2ece64bbc4
Examine VLA size expressions when computing liveness information.
...
Fixes <rdar://problem/6248086>
llvm-svn: 56645
2008-09-26 05:52:45 +00:00
Daniel Dunbar
08971bf2c4
Change Radar reproducibility to "Always".
...
llvm-svn: 56644
2008-09-26 05:00:28 +00:00
Daniel Dunbar
26e2ab4a37
Parser support for prefix __attribute__ on @protocol.
...
llvm-svn: 56642
2008-09-26 04:48:09 +00:00
Daniel Dunbar
c136e0ca43
Sema support for format and noreturn attributes on Objective-C methods.
...
llvm-svn: 56640
2008-09-26 04:12:28 +00:00
Daniel Dunbar
980c66946b
Add support for CFString in format attribute.
...
llvm-svn: 56639
2008-09-26 03:32:58 +00:00
Daniel Dunbar
2c793a2ecd
Add # of block pointer types to -print-stats.
...
llvm-svn: 56638
2008-09-26 03:23:00 +00:00
Daniel Dunbar
e778131386
Make clang preprocessed output a bit more like gcc output.
...
llvm-svn: 56636
2008-09-26 01:13:35 +00:00
Daniel Dunbar
b5fe494a2c
Update clang to pretend to be gcc-4.2.
...
- This really needs to be automated and configurable.
llvm-svn: 56635
2008-09-26 01:13:13 +00:00
Daniel Dunbar
2c61b32beb
Comment fix.
...
llvm-svn: 56634
2008-09-26 01:11:51 +00:00
Ted Kremenek
894036d2cd
Updated checker build.
...
llvm-svn: 56633
2008-09-26 00:50:00 +00:00
Ted Kremenek
a34ea3b9cf
Have @finally introduce a new scope.
...
Fixes: <rdar://problem/6248119> @finally doesn't introduce a new scope
llvm-svn: 56629
2008-09-26 00:31:16 +00:00
Devang Patel
322300d1c2
Large mechanical patch.
...
s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage
- to implement function notes as function attributes and
- to distinguish between function attributes and return value attributes.
llvm-svn: 56623
2008-09-25 21:02:23 +00:00
Ted Kremenek
15146a56e1
Emulate gcc driver-driver functionality: run analyzer separately for each separate -arch option.
...
llvm-svn: 56618
2008-09-25 20:17:57 +00:00
Daniel Dunbar
8e519d0d48
Disable report crashes link for the time being.
...
llvm-svn: 56617
2008-09-25 19:59:17 +00:00
Ted Kremenek
c6c4f239d6
Update Xcode project.
...
llvm-svn: 56612
2008-09-25 17:13:59 +00:00
Ted Kremenek
a5e23f6b78
Added prototype implementation of the DeclGroup, DeclGroupRef, and DeclGroupOwningRef classes.
...
Documentation and testing are pending.
llvm-svn: 56611
2008-09-25 17:13:40 +00:00
Daniel Dunbar
0dbad4670c
Add link to report analyzer failures (parse errors, asserts, etc).
...
llvm-svn: 56606
2008-09-25 06:05:31 +00:00
Daniel Dunbar
1ac2ccb47e
Update scan-build to add markers about crashes.
...
llvm-svn: 56603
2008-09-25 01:10:50 +00:00
Ted Kremenek
72e4b0b54c
Include clang preprocessed sources as well with "crashes" output.
...
llvm-svn: 56601
2008-09-25 00:51:44 +00:00
Ted Kremenek
1ad3b3df2f
Use .txt extension for info files.
...
llvm-svn: 56598
2008-09-25 00:25:16 +00:00
Steve Naroff
f17c232a9e
Downgrade incompatible block pointer error to a warning (to be consistent with incompatible pointer warnings in general).
...
llvm-svn: 56595
2008-09-24 23:31:10 +00:00
Steve Naroff
4efed31acf
Fix a couple harmless warnings when compiling optimized with gcc (reported by mrs@apple.com).
...
llvm-svn: 56591
2008-09-24 22:46:45 +00:00
Steve Naroff
c60873ce44
Fix <rdar://problem/6243788> clang: Incorrect return statement for Blocks?
...
llvm-svn: 56590
2008-09-24 22:26:48 +00:00
Daniel Dunbar
3a28b9acbd
Add more testing of Obj-C property synthesis.
...
llvm-svn: 56564
2008-09-24 18:00:13 +00:00
Daniel Dunbar
d8d1fec6bd
Add scan-view '--allow-all-hosts' option, by default access is now
...
restricted to 127.0.0.1.
llvm-svn: 56563
2008-09-24 17:59:41 +00:00
Ted Kremenek
26971ffcc5
Update checker build.
...
llvm-svn: 56562
2008-09-24 17:45:52 +00:00
Steve Naroff
c792570eb1
Fix some const-ness to keep the VisualStudio C++ compiler happy.
...
llvm-svn: 56560
2008-09-24 17:22:34 +00:00
Steve Naroff
921a45c6d6
Extend ASTContext::getTypeInfo() and ASTContext::getObjCEncodingForType() for BlockTypes.
...
This fixes <rdar://problem/6240616> clang: Assertion failed when using typedef and Blocks.
llvm-svn: 56554
2008-09-24 15:05:44 +00:00
Ted Kremenek
1f58ec6475
Updated test case.
...
llvm-svn: 56548
2008-09-24 06:40:03 +00:00
Daniel Dunbar
5449ce5d75
Implement Obj-C synthesized setters for copy / retain.
...
llvm-svn: 56547
2008-09-24 06:32:09 +00:00
Daniel Dunbar
a08dff1be1
Implement Obj-C getter synthesis for copy and retain.
...
Also, "simple" getter synthesis no longer uses temporary AST objects.
llvm-svn: 56544
2008-09-24 04:04:31 +00:00
Daniel Dunbar
1c64e5d12f
Refactor some CodeGen functionality:
...
- Add CodeGenFunction::{EmitReturnOfRValue, EmitIvarOffset}
- Factor EmitLValueForIvar out of EmitObjCIvarRefLValue.
No non-error functionality change (some unsupported errors are
degraded to asserts for the time being).
llvm-svn: 56543
2008-09-24 04:00:38 +00:00
Daniel Dunbar
a91c3e097f
Add Obj-C runtime methods to get runtime specific functions for
...
implementing property access.
llvm-svn: 56542
2008-09-24 03:38:44 +00:00
Devang Patel
e2aef07b2d
Adjust whitespaces.
...
llvm-svn: 56538
2008-09-24 01:03:00 +00:00
Devang Patel
3e1f51b53f
s/ParamAttrsWithIndex/FnAttributeWithIndex/g
...
Rename to match changes done on llvm side.
llvm-svn: 56537
2008-09-24 01:01:36 +00:00
Ted Kremenek
ba79e17139
For generated index.html, look for "scan-view.css", not "/scan-view.css"
...
llvm-svn: 56510
2008-09-23 22:34:51 +00:00
Daniel Dunbar
e8a06e619a
Implement type checking of Objective-C property attributes.
...
- readonly and readwrite are mutually exclusive.
- assign, copy, and retain are mutually exclusive.
- copy and retain are invalid on non-object types.
- Warn about using default 'assign' property on object types
(attempting to follow gcc behavior).
llvm-svn: 56507
2008-09-23 21:53:23 +00:00
Steve Naroff
de2d5b75c2
Fix <rdar://problem/6240065> clang: __BLOCKS__ should be defined.
...
llvm-svn: 56503
2008-09-23 21:28:24 +00:00
Steve Naroff
92559af851
RewriteBlocks::RewriteBlockPointerDecl(): Handle TypedefDecl's and VarDecl's uniformly.
...
llvm-svn: 56500
2008-09-23 21:15:53 +00:00
Steve Naroff
87930ca38f
Teach block rewriter to replace '^' with '*' in VarDecls.
...
Since we don't have DeclGroup's and location information for types, there is some fancy footwork to do this fairly reliably.
O.K...it's a kludge. One day, we can use this as motivation to do this more gracefully:-)
llvm-svn: 56499
2008-09-23 19:24:41 +00:00
Ted Kremenek
81ec48a1d5
Added test case.
...
llvm-svn: 56493
2008-09-23 18:05:01 +00:00
Ted Kremenek
577acbf5c2
Fix PR 2819: Compute dataflow values for all CFG blocks by not relying on having the "Exit" block being reachable by all (or any) of the blocks in the CFG.
...
llvm-svn: 56492
2008-09-23 18:02:10 +00:00
Daniel Dunbar
d0921de8b0
Add x86_64 Linux target.
...
- PR2824
llvm-svn: 56491
2008-09-23 17:37:57 +00:00
Ted Kremenek
90b91de03b
Updated checker build.
...
llvm-svn: 56484
2008-09-23 00:30:34 +00:00
Daniel Dunbar
c6fdac260b
Bug fix, result of isIntegerConstantExpr could be of incorrect width
...
for type.
- PR2817
llvm-svn: 56482
2008-09-22 23:53:24 +00:00
Daniel Dunbar
fd462af19e
scan-view: Add header and "report bug" links to report pages.
...
llvm-svn: 56470
2008-09-22 21:43:43 +00:00
Daniel Dunbar
d3b096bd5a
scan-view: Add links to open files using default file handler.
...
llvm-svn: 56454
2008-09-22 18:44:46 +00:00
Ted Kremenek
0ed9c35b0e
Yank out special CSS for button rendering (not very portable or well tested, and we were encountering race conditions with CSS loading).
...
llvm-svn: 56449
2008-09-22 18:14:23 +00:00
Daniel Dunbar
6c9bf7d92a
scan-view: Update for "button" class change, drop magic resolution of
...
"scanview.css", start action for opening files.
llvm-svn: 56448
2008-09-22 18:05:49 +00:00
Ted Kremenek
9b5ba60ff3
Reintegrate Daniel's changes.
...
llvm-svn: 56447
2008-09-22 18:05:05 +00:00
Ted Kremenek
2c4a8f414b
Removed scan-view's version of scanview.css.
...
llvm-svn: 56446
2008-09-22 17:55:14 +00:00
Ted Kremenek
85ea56ea84
Add "SUMMARYENDHEAD" tag.
...
llvm-svn: 56445
2008-09-22 17:52:58 +00:00