// RUN: %clang_cc1 -x c -fsyntax-only -verify -Wenum-compare-conditional %s
// RUN: %clang_cc1 -x c++ -fsyntax-only -verify -Wenum-compare-conditional %s

enum ro { A = 0x10 };
enum rw { B = 0xFF };
enum { C = 0x1A};

enum {
  STATUS_SUCCESS,
  STATUS_FAILURE,
  MAX_BASE_STATUS_CODE
};

enum ExtendedStatusCodes {
  STATUS_SOMETHING_INTERESTING = MAX_BASE_STATUS_CODE + 1000,
};


int get_flag(int cond) {
  return cond ? A : B; 
  #ifdef __cplusplus
  // expected-warning@-2 {{enumeration type mismatch in conditional expression ('ro' and 'rw')}}
  #else 
  // expected-no-diagnostics
  #endif
}

// In the following cases we purposefully differ from GCC and dont warn because
// this code pattern is quite sensitive and we dont want to produce so many false positives.

int get_flag_anon_enum(int cond) {
  return cond ? A : C;
}

int foo(int c) {
  return c ? STATUS_SOMETHING_INTERESTING : STATUS_SUCCESS;
}
