diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2020-03-05 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2020-03-05 20:13:01 +0100 |
| commit | 30650f867bb0a94b3378942487e78f3eb7eb868f (patch) | |
| tree | d73edbe0b0402df56e63bccb630af617f74a2817 /src/test/codegen | |
| parent | ebd941b890e4731aed0ea1f76f056c8a6394f251 (diff) | |
| download | rust-30650f867bb0a94b3378942487e78f3eb7eb868f.tar.gz rust-30650f867bb0a94b3378942487e78f3eb7eb868f.zip | |
debuginfo: Use is unsigned flag when emitting enumerators
Diffstat (limited to 'src/test/codegen')
| -rw-r--r-- | src/test/codegen/enum-discriminant-value.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/codegen/enum-discriminant-value.rs b/src/test/codegen/enum-discriminant-value.rs new file mode 100644 index 00000000000..f9da987765f --- /dev/null +++ b/src/test/codegen/enum-discriminant-value.rs @@ -0,0 +1,27 @@ +// Verify that DIEnumerator uses isUnsigned flag when appropriate. +// +// compile-flags: -g -C no-prepopulate-passes + +#[repr(i64)] +pub enum I64 { + I64Min = std::i64::MIN, + I64Max = std::i64::MAX, +} + +#[repr(u64)] +pub enum U64 { + U64Min = std::u64::MIN, + U64Max = std::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) |
