rust/tests/mir-opt/strip_debuginfo.rs

40 lines
894 B
Rust

//@ revisions: NONE TINY ALL
//@[NONE] compile-flags: -Zmir_strip_debuginfo=none
//@[TINY] compile-flags: -Zmir_strip_debuginfo=locals-in-tiny-functions
//@[ALL] compile-flags: -Zmir_strip_debuginfo=all-locals
// CHECK: fn tiny_function
fn tiny_function(end: u32) -> u32 {
// CHECK: debug end => _1;
// NONE: debug a =>
// NONE: debug b =>
// TINY-NOT: debug a =>
// TINY-NOT: debug b =>
// ALL-NOT: debug a =>
// ALL-NOT: debug b =>
let a = !end;
let b = a ^ 1;
b
}
#[inline(never)]
fn opaque(_: u32) {}
// CHECK: fn looping_function
fn looping_function(end: u32) {
// CHECK: debug end => _1;
// NONE: debug i =>
// NONE: debug x =>
// TINY: debug i =>
// TINY: debug x =>
// ALL-NOT: debug i =>
// ALL-NOT: debug x =>
let mut i = 0;
while i < end {
let x = i ^ 1;
opaque(x);
}
}
fn main() {}