Argyrios Kyrtzidis
b3dd1e0889
Allow the preprocessor to cache the lexed tokens, so that we can do efficient lookahead and backtracking.
...
1) New public methods added:
-EnableBacktrackAtThisPos
-DisableBacktrack
-Backtrack
-isBacktrackEnabled
2) LookAhead() implementation is replaced with a more efficient one.
3) LookNext() is removed.
llvm-svn: 54611
2008-08-10 13:15:22 +00:00
Daniel Dunbar
07bb087ac1
Fix crash during initialization of a bitfield which followed a zero
...
length element.
Fix some 80-col violations.
llvm-svn: 54610
2008-08-10 07:00:24 +00:00
Daniel Dunbar
63fed4f35e
Update ShuffeVectorExpr::getShuffleMaskIdx to use
...
getIntegerConstantExprValue.
Tweak getIntegerConstantExprValue to suppress warning in
Release-Asserts mode.
llvm-svn: 54609
2008-08-10 06:58:01 +00:00
Daniel Dunbar
9a8d07321a
Bug fix, inline string literals were getting an extra '\0'.
...
llvm-svn: 54608
2008-08-10 06:27:44 +00:00
Chris Lattner
7ab824e43d
tighten up some code and some wording on diagnostics.
...
llvm-svn: 54607
2008-08-10 02:05:13 +00:00
Chris Lattner
28b4294ccf
wrap some long diagnostics, make 'initializer is not a constant' diagnostic
...
a bit more clear (rdar://5646070)
llvm-svn: 54606
2008-08-10 01:58:45 +00:00
Chris Lattner
6307f19726
rename PreDefinedExpr -> PredefinedExpr
...
llvm-svn: 54605
2008-08-10 01:53:14 +00:00
Argyrios Kyrtzidis
8a23f55186
Add some C++ Decl statistics.
...
llvm-svn: 54604
2008-08-10 01:47:31 +00:00
Eli Friedman
a3b2f6f2af
Make sure to count the struct elements correctly; here, we want the
...
member count. The count returned by numStructUnionElements is the
number of initializers that will be consumed, not the number of members
to iterate through. Fixes PR2534.
llvm-svn: 54601
2008-08-09 23:45:45 +00:00
Eli Friedman
121ba0c4d3
Fix for PR2631; make va_arg work correctly on x86-64.
...
llvm-svn: 54600
2008-08-09 23:32:40 +00:00
Nico Weber
53c362e34e
80 cols
...
llvm-svn: 54599
2008-08-09 23:08:17 +00:00
Eli Friedman
5ce8cc7554
Remove the ICE pointer cast hack; the issue this was working around is
...
now fixed in an alternate way.
llvm-svn: 54598
2008-08-09 22:24:21 +00:00
Eli Friedman
5cf85cc977
Turn on the new constant expression evaluator; it isn't
...
anywhere near complete, but I don't know of any issues, and it can
handle enough to allow removing the I-C-E pointer cast hack.
llvm-svn: 54597
2008-08-09 22:21:56 +00:00
Nico Weber
582be4db34
add assert, use make_pair() instead of pair constructor
...
llvm-svn: 54596
2008-08-09 22:13:42 +00:00
Argyrios Kyrtzidis
379d2edc29
Mention 'wchar_t' at the C++ status page.
...
llvm-svn: 54595
2008-08-09 22:12:36 +00:00
Nico Weber
6975aaf3c2
fix spello
...
llvm-svn: 54594
2008-08-09 22:12:22 +00:00
Argyrios Kyrtzidis
dfaf82ac2d
Handle BuiltinType::WChar inside CodeGenTypes::ConvertNewType().
...
llvm-svn: 54593
2008-08-09 22:01:55 +00:00
Chris Lattner
572100b648
Fix PR2400 by more graceful handling of invalid decls. Don't try to layout
...
an invalid struct decl. Thanks to Martin Doucha for the
isIncompleteArrayType part of this patch.
llvm-svn: 54592
2008-08-09 21:35:13 +00:00
Gordon Henriksen
04c50bd7e0
Expressive diagnostics-- worth their weight in gold?
...
(Fixing a spelling error.)
llvm-svn: 54591
2008-08-09 19:58:22 +00:00
Nico Weber
7094a5bfa8
do not serialize invalid asts. this fixes bug #2637
...
llvm-svn: 54590
2008-08-09 18:32:11 +00:00
Argyrios Kyrtzidis
cbad725bf4
Change 'Wchar' to 'WChar' casing, for consistency.
...
No functionality change.
llvm-svn: 54588
2008-08-09 17:20:01 +00:00
Argyrios Kyrtzidis
d8f2f5f1b7
Handle WChar inside BuiltinType::getName().
...
llvm-svn: 54587
2008-08-09 17:11:33 +00:00
Argyrios Kyrtzidis
40e9e4828f
Implement support for the 'wchar_t' C++ type.
...
llvm-svn: 54585
2008-08-09 16:51:54 +00:00
Steve Naroff
239255d2a6
Fix Sema::MergeVarDecl() to better handle type compatibility. The previous code was trying to handle arrays specially (which didn't work for pointers to array). Removed local helper function areEquivalentArrayTypes(), replacing it's use with the more general ASTContext::typesAreCompatible() predicate.
...
Even though the test case this fixes is in "tentative-decls.c", this bug didn't have anything to do with our handling of tentative definitions (which is what I first expected). In any event, this is a tricky area of the spec.
llvm-svn: 54583
2008-08-09 16:04:40 +00:00
Argyrios Kyrtzidis
2f67f37daf
When in C++, invoke ASTConsumer::HandleTagDeclDefinition in Sema::ActOnFinishCXXClassDef,
...
at which point the C++ struct/class/union is fully parsed.
llvm-svn: 54569
2008-08-09 00:58:37 +00:00
Ted Kremenek
4455a9d378
Added FIXME.
...
llvm-svn: 54568
2008-08-09 00:41:45 +00:00
Argyrios Kyrtzidis
5c45c9b063
Passing right brace location to ActOnFinishCXXClassDef is redundant, since it gets passed to ActOnFinishCXXMemberSpecification too.
...
llvm-svn: 54567
2008-08-09 00:39:29 +00:00
Ted Kremenek
8f50b64eef
Updated checker build.
...
llvm-svn: 54566
2008-08-09 00:22:35 +00:00
Ted Kremenek
0216b83d94
Don't use Expr::isIntegerConstantExpr just to check if a pointer value is initialize to NULL.
...
llvm-svn: 54563
2008-08-09 00:05:14 +00:00
Ted Kremenek
1a02630b63
Updated checker build.
...
llvm-svn: 54562
2008-08-08 22:25:17 +00:00
Argyrios Kyrtzidis
69bc5ba67a
Make RecordDecl::Destroy() public.
...
llvm-svn: 54561
2008-08-08 22:25:06 +00:00
Ted Kremenek
994c8e393d
Have scan-build/ccc-analyzer generate preprocessed .i/.mi files for sources that clang crashes on.
...
llvm-svn: 54552
2008-08-08 20:46:42 +00:00
Chris Lattner
c893a67fe3
update to make IRBuilder API change.
...
llvm-svn: 54548
2008-08-08 19:57:58 +00:00
Steve Naroff
5bb8f2264b
Fix issues with C "tentative" definitions.
...
- Move checking from MergeVarDecl->FinializeDeclaratorGroup. Since MergeVarDecl is called before the initializer is attacted, it can't be done there (this removes a long standing FIXME).
- Add Sema::isTentativeDefinition() and Sema::CheckForFileScopedRedefinitions().
- Remove FIXME's and touch-up test case.
Still some more work to do (forthcoming)...
llvm-svn: 54533
2008-08-08 17:50:35 +00:00
Argyrios Kyrtzidis
37088116e7
Change line endings, CRLF -> LF.
...
llvm-svn: 54530
2008-08-08 16:58:19 +00:00
Argyrios Kyrtzidis
7fb867e5e0
Revert my previous commit where I replaced cast<> with static_cast<> in CXXFieldDecl::getMember().
...
llvm-svn: 54529
2008-08-08 16:48:14 +00:00
Argyrios Kyrtzidis
6bd44afc2f
Destroy and delete the FieldDecl members of a RecordDecl.
...
llvm-svn: 54527
2008-08-08 14:08:55 +00:00
Argyrios Kyrtzidis
cd5f3bde80
Add iterator access to field members for RecordDecl.
...
llvm-svn: 54526
2008-08-08 13:54:06 +00:00
Argyrios Kyrtzidis
28f65e9105
Use static_cast<> instead of cast<> for CXXFieldDecl::getMember().
...
llvm-svn: 54525
2008-08-08 13:26:45 +00:00
Ted Kremenek
6231e7e4ec
Unbreak SerializationTest and the Rewriter by doing the work in HandleTranslationUnit instead of the destructor.
...
llvm-svn: 54513
2008-08-08 04:15:52 +00:00
Ted Kremenek
dcb5e38927
ParseAST now never releases the passed ASTConsumer. This is the responsibility of the client.
...
The motivation is that clients may either:
(a) query the ASTConsumer object after AST parsing to collect data/etc.
(b) reuse the ASTConsumer.
llvm-svn: 54502
2008-08-08 02:46:37 +00:00
Ted Kremenek
4a35180f6d
Use DeclStmt::decl_iterator instead of walking the getNextDeclarator() chain.
...
llvm-svn: 54501
2008-08-08 02:45:18 +00:00
Ted Kremenek
4b1327960d
Added AssumeSymGT, AssumeSymGE, AssumeSymLT, AssumeSymLE to add some minor improvements to path-sensitivity. Right now we basically treat 'x > y' and 'x < y' as implying 'x != y', but this restriction will only inevitably apply to our must rudimentary value tracking component (we'll implement more advanced value reasoning later).
...
llvm-svn: 54493
2008-08-07 22:30:22 +00:00
Ted Kremenek
18391f432b
Don't flag any dead stores for variables marked unused.
...
llvm-svn: 54492
2008-08-07 22:28:30 +00:00
Argyrios Kyrtzidis
b3a5b4c645
Clear DeclSpec::AsmLabel in DeclSpec::clear().
...
llvm-svn: 54489
2008-08-07 20:58:03 +00:00
Argyrios Kyrtzidis
faf0876cab
Add CXXRecordType class.
...
llvm-svn: 54488
2008-08-07 20:55:28 +00:00
Ted Kremenek
87a7d31a9f
Fix 80 col violation
...
llvm-svn: 54487
2008-08-07 19:48:19 +00:00
Ted Kremenek
7db4f60b26
ParseAST now conditionally deletes the passed ASTConsumer.
...
ModuleBuilder now performs llvmgen in HandleTranslationUnit.
This patch follows from the discussion on the following thread on cfe-commits:
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20080804/006849.html
llvm-svn: 54486
2008-08-07 19:47:41 +00:00
Ted Kremenek
59f3553392
Remove unneeded #includes.
...
llvm-svn: 54478
2008-08-07 18:14:04 +00:00
Ted Kremenek
6b515b5b34
Micro cleanups.
...
llvm-svn: 54477
2008-08-07 18:13:12 +00:00