forked from OSchip/llvm-project
[Headers] Reapply: Add #include_next for tgmath.h on Darwin
Reapply r289181 but rename the include guard to avoid conflict with the one from Darwin. Allow darwin to provide additional definitions and implementation specifc values for tgmath.h on Apple platforms. rdar://problem/19019845 llvm-svn: 298013
This commit is contained in:
parent
448d4289b0
commit
ae1249e4f2
|
@ -22,12 +22,21 @@
|
||||||
*
|
*
|
||||||
\*===----------------------------------------------------------------------===*/
|
\*===----------------------------------------------------------------------===*/
|
||||||
|
|
||||||
#ifndef __TGMATH_H
|
#ifndef __CLANG_TGMATH_H
|
||||||
#define __TGMATH_H
|
#define __CLANG_TGMATH_H
|
||||||
|
|
||||||
/* C99 7.22 Type-generic math <tgmath.h>. */
|
/* C99 7.22 Type-generic math <tgmath.h>. */
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Allow additional definitions and implementation-defined values on Apple
|
||||||
|
* platforms. This is done after #include <math.h> to avoid depcycle conflicts
|
||||||
|
* between libcxx and darwin in C++ modules builds.
|
||||||
|
*/
|
||||||
|
#if defined(__APPLE__) && __STDC_HOSTED__ && __has_include_next(<tgmath.h>)
|
||||||
|
# include_next <tgmath.h>
|
||||||
|
#else
|
||||||
|
|
||||||
/* C++ handles type genericity with overloading in math.h. */
|
/* C++ handles type genericity with overloading in math.h. */
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
#include <complex.h>
|
#include <complex.h>
|
||||||
|
@ -1371,4 +1380,5 @@ static long double
|
||||||
#undef _TG_ATTRS
|
#undef _TG_ATTRS
|
||||||
|
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
#endif /* __TGMATH_H */
|
#endif /* __has_include_next */
|
||||||
|
#endif /* __CLANG_TGMATH_H */
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
// math.h
|
|
@ -0,0 +1,4 @@
|
||||||
|
#ifndef SYS_TGMATH_H
|
||||||
|
#define SYS_TGMATH_H
|
||||||
|
|
||||||
|
#endif /* SYS_TGMATH_H */
|
|
@ -0,0 +1,12 @@
|
||||||
|
// REQUIRES: system-darwin
|
||||||
|
// RUN: %clang -target x86_64-apple-darwin10 -fsyntax-only -std=c11 -isysroot %S/Inputs %s
|
||||||
|
#include <tgmath.h>
|
||||||
|
|
||||||
|
// Test the #include_next of tgmath.h works on Darwin.
|
||||||
|
#ifndef SYS_TGMATH_H
|
||||||
|
#error "SYS_TGMATH_H not defined"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __CLANG_TGMATH_H
|
||||||
|
#error "__CLANG_TGMATH_H not defined"
|
||||||
|
#endif
|
Loading…
Reference in New Issue