// RUN: %clang_cc1 %s -triple i386-unknown-unknown -emit-llvm -O1 -relaxed-aliasing -fstrict-enums -std=c++11 -o - | FileCheck %s
// RUN: %clang_cc1 %s -triple i386-unknown-unknown -emit-llvm -O1 -relaxed-aliasing -std=c++11 -o - | FileCheck --check-prefix=NO-STRICT-ENUMS %s

bool f(bool *x) {
  return *x;
}
// CHECK: define zeroext i1 @_Z1fPb
// CHECK: load i8* %{{.*}}, align 1, !range !0

// Only enum-tests follow. Ensure that after the bool test, no further range
// metadata shows up when strict enums are disabled.
// NO-STRICT-ENUMS: define zeroext i1 @_Z1fPb
// NO-STRICT-ENUMS: load i8* %{{.*}}, align 1, !range !0
// NO-STRICT-ENUMS-NOT: !range

enum e1 { };
e1 g1(e1 *x) {
  return *x;
}
// CHECK: define i32 @_Z2g1P2e1
// CHECK: load i32* %x, align 4, !range !1

enum e2 { e2_a = 0 };
e2 g2(e2 *x) {
  return *x;
}
// CHECK: define i32 @_Z2g2P2e2
// CHECK: load i32* %x, align 4, !range !1

enum e3 { e3_a = 16 };
e3 g3(e3 *x) {
  return *x;
}
// CHECK: define i32 @_Z2g3P2e3
// CHECK: load i32* %x, align 4, !range !2

enum e4 { e4_a = -16};
e4 g4(e4 *x) {
  return *x;
}
// CHECK: define i32 @_Z2g4P2e4
// CHECK: load i32* %x, align 4, !range !3

enum e5 { e5_a = -16, e5_b = 16};
e5 g5(e5 *x) {
  return *x;
}
// CHECK: define i32 @_Z2g5P2e5
// CHECK: load i32* %x, align 4, !range !4

enum e6 { e6_a = -1 };
e6 g6(e6 *x) {
  return *x;
}
// CHECK: define i32 @_Z2g6P2e6
// CHECK: load i32* %x, align 4, !range !5

enum e7 { e7_a = -16, e7_b = 2};
e7 g7(e7 *x) {
  return *x;
}
// CHECK: define i32 @_Z2g7P2e7
// CHECK: load i32* %x, align 4, !range !3

enum e8 { e8_a = -17};
e8 g8(e8 *x) {
  return *x;
}
// CHECK: define i32 @_Z2g8P2e8
// CHECK: load i32* %x, align 4, !range !4

enum e9 { e9_a = 17};
e9 g9(e9 *x) {
  return *x;
}
// CHECK: define i32 @_Z2g9P2e9
// CHECK: load i32* %x, align 4, !range !2

enum e10 { e10_a = -16, e10_b = 32};
e10 g10(e10 *x) {
  return *x;
}
// CHECK: define i32 @_Z3g10P3e10
// CHECK: load i32* %x, align 4, !range !6

enum e11 {e11_a = 4294967296 };
enum e11 g11(enum e11 *x) {
  return *x;
}
// CHECK: define i64 @_Z3g11P3e11
// CHECK: load i64* %x, align {{[84]}}, !range !7

enum e12 {e12_a = 9223372036854775808U };
enum e12 g12(enum e12 *x) {
  return *x;
}
// CHECK: define i64 @_Z3g12P3e12
// CHECK: load i64* %x, align {{[84]}}
// CHECK-NOT: range
// CHECK: ret

enum e13 : char {e13_a = -1 };
e13 g13(e13 *x) {
  return *x;
}
// CHECK: define signext i8 @_Z3g13P3e13
// CHECK: load i8* %x, align 1
// CHECK-NOT: range
// CHECK: ret

enum class e14 {e14_a = 1};
e14 g14(e14 *x) {
  return *x;
}
// CHECK: define i32 @_Z3g14P3e14
// CHECK: load i32* %x, align 4
// CHECK-NOT: range
// CHECK: ret

enum e15 { e15_a = 2147483648 };
e15 g15(e15 *x) {
  return *x;
}
// CHECK: define i32 @_Z3g15P3e15
// CHECK: load i32* %x, align 4
// CHECK-NOT: range
// CHECK: ret

enum e16 { e16_a = -2147483648 };
e16 g16(e16 *x) {
  return *x;
}
// CHECK: define i32 @_Z3g16P3e16
// CHECK: load i32* %x, align 4
// CHECK-NOT: range
// CHECK: ret


// CHECK: !0 = metadata !{i8 0, i8 2}
// CHECK: !1 = metadata !{i32 0, i32 1}
// CHECK: !2 = metadata !{i32 0, i32 32}
// CHECK: !3 = metadata !{i32 -16, i32 16}
// CHECK: !4 = metadata !{i32 -32, i32 32}
// CHECK: !5 = metadata !{i32 -1, i32 1}
// CHECK: !6 = metadata !{i32 -64, i32 64}
// CHECK: !7 = metadata !{i64 0, i64 8589934592}
