diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2016-12-08 02:13:56 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2016-12-08 02:13:56 +0000 |
commit | d93779da151a46532353c07b704b8e569ed1c81a (patch) | |
tree | 5ddb55a78c780c26a00c17f01d1767e4c765d831 /clang | |
parent | fd461fe360c3275effadb0ff5457f5820f07e891 (diff) | |
download | bcm5719-llvm-d93779da151a46532353c07b704b8e569ed1c81a.tar.gz bcm5719-llvm-d93779da151a46532353c07b704b8e569ed1c81a.zip |
[Headers] Enable #include_next<float.h> on Darwin
Allows darwin targets to provide additional definitions and
implementation specifc values for float.h
rdar://problem/21961491
llvm-svn: 289018
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Headers/float.h | 7 | ||||
-rw-r--r-- | clang/test/Headers/Inputs/usr/include/float.h | 6 | ||||
-rw-r--r-- | clang/test/Headers/float-darwin.c | 13 |
3 files changed, 24 insertions, 2 deletions
diff --git a/clang/lib/Headers/float.h b/clang/lib/Headers/float.h index a28269ebebb..0f453d87cbc 100644 --- a/clang/lib/Headers/float.h +++ b/clang/lib/Headers/float.h @@ -27,9 +27,12 @@ /* If we're on MinGW, fall back to the system's float.h, which might have * additional definitions provided for Windows. * For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx + * + * Also fall back on Darwin to allow additional definitions and + * implementation-defined values. */ -#if (defined(__MINGW32__) || defined(_MSC_VER)) && __STDC_HOSTED__ && \ - __has_include_next(<float.h>) +#if (defined(__APPLE__) || (defined(__MINGW32__) || defined(_MSC_VER))) && \ + __STDC_HOSTED__ && __has_include_next(<float.h>) # include_next <float.h> /* Undefine anything that we'll be redefining below. */ diff --git a/clang/test/Headers/Inputs/usr/include/float.h b/clang/test/Headers/Inputs/usr/include/float.h new file mode 100644 index 00000000000..9dab891b972 --- /dev/null +++ b/clang/test/Headers/Inputs/usr/include/float.h @@ -0,0 +1,6 @@ +#ifndef SYSFLOAT_H +#define SYSFLOAT_H + +#define FLT_HAS_SUBNORM 1 + +#endif /* SYSFLOAT_H */ diff --git a/clang/test/Headers/float-darwin.c b/clang/test/Headers/float-darwin.c new file mode 100644 index 00000000000..54bac1ac630 --- /dev/null +++ b/clang/test/Headers/float-darwin.c @@ -0,0 +1,13 @@ +// REQUIRES: system-darwin +// RUN: %clang -target x86_64-apple-darwin10 -fsyntax-only -std=c11 -isysroot %S/Inputs %s +#include <float.h> + +// Test the #include_next on float.h works on Darwin. +#ifndef FLT_HAS_SUBNORM + #error "FLT_HAS_SUBNORM not defined" +#endif + +// Test that definition from builtin are also present. +#ifndef FLT_MAX + #error "FLT_MAX not defined" +#endif |