diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-04-07 05:25:24 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-04-07 05:25:24 +0000 |
commit | f96f16d9f529ec95c20b9a91405653554e9646d1 (patch) | |
tree | 5b008bf7bbf68cc19f85c0e25141247f34c8d149 /lib/Analysis/LiveVariables.cpp | |
parent | 2ec926cce387e2f2fc8b00620af5a70e823d71e8 (diff) |
Remove hack from LiveVariables analysis where variables whose address are taken
are considered 'live'. This hack isn't needed anymore because we have a
separation in the path-sensitive analyzer between variable names and bindings;
the analyzer can continue to reason about the storage of a variable after its
name is no longer directly referenced. Now the live variables analysis literally means "is this name live".
Along this line, update the dead stores checker to explicitly look for variables
whose values have escaped.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68504 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/LiveVariables.cpp')
-rw-r--r-- | lib/Analysis/LiveVariables.cpp | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/lib/Analysis/LiveVariables.cpp b/lib/Analysis/LiveVariables.cpp index b8b0aaca18..b0eb37b065 100644 --- a/lib/Analysis/LiveVariables.cpp +++ b/lib/Analysis/LiveVariables.cpp @@ -74,28 +74,10 @@ public: AlwaysLive.push_back(VD); } - void VisitUnaryOperator(UnaryOperator* U) { - // Check for '&'. Any VarDecl whose value has its address-taken we - // treat as always being live (flow-insensitive). - - Expr* E = U->getSubExpr()->IgnoreParenCasts(); - - if (U->getOpcode() == UnaryOperator::AddrOf) - if (DeclRefExpr* DR = dyn_cast<DeclRefExpr>(E)) - if (VarDecl* VD = dyn_cast<VarDecl>(DR->getDecl())) { - AD.Register(VD); - AlwaysLive.push_back(VD); - return; - } - - Visit(E); - } - CFG& getCFG() { return AD.getCFG(); } }; } // end anonymous namespace - LiveVariables::LiveVariables(ASTContext& Ctx, CFG& cfg) { // Register all referenced VarDecls. getAnalysisData().setCFG(cfg); |