[PATCH:x11proto] Support _X_INLINE in any C99-compliant compiler

Alan Coopersmith alan.coopersmith at oracle.com
Thu Feb 24 20:15:13 PST 2011


Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 Xfuncproto.h.in |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/Xfuncproto.h.in b/Xfuncproto.h.in
index fd9f29b..97e925b 100644
--- a/Xfuncproto.h.in
+++ b/Xfuncproto.h.in
@@ -98,15 +98,9 @@ in this Software without prior written authorization from The Open Group.
 #if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 303)
 # define _X_LIKELY(x)   __builtin_expect(!!(x), 1)
 # define _X_UNLIKELY(x) __builtin_expect(!!(x), 0)
-# define _X_INLINE      inline
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-# define _X_LIKELY(x)   (x)
-# define _X_UNLIKELY(x) (x)
-# define _X_INLINE      inline
-#else /* not gcc >= 3.3 and not Sun Studio >= 8 */
+#else /* not gcc >= 3.3 */
 # define _X_LIKELY(x)   (x)
 # define _X_UNLIKELY(x) (x)
-# define _X_INLINE
 #endif
 
 #if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)
@@ -128,6 +122,17 @@ in this Software without prior written authorization from The Open Group.
 # define _X_ATTRIBUTE_PRINTF(x,y)
 #endif
 
+/* C99 keyword "inline" or equivalent extensions in pre-C99 compilers */
+#if defined(inline) /* assume autoconf set it correctly */ || \
+   (defined(__STDC__) && (__STDC_VERSION__ - 0 >= 199901L)) /* C99 */ || \
+   (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550))
+# define _X_INLINE inline
+#elif defined(__GNUC__) && !defined(__STRICT_ANSI__) /* gcc w/C89+extensions */
+# define _X_INLINE __inline__
+#else
+# define _X_INLINE
+#endif
+
 /* C99 keyword "restrict" or equivalent extensions in pre-C99 compilers */
 #ifndef _X_RESTRICT_KYWD
 # if defined(restrict) /* assume autoconf set it correctly */ || \
-- 
1.7.3.2



More information about the xorg-devel mailing list