|
@@ -262,10 +262,31 @@
|
|
|
*/
|
|
|
#define SDL_RESTRICT __restrict__
|
|
|
|
|
|
+/**
|
|
|
+ * Check if the compiler supports a given builtin functionality.
|
|
|
+ *
|
|
|
+ * This allows preprocessor checks for things that otherwise might fail
|
|
|
+ * to compile.
|
|
|
+ *
|
|
|
+ * Supported by virtually all clang versions and more-recent GCCs. Use this
|
|
|
+ * instead of checking the clang version if possible.
|
|
|
+ *
|
|
|
+ * On compilers without has_builtin support, this is defined to 0 (always false).
|
|
|
+ *
|
|
|
+ * \since This macro is available since SDL 3.1.3.
|
|
|
+ */
|
|
|
+#define SDL_HAS_BUILTIN(x) __has_builtin(x)
|
|
|
+
|
|
|
/* end of wiki documentation section. */
|
|
|
#endif
|
|
|
|
|
|
-
|
|
|
+#ifndef SDL_HAS_BUILTIN
|
|
|
+#ifdef __has_builtin
|
|
|
+#define SDL_HAS_BUILTIN(x) __has_builtin(x)
|
|
|
+#else
|
|
|
+#define SDL_HAS_BUILTIN(x) 0
|
|
|
+#endif
|
|
|
+#endif
|
|
|
|
|
|
#ifndef SDL_DEPRECATED
|
|
|
# if defined(__GNUC__) && (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */
|