Go to the documentation of this file. 25 #ifndef __has_attribute 26 #define FOLLY_HAS_ATTRIBUTE(x) 0 28 #define FOLLY_HAS_ATTRIBUTE(x) __has_attribute(x) 31 #ifndef __has_cpp_attribute 32 #define FOLLY_HAS_CPP_ATTRIBUTE(x) 0 34 #define FOLLY_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x) 37 #ifndef __has_extension 38 #define FOLLY_HAS_EXTENSION(x) 0 40 #define FOLLY_HAS_EXTENSION(x) __has_extension(x) 56 #if FOLLY_HAS_CPP_ATTRIBUTE(fallthrough) 57 #define FOLLY_FALLTHROUGH [[fallthrough]] 58 #elif FOLLY_HAS_CPP_ATTRIBUTE(clang::fallthrough) 59 #define FOLLY_FALLTHROUGH [[clang::fallthrough]] 60 #elif FOLLY_HAS_CPP_ATTRIBUTE(gnu::fallthrough) 61 #define FOLLY_FALLTHROUGH [[gnu::fallthrough]] 63 #define FOLLY_FALLTHROUGH 78 #if FOLLY_HAS_CPP_ATTRIBUTE(maybe_unused) 79 #define FOLLY_MAYBE_UNUSED [[maybe_unused]] 80 #elif FOLLY_HAS_ATTRIBUTE(__unused__) || __GNUC__ 81 #define FOLLY_MAYBE_UNUSED __attribute__((__unused__)) 83 #define FOLLY_MAYBE_UNUSED 103 #if FOLLY_HAS_EXTENSION(nullability) 104 #define FOLLY_NULLABLE _Nullable 105 #define FOLLY_NONNULL _Nonnull 107 #define FOLLY_NULLABLE 108 #define FOLLY_NONNULL 118 #define FOLLY_COLD __attribute__((__cold__))