- Sep 01, 2007
-
-
Chris Lattner authored
llvm-svn: 41662
-
Chris Lattner authored
llvm-svn: 41661
-
Chris Lattner authored
support any sort of expr, add a new EmitAnyExpr routine. llvm-svn: 41660
-
Ted Kremenek authored
statement expressions. llvm-svn: 41659
-
Ted Kremenek authored
llvm-svn: 41658
-
Ted Kremenek authored
llvm-svn: 41657
-
Chris Lattner authored
llvm-svn: 41656
-
- Aug 31, 2007
-
-
Chris Lattner authored
warn about the last stmt in a stmtexpr, f.e. there should be no warning for: int maxval_stmt_expr(int x, int y) { return ({int _a = x, _b = y; _a > _b ? _a : _b; }); } llvm-svn: 41655
-
Ted Kremenek authored
llvm-svn: 41654
-
Chris Lattner authored
llvm-svn: 41653
-
Chris Lattner authored
llvm-svn: 41652
-
Ted Kremenek authored
be passed as an (optional) argument to StmtPrinter to customize printing of AST nodes. Used new PrinterHelper interface to enhance printing and visualization of CFGs. The CFGs now illustrate the semantic connectives between statements and terminators, wheras in the previous printing certain expressions would (visible) be printed multiple times to reflect which expressions used the results of other expressions. The end result is that the CFG is easier to read for flow of expression values (following principles similar to the LLVM IR). llvm-svn: 41651
-
Ted Kremenek authored
llvm-svn: 41648
-
Steve Naroff authored
Removed Sema::VerifyConstantArrayType(). With the new Array/ConstantArray/VariableArray nodes, this routine was causing more trouble than it was worth. Anders/Chris noticed that it could return an error code without emiting a diagnostic (which results in an silent invalid decl, which should *never* happen). In addition, this routine didn't work well for typedefs and field decls. Lastly, it didn't consider that initializers aren't in place yet. Added Type::getAsConstantArrayType(), Type::getAsVariableArrayType(), Type::getAsVariablyModifiedType(), and Type::isVariablyModifiedType(); Modified Sema::ParseDeclarator() and Sema::ParseField() to use the new predicates. Also added a FIXME for the initializer omission. Also added a missing test for "static" @ file scope. llvm-svn: 41647
-
Ted Kremenek authored
llvm-svn: 41646
-
Fariborz Jahanian authored
Log: Implement parsing of objective-c's new @property declaration. Modified: include/clang/Basic/DiagnosticKinds.def include/clang/Parse/Parser.h Parse/ParseObjc.cpp Parse/Parser.cpp llvm-svn: 41644
-
Chris Lattner authored
llvm-svn: 41638
-
Chris Lattner authored
llvm-svn: 41637
-
Anders Carlsson authored
llvm-svn: 41636
-
Chris Lattner authored
llvm-svn: 41635
-
Chris Lattner authored
to their corresponding library routines (e.g. isinf). This allows us to handle all the stuff in macos math.h, and other stuff as it's added to *Builtins.def. llvm-svn: 41634
-
Chris Lattner authored
llvm-svn: 41633
-
Chris Lattner authored
llvm-svn: 41631
-
Steve Naroff authored
The following case now works... void empty(void * a ) {} void test() { unsigned char A[4]; empty( (void *) A); } Thanks to Patrick Flannery for finding this... llvm-svn: 41630
-
Steve Naroff authored
Final phase of array cleanup (for now), removing a FIXME from yesterday. Moved several array constraints checks from Sema::VerifyConstantArrayType() to Sema::GetTypeForDeclarator(). VerifyConstantArrayType() is now very simple, and could be removed eventually. Now, we get the following (correct) messages for BlockVarDecls:-) [dylan:~/llvm/tools/clang] admin% ../../Debug/bin/clang x.c -pedantic x.c:4:20: error: size of array has non-integer type 'float' int size_not_int[f]; ^ x.c:5:21: error: array size is negative int negative_size[1-2]; ^~~ x.c:6:17: warning: zero size arrays are an extension int zero_size[0]; ^ 3 diagnostics generated. llvm-svn: 41624
-
- Aug 30, 2007
-
-
Ted Kremenek authored
llvm-svn: 41623
-
Ted Kremenek authored
introduced by moving "CaseStmt" pointers out of the list of statements and into the explicit "label" associated with a CFGBlock. --This line, and those below, will be ignored-- M AST/CFG.cpp llvm-svn: 41622
-
Steve Naroff authored
llvm-svn: 41621
-
Ted Kremenek authored
no statements (or just full of ';' statements). llvm-svn: 41620
-
Ted Kremenek authored
blocks involving only ';' statements. We now correctly handle the following: void empty_label() { l1: ; } llvm-svn: 41619
-
Steve Naroff authored
llvm-svn: 41618
-
Ted Kremenek authored
an empty then or else block (or contained only ';' statements). For example, we now handle the following: int empty_else() { if (0) { int a; } else ; } int empty_then() { if (0) ; else { int a; } } Thanks to Nico Weber for spotting this problem. llvm-svn: 41617
-
Steve Naroff authored
Refactored Array/VariableArray, moving SizeModifier/IndexTypeQuals back up to Array. These attributes are not specific to VLA's. Most of them are specific to array parameter types. llvm-svn: 41616
-
Chris Lattner authored
llvm-svn: 41615
-
Chris Lattner authored
llvm-svn: 41614
-
Chris Lattner authored
llvm-svn: 41613
-
Chris Lattner authored
llvm-svn: 41612
-
Chris Lattner authored
llvm-svn: 41611
-
Ted Kremenek authored
including the expressions in the case statement itself (not the body of the case). This required moving SubStmt out of SwitchCase into CaseStmt and DefaultStmt respectively. getSubStmt() now is a virtual call for SwitchCase, but is a direct (static) call for CaseStmt and DefaultStmt. llvm-svn: 41609
-
Chris Lattner authored
primary expressions. llvm-svn: 41607
-