Add a test for C-style repr128 enum DWARF debuginfo
This commit is contained in:
parent
25c1c635e5
commit
6f6eebde20
16
src/test/run-make/repr128-dwarf/Makefile
Normal file
16
src/test/run-make/repr128-dwarf/Makefile
Normal file
@ -0,0 +1,16 @@
|
||||
# ignore-windows
|
||||
# This test should be replaced with one in src/test/debuginfo once GDB or LLDB support 128-bit
|
||||
# enums.
|
||||
|
||||
include ../../run-make-fulldeps/tools.mk
|
||||
|
||||
all:
|
||||
$(RUSTC) -Cdebuginfo=2 lib.rs -o $(TMPDIR)/repr128.rlib
|
||||
"$(LLVM_BIN_DIR)"/llvm-dwarfdump -n U128A $(TMPDIR)/repr128.rlib | $(CGREP) "DW_AT_const_value (<0x10> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 )"
|
||||
"$(LLVM_BIN_DIR)"/llvm-dwarfdump -n U128B $(TMPDIR)/repr128.rlib | $(CGREP) "DW_AT_const_value (<0x10> 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 )"
|
||||
"$(LLVM_BIN_DIR)"/llvm-dwarfdump -n U128C $(TMPDIR)/repr128.rlib | $(CGREP) "DW_AT_const_value (<0x10> 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 )"
|
||||
"$(LLVM_BIN_DIR)"/llvm-dwarfdump -n U128D $(TMPDIR)/repr128.rlib | $(CGREP) "DW_AT_const_value (<0x10> ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff )"
|
||||
"$(LLVM_BIN_DIR)"/llvm-dwarfdump -n I128A $(TMPDIR)/repr128.rlib | $(CGREP) "DW_AT_const_value (<0x10> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 )"
|
||||
"$(LLVM_BIN_DIR)"/llvm-dwarfdump -n I128B $(TMPDIR)/repr128.rlib | $(CGREP) "DW_AT_const_value (<0x10> ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff )"
|
||||
"$(LLVM_BIN_DIR)"/llvm-dwarfdump -n I128C $(TMPDIR)/repr128.rlib | $(CGREP) "DW_AT_const_value (<0x10> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 )"
|
||||
"$(LLVM_BIN_DIR)"/llvm-dwarfdump -n I128D $(TMPDIR)/repr128.rlib | $(CGREP) "DW_AT_const_value (<0x10> ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 7f )"
|
23
src/test/run-make/repr128-dwarf/lib.rs
Normal file
23
src/test/run-make/repr128-dwarf/lib.rs
Normal file
@ -0,0 +1,23 @@
|
||||
#![crate_type = "lib"]
|
||||
#![feature(repr128)]
|
||||
|
||||
// Use .to_le() to ensure that the bytes are in the same order on both little- and big-endian
|
||||
// platforms.
|
||||
|
||||
#[repr(u128)]
|
||||
pub enum U128Enum {
|
||||
U128A = 0_u128.to_le(),
|
||||
U128B = 1_u128.to_le(),
|
||||
U128C = (u64::MAX as u128 + 1).to_le(),
|
||||
U128D = u128::MAX.to_le(),
|
||||
}
|
||||
|
||||
#[repr(i128)]
|
||||
pub enum I128Enum {
|
||||
I128A = 0_i128.to_le(),
|
||||
I128B = (-1_i128).to_le(),
|
||||
I128C = i128::MIN.to_le(),
|
||||
I128D = i128::MAX.to_le(),
|
||||
}
|
||||
|
||||
pub fn f(_: U128Enum, _: I128Enum) {}
|
Loading…
x
Reference in New Issue
Block a user