Go to the documentation of this file.
36 #if (GCC_PATCHLEVEL_CODE >= 40502) // gcc 4.5.2 and higher
37 # define __ATTR__DEPRECATED(reason) __attribute__((deprecated(reason)))
40 #if (GCC_VERSION_CODE >= 409) // gcc 4.9.x or higher
41 # define __ATTR__DONT_SANITIZE __attribute__((no_sanitize_address))
47 #define FUNCTION_TYPE_ATTR(x) x
52 #ifndef __ATTR__DEPRECATED
53 # define __ATTR__DEPRECATED(reason) __attribute__((deprecated))
56 #define __ATTR__NORETURN __attribute__((noreturn))
57 #define __ATTR__SENTINEL __attribute__((sentinel))
58 #define __ATTR__USERESULT __attribute__((warn_unused_result))
60 #define __ATTR__FORMAT(pos) __attribute__((format(__printf__, pos, (pos)+1)))
61 #define __ATTR__VFORMAT(pos) __attribute__((format(__printf__, pos, 0)))
62 #define __ATTR__FORMAT_MEMBER(pos) __attribute__((format(__printf__, (pos)+1, (pos)+2)))
63 #define __ATTR__VFORMAT_MEMBER(pos) __attribute__((format(__printf__, (pos)+1, 0)))
66 #define __ATTR__OPTIMIZE(optiflag) __attribute__((optimize(optiflag)))
67 #define __ATTR__DONT_VECTORIZE __ATTR__OPTIMIZE("no-tree-vectorize")
80 #ifndef __ATTR__SENTINEL
81 # define __ATTR__SENTINEL
83 #ifndef __ATTR__USERESULT
84 # define __ATTR__USERESULT
86 #ifndef __ATTR__DEPRECATED
87 # define __ATTR__DEPRECATED(reason)
89 #ifndef __ATTR__DONT_SANITIZE
90 # define __ATTR__DONT_SANITIZE
92 #ifndef __ATTR__DONT_VECTORIZE
93 # define __ATTR__DONT_VECTORIZE
99 #if defined(WARN_TODO)
100 #define __ATTR__USERESULT_TODO __ATTR__USERESULT
101 #define __ATTR__DEPRECATED_TODO(reason) __ATTR__DEPRECATED(reason)
103 #define __ATTR__USERESULT_TODO
104 #define __ATTR__DEPRECATED_TODO(reason)
109 #define __ATTR__DEPRECATED_LATER(reason)
116 template <
typename T>
void IGNORE_RESULT(
const T&) {}
120 #error attributes.h included twice
121 #endif // ATTRIBUTES_H