// RUN: clang-tidy %s -checks='-*,hicpp-signed-bitwise' -- -std=c++11

#include "hicpp-signed-bitwise-standard-types.h"

void pure_bitmask_types() {
  // std::locale::category
  int SResult = 0;
  std::locale::category C = std::locale::category::ctype;

  SResult = std::locale::category::none | std::locale::category::collate;
  SResult|= std::locale::category::collate;
  SResult = std::locale::category::ctype & std::locale::category::monetary;
  SResult&= std::locale::category::monetary;
  SResult = std::locale::category::numeric ^ std::locale::category::time;
  SResult^= std::locale::category::time;
  SResult = std::locale::category::messages | std::locale::category::all;

  SResult = std::locale::category::all & C;
  SResult&= std::locale::category::all;
  SResult = std::locale::category::all | C;
  SResult|= std::locale::category::all;
  SResult = std::locale::category::all ^ C;
  SResult^= std::locale::category::all;

  // std::ctype_base::mask
  std::ctype_base::mask M = std::ctype_base::mask::punct;

  SResult = std::ctype_base::mask::space | std::ctype_base::mask::print;
  SResult = std::ctype_base::mask::cntrl & std::ctype_base::mask::upper;
  SResult = std::ctype_base::mask::lower ^ std::ctype_base::mask::alpha;
  SResult|= std::ctype_base::mask::digit | std::ctype_base::mask::punct;
  SResult&= std::ctype_base::mask::xdigit & std::ctype_base::mask::alnum;
  SResult^= std::ctype_base::mask::alnum ^ std::ctype_base::mask::graph;

  SResult&= std::ctype_base::mask::space & M;
  SResult|= std::ctype_base::mask::space | M;
  SResult^= std::ctype_base::mask::space ^ M;

  // std::ios_base::fmtflags
  std::ios_base::fmtflags F = std::ios_base::fmtflags::floatfield;

  SResult = std::ios_base::fmtflags::dec | std::ios_base::fmtflags::oct;
  SResult = std::ios_base::fmtflags::hex & std::ios_base::fmtflags::basefield;
  SResult = std::ios_base::fmtflags::left ^ std::ios_base::fmtflags::right;
  SResult|= std::ios_base::fmtflags::internal | std::ios_base::fmtflags::adjustfield;
  SResult&= std::ios_base::fmtflags::scientific & std::ios_base::fmtflags::fixed;
  SResult^= std::ios_base::fmtflags::floatfield ^ std::ios_base::fmtflags::boolalpha;
  SResult = std::ios_base::fmtflags::showbase | std::ios_base::fmtflags::showpoint;
  SResult = std::ios_base::fmtflags::showpos & std::ios_base::fmtflags::skipws;
  SResult = std::ios_base::fmtflags::unitbuf ^ std::ios_base::fmtflags::uppercase;

  SResult|= std::ios_base::fmtflags::unitbuf | F;
  SResult&= std::ios_base::fmtflags::unitbuf & F;
  SResult^= std::ios_base::fmtflags::unitbuf ^ F;

  // std::ios_base::iostate
  std::ios_base::iostate S = std::ios_base::iostate::goodbit;

  SResult^= std::ios_base::iostate::goodbit | std::ios_base::iostate::badbit;
  SResult|= std::ios_base::iostate::failbit & std::ios_base::iostate::eofbit;
  SResult&= std::ios_base::iostate::failbit ^ std::ios_base::iostate::eofbit;

  SResult = std::ios_base::iostate::goodbit | S;
  SResult = std::ios_base::iostate::goodbit & S;
  SResult = std::ios_base::iostate::goodbit ^ S;

  // std::ios_base::openmode
  std::ios_base::openmode B = std::ios_base::openmode::binary;

  SResult = std::ios_base::openmode::app | std::ios_base::openmode::binary;
  SResult = std::ios_base::openmode::in & std::ios_base::openmode::out;
  SResult = std::ios_base::openmode::trunc ^ std::ios_base::openmode::ate;

  SResult&= std::ios_base::openmode::trunc | B;
  SResult^= std::ios_base::openmode::trunc & B;
  SResult|= std::ios_base::openmode::trunc ^ B;
}

void still_forbidden() {
  // std::locale::category
  unsigned int UResult = 0u;
  int SResult = 0;

  SResult = std::ctype_base::mask::print ^ 8u;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  SResult = std::ctype_base::mask::cntrl | 8;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  SResult = std::ctype_base::mask::upper & 8;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  SResult = std::ctype_base::mask::lower ^ -8;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  
  // Staying within the allowed standard types is ok for bitwise assignment
  // operations.
  std::ctype_base::mask var = std::ctype_base::mask::print;
  SResult<<= std::ctype_base::mask::upper;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  SResult>>= std::ctype_base::mask::upper;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  SResult &= std::ctype_base::mask::upper;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  SResult |= std::ctype_base::mask::upper;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  SResult ^= std::ctype_base::mask::upper;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator

  UResult = std::locale::category::collate << 1u;
  UResult = std::locale::category::ctype << 1;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::locale::category::monetary >> 1u;
  UResult = std::locale::category::numeric >> 1;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator

  UResult = ~std::locale::category::messages;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a unary bitwise operator
  SResult = ~std::locale::category::all;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a unary bitwise operator

  // std::ctype_base::mask
  UResult = std::ctype_base::mask::space | 8;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ctype_base::mask::print & 8u;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ctype_base::mask::cntrl ^ -8;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator

  UResult = std::ctype_base::mask::upper << 1;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ctype_base::mask::lower << 1u;
  UResult = std::ctype_base::mask::alpha >> 1u;
  UResult = std::ctype_base::mask::digit >> 1u;

  UResult = ~std::ctype_base::mask::punct;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a unary bitwise operator
  SResult = ~std::ctype_base::mask::xdigit;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a unary bitwise operator

  // std::ios_base::fmtflags
  UResult = std::ios_base::fmtflags::dec | 1;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::fmtflags::oct & 1u;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::fmtflags::hex ^ -1;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator

  UResult = std::ios_base::fmtflags::basefield >> 1;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::fmtflags::left >> 1u;
  UResult = std::ios_base::fmtflags::right << 1;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::fmtflags::internal << 1u;

  UResult = ~std::ios_base::fmtflags::adjustfield;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a unary bitwise operator
  SResult = ~std::ios_base::fmtflags::scientific;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a unary bitwise operator

  // std::ios_base::iostate
  UResult = std::ios_base::iostate::goodbit | 8;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::iostate::badbit & 8u;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::iostate::failbit ^ -8;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator

  UResult = std::ios_base::iostate::eofbit << 1;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::iostate::goodbit << 1u;
  UResult = std::ios_base::iostate::badbit >> 1;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::iostate::failbit >> 1u;

  UResult = ~std::ios_base::iostate::eofbit;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a unary bitwise operator
  SResult = ~std::ios_base::iostate::goodbit;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a unary bitwise operator

  // std::ios_base::openmode
  UResult = std::ios_base::app | 8;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::binary & 8u;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::in ^ -8;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator

  UResult = std::ios_base::out >> 1;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::trunc >> 1u;
  UResult = std::ios_base::ate << 1;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a binary bitwise operator
  UResult = std::ios_base::ate << 1u;

  UResult = ~std::ios_base::openmode::app;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a unary bitwise operator
  SResult = ~std::ios_base::openmode::binary;
  // CHECK-MESSAGES: [[@LINE-1]]:13: warning: use of a signed integer operand with a unary bitwise operator
}
