1 //===----------------------------------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8
9 // test numeric_limits
10
11 // float_round_style
12
13 #include <limits>
14
15 #include "test_macros.h"
16
17 typedef char one;
18 struct two {one _[2];};
19
20 one test(std::float_round_style);
21 two test(int);
22
main(int,char **)23 int main(int, char**)
24 {
25 static_assert(std::round_indeterminate == -1,
26 "std::round_indeterminate == -1");
27 static_assert(std::round_toward_zero == 0,
28 "std::round_toward_zero == 0");
29 static_assert(std::round_to_nearest == 1,
30 "std::round_to_nearest == 1");
31 static_assert(std::round_toward_infinity == 2,
32 "std::round_toward_infinity == 2");
33 static_assert(std::round_toward_neg_infinity == 3,
34 "std::round_toward_neg_infinity == 3");
35 static_assert(sizeof(test(std::round_to_nearest)) == 1,
36 "sizeof(test(std::round_to_nearest)) == 1");
37 static_assert(sizeof(test(1)) == 2,
38 "sizeof(test(1)) == 2");
39
40 return 0;
41 }
42