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 // <cctype>
10
11 #include <cctype>
12 #include <type_traits>
13 #include <cassert>
14
15 #include "test_macros.h"
16
17 #ifdef isalnum
18 #error isalnum defined
19 #endif
20
21 #ifdef isalpha
22 #error isalpha defined
23 #endif
24
25 #ifdef isblank
26 #error isblank defined
27 #endif
28
29 #ifdef iscntrl
30 #error iscntrl defined
31 #endif
32
33 #ifdef isdigit
34 #error isdigit defined
35 #endif
36
37 #ifdef isgraph
38 #error isgraph defined
39 #endif
40
41 #ifdef islower
42 #error islower defined
43 #endif
44
45 #ifdef isprint
46 #error isprint defined
47 #endif
48
49 #ifdef ispunct
50 #error ispunct defined
51 #endif
52
53 #ifdef isspace
54 #error isspace defined
55 #endif
56
57 #ifdef isupper
58 #error isupper defined
59 #endif
60
61 #ifdef isxdigit
62 #error isxdigit defined
63 #endif
64
65 #ifdef tolower
66 #error tolower defined
67 #endif
68
69 #ifdef toupper
70 #error toupper defined
71 #endif
72
main(int,char **)73 int main(int, char**)
74 {
75
76 ASSERT_SAME_TYPE(int, decltype(std::isalnum(0)));
77 ASSERT_SAME_TYPE(int, decltype(std::isalpha(0)));
78 ASSERT_SAME_TYPE(int, decltype(std::isblank(0)));
79 ASSERT_SAME_TYPE(int, decltype(std::iscntrl(0)));
80 ASSERT_SAME_TYPE(int, decltype(std::isdigit(0)));
81 ASSERT_SAME_TYPE(int, decltype(std::isgraph(0)));
82 ASSERT_SAME_TYPE(int, decltype(std::islower(0)));
83 ASSERT_SAME_TYPE(int, decltype(std::isprint(0)));
84 ASSERT_SAME_TYPE(int, decltype(std::ispunct(0)));
85 ASSERT_SAME_TYPE(int, decltype(std::isspace(0)));
86 ASSERT_SAME_TYPE(int, decltype(std::isupper(0)));
87 ASSERT_SAME_TYPE(int, decltype(std::isxdigit(0)));
88 ASSERT_SAME_TYPE(int, decltype(std::tolower(0)));
89 ASSERT_SAME_TYPE(int, decltype(std::toupper(0)));
90
91 assert( std::isalnum('a'));
92 assert( std::isalpha('a'));
93 assert( std::isblank(' '));
94 assert(!std::iscntrl(' '));
95 assert(!std::isdigit('a'));
96 assert( std::isgraph('a'));
97 assert( std::islower('a'));
98 assert( std::isprint('a'));
99 assert(!std::ispunct('a'));
100 assert(!std::isspace('a'));
101 assert(!std::isupper('a'));
102 assert( std::isxdigit('a'));
103 assert( std::tolower('A') == 'a');
104 assert( std::toupper('a') == 'A');
105
106 return 0;
107 }
108