]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
deltaIRExpr cannot handle Iex_VECRET and Iex_BBPTR and
authorFlorian Krohm <florian@eich-krohm.de>
Tue, 3 Sep 2013 21:48:02 +0000 (21:48 +0000)
committerFlorian Krohm <florian@eich-krohm.de>
Tue, 3 Sep 2013 21:48:02 +0000 (21:48 +0000)
needs to be guarded.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2750

VEX/priv/ir_opt.c

index 5982495e9441b635905afdb4c2735e9388ed336e..b36c2d5a4c78a9e5234ee9614cd22cc9efddb5ad 100644 (file)
@@ -4457,8 +4457,11 @@ static void deltaIRStmt ( IRStmt* st, Int delta )
       case Ist_Dirty:
          d = st->Ist.Dirty.details;
          deltaIRExpr(d->guard, delta);
-         for (i = 0; d->args[i]; i++)
-            deltaIRExpr(d->args[i], delta);
+         for (i = 0; d->args[i]; i++) {
+            IRExpr* arg = d->args[i];
+            if (LIKELY(!is_IRExpr_VECRET_or_BBPTR(arg)))
+               deltaIRExpr(arg, delta);
+         }
          if (d->tmp != IRTemp_INVALID)
             d->tmp += delta;
          if (d->mAddr)