++/-- makes a variable live since it is used; thus the liveness state is

"Alive" as opposed to staying the same.

llvm-svn: 49707
This commit is contained in:
Ted Kremenek
2008-04-15 04:08:54 +00:00
parent 044eb055af
commit cd76f95dd0

View File

@@ -114,10 +114,10 @@ void TransferFuncs::VisitUnaryOperator(UnaryOperator* U) {
// until we either find a DeclRefExpr or some non-DeclRefExpr
// expression.
if (DeclRefExpr* DR = dyn_cast<DeclRefExpr>(E->IgnoreParens()))
if (isa<VarDecl>(DR->getDecl())) {
// Treat the --/++ operator as a kill. Note that the variable
// is still live, just its value has been changed.
if (VarDecl* VD = dyn_cast<VarDecl>(DR->getDecl())) {
// Treat the --/++ operator as a kill.
if (AD.Observer) { AD.Observer->ObserverKill(DR); }
LiveState(VD, AD) = Alive;
return VisitDeclRefExpr(DR);
}