- Nov 15, 2008
-
-
Ted Kremenek authored
llvm-svn: 59348
-
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
-
- Nov 14, 2008
-
-
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
-
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
-
Zhongxing Xu authored
llvm-svn: 59294
-
- Nov 13, 2008
-
-
Ted Kremenek authored
- Temporarily disabled test Analysis/array-struct.c for region store. llvm-svn: 59245
-
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
-
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
-
Ted Kremenek authored
- Don't crash on vector types. - Handle typedefs. llvm-svn: 59220
-
- Nov 12, 2008
-
-
Ted Kremenek authored
llvm-svn: 59162
-
Ted Kremenek authored
Add (preliminary) transfer function support for ObjCForCollectionStmt. Still need to flesh out some logic. When processing DeclStmt, use the new interface to StateManager::BindDecl. Conjuring of symbols is now done in VisitDeclStmt. llvm-svn: 59155
-
- Nov 11, 2008
-
-
Sebastian Redl authored
Introduce a single AST node SizeOfAlignOfExpr for all sizeof and alignof expressions, both of values and types. llvm-svn: 59057
-
- Nov 10, 2008
-
-
Chris Lattner authored
llvm-svn: 58956
-
- Nov 08, 2008
-
-
Zhongxing Xu authored
llvm-svn: 58886
-
- Nov 07, 2008
-
-
Zhongxing Xu authored
available, things get much simplified. One addition is that CompoundLiteralExpr can appear both in rvalue and lvalue context. llvm-svn: 58837
-
- Nov 02, 2008
-
-
Ted Kremenek authored
llvm-svn: 58552
-
- Oct 31, 2008
-
-
Ted Kremenek authored
Comment out invalid assertion. I'm leaving it in the code for now as a reminder to produce a test case. llvm-svn: 58510
-
Zhongxing Xu authored
llvm-svn: 58495
-
Zhongxing Xu authored
llvm-svn: 58492
-
Zhongxing Xu authored
llvm-svn: 58487
-
Ted Kremenek authored
llvm-svn: 58468
-
- Oct 30, 2008
-
-
Ted Kremenek authored
llvm-svn: 58446
-
Ted Kremenek authored
llvm-svn: 58444
-
Ted Kremenek authored
llvm-svn: 58440
-
Zhongxing Xu authored
llvm-svn: 58422
-
Zhongxing Xu authored
- SetSVal(GRState*, Loc, SVal) => BindLoc - SetSVal(GRState*, Expr*, SVal) => BindExpr llvm-svn: 58421
-
Zhongxing Xu authored
llvm-svn: 58419
-
Ted Kremenek authored
llvm-svn: 58410
-
- Oct 29, 2008
-
-
Zhongxing Xu authored
BindDecl better describes what the function does: - Bind the VarDecl to its memory region - Bind the memory region to some initial value. llvm-svn: 58359
-
- Oct 28, 2008
-
-
Douglas Gregor authored
llvm-svn: 58331
-
Douglas Gregor authored
- Do not allow expressions to ever have reference type - Extend Expr::isLvalue to handle more cases where having written a reference into the source implies that the expression is an lvalue (e.g., function calls, C++ casts). - Make GRExprEngine::VisitCall treat the call arguments as lvalues when they are being bound to a reference parameter. llvm-svn: 58306
-
Ted Kremenek authored
llvm-svn: 58292
-
- Oct 27, 2008
-
-
Ted Kremenek authored
- GRExprEngine::VisitCompoundLiteral... (1) visits the initializer list (generating ExplodedNodes) (2) creates a CompoundMemRegion for the literal (3) creates a new state with the bound literal values using GRStateManager::BindCompoundLiteral - GRStateManager::BindCompoundLiteral simply calls StoreManager::BindCompoundLiteral to get a new store and returns a persistent GRState with that store. - BasicStore::BindCompoundLiteral simply returns the same store, as it doesn't handle field sensitivity - RegionStore::BindCompoundLiteral currently fires an assert (pending discussion of how to best implement mappings for CompoundLiteralRegion). llvm-svn: 58277
-
Douglas Gregor authored
- CastExpr is the root of all casts - ImplicitCastExpr is (still) used for all explicit casts - ExplicitCastExpr is now the root of all *explicit* casts - ExplicitCCastExpr (new name needed!?) is a C-style cast in C or C++ - CXXFunctionalCastExpr inherits from ExplicitCastExpr - CXXNamedCastExpr inherits from ExplicitCastExpr and is the root of all of the C++ named cast expression types (static_cast, dynamic_cast, etc.) - Added classes CXXStaticCastExpr, CXXDynamicCastExpr, CXXReinterpretCastExpr, and CXXConstCastExpr to Also, fixed returned-stack-addr.cpp, which broke once when we fixed reinterpret_cast to diagnose double->int* conversions and again when we eliminated implicit conversions to reference types. The fix is in both testcase and SemaChecking.cpp. Most of this patch is simply support for the renaming. There's very little actual change in semantics. llvm-svn: 58264
-
- Oct 25, 2008
-
-
Ted Kremenek authored
This fixes PR 2948. llvm-svn: 58148
-
Zhongxing Xu authored
for StringLiteral lvalue evaluation, instead of directly returning a loc::StringLiteralVal by the Environment. llvm-svn: 58138
-
Zhongxing Xu authored
llvm-svn: 58135
-
- Oct 24, 2008
-
-
Ted Kremenek authored
Implicit conversions from arrays can also be conversions to references (will add a test case shortly). llvm-svn: 58110
-
Ted Kremenek authored
Added method "getSelfRegion" to Store. This method returns the region associated with the "this" or "self" object (C++ and Objective-C respectively). llvm-svn: 58107
-