forked from OSchip/llvm-project
Minor bug fix in LiveVariables: don't "kill" decls referenced by a DeclStmt
that aren't VarDecls. llvm-svn: 47572
This commit is contained in:
parent
8c7a9228de
commit
7845b2607a
|
@ -156,13 +156,13 @@ void TransferFuncs::VisitAssign(BinaryOperator* B) {
|
|||
void TransferFuncs::VisitDeclStmt(DeclStmt* DS) {
|
||||
// Declarations effectively "kill" a variable since they cannot
|
||||
// possibly be live before they are declared.
|
||||
for (ScopedDecl* D = DS->getDecl(); D != NULL; D = D->getNextDeclarator()) {
|
||||
LiveState(D,AD) = Dead;
|
||||
|
||||
if (VarDecl* VD = dyn_cast<VarDecl>(D))
|
||||
for (ScopedDecl* D = DS->getDecl(); D != NULL; D = D->getNextDeclarator())
|
||||
if (VarDecl* VD = dyn_cast<VarDecl>(D)) {
|
||||
LiveState(D,AD) = Dead;
|
||||
|
||||
if (Expr* Init = VD->getInit())
|
||||
Visit(Init);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // end anonymous namespace
|
||||
|
|
Loading…
Reference in New Issue