Reorganized error printing code slightly.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7758 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/exp-drd/drd_error.c b/exp-drd/drd_error.c
index 38e2456..4389e7b 100644
--- a/exp-drd/drd_error.c
+++ b/exp-drd/drd_error.c
@@ -39,13 +39,6 @@
#include "pub_tool_tooliface.h" // VG_(needs_tool_errors)()
-/* Local type definitions. */
-
-typedef enum {
- ConflictingAccessSupp
-} DRD_SuppKind;
-
-
/* Local variables. */
static Bool s_drd_show_conflicting_segments = True;
@@ -253,12 +246,26 @@
static Bool drd_tool_error_recog(Char* const name, Supp* const supp)
{
- SuppKind skind;
+ SuppKind skind = 0;
- if (VG_(strcmp)(name, "ConflictingAccess") == 0)
- skind = ConflictingAccessSupp;
- else if (VG_(strcmp)(name, "CondErr") == 0)
- skind = CondErr;
+ if (VG_(strcmp)(name, STR_DataRaceErr) == 0)
+ ;
+ else if (VG_(strcmp)(name, STR_MutexErr) == 0)
+ ;
+ else if (VG_(strcmp)(name, STR_CondErr) == 0)
+ ;
+ else if (VG_(strcmp)(name, STR_CondRaceErr) == 0)
+ ;
+ else if (VG_(strcmp)(name, STR_CondDestrErr) == 0)
+ ;
+ else if (VG_(strcmp)(name, STR_SemaphoreErr) == 0)
+ ;
+ else if (VG_(strcmp)(name, STR_BarrierErr) == 0)
+ ;
+ else if (VG_(strcmp)(name, STR_RwlockErr) == 0)
+ ;
+ else if (VG_(strcmp)(name, STR_GenericErr) == 0)
+ ;
else
return False;
@@ -283,15 +290,15 @@
{
switch (VG_(get_error_kind)(e))
{
- case DataRaceErr: return "ConflictingAccess";
- case MutexErr: return "MutexErr";
- case CondErr: return "CondErr";
- case CondRaceErr: return "CondRaceErr";
- case CondDestrErr: return "CondDestrErr";
- case SemaphoreErr: return "SemaphoreErr";
- case BarrierErr: return "BarrierErr";
- case RwlockErr: return "RwlockErr";
- case GenericErr: return "GenericErr";
+ case DataRaceErr: return VGAPPEND(STR_, DataRaceErr);
+ case MutexErr: return VGAPPEND(STR_, MutexErr);
+ case CondErr: return VGAPPEND(STR_, CondErr);
+ case CondRaceErr: return VGAPPEND(STR_, CondRaceErr);
+ case CondDestrErr: return VGAPPEND(STR_, CondDestrErr);
+ case SemaphoreErr: return VGAPPEND(STR_, SemaphoreErr);
+ case BarrierErr: return VGAPPEND(STR_, BarrierErr);
+ case RwlockErr: return VGAPPEND(STR_, RwlockErr);
+ case GenericErr: return VGAPPEND(STR_, GenericErr);
default:
tl_assert(0);
}
diff --git a/exp-drd/drd_error.h b/exp-drd/drd_error.h
index 1bbd066..c9fa953 100644
--- a/exp-drd/drd_error.h
+++ b/exp-drd/drd_error.h
@@ -37,14 +37,23 @@
/* DRD error types. */
typedef enum {
+#define STR_DataRaceErr "ConflictingAccess"
DataRaceErr = 1,
+#define STR_MutexErr "MutexErr"
MutexErr = 2,
+#define STR_CondErr "CondErr"
CondErr = 3,
+#define STR_CondRaceErr "CondRaceErr"
CondRaceErr = 4,
+#define STR_CondDestrErr "CondDestrErr"
CondDestrErr = 5,
+#define STR_SemaphoreErr "SemaphoreErr"
SemaphoreErr = 6,
+#define STR_BarrierErr "BarrierErr"
BarrierErr = 7,
+#define STR_RwlockErr "RwlockErr"
RwlockErr = 8,
+#define STR_GenericErr "GenericErr"
GenericErr = 9,
} DrdErrorKind;