diff --git a/libavutil/attributes.h b/libavutil/attributes.h index d93f46093c..65a9249cd5 100644 --- a/libavutil/attributes.h +++ b/libavutil/attributes.h @@ -96,6 +96,19 @@ #endif #endif +/** + * Mark a variable as used and prevent the compiler from optimizing it + * away. This is useful for variables accessed only from inline + * assembler without the compiler being aware. + */ +#ifndef av_used +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define av_used __attribute__((used)) +#else +# define av_used +#endif +#endif + #ifndef av_alias #if (!defined(__ICC) || __ICC > 1200) && AV_GCC_VERSION_AT_LEAST(3,3) # define av_alias __attribute__((may_alias)) diff --git a/libavutil/internal.h b/libavutil/internal.h index 748a823ac4..36d3e719f6 100644 --- a/libavutil/internal.h +++ b/libavutil/internal.h @@ -46,20 +46,6 @@ #endif #endif - -/** - * Mark a variable as used and prevent the compiler from optimizing it away. - * This is useful for asm that accesses varibles in ways that the compiler does not - * understand - */ -#ifndef attribute_used -#if AV_GCC_VERSION_AT_LEAST(3,1) -# define attribute_used __attribute__((used)) -#else -# define attribute_used -#endif -#endif - #ifndef INT16_MIN #define INT16_MIN (-0x7fff - 1) #endif diff --git a/libavutil/mem.h b/libavutil/mem.h index ab73a3238d..33ab48f895 100644 --- a/libavutil/mem.h +++ b/libavutil/mem.h @@ -41,7 +41,7 @@ static const t __attribute__((aligned(n))) v #elif defined(__GNUC__) #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v - #define DECLARE_ASM_CONST(n,t,v) static const t attribute_used __attribute__ ((aligned (n))) v + #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v #elif defined(_MSC_VER) #define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v #define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v