- Apr 20, 2009
-
-
Steve Naroff authored
Test will be enabled with ObjCInterfaceDecl is added. llvm-svn: 69594
-
Eli Friedman authored
minor accepts-invalid regressions, but we weren't really rejecting them for the right reason. We really need a more general solution to detect all the cases of the promotion of arrays with a register storage class. llvm-svn: 69586
-
- Apr 19, 2009
-
-
Sebastian Redl authored
llvm-svn: 69555
-
Eli Friedman authored
llvm-svn: 69553
-
Sebastian Redl authored
llvm-svn: 69548
-
Eli Friedman authored
llvm-svn: 69542
-
Sebastian Redl authored
Another piece of the conditional operator puzzle. We'll want to use FindCompositePointerType in some other places, too. llvm-svn: 69534
-
Chris Lattner authored
llvm-svn: 69511
-
Chris Lattner authored
they do allow switches. llvm-svn: 69510
-
Chris Lattner authored
calling into the jump checker when a function or method is known to contain no VLAs or @try blocks. llvm-svn: 69509
-
Chris Lattner authored
already too large. llvm-svn: 69505
-
Chris Lattner authored
llvm-svn: 69500
-
Chris Lattner authored
address taken labels are in function scope llvm-svn: 69499
-
Chris Lattner authored
llvm-svn: 69498
-
Chris Lattner authored
llvm-svn: 69497
-
Chris Lattner authored
VLA's and statement expressions. llvm-svn: 69491
-
Chris Lattner authored
llvm-svn: 69487
-
Chris Lattner authored
the scope checker to not think @catches are nested in each other, eliminating some bogus notes. llvm-svn: 69486
-
- Apr 18, 2009
-
-
Chris Lattner authored
llvm-svn: 69480
-
Chris Lattner authored
reasonably well except for the problem that @catches are nested within each other in the AST, giving the ugly diagnostics in L8. llvm-svn: 69477
-
Chris Lattner authored
statements don't end up in the LabelMap so we don't have a quick way to filter them. We could add state to Sema (a "has vla" and "has jump" bit) to try to filter this out, but that would be sort of gross and I'm not convinced it is the best way. Thoughts welcome. llvm-svn: 69476
-
Chris Lattner authored
This fixes a crash on invalid (test10). rdar://6805469 llvm-svn: 69465
-
Chris Lattner authored
call ActOnBlockError so that CurBlock gets popped. This fixes a crash on test/block-syntax-error.c when this new assertion is enabled. llvm-svn: 69464
-
Chris Lattner authored
so that clients can't poke the function-local one when they really want the current block label. No functionality change. llvm-svn: 69463
-
Chris Lattner authored
specific bad case instead of on the switch. Putting it on the switch means you don't know what case is the problem. For example: scope-check.c:54:3: error: illegal switch case into protected scope case 2: ^ scope-check.c:53:9: note: jump bypasses initialization of variable length array int a[x]; ^ llvm-svn: 69462
-
Chris Lattner authored
llvm-svn: 69461
-
Chris Lattner authored
to create a well formed AST instead of a dangling pointer. This resolves several fixme's. llvm-svn: 69459
-
Chris Lattner authored
produce better diagnostics, and be more correct in ObjC cases (fixing rdar://6803963). An example is that we now diagnose: int test1(int x) { goto L; int a[x]; int b[x]; L: return sizeof a; } with: scope-check.c:15:3: error: illegal goto into protected scope goto L; ^ scope-check.c:17:7: note: scope created by variable length array int b[x]; ^ scope-check.c:16:7: note: scope created by variable length array int a[x]; ^ instead of just saying "invalid jump". An ObjC example is: void test1() { goto L; @try { L: ; } @finally { } } t.m:6:3: error: illegal goto into protected scope goto L; ^ t.m:7:3: note: scope created by @try block @try { ^ There are a whole ton of fixme's for stuff to do, but I believe that this is a monotonic improvement over what we had. llvm-svn: 69437
-
Chris Lattner authored
llvm-svn: 69431
-
Chris Lattner authored
add some comments, change type from void* -> Stmt*, use smallvector instead of vector. llvm-svn: 69430
-
Chris Lattner authored
llvm-svn: 69429
-
Douglas Gregor authored
lazy PCH deserialization. Propagate that argument wherever it needs to be. No functionality change, except that I've tightened up a few PCH tests in preparation. llvm-svn: 69406
-
Chris Lattner authored
1. We had logic in sema to decide whether or not to emit the error based on manually checking whether in a system header file. 2. we were allowing redefinitions of typedefs in class scope in C++ if in header file. 3. there was no way to force typedef redefinitions to be accepted by the C compiler, which annoys me when stripping linemarkers out of .i files. The fix is to split the C++ class typedef redefinition path from the C path, and change the C path to be a warning that normally maps to error. This causes it to properly be ignored in system headers, etc. and gives us a way to control it. Passing -Wtypedef-redefinition now turns the error into a warning. One behavior change is that we now diagnose cases where you redefine a typedef in your .c file that was defined in a header file. This seems like reasonable behavior, and the diagnostic now indicates that it can be controlled with -Wtypedef-redefinition. llvm-svn: 69391
-
- Apr 17, 2009
-
-
Chris Lattner authored
a dummy *function* type when it is recovering and knows it needs a function. rdar://6802350 - clang crash on invalid input llvm-svn: 69374
-
Sebastian Redl authored
Add a few commented lines to the test case that point out things that don't work yet. llvm-svn: 69354
-
Anders Carlsson authored
llvm-svn: 69345
-
Mike Stump authored
expressions that can be of static duration to be returned. Radar 6786551 llvm-svn: 69331
-
Anders Carlsson authored
If a class has a non-trivial constructor that doesn't take any arguments, we will now make an implicit CXXTemporaryObjectExpr. So struct S { S(); }; void f() { S s; } 's' here will implicitly be declared as. S s = S(); llvm-svn: 69326
-
- Apr 16, 2009
-
-
Sebastian Redl authored
Fix a crash bug when comparing overload quality of conversion operators with conversion constructors. Remove an atrocious amount of trailing whitespace in the overloaded operator mangler. Sorry, couldn't help myself. Change the DeclType parameter of Sema::CheckReferenceInit to be passed by value instead of reference. It wasn't changed anywhere. Let the parser handle C++'s irregular grammar around assignment-expression and conditional-expression. And finally, the reason for all this stuff: implement C++ semantics for the conditional operator. The implementation is complete except for determining lvalueness. llvm-svn: 69299
-
Eli Friedman authored
Douglas, can you check that this is doing the right thing? llvm-svn: 69298
-