[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