- Oct 22, 2008
-
-
Ted Kremenek authored
Enhance reference-count checker to correctly identify CG "release" functions. This fixes <rdar://problem/6303488>. llvm-svn: 57997
-
Zhongxing Xu authored
llvm-svn: 57977
-
Zhongxing Xu authored
llvm-svn: 57964
-
Zhongxing Xu authored
llvm-svn: 57963
-
- Oct 21, 2008
-
-
Ted Kremenek authored
When conjuring symbols for compound assignments, use the promoted type to determine if the symbolic value as a "loc::" or "nonloc::" value. llvm-svn: 57917
-
Douglas Gregor authored
llvm-svn: 57910
-
Douglas Gregor authored
llvm-svn: 57909
-
Ted Kremenek authored
Handle [NSAutoreleasePool addObject:] (an alternative way to add objects to the current autorelease pool). Added initial code for tracking stack of autorelease pools. llvm-svn: 57908
-
Zhongxing Xu authored
GRExprEngine::VisitCast() so that other parts of the analyzer can be ignorant. When we cast "array of type T" to "pointer to T", we get the loc::MemRegionVal corresponding to the array variable. This is sufficient for BasicStore, but not for RegionStore. RegionStore should get the element region for the first array element in the cast. So next comes to the revamping of transfer functions for different store model. llvm-svn: 57897
-
Zhongxing Xu authored
llvm-svn: 57896
-
Zhongxing Xu authored
RValues.h/cpp => SVals.h/cpp llvm-svn: 57893
-
Zhongxing Xu authored
initialized to UndefinedVal. llvm-svn: 57892
-
Zhongxing Xu authored
llvm-svn: 57891
-
Ted Kremenek authored
Further improve path-sensitivity with divide-by-zero checking by assuming that a denominator cannot be zero even when the result of an '/' or '%' expression is unknown. llvm-svn: 57855
-
Ted Kremenek authored
Used conjured symbols to recover path-sensitivity when the result of a compound assignment is UnknownVal(). llvm-svn: 57851
-
- Oct 19, 2008
-
-
Ted Kremenek authored
llvm-svn: 57777
-
- Oct 18, 2008
-
-
Ted Kremenek authored
Generalize VisitLValue: not only can CallExprs and ObjCMessageExprs return aggregate temporaries, so can many other expressions. llvm-svn: 57761
-
Ted Kremenek authored
Function calls and ObjC message expressions can be used in a lvalue context if they return a structure. E.g foo().x == 1. We don't really support, however, such temporaries yet in the environment or the store. llvm-svn: 57760
-
Ted Kremenek authored
retain/release checker: Check if a tracked value escapes if we also try binding it to the store and the store doesn't support that binding (i.e., it cannot track it). This has the nice feature that the checker will automatically get more powerful if we use a more powerful store model. llvm-svn: 57755
-
Ted Kremenek authored
Use "VisitLValue" when processing the base for "x.f" field accesses, and "Visit" when processing the base for "x->f" field accesses. llvm-svn: 57754
-
Ted Kremenek authored
Hack: have BasicStore::getLValueElement return the "Base" lvalue. This restores null dereference checking with array accesses. BasicStore::RemoveDeadBindings: handle regions besides VarRegions (we now have FieldRegions). llvm-svn: 57741
-
Ted Kremenek authored
When conjuring symbols to recover path-sensitivity, don't conjure symbols that represent an entire struct. We need to implement struct temporaries as an actual "region", and then bind symbols to the FieldRegion of those temporaries. llvm-svn: 57739
-
- Oct 17, 2008
-
-
Ted Kremenek authored
Enhance "Assumption" logic in BasicConstraintManager when reasoning about regions and symbolic regions. When assuming whether or not a location is non-null, walk up the region hierarchy until we hit a symbolic region (and test it for null). This may not be the end all solution, as the notion of what a "symbolic region" is really belongs in the specific subclass of StoreManager. llvm-svn: 57730
-
Ted Kremenek authored
llvm-svn: 57724
-
Ted Kremenek authored
Fixed an elusive caching bug in ExplodedGraph construction when a PostStmtKind was used instead of a PostStoreKind. llvm-svn: 57719
-
Ted Kremenek authored
- Added new region "SymbolicRegion", which maps symbol values to the region domain. - Enhanced BasicStore::getFieldLValue() to return a FieldRegion (using SymbolicRegion) - Added some utility methods to GRState for fetch svals from the store. - Fixed regression in CheckNSError (we weren't getting the value bound to the parameter) llvm-svn: 57717
-
Ted Kremenek authored
"Implement" GRExprEngine::VisitLValue for ObjCPropertyRefExpr. This is only a bandid; we need to properly handle properties by using locv/nonloc objects and specially handling property assignments in the transfer function for BinaryOperator. llvm-svn: 57693
-
Zhongxing Xu authored
RVal => SVal LVal => Loc NonLVal => NonLoc lval => loc nonlval => nonloc llvm-svn: 57671
-
Zhongxing Xu authored
llvm-svn: 57666
-
Zhongxing Xu authored
type T. llvm-svn: 57665
-
Zhongxing Xu authored
struct s {}; void f() { int a[10]; int (*p)[10]; p = &a; (*p)[3] =1; struct s d; struct s *q; q = &d; } We return the corresponding MemRegionVal for them. llvm-svn: 57664
-
Ted Kremenek authored
llvm-svn: 57659
-
Ted Kremenek authored
Remove GRExprEngine::getLVal and RValues::MakeVal. Enhance StoreManager "GetLValue" methods to dispatch for specific kinds of lvalue queries, as opposed to interogating the expression tree (GRExprEngine already does this). Added FIXMEs. In particular, we no longer "assume" that a base pointer in a field/array access is null (this logic was removed). Perhaps we should do this when fetching the lvalue for fields and array elements? llvm-svn: 57657
-
Ted Kremenek authored
llvm-svn: 57654
-
- Oct 16, 2008
-
-
Zhongxing Xu authored
new VisitLValue method is added to replace the old VisitLVal. The semantics model becomes more explicit to separate rvalue evaluation from lvalue evaluation. llvm-svn: 57627
-
- Oct 15, 2008
-
-
Ted Kremenek authored
Enhance dead store checker to not flag preincrements to dead variables where the preincrement is a subexpression, e.g. foo(++x); This can cause false negatives, but will remove a whole class of false positives. llvm-svn: 57554
-
- Oct 09, 2008
-
-
Zhongxing Xu authored
llvm-svn: 57317
-
- Oct 08, 2008
-
-
Zhongxing Xu authored
This is the first step to implement a field-sensitive store model. Other things are simplified: no heap shape assumption, no parameter alias assumption, etc. llvm-svn: 57285
-
- Oct 07, 2008
-
-
Zhongxing Xu authored
llvm-svn: 57240
-
Zhongxing Xu authored
llvm-svn: 57225
-