Fix Memcheck: the 'impossible' happened: unexpected size for Addr (OSX/wine)
bz#347988
== 345929
On OS X 10.10
Before:
== 592 tests, 222 stderr failures, 14 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==
After:
== 592 tests, 222 stderr failures, 14 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15391 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/NEWS b/NEWS
index 786b9f4..9bbb318 100644
--- a/NEWS
+++ b/NEWS
@@ -234,6 +234,8 @@
347978 Remove bash dependencies where not needed
347982 Fix undefined symbols for architecture x86_64: "_global", referenced from:
_test_so_global in tls_so-tls_so.o
+347988 Fix Memcheck: the 'impossible' happened: unexpected size for Addr (OSX/wine)
+ == 345929
348102 Patch updating v4l2 API support
348247 jno jumps wrongly when overflow is not set
348565 Fix detection of command line option availability for clang
diff --git a/memcheck/mc_errors.c b/memcheck/mc_errors.c
index 5781b80..4d8e863 100644
--- a/memcheck/mc_errors.c
+++ b/memcheck/mc_errors.c
@@ -1256,13 +1256,13 @@
CoreMemSupp, // Memory errors in core (pthread ops, signal handling)
// Undefined value errors of given size
- Value1Supp, Value2Supp, Value4Supp, Value8Supp, Value16Supp,
+ Value1Supp, Value2Supp, Value4Supp, Value8Supp, Value16Supp, Value32Supp,
// Undefined value error in conditional.
CondSupp,
// Unaddressable read/write attempt at given size
- Addr1Supp, Addr2Supp, Addr4Supp, Addr8Supp, Addr16Supp,
+ Addr1Supp, Addr2Supp, Addr4Supp, Addr8Supp, Addr16Supp, Addr32Supp,
JumpSupp, // Jump to unaddressable target
FreeSupp, // Invalid or mismatching free
@@ -1285,6 +1285,7 @@
else if (VG_STREQ(name, "Addr4")) skind = Addr4Supp;
else if (VG_STREQ(name, "Addr8")) skind = Addr8Supp;
else if (VG_STREQ(name, "Addr16")) skind = Addr16Supp;
+ else if (VG_STREQ(name, "Addr32")) skind = Addr32Supp;
else if (VG_STREQ(name, "Jump")) skind = JumpSupp;
else if (VG_STREQ(name, "Free")) skind = FreeSupp;
else if (VG_STREQ(name, "Leak")) skind = LeakSupp;
@@ -1297,6 +1298,7 @@
else if (VG_STREQ(name, "Value4")) skind = Value4Supp;
else if (VG_STREQ(name, "Value8")) skind = Value8Supp;
else if (VG_STREQ(name, "Value16")) skind = Value16Supp;
+ else if (VG_STREQ(name, "Value32")) skind = Value32Supp;
else if (VG_STREQ(name, "FishyValue")) skind = FishyValueSupp;
else
return False;
@@ -1413,6 +1415,7 @@
case Value4Supp: su_szB = 4; goto value_case;
case Value8Supp: su_szB = 8; goto value_case;
case Value16Supp:su_szB =16; goto value_case;
+ case Value32Supp:su_szB =32; goto value_case;
value_case:
return (ekind == Err_Value && extra->Err.Value.szB == su_szB);
@@ -1424,6 +1427,7 @@
case Addr4Supp: su_szB = 4; goto addr_case;
case Addr8Supp: su_szB = 8; goto addr_case;
case Addr16Supp:su_szB =16; goto addr_case;
+ case Addr32Supp:su_szB =32; goto addr_case;
addr_case:
return (ekind == Err_Addr && extra->Err.Addr.szB == su_szB);
@@ -1495,6 +1499,7 @@
case 4: return "Addr4";
case 8: return "Addr8";
case 16: return "Addr16";
+ case 32: return "Addr32";
default: VG_(tool_panic)("unexpected size for Addr");
}
}
@@ -1506,6 +1511,7 @@
case 4: return "Value4";
case 8: return "Value8";
case 16: return "Value16";
+ case 32: return "Value32";
default: VG_(tool_panic)("unexpected size for Value");
}
}