X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2FPortability.h;h=07852f2d97792825937ab5dceb182030f0642f8b;hb=91199bbe0faa08c417dc9fae5911e80b34870e92;hp=2989ebea10d2b8a62f62dea6784aa96a1f026db8;hpb=edf5a373cd47666cf9554ae4fe21c3d8d7d89ac0;p=folly.git diff --git a/folly/Portability.h b/folly/Portability.h index 2989ebea..07852f2d 100644 --- a/folly/Portability.h +++ b/folly/Portability.h @@ -84,4 +84,23 @@ struct MaxAlign { char c; } __attribute__((aligned)); # endif #endif +/* Define attribute wrapper for function attribute used to disable + * address sanitizer instrumentation */ +#if defined(__clang__) +# if __has_attribute(__no_address_safety_analysis__) +# define FOLLY_DISABLE_ADDRESS_SANITIZER \ + __attribute__((__no_address_safety_analysis__)) +# elif __has_attribute(__no_sanitize_address__) +# define FOLLY_DISABLE_ADDRESS_SANITIZER \ + __attribute__((__no_sanitize_address__)) +# else +# define FOLLY_DISABLE_ADDRESS_SANITIZER +# endif +#elif defined (__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8) +# define FOLLY_DISABLE_ADDRESS_SANITIZER \ + __attribute__((__no_address_safety_analysis__)) +#else +# define FOLLY_DISABLE_ADDRESS_SANITIZER +#endif + #endif // FOLLY_PORTABILITY_H_