- Nov 15, 2008
-
-
Ted Kremenek authored
Implement FIXME in GRExprEngine::VisitUnaryOperator() to handle implicit conversions caused by the '!' operator. This required adding some logic to GRSimpleVals to reason about nonloc::LocAsInteger SVals. This code appears to work fine, but it should eventually be cleaned up. llvm-svn: 59335
-
Ted Kremenek authored
llvm-svn: 59334
-
Zhongxing Xu authored
llvm-svn: 59332
-
Sebastian Redl authored
Thanks to Doug for the review. Actual effects of mutable to follow. llvm-svn: 59331
-
Argyrios Kyrtzidis authored
Thanks to Sebastian for the suggestion. llvm-svn: 59330
-
- Nov 14, 2008
-
-
Argyrios Kyrtzidis authored
llvm-svn: 59323
-
rdar://problem/6372970Steve Naroff authored
SynthBlockInitExpr() was not adding by-ref arguments to the init expr. llvm-svn: 59322
-
Ted Kremenek authored
- Block-expression for 'ObjCForCollectionStmt' is not alive before it occurs - Recursively visit 'element' expression for ObjCForCollectionStmt to get liveness for referenced block-level expressions and variables. llvm-svn: 59316
-
Ted Kremenek authored
Second attempt at implementation transfer function support for ObjCForCollectionStmt. We now assume that the 'element' expression can be any lvalue. llvm-svn: 59313
-
Ted Kremenek authored
Flow-sensitive uninitialized values analysis: properly handle the 'element' expression of ObjCForCollectionStmt (can be anything). llvm-svn: 59312
-
Douglas Gregor authored
function call created in response to the use of operator syntax that resolves to an overloaded operator in C++, e.g., "str1 + str2" that resolves to std::operator+(str1, str2)". We now build a CXXOperatorCallExpr in C++ when we pick an overloaded operator. (But only for binary operators, where we actually implement overloading) I decided *not* to refactor the current CallExpr to make it abstract (with FunctionCallExpr and CXXOperatorCallExpr as derived classes). Doing so would allow us to make CXXOperatorCallExpr a little bit smaller, at the cost of making the argument and callee accessors virtual. We won't know if this is going to be a win until we can parse lots of C++ code to determine how much memory we'll save by making this change vs. the performance penalty due to the extra virtual calls. llvm-svn: 59306
-
-
Douglas Gregor authored
Don't require us to manually number the statements and expressions in StmtNodes.def. We don't need stable numbers yet, renumbering is a pain, and LAST_STMT had the wrong value anyway. llvm-svn: 59300
-
Zhongxing Xu authored
llvm-svn: 59294
-
Ted Kremenek authored
llvm-svn: 59290
-
Ted Kremenek authored
Fix CFG construction for ObjCForCollectionStmt: 'element' expression can be anything that evaluates to an lvalue llvm-svn: 59289
-
Ted Kremenek authored
llvm-svn: 59285
-
Ted Kremenek authored
Update include files. llvm-svn: 59284
-
Ted Kremenek authored
Rename ExprDeclBitVector to BlkExprDeclBitVector, and store mappings from Stmt* to bit indices instead using Expr*. llvm-svn: 59283
-
Daniel Dunbar authored
llvm-svn: 59272
-
- Nov 13, 2008
-
-
Daniel Dunbar authored
developing clang. llvm-svn: 59270
-
Steve Naroff authored
llvm-svn: 59261
-
Douglas Gregor authored
candidates. Thanks to Chris for the review! llvm-svn: 59260
-
Steve Naroff authored
Fix an obscure rewriter bug when rewriting implementations that don't have a corresponding interface (found while doing random testing on another bug). llvm-svn: 59259
-
Chris Lattner authored
1. In the top level of ParseStatementOrDeclaration, don't eat a } if we just parsed a statement if it list there. Also, don't even bother emitting an error about a missing semicolon if the statement had a bug (an rbrace is fine). 2. In do/while parsing, don't require a 'while' to be present if the do body didn't parse. This allows us to generate a clean diagnostic for this code: t.c:1:22: error: expected expression void foo (void) { do . while (0); } ^ Thanks to Neil for pointing this out. llvm-svn: 59256
-
Chris Lattner authored
llvm-svn: 59255
-
Chris Lattner authored
llvm-svn: 59254
-
Chris Lattner authored
llvm-svn: 59253
-
rdar://problem/6343942Steve Naroff authored
and <rdar://problem/6344601> clang ObjC rewriter: crash passing Block parameter? llvm-svn: 59251
-
Ted Kremenek authored
Using llvm::OwningPtr<> for CurLexer and CurTokenLexer. This makes both the ownership semantics of these objects explicit within the Preprocessor and also tightens up the code (explicit deletes not needed). llvm-svn: 59249
-
Ted Kremenek authored
Use PushIncludeMacroStack/PopMacroStack instead of manually pushing/popping from IncludeMacroStack. This is both cleaner and makes the include stack transparently extensible. llvm-svn: 59248
-
Ted Kremenek authored
llvm-svn: 59247
-
Ted Kremenek authored
- Temporarily disabled test Analysis/array-struct.c for region store. llvm-svn: 59245
-
Zhongxing Xu authored
llvm-svn: 59240
-
Zhongxing Xu authored
llvm-svn: 59239
-
Zhongxing Xu authored
it to be evaluated by APSInt::operators. llvm-svn: 59238
-
Zhongxing Xu authored
llvm-svn: 59236
-
Zhongxing Xu authored
llvm-svn: 59235
-
Zhongxing Xu authored
llvm-svn: 59233
-
Zhongxing Xu authored
This is required by some operations, e.g., *p = 1; p[0] = 1;. Also set the AllocaRegion's type during the cast. llvm-svn: 59232
-