Modified:
/trunk/valgrind/memcheck/mc_errors.c
=======================================
--- /trunk/valgrind/memcheck/mc_errors.c Tue Oct 25 09:11:36 2011
+++ /trunk/valgrind/memcheck/mc_errors.c Fri Oct 28 04:32:57 2011
@@ -1405,6 +1405,10 @@
// Unaddressable read/write attempt at given size
Addr1Supp, Addr2Supp, Addr4Supp, Addr8Supp, Addr16Supp,
+ // https://bugs.kde.org/show_bug.cgi?id=256525
+ UnaddrSupp, // Matches Addr*.
+ UninitSupp, // Matches Value*, Param and Cond.
+
JumpSupp, // Jump to unaddressable target
FreeSupp, // Invalid or mismatching free
OverlapSupp, // Overlapping blocks in memcpy(), strcpy(), etc
@@ -1437,6 +1441,12 @@
else if (VG_STREQ(name, "Value4")) skind = Value4Supp;
else if (VG_STREQ(name, "Value8")) skind = Value8Supp;
else if (VG_STREQ(name, "Value16")) skind = Value16Supp;
+ // https://bugs.kde.org/show_bug.cgi?id=256525
+ else if (VG_STREQ(name, "Unaddressable")) skind = UnaddrSupp;
+ else if (VG_STREQ(name, "Unaddr")) skind = UnaddrSupp;
+ else if (VG_STREQ(name, "Uninitialised")) skind = UninitSupp;
+ else if (VG_STREQ(name, "Uninitialized")) skind = UninitSupp;
+ else if (VG_STREQ(name, "Uninit")) skind = UninitSupp;
else
return False;
@@ -1496,6 +1506,16 @@
addr_case:
return (ekind == Err_Addr && extra->Err.Addr.szB == su_szB);
+ // https://bugs.kde.org/show_bug.cgi?id=256525
+ case UnaddrSupp:
+ return (ekind == Err_Addr ||
+ (ekind == Err_MemParam && extra->Err.MemParam.isAddrErr));
+
+ case UninitSupp:
+ return (ekind == Err_Cond || ekind == Err_Value ||
+ ekind == Err_RegParam ||
+ (ekind == Err_MemParam
&& !extra->Err.MemParam.isAddrErr));
+
case JumpSupp:
return (ekind == Err_Jump);