|
From: <sv...@va...> - 2013-09-03 21:48:11
|
florian 2013-09-03 21:48:02 +0000 (Tue, 03 Sep 2013)
New Revision: 2750
Log:
deltaIRExpr cannot handle Iex_VECRET and Iex_BBPTR and
needs to be guarded.
Modified files:
trunk/priv/ir_opt.c
Modified: trunk/priv/ir_opt.c (+5 -2)
===================================================================
--- trunk/priv/ir_opt.c 2013-09-02 15:35:58 +00:00 (rev 2749)
+++ trunk/priv/ir_opt.c 2013-09-03 21:48:02 +00:00 (rev 2750)
@@ -4457,8 +4457,11 @@
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)
|