summaryrefslogtreecommitdiffstats
path: root/tests/codegen/enum-discriminant-value.rs
blob: cc14c21200253249e48a6b0388997e361857e265 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Verify that DIEnumerator uses isUnsigned flag when appropriate.
//
// compile-flags: -g -C no-prepopulate-passes

#[repr(i64)]
pub enum I64 {
    I64Min = i64::MIN,
    I64Max = i64::MAX,
}

#[repr(u64)]
pub enum U64 {
    U64Min = u64::MIN,
    U64Max = u64::MAX,
}

fn main() {
    let _a = I64::I64Min;
    let _b = I64::I64Max;
    let _c = U64::U64Min;
    let _d = U64::U64Max;
}

// CHECK: !DIEnumerator(name: "I64Min", value: -9223372036854775808)
// CHECK: !DIEnumerator(name: "I64Max", value: 9223372036854775807)
// CHECK: !DIEnumerator(name: "U64Min", value: 0, isUnsigned: true)
// CHECK: !DIEnumerator(name: "U64Max", value: 18446744073709551615, isUnsigned: true)