diff options
| author | Wesley Wiser <wesleywiser@microsoft.com> | 2022-10-28 15:01:05 -0400 |
|---|---|---|
| committer | Camille GILLOT <gillot.camille@gmail.com> | 2023-04-22 23:41:48 +0200 |
| commit | 4e8b642646f4e36ad23313d5ecf3332adb3e6f21 (patch) | |
| tree | fe1cb747db5a0228895d6a5e3ebfa7be60196e4f /tests/codegen/debuginfo-constant-locals.rs | |
| parent | 4ad04ad8419577f5dec37a80f3b46506edb84c96 (diff) | |
| download | rust-4e8b642646f4e36ad23313d5ecf3332adb3e6f21.tar.gz rust-4e8b642646f4e36ad23313d5ecf3332adb3e6f21.zip | |
Turn on ConstDebugInfo pass.
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 |
