From: Julian Seward Date: Tue, 26 Dec 2006 03:13:14 +0000 (+0000) Subject: Merge r6374 (make User errors suppressible) X-Git-Tag: svn/VALGRIND_3_2_2~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9955cfa3734e0ed1488dcde99a4f62eed54e9aa;p=thirdparty%2Fvalgrind.git Merge r6374 (make User errors suppressible) git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_2_BRANCH@6427 --- diff --git a/memcheck/mc_main.c b/memcheck/mc_main.c index 0e3096f98c..5fcc19a774 100644 --- a/memcheck/mc_main.c +++ b/memcheck/mc_main.c @@ -2268,6 +2268,7 @@ typedef typedef enum { ParamSupp, // Bad syscall params + UserSupp, // Errors arising from client-request checks CoreMemSupp, // Memory errors in core (pthread ops, signal handling) // Use of invalid values of given size (MemCheck only) @@ -2945,6 +2946,7 @@ static Bool mc_recognised_suppression ( Char* name, Supp* su ) SuppKind skind; if (VG_STREQ(name, "Param")) skind = ParamSupp; + else if (VG_STREQ(name, "User")) skind = UserSupp; else if (VG_STREQ(name, "CoreMem")) skind = CoreMemSupp; else if (VG_STREQ(name, "Addr1")) skind = Addr1Supp; else if (VG_STREQ(name, "Addr2")) skind = Addr2Supp; @@ -2994,6 +2996,9 @@ static Bool mc_error_matches_suppression(Error* err, Supp* su) && VG_STREQ(VG_(get_error_string)(err), VG_(get_supp_string)(su))); + case UserSupp: + return (ekind == UserErr); + case CoreMemSupp: return (ekind == CoreMemErr && VG_STREQ(VG_(get_error_string)(err), @@ -3042,7 +3047,7 @@ static Char* mc_get_error_name ( Error* err ) Char* s; switch (VG_(get_error_kind)(err)) { case ParamErr: return "Param"; - case UserErr: return NULL; /* Can't suppress User errors */ + case UserErr: return "User"; case FreeMismatchErr: return "Free"; case IllegalMempoolErr: return "Mempool"; case FreeErr: return "Free";