llvm-project/clang/lib/Analysis
Ted Kremenek 608677a2e1 Remove 'SelfRegion' field from both BasicStoreManager and RegionStoreManager.
SelfRegion represented the object bound to 'self' (when analyzing Objective-C
methods) upon entry to a method. Having this region stored on the side ignores
the current stack frame that we might be analyzing (among other things), and is
a problem for interprocedural analysis.

For RegionStoreManager, the value for SelfRegion is just lazily created.

For BasicStoreManager, the value for SelfRegion is bound eagerly to 'self', but
no explicit tracking of SelfRegion on the side is made.

As part of this change, remove the restriction in BasicStoreManager that we only
track ivars for 'self'. This shouldn't actually change anything in terms of
precision, and simplifies the logic.

llvm-svn: 79694
2009-08-21 23:25:54 +00:00
..
AnalysisContext.cpp Remove 'SelfRegion' field from both BasicStoreManager and RegionStoreManager. 2009-08-21 23:25:54 +00:00
AnalysisManager.cpp Make AnalysisManager into its own source file and a pure data management class. 2009-07-30 09:11:52 +00:00
BasicConstraintManager.cpp Remove uses of std::ostream from libAnalysis. 2009-06-24 23:06:47 +00:00
BasicObjCFoundationChecks.cpp Tie the local check NSErrorCheck to a Decl to pave the way 2009-08-21 02:18:44 +00:00
BasicObjCFoundationChecks.h Tie the local check NSErrorCheck to a Decl to pave the way 2009-08-21 02:18:44 +00:00
BasicStore.cpp Remove 'SelfRegion' field from both BasicStoreManager and RegionStoreManager. 2009-08-21 23:25:54 +00:00
BasicValueFactory.cpp Implement lazy "copying" of structures and arrays in RegionStore. While 2009-08-06 01:20:57 +00:00
BugReporter.cpp Rename: ProgramPoint::getContext() => ProgramPoint::getLocationContext(). 2009-08-20 01:23:34 +00:00
BugReporterVisitors.cpp Add LocationContext* field to VarRegion. This is needed for interprocedural analysis. 2009-08-21 22:28:32 +00:00
CFG.cpp If the 'while' has an empty body, set the body to the continue target block. 2009-08-20 03:21:49 +00:00
CFRefCount.cpp Remove 'SelfRegion' field from both BasicStoreManager and RegionStoreManager. 2009-08-21 23:25:54 +00:00
CMakeLists.txt fix cmake build 2009-07-30 10:38:43 +00:00
CallGraph.cpp Add getDecl() to CallGraph and CallGraphNode. 2009-07-24 03:41:11 +00:00
CheckDeadStores.cpp Remove the ASTContext parameter from the attribute-related methods of Decl. 2009-06-30 02:34:44 +00:00
CheckNSError.cpp Add LocationContext* field to VarRegion. This is needed for interprocedural analysis. 2009-08-21 22:28:32 +00:00
CheckObjCDealloc.cpp Remove ASTContext::isObjCObjectPointerType(). 2009-07-16 15:41:00 +00:00
CheckObjCInstMethSignature.cpp Introduce Type::isAnyPointerType() and convert all clients (suggested by Chris). 2009-07-14 18:25:06 +00:00
CheckObjCUnusedIVars.cpp Fix: <rdar://problem/7075531> static analyzer wrongly detects unused ivars used in blocks 2009-08-07 21:13:23 +00:00
CheckSecuritySyntaxOnly.cpp In the "use of floating point variable as loop counter" check, check 2009-07-24 20:26:31 +00:00
Environment.cpp add fixme. 2009-07-01 02:12:57 +00:00
ExplodedGraph.cpp Core analysis engine template cleanup step 2: 2009-08-06 06:28:40 +00:00
GRBlockCounter.cpp Updated clients of ImmutableMap::SlimFind to use ImmutableMap::lookup instead. 2008-07-07 16:21:19 +00:00
GRCoreEngine.cpp To make the analysis independent on the locally stored liveness and cfg 2009-08-17 06:19:58 +00:00
GRExprEngine.cpp Add LocationContext* field to VarRegion. This is needed for interprocedural analysis. 2009-08-21 22:28:32 +00:00
GRExprEngineInternalChecks.cpp Enhance static analyzer diagnostics by introducing a new 'EnhancedBugReporter' 2009-08-18 01:05:30 +00:00
GRState.cpp To make the analysis independent on the locally stored liveness and cfg 2009-08-17 06:19:58 +00:00
LiveVariables.cpp Move the source-level CFG from libAST to libAnalysis. 2009-07-16 18:13:04 +00:00
Makefile Build system changes to use TableGen to generate the various 2009-03-16 23:06:59 +00:00
MemRegion.cpp Remove 'SelfRegion' field from both BasicStoreManager and RegionStoreManager. 2009-08-21 23:25:54 +00:00
PathDiagnostic.cpp Remove '#include <sstream>' from libAnalysis. 2009-06-26 00:43:22 +00:00
RangeConstraintManager.cpp Remove uses of std::ostream from libAnalysis. 2009-06-24 23:06:47 +00:00
RegionStore.cpp Remove 'SelfRegion' field from both BasicStoreManager and RegionStoreManager. 2009-08-21 23:25:54 +00:00
SVals.cpp Implement lazy "copying" of structures and arrays in RegionStore. While 2009-08-06 01:20:57 +00:00
SValuator.cpp Remove 'StoreManager::OldCastRegion()', TypedViewRegion (which only 2009-07-29 21:43:22 +00:00
SimpleConstraintManager.cpp Remove GRStateManager& field from SimpleConstraintManager. 2009-06-18 23:20:05 +00:00
SimpleConstraintManager.h Remove GRStateManager& field from SimpleConstraintManager. 2009-06-18 23:20:05 +00:00
SimpleSValuator.cpp Fix PR 4594 by refactoring almost all casting logic from GRExprEngine::VisitCast 2009-07-21 21:03:30 +00:00
Store.cpp Fix regression in StoreManager::CastRegion() to always treat casts to 2009-08-02 04:12:53 +00:00
SymbolManager.cpp This is a fairly large patch, which resulted from a cascade of changes 2009-08-01 06:17:29 +00:00
UninitializedValues.cpp rename some methods. 2009-03-28 06:33:19 +00:00
ValueManager.cpp This is a fairly large patch, which resulted from a cascade of changes 2009-08-01 06:17:29 +00:00