#pragma clang system_header // Implement standard types that are known to be defined as unsigned in some // implementations like MSVC. namespace std { namespace locale { enum category : int { none = 0u, collate = 1u << 1u, ctype = 1u << 2u, monetary = 1u << 3u, numeric = 1u << 4u, time = 1u << 5u, messages = 1u << 6u, all = none | collate | ctype | monetary | numeric | time | messages // CHECK MESSAGES: [[@LINE-1]]:9: warning: use of a signed integer operand with a binary bitwise operator }; } // namespace locale namespace ctype_base { enum mask : int { space, print, cntrl, upper, lower, alpha, digit, punct, xdigit, /* blank, // C++11 */ alnum = alpha | digit, // CHECK MESSAGES: [[@LINE-1]]:11: warning: use of a signed integer operand with a binary bitwise operator graph = alnum | punct // CHECK MESSAGES: [[@LINE-1]]:11: warning: use of a signed integer operand with a binary bitwise operator }; } // namespace ctype_base namespace ios_base { enum fmtflags : int { dec = 0u, oct = 1u << 2u, hex = 1u << 3u, basefield = dec | oct | hex | 0u, // CHECK MESSAGES: [[@LINE-1]]:15: warning: use of a signed integer operand with a binary bitwise operator left = 1u << 4u, right = 1u << 5u, internal = 1u << 6u, adjustfield = left | right | internal, // CHECK MESSAGES: [[@LINE-1]]:17: warning: use of a signed integer operand with a binary bitwise operator scientific = 1u << 7u, fixed = 1u << 8u, floatfield = scientific | fixed | (scientific | fixed) | 0u, // CHECK MESSAGES: [[@LINE-1]]:16: warning: use of a signed integer operand with a binary bitwise operator // CHECK MESSAGES: [[@LINE-2]]:38: warning: use of a signed integer operand with a binary bitwise operator boolalpha = 1u << 9u, showbase = 1u << 10u, showpoint = 1u << 11u, showpos = 1u << 12u, skipws = 1u << 13u, unitbuf = 1u << 14u, uppercase = 1u << 15u }; enum iostate : int { goodbit = 0u, badbit = 1u << 1u, failbit = 1u << 2u, eofbit = 1u << 3u }; enum openmode : int { app = 0u, binary = 0u << 1u, in = 0u << 2u, out = 0u << 3u, trunc = 0u << 4u, ate = 0u << 5u }; } // namespace ios_base } // namespace std