diff options
| -rw-r--r-- | libcxx/include/complex.h | 12 | ||||
| -rw-r--r-- | libcxx/include/ctype.h | 4 | ||||
| -rw-r--r-- | libcxx/include/errno.h | 4 | ||||
| -rw-r--r-- | libcxx/include/fenv.h | 4 | ||||
| -rw-r--r-- | libcxx/include/float.h | 4 | ||||
| -rw-r--r-- | libcxx/include/inttypes.h | 4 | ||||
| -rw-r--r-- | libcxx/include/limits.h | 6 | ||||
| -rw-r--r-- | libcxx/include/locale.h | 4 | ||||
| -rw-r--r-- | libcxx/include/math.h | 4 | ||||
| -rw-r--r-- | libcxx/include/setjmp.h | 4 | ||||
| -rw-r--r-- | libcxx/include/stdbool.h | 4 | ||||
| -rw-r--r-- | libcxx/include/stddef.h | 4 | ||||
| -rw-r--r-- | libcxx/include/stdint.h | 4 | ||||
| -rw-r--r-- | libcxx/include/stdio.h | 4 | ||||
| -rw-r--r-- | libcxx/include/stdlib.h | 4 | ||||
| -rw-r--r-- | libcxx/include/string.h | 4 | ||||
| -rw-r--r-- | libcxx/include/tgmath.h | 14 | ||||
| -rw-r--r-- | libcxx/include/wchar.h | 4 |
18 files changed, 60 insertions, 32 deletions
diff --git a/libcxx/include/complex.h b/libcxx/include/complex.h index a2814669c7d4..a3da21c843f3 100644 --- a/libcxx/include/complex.h +++ b/libcxx/include/complex.h @@ -24,13 +24,9 @@ #endif #ifdef __cplusplus - -#include <ccomplex> - -#else // __cplusplus - -#include_next <complex.h> - -#endif // __cplusplus +# include <ccomplex> +#elif __has_include_next(<complex.h>) +# include_next <complex.h> +#endif #endif // _LIBCPP_COMPLEX_H diff --git a/libcxx/include/ctype.h b/libcxx/include/ctype.h index ba0925069c64..728173ed670f 100644 --- a/libcxx/include/ctype.h +++ b/libcxx/include/ctype.h @@ -35,7 +35,9 @@ int toupper(int c); # pragma GCC system_header #endif -#include_next <ctype.h> +#if __has_include_next(<ctype.h>) +# include_next <ctype.h> +#endif #ifdef __cplusplus diff --git a/libcxx/include/errno.h b/libcxx/include/errno.h index ea0559f0f5d1..7b02d2b47953 100644 --- a/libcxx/include/errno.h +++ b/libcxx/include/errno.h @@ -28,7 +28,9 @@ Macros: # pragma GCC system_header #endif -#include_next <errno.h> +#if __has_include_next(<errno.h>) +# include_next <errno.h> +#endif #ifdef __cplusplus diff --git a/libcxx/include/fenv.h b/libcxx/include/fenv.h index a9ba6800245b..15e41568cbf7 100644 --- a/libcxx/include/fenv.h +++ b/libcxx/include/fenv.h @@ -56,7 +56,9 @@ int feupdateenv(const fenv_t* envp); # pragma GCC system_header #endif -#include_next <fenv.h> +#if __has_include_next(<fenv.h>) +# include_next <fenv.h> +#endif #ifdef __cplusplus diff --git a/libcxx/include/float.h b/libcxx/include/float.h index 606081251dfb..9e5f711fab83 100644 --- a/libcxx/include/float.h +++ b/libcxx/include/float.h @@ -76,7 +76,9 @@ Macros: # pragma GCC system_header #endif -#include_next <float.h> +#if __has_include_next(<float.h>) +# include_next <float.h> +#endif #ifdef __cplusplus diff --git a/libcxx/include/inttypes.h b/libcxx/include/inttypes.h index e0fd71f9b65d..b755526b8492 100644 --- a/libcxx/include/inttypes.h +++ b/libcxx/include/inttypes.h @@ -248,7 +248,9 @@ uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int # define __STDC_FORMAT_MACROS #endif -#include_next <inttypes.h> +#if __has_include_next(<inttypes.h>) +# include_next <inttypes.h> +#endif #ifdef __cplusplus diff --git a/libcxx/include/limits.h b/libcxx/include/limits.h index 3e1e85a8a0b4..032a90967d0c 100644 --- a/libcxx/include/limits.h +++ b/libcxx/include/limits.h @@ -44,7 +44,11 @@ Macros: #endif #ifndef __GNUC__ -#include_next <limits.h> + +# if __has_include_next(<limits.h>) +# include_next <limits.h> +# endif + #else // GCC header limits.h recursively includes itself through another header called // syslimits.h for some reason. This setup breaks down if we directly diff --git a/libcxx/include/locale.h b/libcxx/include/locale.h index 17c0a705a009..3fb812035a52 100644 --- a/libcxx/include/locale.h +++ b/libcxx/include/locale.h @@ -43,6 +43,8 @@ Functions: # pragma GCC system_header #endif -#include_next <locale.h> +#if __has_include_next(<locale.h>) +# include_next <locale.h> +#endif #endif // _LIBCPP_LOCALE_H diff --git a/libcxx/include/math.h b/libcxx/include/math.h index d5a7095a596a..d60943086036 100644 --- a/libcxx/include/math.h +++ b/libcxx/include/math.h @@ -297,7 +297,9 @@ long double truncl(long double x); # pragma GCC system_header #endif -#include_next <math.h> +# if __has_include_next(<math.h>) +# include_next <math.h> +# endif #ifdef __cplusplus diff --git a/libcxx/include/setjmp.h b/libcxx/include/setjmp.h index de4f9edf4886..f4a2bbcb0bd3 100644 --- a/libcxx/include/setjmp.h +++ b/libcxx/include/setjmp.h @@ -31,7 +31,9 @@ void longjmp(jmp_buf env, int val); # pragma GCC system_header #endif -#include_next <setjmp.h> +#if __has_include_next(<setjmp.h>) +# include_next <setjmp.h> +#endif #ifdef __cplusplus diff --git a/libcxx/include/stdbool.h b/libcxx/include/stdbool.h index 0bc1aa8304ad..5bba00568dff 100644 --- a/libcxx/include/stdbool.h +++ b/libcxx/include/stdbool.h @@ -24,7 +24,9 @@ Macros: # pragma GCC system_header #endif -#include_next <stdbool.h> +#if __has_include_next(<stdbool.h>) +# include_next <stdbool.h> +#endif #ifdef __cplusplus #undef bool diff --git a/libcxx/include/stddef.h b/libcxx/include/stddef.h index 19e344f2a000..f1725db06212 100644 --- a/libcxx/include/stddef.h +++ b/libcxx/include/stddef.h @@ -42,7 +42,9 @@ Types: # pragma GCC system_header #endif -#include_next <stddef.h> +# if __has_include_next(<stddef.h>) +# include_next <stddef.h> +# endif #ifdef __cplusplus typedef decltype(nullptr) nullptr_t; diff --git a/libcxx/include/stdint.h b/libcxx/include/stdint.h index ee71f62ab095..fa7b011c71ae 100644 --- a/libcxx/include/stdint.h +++ b/libcxx/include/stdint.h @@ -120,6 +120,8 @@ Macros: # define __STDC_CONSTANT_MACROS #endif -#include_next <stdint.h> +#if __has_include_next(<stdint.h>) +# include_next <stdint.h> +#endif #endif // _LIBCPP_STDINT_H diff --git a/libcxx/include/stdio.h b/libcxx/include/stdio.h index ad1b4c05f1fa..cea43aa7680b 100644 --- a/libcxx/include/stdio.h +++ b/libcxx/include/stdio.h @@ -104,7 +104,9 @@ void perror(const char* s); # pragma GCC system_header #endif -#include_next <stdio.h> +# if __has_include_next(<stdio.h>) +# include_next <stdio.h> +# endif #ifdef __cplusplus diff --git a/libcxx/include/stdlib.h b/libcxx/include/stdlib.h index e4dce9c54546..64581b67f245 100644 --- a/libcxx/include/stdlib.h +++ b/libcxx/include/stdlib.h @@ -90,7 +90,9 @@ void *aligned_alloc(size_t alignment, size_t size); // C11 # pragma GCC system_header #endif -#include_next <stdlib.h> +# if __has_include_next(<stdlib.h>) +# include_next <stdlib.h> +# endif #ifdef __cplusplus extern "C++" { diff --git a/libcxx/include/string.h b/libcxx/include/string.h index 082c632a29bc..627cbae781c1 100644 --- a/libcxx/include/string.h +++ b/libcxx/include/string.h @@ -57,7 +57,9 @@ size_t strlen(const char* s); # pragma GCC system_header #endif -#include_next <string.h> +#if __has_include_next(<string.h>) +# include_next <string.h> +#endif // MSVCRT, GNU libc and its derivates may already have the correct prototype in // <string.h>. This macro can be defined by users if their C library provides diff --git a/libcxx/include/tgmath.h b/libcxx/include/tgmath.h index c65091708a9a..e6f0a4ab2611 100644 --- a/libcxx/include/tgmath.h +++ b/libcxx/include/tgmath.h @@ -24,13 +24,11 @@ #endif #ifdef __cplusplus - -#include <ctgmath> - -#else // __cplusplus - -#include_next <tgmath.h> - -#endif // __cplusplus +# include <ctgmath> +#else +# if __has_include_next(<tgmath.h>) +# include_next <tgmath.h> +# endif +#endif #endif // _LIBCPP_TGMATH_H diff --git a/libcxx/include/wchar.h b/libcxx/include/wchar.h index 0fba53b268ae..c684508dc2cc 100644 --- a/libcxx/include/wchar.h +++ b/libcxx/include/wchar.h @@ -120,7 +120,9 @@ size_t wcsrtombs(char* restrict dst, const wchar_t** restrict src, size_t len, #define __CORRECT_ISO_CPP_WCHAR_H_PROTO #endif -#include_next <wchar.h> +# if __has_include_next(<wchar.h>) +# include_next <wchar.h> +# endif // Determine whether we have const-correct overloads for wcschr and friends. #if defined(_WCHAR_H_CPLUSPLUS_98_CONFORMANCE_) |
