xref: /llvm-project/clang/test/Headers/float16.c (revision 059b823e709a90d3b5d2d24663830e59b3bdded9)
11e25464fSNemanja Ivanovic // RUN: %clang_cc1 -triple=aarch64-none-none -fsyntax-only -verify -std=c89 \
21e25464fSNemanja Ivanovic // RUN:   -ffreestanding %s
31e25464fSNemanja Ivanovic // RUN: %clang_cc1 -triple=aarch64-none-none -fsyntax-only -verify \
41e25464fSNemanja Ivanovic // RUN:   -std=c99 -ffreestanding %s
51e25464fSNemanja Ivanovic // RUN: %clang_cc1 -triple=aarch64-none-none -fsyntax-only -verify -std=c11 \
61e25464fSNemanja Ivanovic // RUN:   -ffreestanding %s
71e25464fSNemanja Ivanovic // RUN: %clang_cc1 -triple=aarch64-none-none -fsyntax-only -verify \
81e25464fSNemanja Ivanovic // RUN:   -std=c++11 -x c++ -ffreestanding %s
9c05609caSSjoerd Meijer // expected-no-diagnostics
10c05609caSSjoerd Meijer 
11c05609caSSjoerd Meijer #define __STDC_WANT_IEC_60559_TYPES_EXT__
12c05609caSSjoerd Meijer #include <float.h>
13c05609caSSjoerd Meijer 
14c05609caSSjoerd Meijer #ifndef FLT16_MIN_10_EXP
15c05609caSSjoerd Meijer     #error "Macro FLT16_MIN_10_EXP is missing."
16*059b823eSJohn McCall #elif   FLT16_MIN_10_EXP > -4
17c05609caSSjoerd Meijer     #error "Macro FLT16_MIN_10_EXP is invalid."
18c05609caSSjoerd Meijer #endif
19c05609caSSjoerd Meijer 
20c05609caSSjoerd Meijer _Static_assert(FLT16_MIN_10_EXP == __FLT16_MIN_10_EXP__, "");
21c05609caSSjoerd Meijer 
22c05609caSSjoerd Meijer #ifndef FLT16_MIN_EXP
23c05609caSSjoerd Meijer     #error "Macro FLT16_MIN_EXP is missing."
24*059b823eSJohn McCall #elif   FLT16_MIN_EXP > -13
25c05609caSSjoerd Meijer     #error "Macro FLT16_MIN_EXP is invalid."
26c05609caSSjoerd Meijer #endif
27c05609caSSjoerd Meijer 
28c05609caSSjoerd Meijer _Static_assert(FLT16_MIN_EXP == __FLT16_MIN_EXP__, "");
29c05609caSSjoerd Meijer 
30c05609caSSjoerd Meijer #ifndef FLT16_MAX_10_EXP
31c05609caSSjoerd Meijer     #error "Macro FLT16_MAX_10_EXP is missing."
32c05609caSSjoerd Meijer #elif   FLT16_MAX_10_EXP < 4
33c05609caSSjoerd Meijer     #error "Macro FLT16_MAX_10_EXP is invalid."
34c05609caSSjoerd Meijer #endif
35c05609caSSjoerd Meijer 
36c05609caSSjoerd Meijer _Static_assert(FLT16_MAX_10_EXP == __FLT16_MAX_10_EXP__, "");
37c05609caSSjoerd Meijer 
38c05609caSSjoerd Meijer #ifndef FLT16_MAX_EXP
39c05609caSSjoerd Meijer     #error "Macro FLT16_MAX_EXP is missing."
40*059b823eSJohn McCall #elif   FLT16_MAX_EXP < 16
41c05609caSSjoerd Meijer     #error "Macro FLT16_MAX_EXP is invalid."
42c05609caSSjoerd Meijer #endif
43c05609caSSjoerd Meijer 
44c05609caSSjoerd Meijer _Static_assert(FLT16_MAX_EXP == __FLT16_MAX_EXP__, "");
45c05609caSSjoerd Meijer 
46c05609caSSjoerd Meijer #ifndef FLT16_DECIMAL_DIG
47c05609caSSjoerd Meijer     #error "Macro FLT16_DECIMAL_DIG is missing."
48c05609caSSjoerd Meijer #elif   FLT16_DECIMAL_DIG < 5
49c05609caSSjoerd Meijer     #error "Macro FLT16_DECIMAL_DIG is invalid."
50c05609caSSjoerd Meijer #endif
51c05609caSSjoerd Meijer 
52c05609caSSjoerd Meijer _Static_assert(FLT16_DECIMAL_DIG == __FLT16_DECIMAL_DIG__, "");
53c05609caSSjoerd Meijer 
54c05609caSSjoerd Meijer #ifndef FLT16_DIG
55c05609caSSjoerd Meijer     #error "Macro FLT16_DIG is missing."
56c05609caSSjoerd Meijer #elif   FLT16_DIG < 3
57c05609caSSjoerd Meijer     #error "Macro FLT16_DIG is invalid."
58c05609caSSjoerd Meijer #endif
59c05609caSSjoerd Meijer 
60c05609caSSjoerd Meijer _Static_assert(FLT16_DIG == __FLT16_DIG__, "");
61c05609caSSjoerd Meijer 
62c05609caSSjoerd Meijer #ifndef FLT16_MANT_DIG
63c05609caSSjoerd Meijer     #error "Macro FLT16_MANT_DIG is missing."
64c05609caSSjoerd Meijer #elif   FLT16_MANT_DIG < 11
65c05609caSSjoerd Meijer     #error "Macro FLT16_MANT_DIG is invalid."
66c05609caSSjoerd Meijer #endif
67c05609caSSjoerd Meijer 
68c05609caSSjoerd Meijer _Static_assert(FLT16_MANT_DIG == __FLT16_MANT_DIG__, "");
69c05609caSSjoerd Meijer 
70