File: enum-discriminant-value.rs

package info (click to toggle)
rustc-web 1.85.0%2Bdfsg3-1~deb12u3
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 1,759,988 kB
  • sloc: xml: 158,127; python: 35,830; javascript: 19,497; cpp: 19,002; sh: 17,245; ansic: 13,127; asm: 4,376; makefile: 1,056; lisp: 29; perl: 29; ruby: 19; sql: 11
file content (27 lines) | stat: -rw-r--r-- 683 bytes parent folder | download | duplicates (6)
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)