diff options
| author | bors <bors@rust-lang.org> | 2023-04-23 11:26:01 +0000 | 
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-04-23 11:26:01 +0000 | 
| commit | 9e540df7931a32ca286eb2e907afde78b718fd17 (patch) | |
| tree | 8fcbde75f770f1283b96c9f98a418c7129584167 /tests/codegen/debuginfo-constant-locals.rs | |
| parent | f12a7fa00fb7a99a92661bb9ae2b768dac0c5d40 (diff) | |
| parent | b8c67d82d3b4f152a38711de3466875b270e33de (diff) | |
| download | rust-9e540df7931a32ca286eb2e907afde78b718fd17.tar.gz rust-9e540df7931a32ca286eb2e907afde78b718fd17.zip | |
Auto merge of #107404 - cjgillot:const-debuginfo, r=oli-obk
Turn on ConstDebugInfo pass. Split from https://github.com/rust-lang/rust/pull/103657 Moving those constant into debuginfo allows to shrink the number of locals and the actual size of the MIR body.
Diffstat (limited to 'tests/codegen/debuginfo-constant-locals.rs')
| -rw-r--r-- | tests/codegen/debuginfo-constant-locals.rs | 28 | 
1 files changed, 28 insertions, 0 deletions
| diff --git a/tests/codegen/debuginfo-constant-locals.rs b/tests/codegen/debuginfo-constant-locals.rs new file mode 100644 index 00000000000..95a1b8c9d21 --- /dev/null +++ b/tests/codegen/debuginfo-constant-locals.rs @@ -0,0 +1,28 @@ +// compile-flags: -g -O + +// Check that simple constant values are preserved in debuginfo across both MIR opts and LLVM opts + +#![crate_type = "lib"] + +#[no_mangle] +pub fn check_it() { + let a = 1; + let b = 42; + + foo(a + b); +} + +#[inline(never)] +fn foo(x: i32) { + std::process::exit(x); +} + +// CHECK-LABEL: @check_it +// CHECK: call void @llvm.dbg.value(metadata i32 1, metadata ![[a_metadata:[0-9]+]], metadata !DIExpression()) +// CHECK: call void @llvm.dbg.value(metadata i32 42, metadata ![[b_metadata:[0-9]+]], metadata !DIExpression()) + +// CHECK: ![[a_metadata]] = !DILocalVariable(name: "a" +// CHECK-SAME: line: 9 + +// CHECK: ![[b_metadata]] = !DILocalVariable(name: "b" +// CHECK-SAME: line: 10 | 
