| Index: third_party/tcmalloc/chromium/src/base/dynamic_annotations.h
|
| ===================================================================
|
| --- third_party/tcmalloc/chromium/src/base/dynamic_annotations.h (revision 126022)
|
| +++ third_party/tcmalloc/chromium/src/base/dynamic_annotations.h (working copy)
|
| @@ -378,14 +378,9 @@
|
|
|
| #define ANNOTALYSIS_STATIC_INLINE
|
| #define ANNOTALYSIS_SEMICOLON_OR_EMPTY_BODY ;
|
| -#define ANNOTALYSIS_IGNORE_READS_BEGIN
|
| -#define ANNOTALYSIS_IGNORE_READS_END
|
| -#define ANNOTALYSIS_IGNORE_WRITES_BEGIN
|
| -#define ANNOTALYSIS_IGNORE_WRITES_END
|
| -#define ANNOTALYSIS_UNPROTECTED_READ
|
|
|
| -#if defined(__GNUC__) && (!defined(SWIG)) && (!defined(__clang__)) && \
|
| - defined(__SUPPORT_TS_ANNOTATION__) && defined(__SUPPORT_DYN_ANNOTATION__)
|
| +#if defined(__GNUC__) && defined(__SUPPORT_TS_ANNOTATION__) \
|
| + && (!defined(SWIG)) && defined(__SUPPORT_DYN_ANNOTATION__)
|
|
|
| #if DYNAMIC_ANNOTATIONS_ENABLED == 0
|
| #define ANNOTALYSIS_ONLY 1
|
| @@ -394,23 +389,22 @@
|
| #undef ANNOTALYSIS_SEMICOLON_OR_EMPTY_BODY
|
| #define ANNOTALYSIS_SEMICOLON_OR_EMPTY_BODY { (void)file; (void)line; }
|
| #endif
|
| +#define ANNOTALYSIS_IGNORE_READS_BEGIN __attribute__ ((ignore_reads_begin))
|
| +#define ANNOTALYSIS_IGNORE_READS_END __attribute__ ((ignore_reads_end))
|
| +#define ANNOTALYSIS_IGNORE_WRITES_BEGIN __attribute__ ((ignore_writes_begin))
|
| +#define ANNOTALYSIS_IGNORE_WRITES_END __attribute__ ((ignore_writes_end))
|
| +#define ANNOTALYSIS_UNPROTECTED_READ __attribute__ ((unprotected_read))
|
|
|
| -/* Only emit attributes when annotalysis is enabled. */
|
| -#if defined(__SUPPORT_TS_ANNOTATION__) && defined(__SUPPORT_DYN_ANNOTATION__)
|
| -#undef ANNOTALYSIS_IGNORE_READS_BEGIN
|
| -#define ANNOTALYSIS_IGNORE_READS_BEGIN __attribute__ ((ignore_reads_begin))
|
| -#undef ANNOTALYSIS_IGNORE_READS_END
|
| -#define ANNOTALYSIS_IGNORE_READS_END __attribute__ ((ignore_reads_end))
|
| -#undef ANNOTALYSIS_IGNORE_WRITES_BEGIN
|
| -#define ANNOTALYSIS_IGNORE_WRITES_BEGIN __attribute__ ((ignore_writes_begin))
|
| -#undef ANNOTALYSIS_IGNORE_WRITES_END
|
| -#define ANNOTALYSIS_IGNORE_WRITES_END __attribute__ ((ignore_writes_end))
|
| -#undef ANNOTALYSIS_UNPROTECTED_READ
|
| -#define ANNOTALYSIS_UNPROTECTED_READ __attribute__ ((unprotected_read))
|
| -#endif
|
| +#else
|
|
|
| -#endif // defined(__GNUC__) && (!defined(SWIG)) && (!defined(__clang__))
|
| +#define ANNOTALYSIS_IGNORE_READS_BEGIN
|
| +#define ANNOTALYSIS_IGNORE_READS_END
|
| +#define ANNOTALYSIS_IGNORE_WRITES_BEGIN
|
| +#define ANNOTALYSIS_IGNORE_WRITES_END
|
| +#define ANNOTALYSIS_UNPROTECTED_READ
|
|
|
| +#endif
|
| +
|
| /* Use the macros above rather than using these functions directly. */
|
| #ifdef __cplusplus
|
| extern "C" {
|
| @@ -610,7 +604,7 @@
|
| #undef ANNOTATE_UNPROTECTED_READ
|
| template <class T>
|
| inline T ANNOTATE_UNPROTECTED_READ(const volatile T &x)
|
| - ANNOTALYSIS_UNPROTECTED_READ {
|
| + __attribute__ ((unprotected_read)) {
|
| ANNOTATE_IGNORE_READS_BEGIN();
|
| T res = x;
|
| ANNOTATE_IGNORE_READS_END();
|
|
|