rust/tests/codegen/call-metadata.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

18 lines
383 B
Rust

// Checks that range metadata gets emitted on calls to functions returning a
// scalar value.
// compile-flags: -O -C no-prepopulate-passes
#![crate_type = "lib"]
pub fn test() {
// CHECK: call noundef i8 @some_true(){{( #[0-9]+)?}}, !range [[R0:![0-9]+]]
// CHECK: [[R0]] = !{i8 0, i8 3}
some_true();
}
#[no_mangle]
fn some_true() -> Option<bool> {
Some(true)
}