1 //===----------------------------------------------------------------------===//
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
7 //===----------------------------------------------------------------------===//
15 #include "test_macros.h"
17 template <class T
, bool expected
>
21 static_assert(std::numeric_limits
<T
>::is_iec559
== expected
, "is_iec559 test 1");
22 static_assert(std::numeric_limits
<const T
>::is_iec559
== expected
, "is_iec559 test 2");
23 static_assert(std::numeric_limits
<volatile T
>::is_iec559
== expected
, "is_iec559 test 3");
24 static_assert(std::numeric_limits
<const volatile T
>::is_iec559
== expected
, "is_iec559 test 4");
31 test
<signed char, false>();
32 test
<unsigned char, false>();
33 test
<wchar_t, false>();
34 #if TEST_STD_VER > 17 && defined(__cpp_char8_t)
35 test
<char8_t
, false>();
37 test
<char16_t
, false>();
38 test
<char32_t
, false>();
40 test
<unsigned short, false>();
42 test
<unsigned int, false>();
44 test
<unsigned long, false>();
45 test
<long long, false>();
46 test
<unsigned long long, false>();
47 #ifndef TEST_HAS_NO_INT128
48 test
<__int128_t
, false>();
49 test
<__uint128_t
, false>();
53 #if defined(__powerpc__) && defined(__LONG_DOUBLE_IBM128__)
54 test
<long double, false>();
56 test
<long double, true>();