]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Couple of fixes:
authorFlorian Krohm <florian@eich-krohm.de>
Tue, 16 Sep 2014 22:33:52 +0000 (22:33 +0000)
committerFlorian Krohm <florian@eich-krohm.de>
Tue, 16 Sep 2014 22:33:52 +0000 (22:33 +0000)
- 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

VEX/priv/ir_defs.c
VEX/priv/ir_opt.c

index 5b840b9867a2878fb1f77e62afed95709e9e0212..80d273c1be8e99f5d48f5bc05f12c13f29cb2766 100644 (file)
@@ -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");
    }
index 817f270374fce374cb3e62682c229e50786662f5..d132efca272631552d335023a365533cf3d9b5e2 100644 (file)
@@ -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) */