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