Added TSan annotation
authorkhizmax <libcds.dev@gmail.com>
Fri, 12 Jun 2015 21:04:20 +0000 (00:04 +0300)
committerkhizmax <libcds.dev@gmail.com>
Fri, 12 Jun 2015 21:04:20 +0000 (00:04 +0300)
cds/compiler/feature_tsan.h

index 1a05a17d851fa838bf6eb70f9990068bde428831..f870ab584fac02c347a670123261fdaa847991a4 100644 (file)
@@ -22,6 +22,7 @@
 #   define CDS_TSAN_ANNOTATE_IGNORE_RW_END          \\r
                                                     CDS_TSAN_ANNOTATE_IGNORE_WRITES_END;\\r
                                                     CDS_TSAN_ANNOTATE_IGNORE_READS_END\r
 #   define CDS_TSAN_ANNOTATE_IGNORE_RW_END          \\r
                                                     CDS_TSAN_ANNOTATE_IGNORE_WRITES_END;\\r
                                                     CDS_TSAN_ANNOTATE_IGNORE_READS_END\r
+#   define CDS_TSAN_ANNOTATE_NEW_MEMORY( addr, sz ) AnnotateNewMemory( __FILE__, __LINE__, addr, sz )\r
 \r
     // provided by TSan\r
     extern "C" {\r
 \r
     // provided by TSan\r
     extern "C" {\r
         void AnnotateIgnoreReadsEnd(const char *f, int l);\r
         void AnnotateIgnoreWritesBegin(const char *f, int l);\r
         void AnnotateIgnoreWritesEnd(const char *f, int l);\r
         void AnnotateIgnoreReadsEnd(const char *f, int l);\r
         void AnnotateIgnoreWritesBegin(const char *f, int l);\r
         void AnnotateIgnoreWritesEnd(const char *f, int l);\r
+\r
+        void AnnotateNewMemory(char *f, int l, void * mem, size_t size);
+\r
     }\r
 \r
 #else // CDS_THREAD_SANITIZER_ENABLED\r
 \r
     }\r
 \r
 #else // CDS_THREAD_SANITIZER_ENABLED\r
 \r
-#   define CDS_TSAN_ANNOTATE_HAPPENS_BEFORE(addr)\r
-#   define CDS_TSAN_ANNOTATE_HAPPENS_AFTER(addr)
+#   define CDS_TSAN_ANNOTATE_HAPPENS_BEFORE(addr)   (void)\r
+#   define CDS_TSAN_ANNOTATE_HAPPENS_AFTER(addr)    (void)
 
 
-#   define CDS_TSAN_ANNOTATE_IGNORE_READS_BEGIN\r
-#   define CDS_TSAN_ANNOTATE_IGNORE_READS_END\r
-#   define CDS_TSAN_ANNOTATE_IGNORE_WRITES_BEGIN\r
-#   define CDS_TSAN_ANNOTATE_IGNORE_WRITES_END\r
-#   define CDS_TSAN_ANNOTATE_IGNORE_RW_BEGIN\r
-#   define CDS_TSAN_ANNOTATE_IGNORE_RW_END\r
+#   define CDS_TSAN_ANNOTATE_IGNORE_READS_BEGIN     (void)\r
+#   define CDS_TSAN_ANNOTATE_IGNORE_READS_END       (void)\r
+#   define CDS_TSAN_ANNOTATE_IGNORE_WRITES_BEGIN    (void)\r
+#   define CDS_TSAN_ANNOTATE_IGNORE_WRITES_END      (void)\r
+#   define CDS_TSAN_ANNOTATE_IGNORE_RW_BEGIN        (void)\r
+#   define CDS_TSAN_ANNOTATE_IGNORE_RW_END          (void)\r
+\r
+#   define CDS_TSAN_ANNOTATE_NEW_MEMORY( addr, sz ) (void)\r
 \r
 #endif
 
 \r
 #endif