From: Florian Krohm Date: Tue, 16 Sep 2014 22:33:52 +0000 (+0000) Subject: Couple of fixes: X-Git-Tag: svn/VALGRIND_3_11_0^2~198 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0f1ed68f4d5c06cb6fbecb6fbcafb92b11b0fe60;p=thirdparty%2Fvalgrind.git Couple of fixes: - deepCopyIRConst failed to copy Ico_V256 constants - deepCopyIRExpr did not copy Iex_Binder expressions - handle_gets_Stmt should also handle an Ist_Put statement git-svn-id: svn://svn.valgrind.org/vex/trunk@2953 --- diff --git a/VEX/priv/ir_defs.c b/VEX/priv/ir_defs.c index 5b840b9867..80d273c1be 100644 --- a/VEX/priv/ir_defs.c +++ b/VEX/priv/ir_defs.c @@ -2231,6 +2231,7 @@ IRConst* deepCopyIRConst ( IRConst* c ) case Ico_F64: return IRConst_F64(c->Ico.F64); case Ico_F64i: return IRConst_F64i(c->Ico.F64i); case Ico_V128: return IRConst_V128(c->Ico.V128); + case Ico_V256: return IRConst_V256(c->Ico.V256); default: vpanic("deepCopyIRConst"); } } @@ -2303,6 +2304,9 @@ IRExpr* deepCopyIRExpr ( IRExpr* e ) case Iex_BBPTR: return IRExpr_BBPTR(); + case Iex_Binder: + return IRExpr_Binder(e->Iex.Binder.binder); + default: vpanic("deepCopyIRExpr"); } diff --git a/VEX/priv/ir_opt.c b/VEX/priv/ir_opt.c index 817f270374..d132efca27 100644 --- a/VEX/priv/ir_opt.c +++ b/VEX/priv/ir_opt.c @@ -803,6 +803,10 @@ static void handle_gets_Stmt ( vassert(isIRAtom(st->Ist.Exit.guard)); break; + case Ist_Put: + vassert(isIRAtom(st->Ist.Put.data)); + break; + case Ist_PutI: vassert(isIRAtom(st->Ist.PutI.details->ix)); vassert(isIRAtom(st->Ist.PutI.details->data)); @@ -849,9 +853,10 @@ static void handle_gets_Stmt ( env->inuse[j] = False; } break; - default: + case VexRegUpdAllregsAtEachInsn: // VexRegUpdAllregsAtEachInsn cannot happen here. - // Neither any rubbish other value. + // fall through + default: vassert(0); } } /* if (memRW) */