- Made the ANNOTATE_RWLOCK_*() macros binary compatible with Helgrind.
- Added two additional regression tests.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10819 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/drd/drd_error.c b/drd/drd_error.c
index 74291f5..4b1c2fa 100644
--- a/drd/drd_error.c
+++ b/drd/drd_error.c
@@ -383,6 +383,15 @@
       VG_(pp_ExeContext)(VG_(get_error_where)(e));
       break;
    }
+   case UnimpClReq: {
+      UnimpClReqInfo* uicr =(UnimpClReqInfo*)(VG_(get_error_extra)(e));
+      VG_(message)(Vg_UserMsg,
+                   "The annotation macro %s has not yet been implemented in"
+                   " <helgrind/helgrind.h>\n",
+                   /*VG_(get_error_string)(e),*/ uicr->descr);
+      VG_(pp_ExeContext)(VG_(get_error_where)(e));
+      break;
+   }
    default:
       VG_(message)(Vg_UserMsg,
                    "%s\n",
@@ -420,6 +429,8 @@
       return sizeof(GenericErrInfo);
    case InvalidThreadId:
       return sizeof(InvalidThreadIdInfo);
+   case UnimpClReq:
+      return sizeof(UnimpClReqInfo);
    default:
       tl_assert(False);
       break;
@@ -461,6 +472,8 @@
       skind = GenericErr;
    else if (VG_(strcmp)(name, STR_InvalidThreadId) == 0)
       skind = InvalidThreadId;
+   else if (VG_(strcmp)(name, STR_UnimpClReq) == 0)
+      skind = UnimpClReq;
    else
       return False;
 
@@ -507,6 +520,7 @@
    case HoldtimeErr:  return VGAPPEND(STR_, HoldtimeErr);
    case GenericErr:   return VGAPPEND(STR_, GenericErr);
    case InvalidThreadId: return VGAPPEND(STR_, InvalidThreadId);
+   case UnimpClReq:   return VGAPPEND(STR_, UnimpClReq);
    default:
       tl_assert(0);
    }