- Dec 22, 2010
-
-
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 02, 2010
-
-
Ted Kremenek authored
llvm-svn: 120696
-
- Dec 01, 2010
-
-
Ted Kremenek authored
to 'assumeXXX'. llvm-svn: 120614
-
Ted Kremenek authored
'evalXXX'. llvm-svn: 120609
-
Ted Kremenek authored
reflects what the class actually does. llvm-svn: 120605
-
- Nov 24, 2010
-
-
Ted Kremenek authored
ImmutableSet/ImmtuableMap/ImmutableList APIs. Along the way, clean up some method names in the static analyzer so that they are more descriptive and/or start with lowercase letters. llvm-svn: 120071
-
- Sep 03, 2010
-
-
Chris Lattner authored
should probably be removed if it has no purpose, but I just #if'd it out in case it's usefulIdempotentOperationChecker::isTruncationExtensionAssignment should probably be removed if it has no purpose, but I just #if'd it out in case it's useful llvm-svn: 112949
-
- Sep 02, 2010
-
-
Ted Kremenek authored
For GRExprEngine::EvalBind() (and called visitors), unifiy StoreE and AssignE. Now StoreE (const Stmt*) represents the expression where the store took place, which is the assignment expression if it takes place in an assignment. This removes some conceptual dissidence as well as removes an extra parameter from the Checker::PreVisitBind() visitor. It also improves ranges and source location information in analyzer diagnostics. llvm-svn: 112789
-
- Aug 25, 2010
-
-
John McCall authored
to the new constants. llvm-svn: 112047
-
- Aug 19, 2010
-
-
Alexis Hunt authored
Now all classes derived from Attr are generated from TableGen. Additionally, Attr* is no longer its own linked list; SmallVectors or Attr* are used. The accompanying LLVM commit contains the updates to TableGen necessary for this. Some other notes about newly-generated attribute classes: - The constructor arguments are a SourceLocation and a Context&, followed by the attributes arguments in the order that they were defined in Attr.td - Every argument in Attr.td has an appropriate accessor named getFoo, and there are sometimes a few extra ones (such as to get the length of a variadic argument). Additionally, specific_attr_iterator has been introduced, which will iterate over an AttrVec, but only over attributes of a certain type. It can be accessed through either Decl::specific_attr_begin/end or the global functions of the same name. llvm-svn: 111455
-
- Aug 18, 2010
-
-
Jordy Rose authored
llvm-svn: 111353
-
Jordy Rose authored
llvm-svn: 111351
-
- Aug 17, 2010
-
-
Zhongxing Xu authored
llvm-svn: 111217
-
- Aug 15, 2010
-
-
Zhongxing Xu authored
iterate over symbols being tracked, instead of symbols being dead. llvm-svn: 111097
-
- Aug 12, 2010
-
-
Jordy Rose authored
Remove OwnershipAttr::Kind, since it's essentially redundant with attr::Kind the way it's being used. Also fix isa<OwnershipAttr> support, break more-than-80-char lines, and other miscellaneous ownership attr cleanup. llvm-svn: 110908
-
- Aug 06, 2010
-
-
Ted Kremenek authored
llvm-svn: 110473
-
Ted Kremenek authored
Nest variable declaration into into 'if' condition, thus restricting the scope of the variable and condensing the code. llvm-svn: 110472
-
Ted Kremenek authored
Use 'GenerateNode()' instead of 'GenerateSink()' when reporting a leak. A leak is not a hard enough bug to stop analyzing a path. llvm-svn: 110471
-
- Aug 04, 2010
-
-
Jordy Rose authored
Change the checker callback cache in GRExprEngine to be more compact (and IMHO a little easier to understand), and add the same sort of caching for EvalAssume (tied for least-used callback), mostly as proof-of-concept. Before we go further with these, we should figure out a way to reuse the visit-and-cache code in CheckerVisit. llvm-svn: 110191
-
- Jul 31, 2010
-
-
Ted Kremenek authored
After a lengthy design discussion, add support for "ownership attributes" for malloc/free checking. Patch by Andrew McGregor! llvm-svn: 109939
-
- Jul 04, 2010
-
-
Jordy Rose authored
Add a new symbol type, SymbolExtent, to represent the extents of memory regions that may not be known at compile-time (such as those created by malloc). This replaces the old setExtent/getExtent API on Store, which used the GRState's GDM to store SVals. Also adds a getKnownValue() method to SValuator, which gets the integer value of an SVal if it is known to only have one possible value. There are more places in the code that could be using this, but in general we want to be dealing entirely in SVals, so its usefulness is limited. The only visible functionality change is that extents are now honored for any DeclRegion, such as fields and Objective-C ivars, rather than just variables. This shows up in bounds-checking and cast-size-checking. llvm-svn: 107577
-
- Jul 01, 2010
-
-
Ted Kremenek authored
Fix PR 7475 by enhancing the static analyzer to also invalidate bindings for non-static global variables when calling a function/method whose impact on global variables we cannot accurately estimate. This change introduces two new MemSpaceRegions that divide up the memory space of globals, and causes RegionStore and BasicStore to consult a binding to the NonStaticGlobalsMemSpaceRegion when lazily determining the value of a global. llvm-svn: 107423
-
Jordy Rose authored
Add an ivar to SymbolReaper for the current statement, and then stop passing the current statement around everywhere. Preparation for symbolic extents. llvm-svn: 107422
-
- Jun 09, 2010
-
-
Jordy Rose authored
llvm-svn: 105657
-
- Jun 07, 2010
-
-
Jordy Rose authored
Catch free()s on non-regions and regions known to be not from malloc(), by checking the symbol type and memory space. llvm-svn: 105547
-
- Jun 01, 2010
-
-
Zhongxing Xu authored
modification. llvm-svn: 105264
-
- May 13, 2010
-
-
Zhongxing Xu authored
llvm-svn: 103707
-
- Mar 27, 2010
-
-
Benjamin Kramer authored
llvm-svn: 99731
-
- Mar 10, 2010
-
-
Zhongxing Xu authored
llvm-svn: 98136
-
- Feb 14, 2010
-
-
Zhongxing Xu authored
llvm-svn: 96154
-
- Feb 08, 2010
-
-
Ted Kremenek authored
llvm-svn: 95545
-
Zhongxing Xu authored
GRState::getSVal(MemRegion*) => Load(). llvm-svn: 95541
-
- Jan 25, 2010
-
-
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
-
- Jan 18, 2010
-
-
Zhongxing Xu authored
malloc(). llvm-svn: 93722
-
Zhongxing Xu authored
is called on a pointer that does not get its value directly from malloc. llvm-svn: 93706
-
- Dec 31, 2009
-
-
Zhongxing Xu authored
Add new states for symbolic regions tracked by malloc checker. This enables us to do malloc checking more accurately. See test case. Based on Lei Zhang's patch and discussion. llvm-svn: 92342
-