Go to the documentation of this file. 26 #ifndef AVUTIL_ATTRIBUTES_H 27 #define AVUTIL_ATTRIBUTES_H 30 # define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > (x) || __GNUC__ == (x) && __GNUC_MINOR__ >= (y)) 31 # define AV_GCC_VERSION_AT_MOST(x,y) (__GNUC__ < (x) || __GNUC__ == (x) && __GNUC_MINOR__ <= (y)) 33 # define AV_GCC_VERSION_AT_LEAST(x,y) 0 34 # define AV_GCC_VERSION_AT_MOST(x,y) 0 38 # define AV_HAS_BUILTIN(x) __has_builtin(x) 40 # define AV_HAS_BUILTIN(x) 0 43 #ifndef av_always_inline 44 #if AV_GCC_VERSION_AT_LEAST(3,1) 45 # define av_always_inline __attribute__((always_inline)) inline 46 #elif defined(_MSC_VER) 47 # define av_always_inline __forceinline 49 # define av_always_inline inline 53 #ifndef av_extern_inline 54 #if defined(__ICL) && __ICL >= 1210 || defined(__GNUC_STDC_INLINE__) 55 # define av_extern_inline extern inline 57 # define av_extern_inline inline 61 #if AV_GCC_VERSION_AT_LEAST(3,4) 62 # define av_warn_unused_result __attribute__((warn_unused_result)) 64 # define av_warn_unused_result 67 #if AV_GCC_VERSION_AT_LEAST(3,1) 68 # define av_noinline __attribute__((noinline)) 69 #elif defined(_MSC_VER) 70 # define av_noinline __declspec(noinline) 75 #if AV_GCC_VERSION_AT_LEAST(3,1) || defined(__clang__) 76 # define av_pure __attribute__((pure)) 81 #if AV_GCC_VERSION_AT_LEAST(2,6) || defined(__clang__) 82 # define av_const __attribute__((const)) 87 #if AV_GCC_VERSION_AT_LEAST(4,3) || defined(__clang__) 88 # define av_cold __attribute__((cold)) 93 #if AV_GCC_VERSION_AT_LEAST(4,1) && !defined(__llvm__) 94 # define av_flatten __attribute__((flatten)) 99 #if AV_GCC_VERSION_AT_LEAST(3,1) 100 # define attribute_deprecated __attribute__((deprecated)) 101 #elif defined(_MSC_VER) 102 # define attribute_deprecated __declspec(deprecated) 104 # define attribute_deprecated 112 #ifndef AV_NOWARN_DEPRECATED 113 #if AV_GCC_VERSION_AT_LEAST(4,6) 114 # define AV_NOWARN_DEPRECATED(code) \ 115 _Pragma("GCC diagnostic push") \ 116 _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \ 118 _Pragma("GCC diagnostic pop") 119 #elif defined(_MSC_VER) 120 # define AV_NOWARN_DEPRECATED(code) \ 121 __pragma(warning(push)) \ 122 __pragma(warning(disable : 4996)) \ 124 __pragma(warning(pop)) 126 # define AV_NOWARN_DEPRECATED(code) code 130 #if defined(__GNUC__) || defined(__clang__) 131 # define av_unused __attribute__((unused)) 141 #if AV_GCC_VERSION_AT_LEAST(3,1) || defined(__clang__) 142 # define av_used __attribute__((used)) 147 #if AV_GCC_VERSION_AT_LEAST(3,3) || defined(__clang__) 148 # define av_alias __attribute__((may_alias)) 153 #if (defined(__GNUC__) || defined(__clang__)) && !defined(__INTEL_COMPILER) 154 # define av_uninit(x) x=x 156 # define av_uninit(x) x 159 #if defined(__GNUC__) || defined(__clang__) 160 # define av_builtin_constant_p __builtin_constant_p 161 # define av_printf_format(fmtpos, attrpos) __attribute__((__format__(__printf__, fmtpos, attrpos))) 163 # define av_builtin_constant_p(x) 0 164 # define av_printf_format(fmtpos, attrpos) 167 #if AV_GCC_VERSION_AT_LEAST(2,5) || defined(__clang__) 168 # define av_noreturn __attribute__((noreturn))