diff options
author | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2017-09-13 15:23:19 +0000 |
---|---|---|
committer | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2017-09-13 15:23:19 +0000 |
commit | c05609ca36e7269b73f982725b59c48a5fa68a2c (patch) | |
tree | f370d01ce0639578bfd79874ef1f5b3edf9cfa2c /clang/test | |
parent | 1958083d35ff8aa0c8479e72e71c3fc47208ee16 (diff) | |
download | bcm5719-llvm-c05609ca36e7269b73f982725b59c48a5fa68a2c.tar.gz bcm5719-llvm-c05609ca36e7269b73f982725b59c48a5fa68a2c.zip |
This adds the _Float16 preprocessor macro definitions.
Differential Revision: https://reviews.llvm.org/D34695
llvm-svn: 313152
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Headers/float16.c | 65 | ||||
-rw-r--r-- | clang/test/Preprocessor/init.c | 18 |
2 files changed, 81 insertions, 2 deletions
diff --git a/clang/test/Headers/float16.c b/clang/test/Headers/float16.c new file mode 100644 index 00000000000..3b905adb33e --- /dev/null +++ b/clang/test/Headers/float16.c @@ -0,0 +1,65 @@ +// RUN: %clang_cc1 -fsyntax-only -verify -std=c89 -ffreestanding %s +// RUN: %clang_cc1 -fsyntax-only -verify -std=c99 -ffreestanding %s +// RUN: %clang_cc1 -fsyntax-only -verify -std=c11 -ffreestanding %s +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -x c++ -ffreestanding %s +// expected-no-diagnostics + +#define __STDC_WANT_IEC_60559_TYPES_EXT__ +#include <float.h> + +#ifndef FLT16_MIN_10_EXP + #error "Macro FLT16_MIN_10_EXP is missing." +#elif FLT16_MIN_10_EXP > -13 + #error "Macro FLT16_MIN_10_EXP is invalid." +#endif + +_Static_assert(FLT16_MIN_10_EXP == __FLT16_MIN_10_EXP__, ""); + +#ifndef FLT16_MIN_EXP + #error "Macro FLT16_MIN_EXP is missing." +#elif FLT16_MIN_EXP > -14 + #error "Macro FLT16_MIN_EXP is invalid." +#endif + +_Static_assert(FLT16_MIN_EXP == __FLT16_MIN_EXP__, ""); + +#ifndef FLT16_MAX_10_EXP + #error "Macro FLT16_MAX_10_EXP is missing." +#elif FLT16_MAX_10_EXP < 4 + #error "Macro FLT16_MAX_10_EXP is invalid." +#endif + +_Static_assert(FLT16_MAX_10_EXP == __FLT16_MAX_10_EXP__, ""); + +#ifndef FLT16_MAX_EXP + #error "Macro FLT16_MAX_EXP is missing." +#elif FLT16_MAX_EXP < 15 + #error "Macro FLT16_MAX_EXP is invalid." +#endif + +_Static_assert(FLT16_MAX_EXP == __FLT16_MAX_EXP__, ""); + +#ifndef FLT16_DECIMAL_DIG + #error "Macro FLT16_DECIMAL_DIG is missing." +#elif FLT16_DECIMAL_DIG < 5 + #error "Macro FLT16_DECIMAL_DIG is invalid." +#endif + +_Static_assert(FLT16_DECIMAL_DIG == __FLT16_DECIMAL_DIG__, ""); + +#ifndef FLT16_DIG + #error "Macro FLT16_DIG is missing." +#elif FLT16_DIG < 3 + #error "Macro FLT16_DIG is invalid." +#endif + +_Static_assert(FLT16_DIG == __FLT16_DIG__, ""); + +#ifndef FLT16_MANT_DIG + #error "Macro FLT16_MANT_DIG is missing." +#elif FLT16_MANT_DIG < 11 + #error "Macro FLT16_MANT_DIG is invalid." +#endif + +_Static_assert(FLT16_MANT_DIG == __FLT16_MANT_DIG__, ""); + diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c index bae7c0689ba..0c012c971ac 100644 --- a/clang/test/Preprocessor/init.c +++ b/clang/test/Preprocessor/init.c @@ -301,6 +301,20 @@ // AARCH64:#define __DBL_MIN_EXP__ (-1021) // AARCH64:#define __DBL_MIN__ 2.2250738585072014e-308 // AARCH64:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ +// AARCH64:#define __FLT16_DECIMAL_DIG__ 5 +// AARCH64:#define __FLT16_DENORM_MIN__ 5.9604644775390625e-8F16 +// AARCH64:#define __FLT16_DIG__ 3 +// AARCH64:#define __FLT16_EPSILON__ 9.765625e-4F16 +// AARCH64:#define __FLT16_HAS_DENORM__ 1 +// AARCH64:#define __FLT16_HAS_INFINITY__ 1 +// AARCH64:#define __FLT16_HAS_QUIET_NAN__ 1 +// AARCH64:#define __FLT16_MANT_DIG__ 11 +// AARCH64:#define __FLT16_MAX_10_EXP__ 4 +// AARCH64:#define __FLT16_MAX_EXP__ 15 +// AARCH64:#define __FLT16_MAX__ 6.5504e+4F16 +// AARCH64:#define __FLT16_MIN_10_EXP__ (-13) +// AARCH64:#define __FLT16_MIN_EXP__ (-14) +// AARCH64:#define __FLT16_MIN__ 6.103515625e-5F16 // AARCH64:#define __FLT_DENORM_MIN__ 1.40129846e-45F // AARCH64:#define __FLT_DIG__ 6 // AARCH64:#define __FLT_EPSILON__ 1.19209290e-7F @@ -9071,7 +9085,7 @@ // WEBASSEMBLY32-NEXT:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // WEBASSEMBLY32-NOT:#define __ELF__ // WEBASSEMBLY32-NEXT:#define __FINITE_MATH_ONLY__ 0 -// WEBASSEMBLY32-NEXT:#define __FLT_DECIMAL_DIG__ 9 +// WEBASSEMBLY32:#define __FLT_DECIMAL_DIG__ 9 // WEBASSEMBLY32-NEXT:#define __FLT_DENORM_MIN__ 1.40129846e-45F // WEBASSEMBLY32-NEXT:#define __FLT_DIG__ 6 // WEBASSEMBLY32-NEXT:#define __FLT_EPSILON__ 1.19209290e-7F @@ -9402,7 +9416,7 @@ // WEBASSEMBLY64-NEXT:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // WEBASSEMBLY64-NOT:#define __ELF__ // WEBASSEMBLY64-NEXT:#define __FINITE_MATH_ONLY__ 0 -// WEBASSEMBLY64-NEXT:#define __FLT_DECIMAL_DIG__ 9 +// WEBASSEMBLY64:#define __FLT_DECIMAL_DIG__ 9 // WEBASSEMBLY64-NEXT:#define __FLT_DENORM_MIN__ 1.40129846e-45F // WEBASSEMBLY64-NEXT:#define __FLT_DIG__ 6 // WEBASSEMBLY64-NEXT:#define __FLT_EPSILON__ 1.19209290e-7F |