blob: 30ffa2aa3f43d865e8f562d02b2c066e2769696f [file] [edit]
; RUN: not opt -passes=verify < %s 2>&1 | FileCheck %s
@x = global i32 0
@alias = alias void (), ptr @f
define void @f() {
ret void
}
; CHECK: !inline_history should only exist on calls
define void @wrong_instr(ptr %x) {
load ptr, ptr %x, !inline_history !{ptr @wrong_instr}
ret void
}
; CHECK: !inline_history operands must be functions or null
define void @global_value_operand() {
call void @f(), !inline_history !{ptr @x}
ret void
}
; CHECK: !inline_history operands must be functions or null
define void @metadata_operand() {
call void @f(), !inline_history !{!0}
ret void
}
; CHECK: !inline_history operands must be functions or null
define void @nullptr_operand() {
call void @f(), !inline_history !{ptr null}
ret void
}
; CHECK-NOT: !inline_history operands must be functions or null
define void @empty_metadata() {
call void @f(), !inline_history !{}
ret void
}
define void @null_metadata() {
call void @f(), !inline_history !{null}
ret void
}
define void @function_metadata() {
call void @f(), !inline_history !{ptr @f}
ret void
}
define void @alias_metadata() {
call void @f(), !inline_history !{ptr @alias}
ret void
}
define void @mixed_metadata() {
call void @f(), !inline_history !{null, ptr @f, null, ptr @mixed_metadata}
ret void
}
!0 = !{}