[TSan] Add AnnotateIgnoreReadsBegin declaration to tsan/test.h

Declare the family of AnnotateIgnore[Read,Write][Begin,End] TSan
annotations in compiler-rt/test/tsan/test.h so that we don't have to
declare them separately in every test that needs them.  Replace usages.

Leave usages that explicitly test the annotation mechanism:
  thread_end_with_ignore.cpp
  thread_end_with_ignore3.cpp

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@371446 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/tsan/Darwin/mach_vm_allocate.c b/test/tsan/Darwin/mach_vm_allocate.c
index df3cdec..5b12352 100644
--- a/test/tsan/Darwin/mach_vm_allocate.c
+++ b/test/tsan/Darwin/mach_vm_allocate.c
@@ -11,11 +11,6 @@
 
 #include "../test.h"
 
-void AnnotateIgnoreReadsBegin(const char *f, int l);
-void AnnotateIgnoreReadsEnd(const char *f, int l);
-void AnnotateIgnoreWritesBegin(const char *f, int l);
-void AnnotateIgnoreWritesEnd(const char *f, int l);
-
 static int *global_ptr;
 const mach_vm_size_t alloc_size = sizeof(int);
 
diff --git a/test/tsan/ignore_free.cpp b/test/tsan/ignore_free.cpp
index 4e67895..51037b1 100644
--- a/test/tsan/ignore_free.cpp
+++ b/test/tsan/ignore_free.cpp
@@ -1,13 +1,6 @@
 // RUN: %clangxx_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s
 #include "test.h"
 
-extern "C" {
-void AnnotateIgnoreReadsBegin(const char *f, int l);
-void AnnotateIgnoreReadsEnd(const char *f, int l);
-void AnnotateIgnoreWritesBegin(const char *f, int l);
-void AnnotateIgnoreWritesEnd(const char *f, int l);
-}
-
 void *Thread(void *p) {
   *(int*)p = 42;
   barrier_wait(&barrier);
diff --git a/test/tsan/ignore_malloc.cpp b/test/tsan/ignore_malloc.cpp
index 100b4e5..6f293e3 100644
--- a/test/tsan/ignore_malloc.cpp
+++ b/test/tsan/ignore_malloc.cpp
@@ -1,13 +1,6 @@
 // RUN: %clangxx_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s
 #include "test.h"
 
-extern "C" {
-void AnnotateIgnoreReadsBegin(const char *f, int l);
-void AnnotateIgnoreReadsEnd(const char *f, int l);
-void AnnotateIgnoreWritesBegin(const char *f, int l);
-void AnnotateIgnoreWritesEnd(const char *f, int l);
-}
-
 int *g;
 
 void *Thread(void *a) {
diff --git a/test/tsan/ignore_race.cpp b/test/tsan/ignore_race.cpp
index e410006..ecbc4c0 100644
--- a/test/tsan/ignore_race.cpp
+++ b/test/tsan/ignore_race.cpp
@@ -3,11 +3,6 @@
 
 int Global;
 
-extern "C" void AnnotateIgnoreWritesBegin(const char *f, int l);
-extern "C" void AnnotateIgnoreWritesEnd(const char *f, int l);
-extern "C" void AnnotateIgnoreReadsBegin(const char *f, int l);
-extern "C" void AnnotateIgnoreReadsEnd(const char *f, int l);
-
 void *Thread(void *x) {
   AnnotateIgnoreWritesBegin(__FILE__, __LINE__);
   AnnotateIgnoreReadsBegin(__FILE__, __LINE__);
diff --git a/test/tsan/ignored-interceptors-mmap.cpp b/test/tsan/ignored-interceptors-mmap.cpp
index bcfafa4..c211613 100644
--- a/test/tsan/ignored-interceptors-mmap.cpp
+++ b/test/tsan/ignored-interceptors-mmap.cpp
@@ -10,13 +10,6 @@
 
 #include "test.h"
 
-extern "C" {
-void AnnotateIgnoreReadsBegin(const char *f, int l);
-void AnnotateIgnoreReadsEnd(const char *f, int l);
-void AnnotateIgnoreWritesBegin(const char *f, int l);
-void AnnotateIgnoreWritesEnd(const char *f, int l);
-}
-
 // Use atomic to ensure we do not have a race for the pointer value itself.  We
 // only want to check races in the mmap'd memory to isolate the test that mmap
 // respects ignore annotations.
diff --git a/test/tsan/test.h b/test/tsan/test.h
index af2e6f0..4c75572 100644
--- a/test/tsan/test.h
+++ b/test/tsan/test.h
@@ -75,6 +75,11 @@
 void AnnotateRWLockAcquired(const char *f, int l, void *m, long is_w);
 void AnnotateRWLockReleased(const char *f, int l, void *m, long is_w);
 
+void AnnotateIgnoreReadsBegin(const char *f, int l);
+void AnnotateIgnoreReadsEnd(const char *f, int l);
+void AnnotateIgnoreWritesBegin(const char *f, int l);
+void AnnotateIgnoreWritesEnd(const char *f, int l);
+
 #ifdef __cplusplus
 }
 #endif