- Feb 09, 2011
-
-
Peter Collingbourne authored
llvm-svn: 125217
-
John McCall authored
there were only three virtual methods of any significance. The primary way to grab child iterators now is with Stmt::child_range children(); Stmt::const_child_range children() const; where a child_range is just a std::pair of iterators suitable for being llvm::tie'd to some locals. I've left the old child_begin() and child_end() accessors in place, but it's probably a substantial penalty to grab the iterators individually now, since the switch-based dispatch is kindof inherently slower than vtable dispatch. Grabbing them together is probably a slight win over the status quo, although of course we could've achieved that with vtables, too. I also reclassified SwitchCase (correctly) as an abstract Stmt class, which (as the first such class that wasn't an Expr subclass) required some fiddling in a few places. There are somewhat gross metaprogramming hooks in place to ensure that new statements/expressions continue to implement getSourceRange() and children(). I had to work around a recent clang bug; dgregor actually fixed it already, but I didn't want to introduce a selfhosting dependency on ToT. llvm-svn: 125183
-
Ted Kremenek authored
static analyzer: Further reduce the analyzer's memory usage when analyzing sqlite3 by 7-10% by recylcing "uninteresting" ExplodedNodes. The optimization involves eagerly pruning ExplodedNodes from the ExplodedGraph that contain practically no difference between the predecessor and successor nodes. For example, if the state is different between a predecessor and a node, the node is left in. Only for the 'environment' component of the state do we not care if the ExplodedNodes are different. This paves the way for future optimizations where we can reclaim the environment objects. llvm-svn: 125154
-
- Feb 08, 2011
-
-
Ted Kremenek authored
analyzer, retain/release checker: Remove hack where objects passed in message to 'self' are no longer tracked. llvm-svn: 125130
-
Argyrios Kyrtzidis authored
Eventually there will also be a lib/StaticAnalyzer/Frontend that will handle initialization and checker registration. Yet another library to avoid cyclic dependencies between Core and Checkers. llvm-svn: 125124
-
Argyrios Kyrtzidis authored
[analyzer] lib/StaticAnalyzer/Checkers/ExprEngineExperimentalChecks.cpp -> lib/StaticAnalyzer/Checkers/ExperimentalChecks.cpp llvm-svn: 125123
-
Argyrios Kyrtzidis authored
[analyzer] lib/StaticAnalyzer/Checkers/ExprEngineExperimentalChecks.h -> lib/StaticAnalyzer/Checkers/ExperimentalChecks.h llvm-svn: 125122
-
Argyrios Kyrtzidis authored
[analyzer] lib/StaticAnalyzer/Checkers/ExprEngineInternalChecks.h -> lib/StaticAnalyzer/Checkers/InternalChecks.h llvm-svn: 125121
-
- Feb 05, 2011
-
-
Argyrios Kyrtzidis authored
A common pattern in classes with multiple initializers is to put the subclass's common initialization bits into a static function that receives the value of 'self', e.g: if (!(self = [super init])) return nil; if (!(self = _commonInit(self))) return nil; It was reported that 'self' was not set to the result of [super init]. Until we can use inter-procedural analysis, in such a call, transfer the ObjCSelfInitChecker flags associated with 'self' to the result of the call. Fixes rdar://8937441 & http://llvm.org/PR9094 llvm-svn: 124940
-
- Feb 03, 2011
-
-
Argyrios Kyrtzidis authored
llvm-svn: 124822
-
- Feb 02, 2011
-
-
John McCall authored
on, as well as more reliably limiting invalid references to locals from nested scopes. llvm-svn: 124721
-
- Feb 01, 2011
-
-
Argyrios Kyrtzidis authored
llvm-svn: 124680
-
Argyrios Kyrtzidis authored
llvm-svn: 124674
-
- Jan 27, 2011
-
-
Ted Kremenek authored
Wire up attributes 'ns_consumed' and 'cf_consumed' in the static analyzer's ObjC retain/release checker. llvm-svn: 124386
-
Argyrios Kyrtzidis authored
llvm-svn: 124376
-
NAKAMURA Takumi authored
llvm-svn: 124364
-
NAKAMURA Takumi authored
llvm-svn: 124363
-
Ted Kremenek authored
llvm-svn: 124360
-
- Jan 26, 2011
-
-
Argyrios Kyrtzidis authored
[analyzer] Enable the self-init checker under command-line option '-analyzer-check-objc-self-init' which by default is enabled by the driver for '--analyze'. llvm-svn: 124266
-
Argyrios Kyrtzidis authored
llvm-svn: 124263
-
Argyrios Kyrtzidis authored
llvm-svn: 124249
-
- Jan 25, 2011
-
-
Ted Kremenek authored
about them yet. Fixes crash reported in PR 9049. llvm-svn: 124228
-
Ted Kremenek authored
by ExplodedNodes. This leads to about a 4-8% reduction in memory footprint when analyzing functions in sqlite3. llvm-svn: 124214
-
Ted Kremenek authored
for a block capturing the value of an uninitialized variable. llvm-svn: 124212
-
Argyrios Kyrtzidis authored
We translate property accesses to obj-c messages by simulating "loads" or "stores" to properties using a pseudo-location SVal kind (ObjCPropRef). Checkers can now reason about obj-c messages for both explicit message expressions and implicit messages due to property accesses. llvm-svn: 124161
-
Argyrios Kyrtzidis authored
[analyzer] Introduce ExprEngine::VisitObjCMessage for handling general ObjCMessages (both message expressions and property access) and use it in ExprEngine::VisitObjCMessageExpr. llvm-svn: 124160
-
Argyrios Kyrtzidis authored
[analyzer] Introduce ObjCMessage which represents both explicit ObjC message expressions and implicit messages that are sent for handling properties in dot syntax. Replace all direct uses of ObjCMessageExpr in the checkers and checker interface with ObjCMessage. llvm-svn: 124159
-
Argyrios Kyrtzidis authored
[analyzer] Simplify GetReceiverType function in BasicObjCFoundationChecks.cpp; no functionality change. llvm-svn: 124157
-
- Jan 24, 2011
-
-
Ken Dyck authored
llvm-svn: 124093
-
- Jan 20, 2011
-
-
Ted Kremenek authored
and methods defined within 'namespace X { ... }'. llvm-svn: 123921
-
- Jan 19, 2011
-
-
John McCall authored
thousand other things which were (generally inadvertantly) relying on that. llvm-svn: 123814
-
- Jan 18, 2011
-
-
Jeffrey Yasskin authored
-Wint-to-pointer-cast. llvm-svn: 123719
-
- Jan 17, 2011
-
-
Douglas Gregor authored
Joerg Sonnenberger! llvm-svn: 123669
-
- Jan 15, 2011
-
-
Douglas Gregor authored
that captures the substitution of a non-type template argument pack for a non-type template parameter pack within a pack expansion that cannot be fully expanded. This follows the approach taken by SubstTemplateTypeParmPackType. llvm-svn: 123506
-
- Jan 14, 2011
-
-
Ted Kremenek authored
Found by clang static analyzer. llvm-svn: 123485
-
Ted Kremenek authored
llvm-svn: 123460
-
Ted Kremenek authored
llvm-svn: 123459
-
Ted Kremenek authored
the case where the called function has fewer formal arguments than actual arguments. This fixes a crash in the analyzer when doing function call inlining. Patch by Zhenbo Xu! llvm-svn: 123458
-
- Jan 13, 2011
-
-
Ted Kremenek authored
llvm-svn: 123395
-
Ted Kremenek authored
dead stores within nested assignments. I have never seen an actual bug found by this specific warning, and it can lead to many false positives. llvm-svn: 123394
-