From: Julian Seward Date: Sun, 28 Nov 2004 14:25:01 +0000 (+0000) Subject: Build fixes for gcc-2.95. X-Git-Tag: svn/VALGRIND_3_0_0~1186 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=798a984ceaca05bb02dc8910898c6a8bf6594c54;p=thirdparty%2Fvalgrind.git Build fixes for gcc-2.95. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3132 --- diff --git a/coregrind/vg_translate.c b/coregrind/vg_translate.c index e116ae6d3d..84e7bb427f 100644 --- a/coregrind/vg_translate.c +++ b/coregrind/vg_translate.c @@ -58,11 +58,14 @@ static IRBB* vg_SP_update_pass ( IRBB* bb_in, VexGuestLayout* layout, IRType hWordTy ) { - Int i, j, minoff_ST, maxoff_ST; + Int i, j, minoff_ST, maxoff_ST, sizeof_SP, offset_SP; IRDirty *dcall, *d; IRStmt* st; IRExpr* e; IRArray* descr; + IRTemp curr; + IRType typeof_SP; + Long delta; /* Set up BB */ IRBB* bb = emptyIRBB(); @@ -70,12 +73,12 @@ IRBB* vg_SP_update_pass ( IRBB* bb_in, VexGuestLayout* layout, bb->next = dopyIRExpr(bb_in->next); bb->jumpkind = bb_in->jumpkind; - IRTemp curr = IRTemp_INVALID; - Long delta = 0; + curr = IRTemp_INVALID; + delta = 0; - Int sizeof_SP = layout->sizeof_SP; - Int offset_SP = layout->offset_SP; - IRType typeof_SP = sizeof_SP==4 ? Ity_I32 : Ity_I64; + sizeof_SP = layout->sizeof_SP; + offset_SP = layout->offset_SP; + typeof_SP = sizeof_SP==4 ? Ity_I32 : Ity_I64; vg_assert(sizeof_SP == 4 || sizeof_SP == 8); # define IS_ADD(op) (sizeof_SP==4 ? ((op)==Iop_Add32) : ((op)==Iop_Add64)) diff --git a/memcheck/mc_translate.c b/memcheck/mc_translate.c index 85859edc6b..492cd3a8b3 100644 --- a/memcheck/mc_translate.c +++ b/memcheck/mc_translate.c @@ -406,11 +406,13 @@ static IRAtom* mkImproveOR32 ( MCEnv* mce, IRAtom* data, IRAtom* vbits ) static IRAtom* mkPCastTo( MCEnv* mce, IRType dst_ty, IRAtom* vbits ) { + IRType ty; + IRAtom* tmp1; /* Note, dst_ty is a shadow type, not an original type. */ /* First of all, collapse vbits down to a single bit. */ tl_assert(isShadowAtom(mce,vbits)); - IRType ty = typeOfIRExpr(mce->bb->tyenv, vbits); - IRAtom* tmp1 = NULL; + ty = typeOfIRExpr(mce->bb->tyenv, vbits); + tmp1 = NULL; switch (ty) { case Ity_I1: tmp1 = vbits; @@ -482,24 +484,29 @@ static void setHelperAnns ( MCEnv* mce, IRDirty* di ) { */ static void complainIfUndefined ( MCEnv* mce, IRAtom* atom ) { + IRAtom* vatom; + IRType ty; + Int sz; + IRDirty* di; + IRAtom* cond; + /* Since the original expression is atomic, there's no duplicated work generated by making multiple V-expressions for it. So we don't really care about the possibility that someone else may also create a V-interpretion for it. */ tl_assert(isOriginalAtom(mce, atom)); - IRAtom* vatom = expr2vbits( mce, atom ); + vatom = expr2vbits( mce, atom ); tl_assert(isShadowAtom(mce, vatom)); tl_assert(sameKindedAtoms(atom, vatom)); - IRType ty = typeOfIRExpr(mce->bb->tyenv, vatom); + ty = typeOfIRExpr(mce->bb->tyenv, vatom); /* sz is only used for constructing the error message */ - Int sz = ty==Ity_I1 ? 0 : sizeofIRType(ty); + sz = ty==Ity_I1 ? 0 : sizeofIRType(ty); - IRAtom* cond = mkPCastTo( mce, Ity_I1, vatom ); + cond = mkPCastTo( mce, Ity_I1, vatom ); /* cond will be 0 if all defined, and 1 if any not defined. */ - IRDirty* di; switch (sz) { case 0: di = unsafeIRDirty_0_N( 0/*regparms*/, @@ -592,6 +599,7 @@ static void do_shadow_PUT ( MCEnv* mce, Int offset, IRAtom* atom, IRAtom* vatom ) { + IRType ty; if (atom) { tl_assert(!vatom); tl_assert(isOriginalAtom(mce, atom)); @@ -601,7 +609,7 @@ void do_shadow_PUT ( MCEnv* mce, Int offset, tl_assert(isShadowAtom(mce, vatom)); } - IRType ty = typeOfIRExpr(mce->bb->tyenv, vatom); + ty = typeOfIRExpr(mce->bb->tyenv, vatom); tl_assert(ty != Ity_I1); if (isAlwaysDefd(mce, offset, sizeofIRType(ty))) { /* later: no ... */ @@ -621,12 +629,16 @@ static void do_shadow_PUTI ( MCEnv* mce, IRArray* descr, IRAtom* ix, Int bias, IRAtom* atom ) { + IRAtom* vatom; + IRType ty, tyS; + Int arrSize;; + tl_assert(isOriginalAtom(mce,atom)); - IRAtom* vatom = expr2vbits( mce, atom ); + vatom = expr2vbits( mce, atom ); tl_assert(sameKindedAtoms(atom, vatom)); - IRType ty = descr->elemTy; - IRType tyS = shadowType(ty); - Int arrSize = descr->nElems * sizeofIRType(ty); + ty = descr->elemTy; + tyS = shadowType(ty); + arrSize = descr->nElems * sizeofIRType(ty); tl_assert(ty != Ity_I1); tl_assert(isOriginalAtom(mce,ix)); complainIfUndefined(mce,ix); @@ -753,6 +765,10 @@ static IRAtom* expensiveAdd32 ( MCEnv* mce, IRAtom* qaa, IRAtom* qbb, IRAtom* aa, IRAtom* bb ) { + IRAtom *a_min, *b_min, *a_max, *b_max; + IRType ty; + IROp opAND, opOR, opXOR, opNOT, opADD; + tl_assert(isShadowAtom(mce,qaa)); tl_assert(isShadowAtom(mce,qbb)); tl_assert(isOriginalAtom(mce,aa)); @@ -760,14 +776,12 @@ IRAtom* expensiveAdd32 ( MCEnv* mce, IRAtom* qaa, IRAtom* qbb, tl_assert(sameKindedAtoms(qaa,aa)); tl_assert(sameKindedAtoms(qbb,bb)); - IRType ty = Ity_I32; - IROp opAND = Iop_And32; - IROp opOR = Iop_Or32; - IROp opXOR = Iop_Xor32; - IROp opNOT = Iop_Not32; - IROp opADD = Iop_Add32; - - IRAtom *a_min, *b_min, *a_max, *b_max; + ty = Ity_I32; + opAND = Iop_And32; + opOR = Iop_Or32; + opXOR = Iop_Xor32; + opNOT = Iop_Not32; + opADD = Iop_Add32; // a_min = aa & ~qaa a_min = assignNew(mce,ty, @@ -1084,10 +1098,12 @@ IRAtom* expr2vbits_LDle ( MCEnv* mce, IRType ty, IRAtom* addr, UInt bias ) if (bias == 0) { addrAct = addr; } else { + IROp mkAdd; + IRAtom* eBias; IRType tyAddr = mce->hWordTy; tl_assert( tyAddr == Ity_I32 || tyAddr == Ity_I64 ); - IROp mkAdd = tyAddr==Ity_I32 ? Iop_Add32 : Iop_Add64; - IRAtom* eBias = tyAddr==Ity_I32 ? mkU32(bias) : mkU64(bias); + mkAdd = tyAddr==Ity_I32 ? Iop_Add32 : Iop_Add64; + eBias = tyAddr==Ity_I32 ? mkU32(bias) : mkU64(bias); addrAct = assignNew(mce, tyAddr, binop(mkAdd, addr, eBias) ); } @@ -1189,11 +1205,13 @@ IRExpr* expr2vbits ( MCEnv* mce, IRExpr* e ) static IRExpr* zwidenToHostWord ( MCEnv* mce, IRAtom* vatom ) { + IRType ty, tyH; + /* vatom is vbits-value and as such can only have a shadow type. */ tl_assert(isShadowAtom(mce,vatom)); - IRType ty = typeOfIRExpr(mce->bb->tyenv, vatom); - IRType tyH = mce->hWordTy; + ty = typeOfIRExpr(mce->bb->tyenv, vatom); + tyH = mce->hWordTy; if (tyH == Ity_I32) { switch (ty) { @@ -1266,10 +1284,12 @@ void do_shadow_STle ( MCEnv* mce, if (bias == 0) { addrAct = addr; } else { + IROp mkAdd; + IRAtom* eBias; IRType tyAddr = mce->hWordTy; tl_assert( tyAddr == Ity_I32 || tyAddr == Ity_I64 ); - IROp mkAdd = tyAddr==Ity_I32 ? Iop_Add32 : Iop_Add64; - IRAtom* eBias = tyAddr==Ity_I32 ? mkU32(bias) : mkU64(bias); + mkAdd = tyAddr==Ity_I32 ? Iop_Add32 : Iop_Add64; + eBias = tyAddr==Ity_I32 ? mkU32(bias) : mkU64(bias); addrAct = assignNew(mce, tyAddr, binop(mkAdd, addr, eBias) ); } @@ -1310,7 +1330,7 @@ static void do_shadow_Dirty ( MCEnv* mce, IRDirty* d ) { Int i, offset, toDo; - IRAtom* src; + IRAtom *src, *here, *curr; IRType tyAddr, tySrc, tyDst; IRTemp dst; @@ -1318,8 +1338,7 @@ void do_shadow_Dirty ( MCEnv* mce, IRDirty* d ) complainIfUndefined(mce, d->guard); /* Now round up all inputs and PCast over them. */ - IRAtom* here; - IRAtom* curr = definedOfType(Ity_I32); + curr = definedOfType(Ity_I32); /* Inputs: unmasked args */ for (i = 0; d->args[i]; i++) {