From 6e73e3464e96a4e00492c24aa790d36e1adb5702 Mon Sep 17 00:00:00 2001 From: Bruno Cardoso Lopes Date: Fri, 9 Dec 2016 03:30:46 +0000 Subject: [PATCH] [Headers] Add #include_next for tgmath.h on Darwin Allow darwin to provide additional definitions and implementation specifc values for tgmath.h on Apple platforms. rdar://problem/19019845 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@289181 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Headers/tgmath.h | 9 +++++++++ test/Headers/Inputs/usr/include/tgmath.h | 4 ++++ test/Headers/tgmath-darwin.c | 12 ++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 test/Headers/Inputs/usr/include/tgmath.h create mode 100644 test/Headers/tgmath-darwin.c diff --git a/lib/Headers/tgmath.h b/lib/Headers/tgmath.h index 318e1185fe..0b8b5ce277 100644 --- a/lib/Headers/tgmath.h +++ b/lib/Headers/tgmath.h @@ -25,6 +25,14 @@ #ifndef __TGMATH_H #define __TGMATH_H +/* + * Allow additional definitions and implementation-defined values on Apple + * platforms. + */ +#if defined(__APPLE__) && __STDC_HOSTED__ && __has_include_next() +# include_next +#else + /* C99 7.22 Type-generic math . */ #include @@ -1371,4 +1379,5 @@ static long double #undef _TG_ATTRS #endif /* __cplusplus */ +#endif /* __has_include_next */ #endif /* __TGMATH_H */ diff --git a/test/Headers/Inputs/usr/include/tgmath.h b/test/Headers/Inputs/usr/include/tgmath.h new file mode 100644 index 0000000000..897962d9e1 --- /dev/null +++ b/test/Headers/Inputs/usr/include/tgmath.h @@ -0,0 +1,4 @@ +#ifndef SYS_TGMATH_H +#define SYS_TGMATH_H + +#endif /* SYS_TGMATH_H */ diff --git a/test/Headers/tgmath-darwin.c b/test/Headers/tgmath-darwin.c new file mode 100644 index 0000000000..b24b6c0c72 --- /dev/null +++ b/test/Headers/tgmath-darwin.c @@ -0,0 +1,12 @@ +// REQUIRES: system-darwin +// RUN: %clang -target x86_64-apple-darwin10 -fsyntax-only -std=c11 -isysroot %S/Inputs %s +#include + +// Test the #include_next on tgmath.h works on Darwin. +#ifndef SYS_TGMATH_H + #error "SYS_TGMATH_H not defined" +#endif + +#ifndef __TGMATH_H + #error "__TGMATH_H not defined" +#endif -- 2.40.0