aboutsummaryrefslogtreecommitdiff
path: root/X11/Xfuncproto.h.in
diff options
context:
space:
mode:
Diffstat (limited to 'X11/Xfuncproto.h.in')
-rw-r--r--X11/Xfuncproto.h.in39
1 files changed, 30 insertions, 9 deletions
diff --git a/X11/Xfuncproto.h.in b/X11/Xfuncproto.h.in
index 017711912..97e925bbc 100644
--- a/X11/Xfuncproto.h.in
+++ b/X11/Xfuncproto.h.in
@@ -77,10 +77,8 @@ in this Software without prior written authorization from The Open Group.
#if defined(__GNUC__) && (__GNUC__ >= 4)
# define _X_SENTINEL(x) __attribute__ ((__sentinel__(x)))
-# define _X_ATTRIBUTE_PRINTF(x,y) __attribute__((__format__(__printf__,x,y)))
#else
# define _X_SENTINEL(x)
-# define _X_ATTRIBUTE_PRINTF(x,y)
#endif /* GNUC >= 4 */
#if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__CYGWIN__)
@@ -100,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)
@@ -124,4 +116,33 @@ in this Software without prior written authorization from The Open Group.
# define _X_NORETURN
#endif /* GNUC */
+#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 203)
+# define _X_ATTRIBUTE_PRINTF(x,y) __attribute__((__format__(__printf__,x,y)))
+#else /* not gcc >= 2.3 */
+# 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 */ || \
+ (defined(__STDC__) && (__STDC_VERSION__ - 0 >= 199901L)) /* C99 */
+# define _X_RESTRICT_KYWD restrict
+# elif defined(__GNUC__) && !defined(__STRICT_ANSI__) /* gcc w/C89+extensions */
+# define _X_RESTRICT_KYWD __restrict__
+# else
+# define _X_RESTRICT_KYWD
+# endif
+#endif
+
#endif /* _XFUNCPROTO_H_ */