// PR c++/47570
// { dg-do compile { target c++11 } }

unsigned int constexpr one()
{ return 1; }

int constexpr one_B()
{ return 1; }

int main()
{
  // FAIL TO COMPILE:
  static bool constexpr SC_huh1 = ((unsigned int)one()) >= ((unsigned int)0);
  static bool constexpr SC_huh2 = one() >= ((unsigned int)0);
  static bool constexpr SC_huh3 = one() >= 0;

  // COMPILE OK:
  static bool constexpr SC_huh4 = ((one() == 0) || (one() > 0));
  static bool constexpr SC_huh5 = one() == 0;
  static bool constexpr SC_huh6 = one() > 0;
  static bool constexpr SC_huh7 = one_B() >= 0;
  static bool constexpr SC_huh8 = one() >= 1;

  return SC_huh3;
}
