From fe533e862cd2d2d65e14970d327365dfe593aa27 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 7 Jun 2022 13:38:35 -0700 Subject: Specify DWARF alignment in bits, not bytes. In DWARF, alignment of types is specified in bits, as is made clear by the parameter name `AlignInBits`. However, `rustc` was incorrectly passing a byte alignment. This commit fixes that. This was noticed in upstream LLVM when I tried to check in a test consisting of LLVM IR generated from `rustc` and it triggered assertions [1]. [1]: https://reviews.llvm.org/D126835 --- src/test/codegen/debug-alignment.rs | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/test/codegen/debug-alignment.rs (limited to 'src/test/codegen/debug-alignment.rs') diff --git a/src/test/codegen/debug-alignment.rs b/src/test/codegen/debug-alignment.rs new file mode 100644 index 00000000000..f6c1062e0fc --- /dev/null +++ b/src/test/codegen/debug-alignment.rs @@ -0,0 +1,8 @@ +// Verifies that DWARF alignment is specified properly. +// +// compile-flags: -C debuginfo=2 +#![crate_type = "lib"] + +// CHECK: !DIGlobalVariable +// CHECK: align: 32 +pub static A: u32 = 1; -- cgit 1.4.1-3-g733a5