- Oct 17, 2008
-
-
Zhongxing Xu authored
RVal => SVal LVal => Loc NonLVal => NonLoc lval => loc nonlval => nonloc llvm-svn: 57671
-
- Oct 06, 2008
-
-
Ted Kremenek authored
Use DeclStmt::decl_iterator instead of using Decl::getDecl(). Soon DeclStmts will wrap group of Decls. Added FIXME. llvm-svn: 57189
-
- 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 20, 2008
-
-
Ted Kremenek authored
Changed casing of many bug names. The convention will be to have bug names (mostly) lower cased, and categories use some capitalization. llvm-svn: 56385
-
- Sep 16, 2008
-
-
Ted Kremenek authored
motivated because it became clear that the number of subclasses of ProgramPoint would expand and we ran out of bits to represent a pointer variant. As a plus of this change, BlockEdge program points can now be represented explicitly without using a cache of CFGBlock* pairs in CFG. llvm-svn: 56245
-
- Sep 12, 2008
-
-
Ted Kremenek authored
llvm-svn: 56166
-
- Aug 24, 2008
-
-
Chris Lattner authored
an APInt directly to an ostream now, so add some hacks. It would be better to switch all of the bugreport (and friends) stuff over to raw_ostream. llvm-svn: 55264
-
- Aug 17, 2008
-
-
Chris Lattner authored
llvm-svn: 54874
-
- Aug 13, 2008
-
-
Ted Kremenek authored
Rename ValueStateManager -> GRStateManager. llvm-svn: 54721
-
- Jul 14, 2008
-
-
Ted Kremenek authored
llvm-svn: 53573
-
Ted Kremenek authored
Refactored error reporting in CheckObjCDealloc and CheckObjCInstMethSignature to use this new bug reporting interface (major code simplification). llvm-svn: 53560
-
- Jul 11, 2008
-
-
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
Have BugReporter::getCFG and BugReporter::getLiveVariables returns pointers instead of references, because they can both fail on functions we cannot construct full CFGs for yet. llvm-svn: 53081
-
- 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 20, 2008
-
-
Ted Kremenek authored
1) Check if a dead store appears as a subexpression. For such cases, we emit a verbose diagnostic so that users aren't confused. This addresses: <rdar://problem/5968508> checker gives misleading report for dead store in loop 2) Don't emit a dead store warning when assigning a null value to a pointer. This is a common form of defensive programming. We may wish to make this an option to the the checker one day. This addresses the feature request in the following email: http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-June/001978.html llvm-svn: 52555
-
- Jun 18, 2008
-
-
Ted Kremenek authored
Added a new ProgramPoint: PostPurgeDeadSymbols. This new program point distinguishes between the cases when we just evaluated the transfer function of a Stmt* (PostStmt) or performed a load (PostLoad). This solves a caching bug observed in a recent bug report. llvm-svn: 52443
-
- Jun 17, 2008
-
-
Ted Kremenek authored
llvm-svn: 52426
-
- May 23, 2008
-
-
Ted Kremenek authored
llvm-svn: 51453
-
- May 16, 2008
-
-
Ted Kremenek authored
Partitioned BugTypeCachedLocation::isCached() into two methods: one that accepts and ExplodedNode, and the other that accepts a ProgramPoint. The default behavior is to cache bug reports by the location they occur (the end node). Subclasses can override this behavior by providing a different ProgramPoint. llvm-svn: 51197
-
- May 06, 2008
-
-
Ted Kremenek authored
"Execution continues..." message, which does a better job at handling corner cases. llvm-svn: 50751
-
- May 03, 2008
-
-
Ted Kremenek authored
llvm-svn: 50597
-
- May 02, 2008
-
-
Ted Kremenek authored
llvm-svn: 50553
-
Ted Kremenek authored
llvm-svn: 50549
-
- May 01, 2008
-
-
Ted Kremenek authored
a CF memory leak occurred with GC enabled, etc. llvm-svn: 50507
-
- Apr 25, 2008
-
-
Ted Kremenek authored
empty CFGBlocks that only contained a terminator. Added improved diagnostics for break and continue statements and default branches in switch statements. This fixes <rdar://problem/5889244>. llvm-svn: 50286
-
Ted Kremenek authored
Don't emit empty strings for path diagnostics when taking the default branch of a switch statement that has no label. llvm-svn: 50242
-
Ted Kremenek authored
Implemented support for better localized leaks in the CF reference count checker. Now leaks should be flagged close to where they occur. This should implement the desired functionality in <rdar://problem/5879592>, although the diagnostics still need to be improved. llvm-svn: 50241
-
- Apr 24, 2008
-
-
Ted Kremenek authored
that say that we are jumping to "case a" instead of "case 0". This is a feature implementation for <rdar://problem/5880430>. llvm-svn: 50197
-
Ted Kremenek authored
llvm-svn: 50195
-
Ted Kremenek authored
When building PathDiagnostics for bug reports, generate a trimmed ExplodedGraph with a single path that BugReport objects can safely walk and introspect. llvm-svn: 50194
-
- Apr 23, 2008
-
-
Ted Kremenek authored
the line we are going to. llvm-svn: 50113
-
- Apr 22, 2008
-
-
Ted Kremenek authored
them to not be stack-allocated. HTMLDiagnostics now batches PathDiagnostics before emitting HTML in its dtor. This is a workaround for a problem when we trampled the Preprocessor state when highlighting macros (sometimes resulting in an assertion failure). llvm-svn: 50102
-
- Apr 19, 2008
-
-
Ted Kremenek authored
before. This allows the HTMLDiagnostic object to retrieve the bug type, bug description, etc. llvm-svn: 49939
-
Ted Kremenek authored
llvm-svn: 49934
-
- 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
Shuffled around code in CFRefCount to better pair classes with implementation, and started adding subclasses of RangedBugReport to handle better diagnostics for reference count bugs. llvm-svn: 49889
-
Ted Kremenek authored
llvm-svn: 49887
-
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
-
Ted Kremenek authored
the exit block of the CFG. llvm-svn: 49880
-
- Apr 14, 2008
-
-
Ted Kremenek authored
llvm-svn: 49668
-