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)
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;
&& 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),
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";