From: Nicholas Nethercote Date: Thu, 12 Jun 2003 09:58:41 +0000 (+0000) Subject: Added support for Value16 and Addr16 error suppressions. X-Git-Tag: svn/VALGRIND_2_0_0~107 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=36bbb353072dd1f496f699ff1efe49c3112d0e57;p=thirdparty%2Fvalgrind.git Added support for Value16 and Addr16 error suppressions. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1677 --- diff --git a/glibc-2.1.supp b/glibc-2.1.supp index d81340ddc4..64e809b1e4 100644 --- a/glibc-2.1.supp +++ b/glibc-2.1.supp @@ -15,8 +15,8 @@ # # For Memcheck, the supp_kinds are: # -# Param Value1 Value2 Value4 Value8 -# Free Addr1 Addr2 Addr4 Addr8 +# Param Value1 Value2 Value4 Value8 Value16 +# Free Addr1 Addr2 Addr4 Addr8 Addr16 # Cond (previously known as Value0) # # and the optional extra info is: diff --git a/glibc-2.2.supp b/glibc-2.2.supp index 52de819609..189aa65bfc 100644 --- a/glibc-2.2.supp +++ b/glibc-2.2.supp @@ -16,8 +16,8 @@ # # For Memcheck, the supp_kinds are: # -# Param Value1 Value2 Value4 Value8 -# Free Addr1 Addr2 Addr4 Addr8 +# Param Value1 Value2 Value4 Value8 Value16 +# Free Addr1 Addr2 Addr4 Addr8 Addr16 # Cond (previously known as Value0) # # and the optional extra info is: diff --git a/glibc-2.3.supp b/glibc-2.3.supp index 24b5ac0501..2ba5c1665f 100644 --- a/glibc-2.3.supp +++ b/glibc-2.3.supp @@ -16,8 +16,8 @@ # # For Memcheck, the supp_kinds are: # -# Param Value1 Value2 Value4 Value8 -# Free Addr1 Addr2 Addr4 Addr8 +# Param Value1 Value2 Value4 Value8 Value16 +# Free Addr1 Addr2 Addr4 Addr8 Addr16 # Cond (previously known as Value0) # # and the optional extra info is: diff --git a/linux22.supp b/linux22.supp index 3210817b9f..1d566928ef 100644 --- a/linux22.supp +++ b/linux22.supp @@ -17,8 +17,8 @@ # # For Memcheck, the supp_kinds are: # -# Param Value1 Value2 Value4 Value8 -# Free Addr1 Addr2 Addr4 Addr8 +# Param Value1 Value2 Value4 Value8 Value16 +# Free Addr1 Addr2 Addr4 Addr8 Addr16 # Cond (previously known as Value0) # # and the optional extra info is: diff --git a/linux24.supp b/linux24.supp index 37e56481b7..58a88f05b9 100644 --- a/linux24.supp +++ b/linux24.supp @@ -17,8 +17,8 @@ # # For memcheck, the supp_kinds are: # -# Param Value1 Value2 Value4 Value8 -# Free Addr1 Addr2 Addr4 Addr8 +# Param Value1 Value2 Value4 Value8 Value16 +# Free Addr1 Addr2 Addr4 Addr8 Addr16 # Cond (previously known as Value0) # # and the optional extra info is: diff --git a/memcheck/docs/mc_main.html b/memcheck/docs/mc_main.html index 5330650a90..d7519506f1 100644 --- a/memcheck/docs/mc_main.html +++ b/memcheck/docs/mc_main.html @@ -391,18 +391,21 @@ Memcheck,Addrcheck:suppression_type The Memcheck suppression types are as follows: Value1, Value2, -Value4 or +Value4, Value8, +Value16, meaning an uninitialised-value error when -using a value of 1, 2, 4 or 8 bytes. +using a value of 1, 2, 4, 8 or 16 bytes. Or Cond (or its old name, Value0), meaning use of an uninitialised CPU condition code. Or: Addr1, Addr2, -Addr4 or -Addr8, meaning an invalid address during a -memory access of 1, 2, 4 or 8 bytes respectively. Or +Addr4, +Addr8, +Addr16, +meaning an invalid address during a +memory access of 1, 2, 4, 8 or 16 bytes respectively. Or Param, meaning an invalid system call parameter error. Or Free, meaning an invalid or mismatching free. diff --git a/memcheck/mac_needs.c b/memcheck/mac_needs.c index b48765c56f..1713bfd789 100644 --- a/memcheck/mac_needs.c +++ b/memcheck/mac_needs.c @@ -497,6 +497,7 @@ Bool MAC_(shared_recognised_suppression) ( Char* name, Supp* su ) else if (VG_STREQ(name, "Addr2")) skind = Addr2Supp; 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, "Free")) skind = FreeSupp; else if (VG_STREQ(name, "Leak")) skind = LeakSupp; else @@ -540,6 +541,7 @@ Bool SK_(error_matches_suppression)(Error* err, Supp* su) case Value2Supp: su_size = 2; goto value_case; case Value4Supp: su_size = 4; goto value_case; case Value8Supp: su_size = 8; goto value_case; + case Value16Supp:su_size =16; goto value_case; value_case: return (ekind == ValueErr && err_extra->size == su_size); @@ -547,6 +549,7 @@ Bool SK_(error_matches_suppression)(Error* err, Supp* su) case Addr2Supp: su_size = 2; goto addr_case; case Addr4Supp: su_size = 4; goto addr_case; case Addr8Supp: su_size = 8; goto addr_case; + case Addr16Supp:su_size =16; goto addr_case; addr_case: return (ekind == AddrErr && err_extra->size == su_size); @@ -582,6 +585,7 @@ Char* SK_(get_error_name) ( Error* err ) case 2: return "Addr2"; case 4: return "Addr4"; case 8: return "Addr8"; + case 16: return "Addr16"; default: VG_(skin_panic)("unexpected size for Addr"); } @@ -592,6 +596,7 @@ Char* SK_(get_error_name) ( Error* err ) case 2: return "Value2"; case 4: return "Value4"; case 8: return "Value8"; + case 16: return "Value16"; default: VG_(skin_panic)("unexpected size for Value"); } case CoreMemErr: return "CoreMem"; diff --git a/memcheck/mac_shared.h b/memcheck/mac_shared.h index ff1cea3f44..2beb31e043 100644 --- a/memcheck/mac_shared.h +++ b/memcheck/mac_shared.h @@ -80,9 +80,9 @@ typedef /* Memory errors in core (pthread ops, signal handling) */ CoreMemSupp, /* Use of invalid values of given size (MemCheck only) */ - Value0Supp, Value1Supp, Value2Supp, Value4Supp, Value8Supp, + Value0Supp, Value1Supp, Value2Supp, Value4Supp, Value8Supp, Value16Supp, /* Invalid read/write attempt at given size */ - Addr1Supp, Addr2Supp, Addr4Supp, Addr8Supp, + Addr1Supp, Addr2Supp, Addr4Supp, Addr8Supp, Addr16Supp, /* Invalid or mismatching free */ FreeSupp, /* Overlapping blocks in memcpy(), strcpy(), etc */ diff --git a/memcheck/mc_errcontext.c b/memcheck/mc_errcontext.c index 934ef4e22f..a5f1ea58fb 100644 --- a/memcheck/mc_errcontext.c +++ b/memcheck/mc_errcontext.c @@ -183,6 +183,7 @@ Bool SK_(recognised_suppression) ( Char* name, Supp* su ) else if (VG_STREQ(name, "Value2")) skind = Value2Supp; 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, "Overlap")) skind = OverlapSupp; else return False; diff --git a/xfree-3.supp b/xfree-3.supp index b735b730e7..178f9ce26c 100644 --- a/xfree-3.supp +++ b/xfree-3.supp @@ -16,8 +16,8 @@ # # For Memcheck, the supp_kinds are: # -# Param Value1 Value2 Value4 Value8 -# Free Addr1 Addr2 Addr4 Addr8 +# Param Value1 Value2 Value4 Value8 Value16 +# Free Addr1 Addr2 Addr4 Addr8 Addr16 # Cond (previously known as Value0) # # and the optional extra info is: diff --git a/xfree-4.supp b/xfree-4.supp index 15f60da644..cdf5ba34d7 100644 --- a/xfree-4.supp +++ b/xfree-4.supp @@ -16,8 +16,8 @@ # # For memcheck, the supp_kinds are: # -# Param Value1 Value2 Value4 Value8 -# Free Addr1 Addr2 Addr4 Addr8 +# Param Value1 Value2 Value4 Value8 Value16 +# Free Addr1 Addr2 Addr4 Addr8 Addr16 # Cond (previously known as Value0) # # and the optional extra info is: