summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaStmt.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>.Douglas Gregor2009-06-181-3/+3
| | | | llvm-svn: 73702
* add the location of the ')' in a do/while statement to DoStmt.Chris Lattner2009-06-121-2/+3
| | | | | | This fixes a source range problem reported by Olaf Krzikalla. llvm-svn: 73266
* Downgrade an error about "return in a no-return function" from being Chris Lattner2009-05-311-4/+2
| | | | | | | | an error to being a warning that defaults to error. If you want this to be a warning, you have to explicitly pass -Winvalid-noreturn to clang to map it back to a warning. llvm-svn: 72669
* ActOnReturnStmt should also take a FullExprArg.Anders Carlsson2009-05-301-2/+2
| | | | llvm-svn: 72641
* Use v.data() instead of &v[0] when SmallVector v might be empty.Jay Foad2009-05-211-1/+1
| | | | llvm-svn: 72210
* Make ActOnWhileStmt take a FullExprArg for the condition expr.Anders Carlsson2009-05-171-4/+5
| | | | llvm-svn: 71990
* Make ActOnExprStmt take a FullExprArg.Anders Carlsson2009-05-171-2/+2
| | | | llvm-svn: 71989
* Add the FullExprArg wrapper and use it for if statement conditions.Anders Carlsson2009-05-171-4/+6
| | | | llvm-svn: 71982
* Reflow some comments.Mike Stump2009-05-161-10/+9
| | | | llvm-svn: 71936
* Template instantiation for IndirectGotoStmt. Now my life is complete.Douglas Gregor2009-05-161-7/+9
| | | | llvm-svn: 71917
* Template instantiation for switch statementsDouglas Gregor2009-05-151-116/+141
| | | | llvm-svn: 71916
* Template instantiation for "for" loopsDouglas Gregor2009-05-151-2/+3
| | | | llvm-svn: 71901
* Template instantiation for do-while statements.Douglas Gregor2009-05-151-11/+15
| | | | llvm-svn: 71899
* Template instantiation for WhileStmt and CXXConditionDeclExpr.Douglas Gregor2009-05-151-11/+13
| | | | llvm-svn: 71896
* Template instantiation for "if" statements. Also:Douglas Gregor2009-05-151-12/+15
| | | | | | | | - Skip semantic analysis of the "if" condition if it is type-dependent. - Added the location of the "else" keyword into IfStmt, so that we can provide it for type-checking after template instantiation. llvm-svn: 71875
* Instantiate return statements.Anders Carlsson2009-05-151-1/+1
| | | | llvm-svn: 71825
* allow references to the larger value in a tied constraintChris Lattner2009-05-031-12/+28
| | | | | | from the asm string, but reject references to the smaller one. llvm-svn: 70679
* code cleanup, avoid shadowing i.Chris Lattner2009-05-031-4/+5
| | | | llvm-svn: 70678
* Don't insert an extra ParenExpr around asm operands.Eli Friedman2009-05-031-9/+8
| | | | llvm-svn: 70673
* If we have mismatched integer tied operands, but the operandChris Lattner2009-05-031-1/+20
| | | | | | | | number is not mentioned in the asm string, let it past sema. Right now these are currently rejected by the llvm code generator but this will be fixed next. llvm-svn: 70670
* avoid a crash when we encounter a implicit cast of the paren expr due toChris Lattner2009-05-031-2/+2
| | | | | | | promotions. This should be fixed by not modeling asm operands (which require the ()'s according to the grammar) as not being paren exprs. llvm-svn: 70668
* rename some variables, improve comments.Chris Lattner2009-05-031-9/+12
| | | | llvm-svn: 70663
* refactor matched operand type checking to happen after the AsmStmt is created,Chris Lattner2009-05-031-17/+35
| | | | | | no functionality change. llvm-svn: 70662
* Replace more release+static_cast with takeAs.Anders Carlsson2009-05-011-17/+16
| | | | llvm-svn: 70567
* Replace a bunch of static_cast + release with takeAs.Anders Carlsson2009-05-011-8/+8
| | | | llvm-svn: 70566
* Fixup Sema and CodeGen for block literal attributes when the returnMike Stump2009-04-291-7/+6
| | | | | | | | type and argument types are missing, and let return type deduction happen before we give errors for returning from a noreturn block. Radar 6441502 llvm-svn: 70413
* Sema and CodeGen support for attributes on blocks. Radar 6441502Mike Stump2009-04-291-0/+6
| | | | llvm-svn: 70403
* Implement sema checking for noreturn.Mike Stump2009-04-291-2/+7
| | | | llvm-svn: 70353
* Improve validation of C++ exception handling: diagnose throwing incomplete ↵Sebastian Redl2009-04-271-0/+1
| | | | | | types and jumps into protected try-catch scopes. llvm-svn: 70242
* implement PR4077: [Linux kernel] inscrutable error on inline asm ↵Chris Lattner2009-04-261-0/+18
| | | | | | | | | | | | | | | | | input/output constraint mismatch Before we emitted: $ clang t.c -S -m64 llvm: error: Unsupported asm: input constraint with a matching output constraint of incompatible type! Now we produce: $ clang t.c -S -m64 t.c:5:40: error: unsupported inline asm: input with type 'unsigned long' matching output with type 'int' asm volatile("foo " : "=a" (a) :"0" (b)); ~~~ ~^~ llvm-svn: 70142
* in a tied operand, don't copy over the name or constraint string, just the ↵Chris Lattner2009-04-261-1/+0
| | | | | | flags. llvm-svn: 70137
* pull operands names "[foo]" into ConstraintInfo.Chris Lattner2009-04-261-6/+6
| | | | llvm-svn: 70136
* pull the constraint string into the ConstraintInfo structChris Lattner2009-04-261-15/+14
| | | | | | instead of passing it around in addition to it. llvm-svn: 70135
* change TargetInfo::ConstraintInfo to be a struct that containsChris Lattner2009-04-261-9/+8
| | | | | | the enum along with some other data. llvm-svn: 70114
* split ObjC and C++ Statements out into their own headers.Chris Lattner2009-04-261-1/+2
| | | | llvm-svn: 70105
* implement semantic analysis for @synchronized, fixing a crash on invalidChris Lattner2009-04-211-0/+9
| | | | | | rdar://6810940 - @synchronized has no sema checks llvm-svn: 69670
* add support for goto checking and @synchronized blocks,Chris Lattner2009-04-211-0/+2
| | | | | | rdar://6810106 llvm-svn: 69667
* add a new Sema::CurFunctionNeedsScopeChecking bool that is used to avoid Chris Lattner2009-04-191-0/+1
| | | | | | | calling into the jump checker when a function or method is known to contain no VLAs or @try blocks. llvm-svn: 69509
* Add location info for indirect goto.Chris Lattner2009-04-191-2/+2
| | | | llvm-svn: 69497
* abstract the SwitchStack for blocks just like we do the goto labels.Chris Lattner2009-04-181-7/+7
| | | | | | This fixes a crash on invalid (test10). rdar://6805469 llvm-svn: 69465
* refactor some code, adding a new getLabelMap() accessor methodChris Lattner2009-04-181-3/+2
| | | | | | | so that clients can't poke the function-local one when they really want the current block label. No functionality change. llvm-svn: 69463
* if we already know that a decl is invalid in an @catch, don't verify its type.Chris Lattner2009-04-121-1/+5
| | | | llvm-svn: 68925
* add a new isNull() method to DeclGroupRef.Chris Lattner2009-04-121-2/+3
| | | | llvm-svn: 68909
* Parse deleted member functions. Parsing member declarations goes through a ↵Sebastian Redl2009-04-121-3/+44
| | | | | | | | | different code path that I forgot previously. Implement the rvalue reference overload dance for returning local objects. Returning a local object first tries to find a move constructor now. The error message when no move constructor is defined (or is not applicable) and the copy constructor is deleted is quite ugly, though. llvm-svn: 68902
* Push DeclGroup much farther throughout the compiler. Now the variousChris Lattner2009-03-291-23/+5
| | | | | | | | | | | | | | | | | | | | | | | | | productions (except the already broken ObjC cases like @class X,Y;) in the parser that can produce more than one Decl return a DeclGroup instead of a Decl, etc. This allows elimination of the Decl::NextDeclarator field, and exposes various clients that should look at all decls in a group, but which were only looking at one (such as the dumper, printer, etc). These have been fixed. Still TODO: 1) there are some FIXME's in the code about potentially using DeclGroup for better location info. 2) ParseObjCAtDirectives should return a DeclGroup due to @class etc. 3) I'm not sure what is going on with StmtIterator.cpp, or if it can be radically simplified now. 4) I put a truly horrible hack in ParseTemplate.cpp. I plan to bring up #3/4 on the mailing list, but don't plan to tackle #1/2 in the short term. llvm-svn: 68002
* Introduce a new OpaquePtr<N> struct type, which is a simple POD wrapper for aChris Lattner2009-03-281-8/+7
| | | | | | | | | | | | | | | | | | | | pointer. Its purpose in life is to be a glorified void*, but which does not implicitly convert to void* or other OpaquePtr's with a different UID. Introduce Action::DeclPtrTy which is a typedef for OpaquePtr<0>. Change the entire parser/sema interface to use DeclPtrTy instead of DeclTy*. This makes the C++ compiler enforce that these aren't convertible to other opaque types. We should also convert ExprTy, StmtTy, TypeTy, AttrTy, BaseTy, etc, but I don't plan to do that in the short term. The one outstanding known problem with this patch is that we lose the bitmangling optimization where ActionResult<DeclPtrTy> doesn't know how to bitmangle the success bit into the low bit of DeclPtrTy. I will rectify this with a subsequent patch. llvm-svn: 67952
* rename some methods.Chris Lattner2009-03-281-2/+2
| | | | llvm-svn: 67923
* Sanity-check argument to indirect goto.Eli Friedman2009-03-261-3/+7
| | | | llvm-svn: 67746
* Fix for PR3869: actually enforce that the argument of an indirect goto Eli Friedman2009-03-261-2/+4
| | | | | | is of type void*. I'll try to add the appropriate checking later. llvm-svn: 67721
* introduce a new -fheinous-gnu-extensions flag that enables reallyChris Lattner2009-03-131-6/+33
| | | | | | | | | | | really horrible extensions that are disabled by default but that can be accepted by -fheinous-gnu-extensions (but which always emit a warning when enabled). As our first instance of this, implement PR3788/PR3794, which allows non-lvalues in inline asms in contexts where lvalues are required. bleh. llvm-svn: 66910
OpenPOWER on IntegriCloud