- Dec 05, 2008
-
-
Ted Kremenek authored
Rename SymbolID to SymbolRef. This is a precursor to some overhauling of the representation of symbolic values. llvm-svn: 60575
-
- 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
-
- Nov 13, 2008
-
-
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
-
- Oct 30, 2008
-
-
Zhongxing Xu authored
- SetSVal(GRState*, Loc, SVal) => BindLoc - SetSVal(GRState*, Expr*, SVal) => BindExpr llvm-svn: 58421
-
- Oct 27, 2008
-
-
Zhongxing Xu authored
Only loc::MemRegionVal can be modified. This avoids crashing in RegionStore when a function pointer is used as an argument. llvm-svn: 58233
-
- Oct 26, 2008
-
-
Zhongxing Xu authored
llvm-svn: 58182
-
- Oct 18, 2008
-
-
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
-
-
Zhongxing Xu authored
RVal => SVal LVal => Loc NonLVal => NonLoc lval => loc nonlval => nonloc llvm-svn: 57671
-
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
-
- Oct 04, 2008
-
-
Ted Kremenek authored
This is a big patch, but the functionality change is small and the rest of the patch consists of deltas due to API changes. This patch overhauls the "memory region" abstraction that was prototyped (but never really used) as part of the Store.h. This patch adds MemRegion.h and MemRegion.cpp, which defines the class MemRegion and its subclasses. This classes serve to define an abstract representation of memory, with regions being layered on other regions to to capture the relationships between fields and variables, variables and the address space they are allocated in, and so on. The main motivation of this patch is that key parts of the analyzer assumed that all value bindings were to VarDecls. In the future this won't be the case, and this patch removes lval::DeclVal and replaces it with lval::MemRegionVal. Now all pieces of the analyzer must reason about abstract memory blocks instead of just variables. There should be no functionality change from this patch, but it opens the door for significant improvements to the analyzer such as field-sensitivity and object-sensitivity, both which were on hold until the memory abstraction got generalized. The memory region abstraction also allows type-information to literally be affixed to a memory region. This will allow the some now redundant logic to be removed from the retain/release checker. llvm-svn: 57042
-
- Sep 19, 2008
-
-
Ted Kremenek authored
'symbol operator-reverse int'. This patch is a combination of code from Zhongxing Xu and myself (Zhongxing noticed this bug for the cases of relational operators). llvm-svn: 56351
-
- Aug 13, 2008
-
-
Ted Kremenek authored
Rename ValueStateManager -> GRStateManager. llvm-svn: 54721
-
- Jul 22, 2008
-
-
Ted Kremenek authored
Moved registration of basic path-sensitive checks from GRSimpleVals.cpp to GRExprEngineInternalChecks.cpp. llvm-svn: 53909
-
Ted Kremenek authored
This implements <rdar://problem/6069935> llvm-svn: 53891
-
- Jul 18, 2008
-
-
Ted Kremenek authored
llvm-svn: 53753
-
Ted Kremenek authored
llvm-svn: 53752
-
Ted Kremenek authored
Renamed deterministic EvalBinOp to DetermEvalBinOpNN. This name mangling is unfortunately needed because virtual methods with the same name can be hidden by subclasses. llvm-svn: 53751
-
Ted Kremenek authored
Modified the new EvalBinOpNN to generate states instead of nodes. This is a much simpler interface and is what clients will want to do. llvm-svn: 53750
-
- Jul 16, 2008
-
-
Ted Kremenek authored
Fix regression introduced by http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20080714/006514.html. The regression was the casts from integers to pointers where not being handled: they would just return UnknownVal. This would greatly decrease path-sensitivity. llvm-svn: 53659
-
Ted Kremenek authored
Fix transfer function logic in GRSimpleVals for integer casts: only support casts from integers to integers. This fixes a crash reported by Anders Carlsson! llvm-svn: 53649
-
- Jul 11, 2008
-
-
Ted Kremenek authored
Refactored auditor interface within GRExprEngine and GRCoreEngine to use a "batch auditor" to dispatch to specialized auditors instead of having a separate vector for each audited Expr*. This not only provides a much cleaner implementation, but also allows us to install auditors for any expression. llvm-svn: 53464
-
Ted Kremenek authored
current store implementation is now encapsulated by BasicStore. These changes prompted some long due constification of ValueState. Much of the diffs in this patch include adding "const" qualifiers. llvm-svn: 53423
-
- Jul 03, 2008
-
-
Ted Kremenek authored
llvm-svn: 53054
-
- Jul 02, 2008
-
-
Ted Kremenek authored
Refactored some of the BugReporter interface so that data such as the ASTContext&, PathDiagnosticClient*, can be provided by an external source. Split BugReporter into BugReporter and GRBugReporter so checkers not based on GRExprEngine can still use the BugReporter mechanism. llvm-svn: 53048
-
- Jun 27, 2008
-
-
Ted Kremenek authored
llvm-svn: 52799
-
- May 12, 2008
-
-
Ted Kremenek authored
llvm-svn: 50979
-
- May 10, 2008
-
-
Ted Kremenek authored
Rename IsPointerType to LVal::IsLValType, and update CFRefCount::EvalSummary to use IsLValType when conjuring symbols for return values (this fixes a bug with an assertion firing in the analyzer when two qualified objective-c types were compared). llvm-svn: 50924
-
- May 05, 2008
-
-
Ted Kremenek authored
highlight the most nested subexpression that appears most responsible (giving the user better diagnostic feedback). Updated test cases to illustrate this feature. Implements: <rdar://problem/5880443> llvm-svn: 50647
-
- Apr 30, 2008
-
-
Ted Kremenek authored
llvm-svn: 50498
-
Ted Kremenek authored
llvm-svn: 50494
-
Ted Kremenek authored
llvm-svn: 50486
-
- Apr 23, 2008
-
-
rdar://problem/5881148Ted Kremenek authored
Problem: In the recently refactored VisitDeref (which processes dereferences), we were incorrectly skipping the node just generated for the subexpression of the dereference. This was a horrible regression. llvm-svn: 50176
-
- Apr 22, 2008
-
-
Ted Kremenek authored
llvm-svn: 50109
-
- Apr 18, 2008
-
-
Ted Kremenek authored
can decide the policy on how to cache related bugs. This allows us to properly to handle warning about multiple leaks in the same location in the ref count checker (not yet done). llvm-svn: 49918
-
Ted Kremenek authored
EmitPathWarning into one method. We now properly handle emitting warnings without a PathDiagnosticClient when the warning does not involve a particular statement. llvm-svn: 49884
-
- Apr 16, 2008
-
-
Ted Kremenek authored
to start logically organizing them. Added initial plug-in transfer function support for Objective-C message expressions. llvm-svn: 49752
-
- Apr 15, 2008
-
-
Argyrios Kyrtzidis authored
llvm-svn: 49727
-
- Apr 14, 2008
-
-
Ted Kremenek authored
warnings are emitted as part of the warnings registered by GRSimpleVals. llvm-svn: 49658
-
- Apr 11, 2008
-
-
Ted Kremenek authored
code path in the clang driver. Renamed options --grsimple to -checker-simple and -check-cfref to -checker-cfref. llvm-svn: 49500
-
- Apr 10, 2008
-
-
Ted Kremenek authored
iterator instead of "end") and not implementing "getDescription()" for Nil argument checks. llvm-svn: 49485
-