33 lines
962 B
LLVM
33 lines
962 B
LLVM
; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s
|
|
|
|
define ptr @resolver() {
|
|
ret ptr null
|
|
}
|
|
|
|
@inval_linkage = extern_weak ifunc void (), ptr @resolver
|
|
; CHECK: IFunc should have {{.*}} linkage!
|
|
; CHECK-NEXT: @inval_linkage
|
|
|
|
@g = external global i32
|
|
@inval_objtype = ifunc void (), ptr @g
|
|
; CHECK: IFunc must have a Function resolver
|
|
|
|
declare ptr @resolver_decl()
|
|
@inval_resolver_decl = ifunc void (), ptr @resolver_decl
|
|
; CHECK: IFunc resolver must be a definition
|
|
; CHECK-NEXT: @inval_resolver_decl
|
|
|
|
define available_externally ptr @resolver_linker_decl() {
|
|
ret ptr null
|
|
}
|
|
@inval_resolver_decl2 = ifunc void (), ptr @resolver_linker_decl
|
|
; CHECK: IFunc resolver must be a definition
|
|
; CHECK-NEXT: @inval_resolver_decl2
|
|
|
|
@ifunc_nonpointer_return_type = ifunc i32 (), ptr @resolver_returns_nonpointer
|
|
; CHECK: IFunc resolver must return a pointer
|
|
; CHECK-NEXT: ptr @ifunc_nonpointer_return_type
|
|
|
|
define i32 @resolver_returns_nonpointer() {
|
|
ret i32 0
|
|
}
|