34 lines · plain
1; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s2 3define ptr @resolver() {4 ret ptr null5}6 7@inval_linkage = extern_weak ifunc void (), ptr @resolver8; CHECK: IFunc should have {{.*}} linkage!9; CHECK-NEXT: @inval_linkage10 11@g = external global i3212@inval_objtype = ifunc void (), ptr @g13; CHECK: IFunc must have a Function resolver14 15declare ptr @resolver_decl()16@inval_resolver_decl = ifunc void (), ptr @resolver_decl17; CHECK: IFunc resolver must be a definition18; CHECK-NEXT: @inval_resolver_decl19 20define available_externally ptr @resolver_linker_decl() {21 ret ptr null22}23@inval_resolver_decl2 = ifunc void (), ptr @resolver_linker_decl24; CHECK: IFunc resolver must be a definition25; CHECK-NEXT: @inval_resolver_decl226 27@ifunc_nonpointer_return_type = ifunc i32 (), ptr @resolver_returns_nonpointer28; CHECK: IFunc resolver must return a pointer29; CHECK-NEXT: ptr @ifunc_nonpointer_return_type30 31define i32 @resolver_returns_nonpointer() {32 ret i32 033}34