static Char* drd_tool_error_name(Error* e) { switch (VG_(get_error_kind)(e)) { 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 HoldtimeErr: return VGAPPEND(STR_, HoldtimeErr); case GenericErr: return VGAPPEND(STR_, GenericErr); default: tl_assert(0); } return 0; }
static const HChar* drd_get_error_name(Error* e) { switch (VG_(get_error_kind)(e)) { case DataRaceErr: return VGAPPEND(STR_, DataRaceErr); case MutexErr: return VGAPPEND(STR_, MutexErr); case CondErr: return VGAPPEND(STR_, CondErr); case CondDestrErr: return VGAPPEND(STR_, CondDestrErr); case CondRaceErr: return VGAPPEND(STR_, CondRaceErr); case CondWaitErr: return VGAPPEND(STR_, CondWaitErr); case SemaphoreErr: return VGAPPEND(STR_, SemaphoreErr); case BarrierErr: return VGAPPEND(STR_, BarrierErr); case RwlockErr: return VGAPPEND(STR_, RwlockErr); case HoldtimeErr: return VGAPPEND(STR_, HoldtimeErr); case GenericErr: return VGAPPEND(STR_, GenericErr); case InvalidThreadId: return VGAPPEND(STR_, InvalidThreadId); case UnimpHgClReq: return VGAPPEND(STR_, UnimpHgClReq); case UnimpDrdClReq: return VGAPPEND(STR_, UnimpDrdClReq); default: tl_assert(0); } return 0; }