Revert "[analyzer] Remove constraints on dead symbols as part of removeDeadBindings."
authorJordan Rose <jordan_rose@apple.com>
Thu, 20 Sep 2012 01:54:56 +0000 (01:54 +0000)
committerJordan Rose <jordan_rose@apple.com>
Thu, 20 Sep 2012 01:54:56 +0000 (01:54 +0000)
commitae134c64494af5bce1414e754fad0d8b5f99ee33
tree535c7cfc45b95d5fa56dc34e8b368785eab378ee
parent8f5e9830297c8148827dc46d759d59b9093407dd
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
clang/lib/StaticAnalyzer/Core/ProgramState.cpp
clang/lib/StaticAnalyzer/Core/SymbolManager.cpp
clang/test/Analysis/traversal-path-unification.c [deleted file]