]> git.pld-linux.org Git - packages/valgrind.git/commitdiff
- implement DWARF comparison and shift operators; fixed: auto/th/valgrind-3_6_1-2
authorKarol Krenski <charles@pld-linux.org>
Fri, 5 Aug 2011 19:10:43 +0000 (19:10 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
  Warning: DWARF2 CFI reader: unhandled DW_OP_ opcode 0x2a
  m_debuginfo/readdwarf.c:2338 (copy_convert_CfiExpr_tree): Assertion 'srcix >= 0 && srcix < VG_(sizeXA)(srcxa)' failed.

Changed files:
    valgrind-opge.patch -> 1.1

valgrind-opge.patch [new file with mode: 0644]

diff --git a/valgrind-opge.patch b/valgrind-opge.patch
new file mode 100644 (file)
index 0000000..331025a
--- /dev/null
@@ -0,0 +1,78 @@
+--- valgrind-3.6.1/coregrind/m_debuginfo/debuginfo.c.orig   2010-10-20 22:19:43.000000000 +0200
++++ valgrind-3.6.1/coregrind/m_debuginfo/debuginfo.c   2011-08-03 01:18:33.724000500 +0200
+@@ -1958,6 +1958,14 @@
+             case Cop_Sub: return wL - wR;
+             case Cop_And: return wL & wR;
+             case Cop_Mul: return wL * wR;
++            case Cop_Shl: return wL << wR;
++            case Cop_Shr: return wL >> wR;
++            case Cop_Eq: return wL == wR ? 1 : 0;
++            case Cop_Ge: return (Word) wL >= (Word) wR ? 1 : 0;
++            case Cop_Gt: return (Word) wL > (Word) wR ? 1 : 0;
++            case Cop_Le: return (Word) wL <= (Word) wR ? 1 : 0;
++            case Cop_Lt: return (Word) wL < (Word) wR ? 1 : 0;
++            case Cop_Ne: return wL != wR ? 1 : 0;
+             default: goto unhandled;
+          }
+          /*NOTREACHED*/
+--- valgrind-3.6.1/coregrind/m_debuginfo/priv_storage.h.orig   2010-10-20 22:19:43.000000000 +0200
++++ valgrind-3.6.1/coregrind/m_debuginfo/priv_storage.h        2011-08-03 01:09:29.536000499 +0200
+@@ -218,7 +218,15 @@
+       Cop_Add=0x321,
+       Cop_Sub,
+       Cop_And,
+-      Cop_Mul
++      Cop_Mul,
++      Cop_Shl,
++      Cop_Shr,
++      Cop_Eq,
++      Cop_Ge,
++      Cop_Gt,
++      Cop_Le,
++      Cop_Lt,
++      Cop_Ne
+    }
+    CfiOp;
+--- valgrind-3.6.1/coregrind/m_debuginfo/readdwarf.c.orig      2010-10-20 22:19:43.000000000 +0200
++++ valgrind-3.6.1/coregrind/m_debuginfo/readdwarf.c   2011-08-03 01:09:29.533000512 +0200
+@@ -2831,6 +2831,22 @@
+             op = Cop_And; opname = "and"; goto binop;
+          case DW_OP_mul:
+             op = Cop_Mul; opname = "mul"; goto binop;
++         case DW_OP_shl:
++            op = Cop_Shl; opname = "shl"; goto binop;
++         case DW_OP_shr:
++            op = Cop_Shr; opname = "shr"; goto binop;
++         case DW_OP_eq:
++            op = Cop_Eq; opname = "eq"; goto binop;
++         case DW_OP_ge:
++            op = Cop_Ge; opname = "ge"; goto binop;
++         case DW_OP_gt:
++            op = Cop_Gt; opname = "gt"; goto binop;
++         case DW_OP_le:
++            op = Cop_Le; opname = "le"; goto binop;
++         case DW_OP_lt:
++            op = Cop_Lt; opname = "lt"; goto binop;
++         case DW_OP_ne:
++            op = Cop_Ne; opname = "ne"; goto binop;
+          binop:
+             POP( ix );
+             POP( ix2 );
+--- valgrind-3.6.1/coregrind/m_debuginfo/storage.c.orig        2010-10-20 22:19:43.000000000 +0200
++++ valgrind-3.6.1/coregrind/m_debuginfo/storage.c     2011-08-03 01:09:29.535000503 +0200
+@@ -595,6 +595,14 @@
+       case Cop_Sub: VG_(printf)("-"); break;
+       case Cop_And: VG_(printf)("&"); break;
+       case Cop_Mul: VG_(printf)("*"); break;
++      case Cop_Shl: VG_(printf)("<<"); break;
++      case Cop_Shr: VG_(printf)(">>"); break;
++      case Cop_Eq: VG_(printf)("=="); break;
++      case Cop_Ge: VG_(printf)(">="); break;
++      case Cop_Gt: VG_(printf)(">"); break;
++      case Cop_Le: VG_(printf)("<="); break;
++      case Cop_Lt: VG_(printf)("<"); break;
++      case Cop_Ne: VG_(printf)("!="); break;
+       default:      vg_assert(0);
+    }
+ }
This page took 0.124558 seconds and 4 git commands to generate.