rust/tests/codegen/mir-inlined-line-numbers.rs
Pietro Albini 5fdeae610d
codegen: allow extra attributes to functions when panic=abort
When compiling with panic=abort (or using a target that doesn't have
unwinding support), the compiler adds the "nounwind" attribute to
functions. This results in a different LLVM IR, which results in a #NNN
added after the function name:

    tail call void @bar() #13, !dbg !467
    attributes #13 = { nounwind }

...instead of:

    tail call void @bar(), !dbg !467

This commit changes the matchers to swallow the #NNN, as it's not needed
for these specific tests.
2023-05-23 16:54:30 +02:00

26 lines
456 B
Rust

// compile-flags: -O -g
#![crate_type = "lib"]
#[inline(always)]
fn foo() {
bar();
}
#[inline(never)]
#[no_mangle]
fn bar() {
panic!();
}
#[no_mangle]
pub fn example() {
foo();
}
// CHECK-LABEL: @example
// CHECK: tail call void @bar(){{( #[0-9]+)?}}, !dbg [[DBG_ID:![0-9]+]]
// CHECK: [[DBG_ID]] = !DILocation(line: 7,
// CHECK-SAME: inlinedAt: [[INLINE_ID:![0-9]+]])
// CHECK: [[INLINE_ID]] = !DILocation(line: 18,