break;
case Iex_GetI:
isGet = True;
- key = mk_key_GetIPutI ( e->Iex.GetI.minoff, e->Iex.GetI.maxoff );
+ key = mk_key_GetIPutI ( e->Iex.GetI.minoff,
+ e->Iex.GetI.maxoff );
break;
default:
isGet = False;
vassert(isAtom(st->Ist.Exit.cond));
return;
+ case Ist_PutI:
+ vassert(isAtom(st->Ist.PutI.offset));
+ vassert(isAtom(st->Ist.PutI.expr));
+ return;
+
default:
vex_printf("\n");
ppIRStmt(st);
isPut = True;
key = mk_key_GetIPutI( st->Ist.PutI.minoff,
st->Ist.PutI.maxoff );
+ vassert(isAtom(st->Ist.PutI.offset));
vassert(isAtom(st->Ist.PutI.expr));
break;
default:
isPut = False;
}
- if (isPut) {
+ if (isPut && st->tag != Ist_PutI) {
/* See if any single entry in env overlaps this Put. This is
simplistic in that the transformation is valid if, say, two
or more entries in the env overlap this Put, but the use of