- Nov 15, 2008
-
-
Anders Carlsson authored
llvm-svn: 59371
-
Zhongxing Xu authored
llvm-svn: 59359
-
Anders Carlsson authored
llvm-svn: 59358
-
Zhongxing Xu authored
llvm-svn: 59356
-
Ted Kremenek authored
llvm-svn: 59354
-
Ted Kremenek authored
Reverted part of r59335: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20081110/009243.html In that patch I added a bogus type promotion for unary '!'. The real bug was more fallout from edges cases with compound assignments and conjured symbolic values. Now the conjured value has the type of the LHS expression, and we do a promotion to the computation type. We also now correctly do a conversion from the computation type back to the LHS type. llvm-svn: 59349
-
Ted Kremenek authored
llvm-svn: 59348
-
Anders Carlsson authored
llvm-svn: 59345
-
Ted Kremenek authored
llvm-svn: 59343
-
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
-
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
-
-
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
Update include files. llvm-svn: 59284
-
- Nov 13, 2008
-
-
Douglas Gregor authored
candidates. Thanks to Chris for the review! llvm-svn: 59260
-
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
-
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
- Temporarily disabled test Analysis/array-struct.c for region store. llvm-svn: 59245
-
Zhongxing Xu authored
llvm-svn: 59240
-
Zhongxing Xu authored
it to be evaluated by APSInt::operators. llvm-svn: 59238
-
Zhongxing Xu authored
llvm-svn: 59235
-
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
-
Zhongxing Xu authored
type when assigning to it. llvm-svn: 59229
-
Ted Kremenek authored
llvm-svn: 59227
-
Ted Kremenek authored
Correctly connect 'continue' and 'break' statements in Objective-C fast enumeration for blocks to the appropriate basic blocks. llvm-svn: 59226
-
Ted Kremenek authored
GRExprEngine/CFRefCount/GRSimpleVals: We don't do any special handling (yet) of vector types. Add explicit checks that when we process integers that they really are scalars. llvm-svn: 59225
-
Eli Friedman authored
some more bullet-proofing/enhancements for tryEvaluate. This shouldn't cause any behavior changes except for handling cases where we were crashing before and being able to evaluate a few more cases in tryEvaluate. This should settle the minor mess surrounding r59196. llvm-svn: 59224
-
Ted Kremenek authored
llvm-svn: 59222
-
Daniel Dunbar authored
the Backend output should be done in binary mode. - I'd appreciate it if someone who has a Windows build could verify this. llvm-svn: 59221
-
Ted Kremenek authored
- Don't crash on vector types. - Handle typedefs. llvm-svn: 59220
-