1 | #pragma clang system_header |
2 | |
3 | // Implement standard types that are known to be defined as unsigned in some |
4 | // implementations like MSVC. |
5 | namespace std { |
6 | namespace locale { |
7 | enum category : int { |
8 | none = 0u, |
9 | collate = 1u << 1u, |
10 | ctype = 1u << 2u, |
11 | monetary = 1u << 3u, |
12 | numeric = 1u << 4u, |
13 | time = 1u << 5u, |
14 | messages = 1u << 6u, |
15 | all = none | collate | ctype | monetary | numeric | time | messages |
16 | // CHECK MESSAGES: [[@LINE-1]]:9: warning: use of a signed integer operand with a binary bitwise operator |
17 | }; |
18 | } // namespace locale |
19 | |
20 | namespace ctype_base { |
21 | enum mask : int { |
22 | space, |
23 | print, |
24 | cntrl, |
25 | upper, |
26 | lower, |
27 | alpha, |
28 | digit, |
29 | punct, |
30 | xdigit, |
31 | /* blank, // C++11 */ |
32 | alnum = alpha | digit, |
33 | // CHECK MESSAGES: [[@LINE-1]]:11: warning: use of a signed integer operand with a binary bitwise operator |
34 | graph = alnum | punct |
35 | // CHECK MESSAGES: [[@LINE-1]]:11: warning: use of a signed integer operand with a binary bitwise operator |
36 | }; |
37 | } // namespace ctype_base |
38 | |
39 | namespace ios_base { |
40 | enum fmtflags : int { |
41 | dec = 0u, |
42 | oct = 1u << 2u, |
43 | hex = 1u << 3u, |
44 | basefield = dec | oct | hex | 0u, |
45 | // CHECK MESSAGES: [[@LINE-1]]:15: warning: use of a signed integer operand with a binary bitwise operator |
46 | left = 1u << 4u, |
47 | right = 1u << 5u, |
48 | internal = 1u << 6u, |
49 | adjustfield = left | right | internal, |
50 | // CHECK MESSAGES: [[@LINE-1]]:17: warning: use of a signed integer operand with a binary bitwise operator |
51 | scientific = 1u << 7u, |
52 | fixed = 1u << 8u, |
53 | floatfield = scientific | fixed | (scientific | fixed) | 0u, |
54 | // CHECK MESSAGES: [[@LINE-1]]:16: warning: use of a signed integer operand with a binary bitwise operator |
55 | // CHECK MESSAGES: [[@LINE-2]]:38: warning: use of a signed integer operand with a binary bitwise operator |
56 | boolalpha = 1u << 9u, |
57 | showbase = 1u << 10u, |
58 | showpoint = 1u << 11u, |
59 | showpos = 1u << 12u, |
60 | skipws = 1u << 13u, |
61 | unitbuf = 1u << 14u, |
62 | uppercase = 1u << 15u |
63 | }; |
64 | |
65 | enum iostate : int { |
66 | goodbit = 0u, |
67 | badbit = 1u << 1u, |
68 | failbit = 1u << 2u, |
69 | eofbit = 1u << 3u |
70 | }; |
71 | |
72 | enum openmode : int { |
73 | app = 0u, |
74 | binary = 0u << 1u, |
75 | in = 0u << 2u, |
76 | out = 0u << 3u, |
77 | trunc = 0u << 4u, |
78 | ate = 0u << 5u |
79 | }; |
80 | } // namespace ios_base |
81 | } // namespace std |
82 | |