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
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
Steve Naroff
c60873ce44
Fix <rdar://problem/6243788> clang: Incorrect return statement for Blocks?
...
llvm-svn: 56590
2008-09-24 22:26:48 +00:00
Steve Naroff
3b1e172d7e
Sema::ActOnBlockReturnStmt(): Need to perform the UsualUnaryConversions on the return type.
...
Sema::CheckReturnStackAddr(): Make sure we skip over implicit casts.
Added some more test cases...
llvm-svn: 56254
2008-09-16 22:25:10 +00:00
Argyrios Kyrtzidis
176edb5490
Do implicit conversion to bool for the condition in a do-while statement.
...
llvm-svn: 56096
2008-09-11 05:16:22 +00:00
Argyrios Kyrtzidis
7620ee4550
Implement Sema support for the 'condition' part of C++ selection-statements and iteration-statements (if/switch/while/for).
...
llvm-svn: 56044
2008-09-10 02:17:11 +00:00
Steve Naroff
c540d66940
Add semantic analysis for "blocks".
...
Highlights...
- 4 new AST nodes, BlockExpr, BlockStmtExpr, BlockExprExpr, BlockDeclRefExpr.
- Sema::ActOnBlockStart(), ActOnBlockError(), ActOnBlockStmtExpr(), ActOnBlockExprExpr(), ActOnBlockReturnStmt().
Next steps...
- hack Sema::ActOnIdentifierExpr() to deal with block decl refs.
- add attribute handler for byref decls.
- add test cases.
llvm-svn: 55710
2008-09-03 18:15:37 +00:00
Anders Carlsson
1ec2ccd8ee
Objective-C foreach selector elements must be lvalues.
...
llvm-svn: 55316
2008-08-25 18:16:36 +00:00
Chris Lattner
496acc1815
Several cleanups and tweaks to diagnostics in Sema::ActOnAsmStmt,
...
no other functionality change.
llvm-svn: 54941
2008-08-18 19:55:17 +00:00
Chris Lattner
5d1cfa1229
various updates to match r54873 on mainline.
...
llvm-svn: 54874
2008-08-17 07:19:51 +00:00
Daniel Dunbar
7da1b82f56
Update some isIntegerConstantExpr uses to use
...
getIntegerConstantExprValue where appropriate.
llvm-svn: 54771
2008-08-13 23:47:13 +00:00
Daniel Dunbar
56fdb6ae69
More #include cleaning
...
- Kill unnecessary #includes in .cpp files. This is an automatic
sweep so some things removed are actually used, but happen to be
included by a previous header. I tried to get rid of the obvious
examples and this was the easiest way to trim the #includes in one
fell swoop.
- We now return to regularly scheduled development.
llvm-svn: 54632
2008-08-11 06:23:49 +00:00
Daniel Dunbar
6e8aa537f8
More #include cleaning
...
- Drop {Decl.h,DeclObjC.h,IdentifierTable.h} from Expr.h
- Moved Sema::getCurMethodDecl() out of line (dependent on
ObjCMethodDecl via dyn_cast).
llvm-svn: 54629
2008-08-11 05:35:13 +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
Chris Lattner
6731544be7
convert more code to use ASTContext to get canonical types instead
...
of doing it directly. This is required for PR2189.
llvm-svn: 54102
2008-07-26 21:30:36 +00:00
Chris Lattner
903eb518e6
Fix rdar://6095136, various crashes with incomplete enum types.
...
llvm-svn: 54074
2008-07-25 23:18:17 +00:00
Ted Kremenek
77c51b2aa3
Move isObjCObjectPointerType() from Sema to ASTContext.
...
llvm-svn: 53998
2008-07-24 23:58:27 +00:00
Chris Lattner
070968957e
Fix rdar://6094010 various asserts happening with wide strings in inline asm.
...
llvm-svn: 53947
2008-07-23 06:46:56 +00:00
Argyrios Kyrtzidis
853fbea313
Replace CurFunctionDecl and CurMethodDecl with methods getCurFunctionDecl() and getCurMethodDecl() that return the appropriate Decl through CurContext.
...
llvm-svn: 52852
2008-06-28 06:07:14 +00:00
Steve Naroff
08899ff85d
Remove FileVarDecl and BlockVarDecl. They are replaced by VarDecl::isBlockVarDecl() and VarDecl::isFileVarDecl().
...
This is a fairly mechanical/large change. As a result, I avoided making any changes/simplifications that weren't directly related. I did break two Analysis tests. I also have a couple FIXME's in UninitializedValues.cpp. Ted, can you take a look? If the bug isn't obvious, I am happy to dig in and fix it (since I broke it).
llvm-svn: 49748
2008-04-15 22:42:06 +00:00
Chris Lattner
7a51313d8a
Make a major restructuring of the clang tree: introduce a top-level
...
lib dir and move all the libraries into it. This follows the main
llvm tree, and allows the libraries to be built in parallel. The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in. This speeds
up parallel builds, particularly incremental ones.
llvm-svn: 48402
2008-03-15 23:59:48 +00:00