[FFmpeg-devel] [PATCH]Simplify #if defined(__GCC__) && ...
Carl Eugen Hoyos
cehoyos
Fri Dec 19 20:35:43 CET 2008
Hi!
Attached patch should simplify the #if GCC_VERSION> condition that occurs
several times in libavutil.
Please comment, Carl Eugen
-------------- next part --------------
Index: libavutil/internal.h
===================================================================
--- libavutil/internal.h (revision 16223)
+++ libavutil/internal.h (working copy)
@@ -33,9 +33,10 @@
#include <stdint.h>
#include <stddef.h>
#include <assert.h>
+#include "common.h"
#ifndef attribute_align_arg
-#if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__>1)
+#if AV_GCC_VERSION_GREATER(4,1)
# define attribute_align_arg __attribute__((force_align_arg_pointer))
#else
# define attribute_align_arg
@@ -43,7 +44,7 @@
#endif
#ifndef attribute_used
-#if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 0)
+#if AV_GCC_VERSION_GREATER(3,0)
# define attribute_used __attribute__((used))
#else
# define attribute_used
Index: libavutil/mem.h
===================================================================
--- libavutil/mem.h (revision 16223)
+++ libavutil/mem.h (working copy)
@@ -26,6 +26,8 @@
#ifndef AVUTIL_MEM_H
#define AVUTIL_MEM_H
+#include "common.h"
+
#if defined(__ICC) || defined(__SUNPRO_C)
#define DECLARE_ALIGNED(n,t,v) t v __attribute__ ((aligned (n)))
#define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v
@@ -42,13 +44,13 @@
#define DECLARE_ASM_CONST(n,t,v) static const t v
#endif
-#if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 0)
+#if AV_GCC_VERSION_GREATER(3,0)
#define av_malloc_attrib __attribute__((__malloc__))
#else
#define av_malloc_attrib
#endif
-#if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ > 2)
+#if AV_GCC_VERSION_GREATER(4,2)
#define av_alloc_size(n) __attribute__((alloc_size(n)))
#else
#define av_alloc_size(n)
Index: libavutil/common.h
===================================================================
--- libavutil/common.h (revision 16223)
+++ libavutil/common.h (working copy)
@@ -41,8 +41,10 @@
# include <math.h>
#endif /* HAVE_AV_CONFIG_H */
+#define AV_GCC_VERSION_GREATER(x,y) (defined(__GNUC__) && (__GNUC__ > x || __GNUC__ == x && __GNUC_MINOR__ > y))
+
#ifndef av_always_inline
-#if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 0)
+#if AV_GCC_VERSION_GREATER(3,0)
# define av_always_inline __attribute__((always_inline)) inline
#else
# define av_always_inline inline
@@ -50,7 +52,7 @@
#endif
#ifndef av_noinline
-#if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 0)
+#if AV_GCC_VERSION_GREATER(3,0)
# define av_noinline __attribute__((noinline))
#else
# define av_noinline
@@ -58,7 +60,7 @@
#endif
#ifndef av_pure
-#if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 0)
+#if AV_GCC_VERSION_GREATER(3,0)
# define av_pure __attribute__((pure))
#else
# define av_pure
@@ -66,7 +68,7 @@
#endif
#ifndef av_const
-#if defined(__GNUC__) && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ > 5)
+#if AV_GCC_VERSION_GREATER(2,5)
# define av_const __attribute__((const))
#else
# define av_const
@@ -74,7 +76,7 @@
#endif
#ifndef av_cold
-#if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ > 2)
+#if AV_GCC_VERSION_GREATER(4,2)
# define av_cold __attribute__((cold))
#else
# define av_cold
@@ -86,7 +88,7 @@
#endif /* HAVE_AV_CONFIG_H */
#ifndef attribute_deprecated
-#if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 0)
+#if AV_GCC_VERSION_GREATER(3,0)
# define attribute_deprecated __attribute__((deprecated))
#else
# define attribute_deprecated
More information about the ffmpeg-devel
mailing list