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 // XFAIL: no-wide-characters
10
11 // <wctype.h>
12
13 #include <wctype.h>
14 #include <type_traits>
15
16 #include "test_macros.h"
17
18 #ifndef WEOF
19 #error WEOF not defined
20 #endif
21
22 #ifdef iswalnum
23 #error iswalnum defined
24 #endif
25
26 #ifdef iswalpha
27 #error iswalpha defined
28 #endif
29
30 #ifdef iswblank
31 #error iswblank defined
32 #endif
33
34 #ifdef iswcntrl
35 #error iswcntrl defined
36 #endif
37
38 #ifdef iswdigit
39 #error iswdigit defined
40 #endif
41
42 #ifdef iswgraph
43 #error iswgraph defined
44 #endif
45
46 #ifdef iswlower
47 #error iswlower defined
48 #endif
49
50 #ifdef iswprint
51 #error iswprint defined
52 #endif
53
54 #ifdef iswpunct
55 #error iswpunct defined
56 #endif
57
58 #ifdef iswspace
59 #error iswspace defined
60 #endif
61
62 #ifdef iswupper
63 #error iswupper defined
64 #endif
65
66 #ifdef iswxdigit
67 #error iswxdigit defined
68 #endif
69
70 #ifdef iswctype
71 #error iswctype defined
72 #endif
73
74 #ifdef wctype
75 #error wctype defined
76 #endif
77
78 #ifdef towlower
79 #error towlower defined
80 #endif
81
82 #ifdef towupper
83 #error towupper defined
84 #endif
85
86 #ifdef towctrans
87 #error towctrans defined
88 #endif
89
90 #ifdef wctrans
91 #error wctrans defined
92 #endif
93
main(int,char **)94 int main(int, char**)
95 {
96 wint_t w = 0;
97 wctrans_t wctr = 0;
98 wctype_t wct = 0;
99 static_assert((std::is_same<decltype(iswalnum(w)), int>::value), "");
100 static_assert((std::is_same<decltype(iswalpha(w)), int>::value), "");
101 static_assert((std::is_same<decltype(iswblank(w)), int>::value), "");
102 static_assert((std::is_same<decltype(iswcntrl(w)), int>::value), "");
103 static_assert((std::is_same<decltype(iswdigit(w)), int>::value), "");
104 static_assert((std::is_same<decltype(iswgraph(w)), int>::value), "");
105 static_assert((std::is_same<decltype(iswlower(w)), int>::value), "");
106 static_assert((std::is_same<decltype(iswprint(w)), int>::value), "");
107 static_assert((std::is_same<decltype(iswpunct(w)), int>::value), "");
108 static_assert((std::is_same<decltype(iswspace(w)), int>::value), "");
109 static_assert((std::is_same<decltype(iswupper(w)), int>::value), "");
110 static_assert((std::is_same<decltype(iswxdigit(w)), int>::value), "");
111 static_assert((std::is_same<decltype(iswctype(w, wct)), int>::value), "");
112 static_assert((std::is_same<decltype(wctype("")), wctype_t>::value), "");
113 static_assert((std::is_same<decltype(towlower(w)), wint_t>::value), "");
114 static_assert((std::is_same<decltype(towupper(w)), wint_t>::value), "");
115 static_assert((std::is_same<decltype(towctrans(w, wctr)), wint_t>::value), "");
116 static_assert((std::is_same<decltype(wctrans("")), wctrans_t>::value), "");
117
118 return 0;
119 }
120