Skip to content

Commit db9daab

Browse files
committed
Test MIR inlined var debug info
1 parent d41e12f commit db9daab

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
//@ test-mir-pass: Inline
2+
//@ revisions: PRESERVE FULL NONE LIMITED
3+
//@ [PRESERVE]compile-flags: -O -C debuginfo=0 -Zinline-mir-preserve-debug
4+
//@ [FULL]compile-flags: -O -C debuginfo=2
5+
//@ [NONE]compile-flags: -O -C debuginfo=0
6+
//@ [LIMITED]compile-flags: -O -C debuginfo=1
7+
8+
#[inline(always)]
9+
fn inline_fn1(arg1: i32) -> i32 {
10+
let local1 = arg1 + 1;
11+
let _local2 = 10;
12+
arg1 + local1
13+
}
14+
15+
#[inline(always)]
16+
fn inline_fn2(binding: i32) -> i32 {
17+
{
18+
let binding = inline_fn1(binding);
19+
binding
20+
}
21+
}
22+
23+
#[inline(never)]
24+
fn test() -> i32 {
25+
// CHECK-LABEL: fn test
26+
inline_fn2(1)
27+
// CHECK-LABEL: (inlined inline_fn2)
28+
29+
// PRESERVE: debug binding =>
30+
// FULL: debug binding =>
31+
// NONE-NOT: debug binding =>
32+
// LIMITED-NOT: debug binding =>
33+
34+
// CHECK-LABEL: (inlined inline_fn1)
35+
36+
// PRESERVE: debug arg1 =>
37+
// FULL: debug arg1 =>
38+
// NONE-NOT: debug arg1 =>
39+
// LIMITED-NOT: debug arg1 =>
40+
41+
// PRESERVE: debug local1 =>
42+
// FULL: debug local1 =>
43+
// NONE-NOT: debug local1 =>
44+
// LIMITED-NOT: debug local1 =>
45+
46+
// PRESERVE: debug _local2 =>
47+
// FULL: debug _local2 =>
48+
// NONE-NOT: debug _local2 =>
49+
// LIMITED-NOT: debug _local2 =>
50+
}

0 commit comments

Comments
 (0)