]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/18_support/numeric_limits/lowest.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 18_support / numeric_limits / lowest.cc
CommitLineData
52066eae 1// { dg-do run { target c++11 } }
018afad3
ESR
2// { dg-add-options ieee }
3
4// 2010-02-25 Ed Smith-Rowland
5
a945c346 6// Copyright (C) 2010-2024 Free Software Foundation, Inc.
018afad3
ESR
7//
8// This file is part of the GNU ISO C++ Library. This library is free
9// software; you can redistribute it and/or modify it under the
10// terms of the GNU General Public License as published by the
11// Free Software Foundation; either version 3, or (at your option)
12// any later version.
13
14// This library is distributed in the hope that it will be useful,
15// but WITHOUT ANY WARRANTY; without even the implied warranty of
16// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17// GNU General Public License for more details.
18
19// You should have received a copy of the GNU General Public License along
20// with this library; see the file COPYING3. If not see
21// <http://www.gnu.org/licenses/>.
22
23// 18.2.1.1 template class numeric_limits
24
25#include <limits>
018afad3
ESR
26#include <testsuite_hooks.h>
27
28template<typename T>
29 void
45ba5426 30 do_test()
018afad3 31 {
018afad3 32 T limits_min = std::numeric_limits<T>::min();
018afad3 33 T limits_max = std::numeric_limits<T>::max();
45ba5426
JW
34 if (std::numeric_limits<T>::is_integer)
35 VERIFY( std::numeric_limits<T>::lowest() == limits_min );
36 else
37 VERIFY( std::numeric_limits<T>::lowest() == -limits_max );
018afad3
ESR
38 }
39
018afad3
ESR
40void test01()
41{
42 do_test<char>();
43 do_test<signed char>();
44 do_test<unsigned char>();
45 do_test<wchar_t>();
59019b42
TH
46#ifdef _GLIBCXX_USE_CHAR8_T
47 do_test<char8_t>();
89a5f486 48#endif
018afad3
ESR
49 do_test<char16_t>();
50 do_test<char32_t>();
51
52 do_test<short>();
53 do_test<unsigned short>();
54
55 do_test<int>();
56 do_test<unsigned int>();
57
58 do_test<long>();
59 do_test<unsigned long>();
60
61 do_test<long long>();
62 do_test<unsigned long long>();
63
12bfa8bd 64 // GNU Extensions.
29a9de9b 65#ifdef __SIZEOF_INT128__
fd1e62c2
PC
66 do_test<__int128>();
67 do_test<unsigned __int128>();
12bfa8bd
PC
68#endif
69
018afad3
ESR
70 do_test<float>();
71 do_test<double>();
72 do_test<long double>();
73}
74
75int main()
76{
77 test01();
78 return 0;
79}