llvm-project/clang/lib/StaticAnalyzer/Core
Jordan Rose ae134c6449 Revert "[analyzer] Remove constraints on dead symbols as part of removeDeadBindings."
While we definitely want this optimization in the future, we're not
currently handling constraints on symbolic /expressions/ correctly.
These should stay live even if the SymExpr itself is no longer referenced
because could recreate an identical SymExpr later. Only once the SymExpr
can no longer be recreated -- i.e. a component symbol is dead -- can we
safely remove the constraints on it.

This liveness issue is tracked by <rdar://problem/12333297>.

This reverts r163444 / 24c7f98828e039005cff3bd847e7ab404a6a09f8.

llvm-svn: 164275
2012-09-20 01:54:56 +00:00
..
APSIntType.cpp [analyzer] Rework both constraint managers to handle mixed-type comparisons. 2012-05-08 03:27:16 +00:00
AnalysisManager.cpp [analyzer] Always include destructors in the analysis CFG. 2012-09-05 22:55:23 +00:00
AnalyzerOptions.cpp Revert "[analyzer] Disable STL inlining. Blocked by PR13724." 2012-09-11 20:26:49 +00:00
BasicValueFactory.cpp [analyzer] Disallow creation of int vals with explicit bit width / signedness. 2012-09-01 17:39:24 +00:00
BlockCounter.cpp Cleanup various declarations of 'Stmt*' to be 'Stmt *', etc. in libAnalyzer and libStaticAnalyzer[*]. It was highly inconsistent, and very ugly to look at. 2011-08-12 23:37:29 +00:00
BugReporter.cpp [analyzer] Fix another use of the address of a temporary, like r163402. 2012-09-12 22:48:08 +00:00
BugReporterVisitors.cpp [analyzer] Teach UndefOrNullArgVisitor to track parent regions. 2012-09-12 22:57:30 +00:00
CMakeLists.txt Remove ProgramState::getSymVal(). It was being misused by Checkers, 2012-09-07 22:31:01 +00:00
CallEvent.cpp [analyzer] Do not report use of undef on "return foo();" when the return type is void. 2012-09-12 22:57:40 +00:00
Checker.cpp Reapply r149311 which I reverted by mistake. 2012-01-31 02:23:28 +00:00
CheckerContext.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
CheckerHelpers.cpp Split 'include/clang/StaticAnalyzer' into 'include/clang/StaticAnalyzer/Core' and 'include/clang/StaticAnalyzer/Checkers'. 2011-02-10 01:03:03 +00:00
CheckerManager.cpp [analyzer] Use the common evalBind infrastructure for initializers. 2012-08-25 01:06:23 +00:00
CheckerRegistry.cpp Revert my patches which removed Diagnostic.h includes by moving some operator overloads out of line. 2012-02-07 22:29:24 +00:00
ConstraintManager.cpp Remove ProgramState::getSymVal(). It was being misused by Checkers, 2012-09-07 22:31:01 +00:00
CoreEngine.cpp [analyzer] Use cast<> instead of getAs<> for a CFGElement known to be a CFGStmt. 2012-09-07 19:48:09 +00:00
Environment.cpp Dont cast away const needlessly. Found by gcc48 -Wcast-qual. 2012-09-06 15:59:27 +00:00
ExplodedGraph.cpp [analyzer] Explain why we need condition 8. 2012-09-07 16:22:09 +00:00
ExprEngine.cpp Refactor logic in ExprEngine for detecting 'noreturn' methods 2012-09-13 00:21:31 +00:00
ExprEngineC.cpp [analyzer] Fix a crash PR13762. 2012-09-05 22:31:58 +00:00
ExprEngineCXX.cpp [analyzer] Cast the result of a placement new-expression to the correct type. 2012-09-08 01:24:38 +00:00
ExprEngineCallAndReturn.cpp [analyzer] Do not count calls to small functions when computing stack 2012-09-10 23:35:11 +00:00
ExprEngineObjC.cpp Refactor logic in ExprEngine for detecting 'noreturn' methods 2012-09-13 00:21:31 +00:00
FunctionSummary.cpp [analyzer] Record the basic blocks covered by the analyzes run. 2012-04-03 02:05:47 +00:00
HTMLDiagnostics.cpp Split library clangRewrite into clangRewriteCore and clangRewriteFrontend. 2012-09-01 05:09:24 +00:00
Makefile
MemRegion.cpp [analyzer] Teach the analyzer about implicit initialization of statics 2012-09-17 19:13:56 +00:00
PathDiagnostic.cpp Fix another case where we should be using isBeforeInTranslationUnit(). 2012-09-10 19:07:56 +00:00
PlistDiagnostics.cpp Indent the "message" key in analyzer plist output. 2012-09-10 06:19:43 +00:00
ProgramState.cpp Revert "[analyzer] Remove constraints on dead symbols as part of removeDeadBindings." 2012-09-20 01:54:56 +00:00
RangeConstraintManager.cpp Remove ConstraintManager:isEqual(). It is no longer used. 2012-09-07 22:24:18 +00:00
RegionStore.cpp [analyzer] Symbolic regions are live if any subregions are live. 2012-09-08 01:24:49 +00:00
SValBuilder.cpp Rename 'getConjuredSymbol*' to 'conjureSymbol*'. 2012-08-22 06:26:06 +00:00
SVals.cpp [analyzer] Teach the analyzer about implicit initialization of statics 2012-09-17 19:13:56 +00:00
SimpleConstraintManager.cpp Remove ProgramState::getSymVal(). It was being misused by Checkers, 2012-09-07 22:31:01 +00:00
SimpleConstraintManager.h [analyzer] Rework both constraint managers to handle mixed-type comparisons. 2012-05-08 03:27:16 +00:00
SimpleSValBuilder.cpp Remove ProgramState::getSymVal(). It was being misused by Checkers, 2012-09-07 22:31:01 +00:00
Store.cpp [analyzer] A CXXBaseObjectRegion should correspond to a DIRECT base. 2012-08-09 21:24:02 +00:00
SubEngine.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
SymbolManager.cpp Revert "[analyzer] Remove constraints on dead symbols as part of removeDeadBindings." 2012-09-20 01:54:56 +00:00
TextPathDiagnostics.cpp [analyzer] Ensure that PathDiagnostics profile the same regardless of path. 2012-08-31 00:36:26 +00:00