Mercurial > hg > CbC > CbC_gcc
comparison libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
145:1830386684a0 | 152:2b5abeee2509 |
---|---|
1 // Copyright (C) 2020 Free Software Foundation, Inc. | |
2 // | |
3 // This file is part of the GNU ISO C++ Library. This library is free | |
4 // software; you can redistribute it and/or modify it under the | |
5 // terms of the GNU General Public License as published by the | |
6 // Free Software Foundation; either version 3, or (at your option) | |
7 // any later version. | |
8 | |
9 // This library is distributed in the hope that it will be useful, | |
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 // GNU General Public License for more details. | |
13 | |
14 // You should have received a copy of the GNU General Public License along | |
15 // with this library; see the file COPYING3. If not see | |
16 // <http://www.gnu.org/licenses/>. | |
17 | |
18 // { dg-options "-std=gnu++2a" } | |
19 // { dg-do run { target c++2a } } | |
20 | |
21 #include <utility> | |
22 #include <limits> | |
23 #include <testsuite_hooks.h> | |
24 | |
25 void | |
26 test01() | |
27 { | |
28 unsigned int u = std::numeric_limits<unsigned int>::max(); | |
29 int s = -1; | |
30 VERIFY( std::cmp_less_equal(s, u) ); | |
31 VERIFY( !std::cmp_less_equal(u, s) ); | |
32 u = (unsigned) std::numeric_limits<int>::max() + 1U; | |
33 VERIFY( std::cmp_less_equal(s, u) ); | |
34 VERIFY( !std::cmp_less_equal(u, s) ); | |
35 } | |
36 | |
37 constexpr bool | |
38 test02() | |
39 { | |
40 unsigned int u = std::numeric_limits<unsigned int>::max(); | |
41 int s = -1; | |
42 if (!std::cmp_less_equal(s, u)) | |
43 throw 1; | |
44 if (std::cmp_less_equal(u, s)) | |
45 throw 2; | |
46 return true; | |
47 } | |
48 | |
49 void | |
50 test03() | |
51 { | |
52 short ss = -1; | |
53 int s = -1; | |
54 VERIFY( std::cmp_less_equal(s, ss) ); | |
55 VERIFY( std::cmp_less_equal(ss, s) ); | |
56 VERIFY( std::cmp_less_equal(-2, ss) ); | |
57 | |
58 unsigned int u = (unsigned int) -1; | |
59 VERIFY( std::cmp_less_equal(s, u) ); | |
60 VERIFY( !std::cmp_less_equal(u, s) ); | |
61 VERIFY( std::cmp_less_equal(ss, u) ); | |
62 VERIFY( !std::cmp_less_equal(u, ss) ); | |
63 VERIFY( std::cmp_less_equal(-2U, u) ); | |
64 | |
65 unsigned long long ul = (unsigned long long) -1; | |
66 VERIFY( std::cmp_less_equal(s, ul) ); | |
67 VERIFY( !std::cmp_less_equal(ul, s) ); | |
68 VERIFY( std::cmp_less_equal(ss, ul) ); | |
69 VERIFY( !std::cmp_less_equal(ul, ss) ); | |
70 VERIFY( std::cmp_less_equal(u, ul) ); | |
71 VERIFY( !std::cmp_less_equal(ul, u) ); | |
72 VERIFY( std::cmp_less_equal(-2UL, ul) ); | |
73 } | |
74 | |
75 int | |
76 main() | |
77 { | |
78 test01(); | |
79 static_assert( test02() ); | |
80 test03(); | |
81 } |