libffi: Fix 32-bit SPARC structure passing [PR115681]
[official-gcc.git] / gcc / testsuite / gcc.dg / builtins-config.h
blob5e27c1deb33eda53c8e2dd1f44f09ef2e99adf8d
1 /* Copyright (C) 2003, 2004, 2005, 2006, 2009, 2011, 2012, 2019
2 Free Software Foundation.
4 Define macros useful in tests for bulitin functions. */
6 /* Define HAVE_C99_RUNTIME if the entire C99 runtime is available on
7 the target system. The value of HAVE_C99_RUNTIME should be the
8 same as the value of TARGET_C99_FUNCTIONS in the GCC machine
9 description. (Perhaps GCC should predefine a special macro
10 indicating whether or not TARGET_C99_FUNCTIONS is set, but it does
11 not presently do that.) */
13 #if defined(__hppa) && defined(__hpux)
14 /* PA HP-UX doesn't have the entire C99 runtime. */
15 #elif defined(__INTERIX)
16 /* Interix6 doesn't have the entire C99 runtime. */
17 #elif defined(__AVR__)
18 /* AVR doesn't have the entire C99 runtime. */
19 #elif defined(__FreeBSD__) && (__FreeBSD__ < 9)
20 /* FreeBSD up to version 8 lacks support for cexp and friends. */
21 #elif defined(__vxworks)
22 /* VxWorks doesn't have a full C99 time. (cabs is missing, for example.) */
23 #elif defined (__BPF__)
24 /* No chance for eBPF to support C99 functions. */
25 #elif defined(_WIN32) && !defined(__CYGWIN__)
26 /* Windows doesn't have the entire C99 runtime. */
27 #elif (defined(__APPLE__) && defined(__ppc__) \
28 && ! defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__))
29 /* MacOS versions before 10.3 don't have many C99 functions.
30 But, if you're including this file, you probably want to test the
31 newer behavior, so: */
32 #error forgot to set -mmacosx-version-min.
33 #elif (defined(__APPLE__) && defined(__ppc__) \
34 && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1030)
35 /* MacOS versions before 10.3 don't have many C99 functions. */
36 #else
37 /* Newlib has the "f" variants of the math functions, but not the "l"
38 variants. TARGET_C99_FUNCTIONS is only defined if all C99
39 functions are present. Therefore, on systems using newlib, tests
40 of builtins will fail the "l" variants, and we should therefore not
41 define HAVE_C99_RUNTIME. Including <sys/types.h> gives us a way of
42 seeing if _NEWLIB_VERSION is defined. Including <math.h> would work
43 too, but the GLIBC math inlines cause us to generate inferior code,
44 which causes the test to fail, so it is not safe. Including <limits.h>
45 also fails because the include search paths are ordered such that GCC's
46 version will be found before the newlib version. Similarly, uClibc
47 lacks the C99 functions. */
48 #include <sys/types.h>
49 #if defined(_NEWLIB_VERSION) || defined(__UCLIBC__)
50 #elif defined(__sun) && __STDC_VERSION__ - 0 < 199901L
51 /* If you're including this file, you probably want to test the newer
52 behavior, so ensure the right flags were used for each test: */
53 #error forgot to set -std=c99.
54 #elif defined(__sun) && ! defined (_STDC_C99)
55 /* Solaris up to 9 doesn't have the entire C99 runtime.
56 Solaris 10 defines _STDC_C99 if __STDC_VERSION__ is >= 199901L.
57 This macro is defined in <sys/feature_tests.h> which is included by
58 various system headers, in this case <sys/types.h> above. */
59 #else
60 #define HAVE_C99_RUNTIME
61 #endif
62 #endif