- Mar 09, 2012
-
-
Ted Kremenek authored
Essentially, a bug centers around a story for various symbols and regions. We should only include the path diagnostic events that relate to those symbols and regions. The pruning is done by associating a set of interesting symbols and regions with a BugReporter, which can be modified at BugReport creation or by BugReporterVisitors. This patch reduces the diagnostics emitted in several of our test cases. I've vetted these as having desired behavior. The only regression is a missing null check diagnostic for the return value of realloc() in test/Analysis/malloc-plist.c. This will require some investigation to fix, and I have added a FIXME to the test case. llvm-svn: 152361
-
- Feb 05, 2012
-
-
Dylan Noblesmith authored
(I was going to fix the TODO about DenseMap too, but that would break self-host right now. See PR11922.) llvm-svn: 149799
-
Dylan Noblesmith authored
llvm-svn: 149798
-
- Feb 04, 2012
-
-
Benjamin Kramer authored
Fix all the transitive include users. llvm-svn: 149783
-
- Jan 28, 2012
-
-
Benjamin Kramer authored
StaticAnalyzer: Move ObjC- and CXX-specific methods out of line so checkers that don't care about the language don't have to pull in all the headers. llvm-svn: 149178
-
- Jan 26, 2012
-
-
Ted Kremenek authored
At this point this is largely cosmetic, but it opens the door to replace ProgramStateRef with a smart pointer that more eagerly acts in the role of reclaiming unused ProgramState objects. llvm-svn: 149081
-
- Oct 26, 2011
-
-
Anna Zaks authored
Also document addTransition methods. llvm-svn: 143059
-
- Oct 25, 2011
-
-
Anna Zaks authored
Remove dead members/parameters: ProgramState, respondsToCallback, autoTransition. Remove addTransition method since it's the same as generateNode. Maybe we should rename generateNode to genTransition (since a transition is always automatically generated)? llvm-svn: 142946
-
- Oct 06, 2011
-
-
Anna Zaks authored
llvm-svn: 141262
-
- Aug 20, 2011
-
-
Anna Zaks authored
Static Analyzer Diagnostics: Kill the addVisitorCreator(callbackTy, void*) API in favor of addVisitor(BugReporterVisitor*). 1) Create a header file to expose the predefined visitors. And move the parent(BugReporterVisitor) there as well. 2) Remove the registerXXXVisitor functions - the Visitor constructors/getters can be used now to create the object. One exception is registerVarDeclsLastStore(), which registers more then one visitor, so make it static member of FindLastStoreBRVisitor. 3) Modify all the checkers to use the new API. llvm-svn: 138126
-
- Aug 18, 2011
-
-
Anna Zaks authored
Remove EnhancedBugReport and RangedBugReport - pull all the extra functionality they provided into their parent BugReport. The only functional changes are: made getRanges() non const - it adds default range to Ranges if none are supplied, made getStmt() private, which was another FIXME. llvm-svn: 137894
-
- Aug 16, 2011
-
-
Ted Kremenek authored
llvm-svn: 137665
-
- Jul 23, 2011
-
-
Chris Lattner authored
them into the clang namespace. llvm-svn: 135852
-
- Mar 01, 2011
-
-
Argyrios Kyrtzidis authored
llvm-svn: 126726
-
- Feb 28, 2011
-
-
Argyrios Kyrtzidis authored
They cooperate in that NSErrorChecker listens for ImplicitNullDerefEvent events that DereferenceChecker can dispatch. ImplicitNullDerefEvent is when we dereferenced a location that may be null. llvm-svn: 126659
-
- Feb 10, 2011
-
-
Ted Kremenek authored
Split 'include/clang/StaticAnalyzer' into 'include/clang/StaticAnalyzer/Core' and 'include/clang/StaticAnalyzer/Checkers'. This layout matches lib/StaticAnalyzer, which corresponds to two StaticAnalyzer libraries. llvm-svn: 125251
-
- Feb 08, 2011
-
-
Argyrios Kyrtzidis authored
[analyzer] lib/StaticAnalyzer/Checkers/ExprEngineInternalChecks.h -> lib/StaticAnalyzer/Checkers/InternalChecks.h llvm-svn: 125121
-
- Jan 11, 2011
-
-
Argyrios Kyrtzidis authored
[analyzer] Add 'isLoad' parameter in Checker::visitLocation() to conveniently distinguish between loads/stores. llvm-svn: 123261
-
- Dec 23, 2010
-
-
Ted Kremenek authored
layout. :) Rename the 'EntoSA' directories to 'StaticAnalyzer'. Internally we will still use the 'ento' namespace for the analyzer engine (unless there are further sabre rattlings...). llvm-svn: 122514
-
Ted Kremenek authored
update Makefile. llvm-svn: 122493
-
Ted Kremenek authored
llvm-svn: 122492
-
- Dec 22, 2010
-
-
Argyrios Kyrtzidis authored
llvm-svn: 122424
-
Argyrios Kyrtzidis authored
llvm-svn: 122423
-
Argyrios Kyrtzidis authored
[analyzer] Refactoring: Move checkers into lib/GR/Checkers and their own library, libclangGRCheckers llvm-svn: 122422
-
Argyrios Kyrtzidis authored
llvm-svn: 122421
-
Argyrios Kyrtzidis authored
llvm-svn: 122420
-
- Dec 20, 2010
-
-
Ted Kremenek authored
llvm-svn: 122271
-
Ted Kremenek authored
llvm-svn: 122270
-
- Dec 16, 2010
-
-
Ted Kremenek authored
implicit lvalue-to-rvalue casts that John McCall recently introduced. This causes a whole bunch of logic in the analyzer for handling lvalues to vanish. It does, however, raise a few issues in the analyzer w.r.t to modeling various constructs (e.g., field accesses to compound literals). The .c/.m analysis test cases that fail are due to a missing lvalue-to-rvalue cast that will get introduced into the AST. The .cpp failures were more than I could investigate in one go, and the patch was already getting huge. I have XFAILED some of these tests, and they should obviously be further investigated. Some highlights of this patch include: - CFG no longer requires an lvalue bit for CFGElements - StackFrameContext doesn't need an 'asLValue' flag - The "VisitLValue" path from GRExprEngine has been eliminated. Besides the test case failures (XFAILed), there are surely other bugs that are fallout from this change. llvm-svn: 121960
-
- Dec 04, 2010
-
-
John McCall authored
not actually frequently used, because ImpCastExprToType only creates a node if the types differ. So explicitly create an ICE in the lvalue-to-rvalue conversion code in DefaultFunctionArrayLvalueConversion() as well as several other new places, and consistently deal with the consequences throughout the compiler. In addition, introduce a new cast kind for loading an ObjCProperty l-value, and make sure we emit those nodes whenever an ObjCProperty l-value appears that's not on the LHS of an assignment operator. This breaks a couple of rewriter tests, which I've x-failed until future development occurs on the rewriter. Ted Kremenek kindly contributed the analyzer workarounds in this patch. llvm-svn: 120890
-
- Dec 01, 2010
-
-
Ted Kremenek authored
to 'assumeXXX'. llvm-svn: 120614
-
- Oct 26, 2010
-
-
Ted Kremenek authored
Tweak null dereference checker to give better diagnostics for null dereferences resulting from array accesses. llvm-svn: 117334
-
- Sep 10, 2010
-
-
Ted Kremenek authored
Polish diagnostics for null dereferences via ObjC ivar accesses. Finishes up <rdar://problem/6352035>. llvm-svn: 113612
-
- Mar 27, 2010
-
-
Benjamin Kramer authored
llvm-svn: 99731
-
- Mar 23, 2010
-
-
Ted Kremenek authored
a null dereference results from a field access. llvm-svn: 99236
-
- Jan 26, 2010
-
-
Ted Kremenek authored
llvm-svn: 94608
-
- Jan 25, 2010
-
-
Ted Kremenek authored
llvm-svn: 94428
-
Ted Kremenek authored
(1) libAnalysis is a generic analysis library that can be used by Sema. It defines the CFG, basic dataflow analysis primitives, and inexpensive flow-sensitive analyses (e.g. LiveVariables). (2) libChecker contains the guts of the static analyzer, incuding the path-sensitive analysis engine and domain-specific checks. Now any clients that want to use the frontend to build their own tools don't need to link in the entire static analyzer. This change exposes various obvious cleanups that can be made to the layout of files and headers in libChecker. More changes pending. :) This change also exposed a layering violation between AnalysisContext and MemRegion. BlockInvocationContext shouldn't explicitly know about BlockDataRegions. For now I've removed the BlockDataRegion* from BlockInvocationContext (removing context-sensitivity; although this wasn't used yet). We need to have a better way to extend BlockInvocationContext (and any LocationContext) to add context-sensitivty. llvm-svn: 94406
-
- Nov 28, 2009
-
-
Kovarththanan Rajaratnam authored
llvm-svn: 90028
-
- Nov 24, 2009
-
-
Ted Kremenek authored
Enhance null dereference diagnostics by indicating what variable (if any) was dereferenced. Addresses <rdar://problem/7039161>. llvm-svn: 89726
-