aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-11-15Improve zero value generation.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59356 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Add isUnsigned option.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59355 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Reduce permissiveness of assertion.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59354 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Updated checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59353 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Add a test case for compound assignments that lazily symbolicate the value ↵Ted Kremenek
of the LHS when the computation type is an integer of more bits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59352 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Reverted part of r59335: ↵Ted Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59349 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Re-enable an assertion that I mistakenly removed.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59348 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Handle complex return values.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59345 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Use the correct QualType when creating the '0' constant.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59343 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Implement FIXME in GRExprEngine::VisitUnaryOperator() to handle implicit ↵Ted Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59335 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Flush llvm::errs() when printing out SVals.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59334 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Add handy method.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59332 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Implement parsing and semantic checking of the 'mutable' keyword.Sebastian Redl
Thanks to Doug for the review. Actual effects of mutable to follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59331 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Use ReadPtr, not ReadUIntPtr through a reinterpret_cast.Argyrios Kyrtzidis
Thanks to Sebastian for the suggestion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59330 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Remove Parser::isTokenUnqualifiedId, it's not getting used anywhere.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59323 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Fix <rdar://problem/6372970> clang ObjC rewriter: incorrect cast when ↵Steve Naroff
passing block argument SynthBlockInitExpr() was not adding by-ref arguments to the init expr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59322 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Minor tweaks to liveness analysis:Ted Kremenek
- 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59316 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Second attempt at implementation transfer function support for ↵Ted Kremenek
ObjCForCollectionStmt. We now assume that the 'element' expression can be any lvalue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59313 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Flow-sensitive uninitialized values analysis: properly handle the 'element' ↵Ted Kremenek
expression of ObjCForCollectionStmt (can be anything). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59312 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Add a new expression node, CXXOperatorCallExpr, which expresses aDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59306 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Fix <rdar://problem/6370288> clang ObjC rewriter: Too many _objc_symtab, ↵Steve Naroff
_OBJC_SYMBOLS git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59301 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Don't require us to manually number the statements and expressions in ↵Douglas Gregor
StmtNodes.def. We don't need stable numbers yet, renumbering is a pain, and LAST_STMT had the wrong value anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59300 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Improve comments.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59294 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Handle the case where 'element' in ObjCforCollectionstmt is not a DeclStmt ↵Ted Kremenek
or DeclRefExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59290 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Fix CFG construction for ObjCForCollectionStmt: 'element' expression can be ↵Ted Kremenek
anything that evaluates to an lvalue git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59289 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Update Xcode project.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59285 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Rename header file.Ted Kremenek
Update include files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59284 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Rename ExprDeclBitVector to BlkExprDeclBitVector, and store mappings from ↵Ted Kremenek
Stmt* to bit indices instead using Expr*. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59283 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Fix some validation errors.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59272 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Start a "hacking" page with some simple notes on getting startedDaniel Dunbar
developing clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59270 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Add file to VC++ project.Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59261 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Some cleanup for the implementation of built-in operatorDouglas Gregor
candidates. Thanks to Chris for the review! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59260 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Fix an obscure rewriter bug when rewriting implementations that don't have a ↵Steve Naroff
corresponding interface (found while doing random testing on another bug). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59259 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Fix a couple of suboptimalities in error recovery.Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59256 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13don't highlight field name, just put a caret on it.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59255 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13disable these two tests, they crash and take a long time to run ↵Chris Lattner
crashreporter etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59254 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13implement a fixme :), switch to -verify mode.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59253 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Fix <rdar://problem/6343942> clang ObjC rewriter: crash rewriting blocks Steve Naroff
and <rdar://problem/6344601> clang ObjC rewriter: crash passing Block parameter? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59251 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Using llvm::OwningPtr<> for CurLexer and CurTokenLexer. This makes both the ↵Ted Kremenek
ownership semantics of these objects explicit within the Preprocessor and also tightens up the code (explicit deletes not needed). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59249 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Use PushIncludeMacroStack/PopMacroStack instead of manually pushing/popping ↵Ted Kremenek
from IncludeMacroStack. This is both cleaner and makes the include stack transparently extensible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59248 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Update Xcode project.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59247 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13- Revert r59229 and r59232: AllocRegion should be immutable.Ted Kremenek
- Temporarily disabled test Analysis/array-struct.c for region store. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59245 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Process array base expression of any type.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59240 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Add test for unsigned array index.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59239 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Array index might be unsigned. We have to generate a temporary signed value forZhongxing Xu
it to be evaluated by APSInt::operators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59238 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Add test for incomplete struct pointer.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59236 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Incomplete struct pointer can be used as a function argument.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59235 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Add a test case for alloca().Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59233 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Lift the pointer to alloca'ed region to the pointer to its first element.Zhongxing Xu
This is required by some operations, e.g., *p = 1; p[0] = 1;. Also set the AllocaRegion's type during the cast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59232 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Change AllocaRegion to subclass TypedRegion. We need to know ElementRegion'sZhongxing Xu
type when assigning to it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59229 91177308-0d34-0410-b5e6-96231b3b80d8