35 lines · plain
1; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s2 3@var = global i32 04@tlsvar = thread_local addrspace(1) global i32 05 6define void @fail0(ptr %arg) {7; CHECK: llvm.threadlocal.address first argument must be a GlobalValue8 %p0 = call ptr @llvm.threadlocal.address(ptr %arg)9 store i32 42, ptr %p0, align 410 ret void11}12 13define void @fail1() {14; CHECK: llvm.threadlocal.address first argument must be a GlobalValue15 %p0 = call ptr @llvm.threadlocal.address.p0(ptr addrspacecast (ptr addrspace(1) @tlsvar to ptr addrspace(0)))16 store i32 42, ptr %p0, align 417 ret void18}19 20 21 22define void @fail2() {23; CHECK: llvm.threadlocal.address operand isThreadLocal() must be true24 %p0 = call ptr @llvm.threadlocal.address(ptr @var)25 store i32 42, ptr %p0, align 426 ret void27}28 29define void @fail3() {30; CHECK: llvm.threadlocal.address operand isThreadLocal() must be true31 %p0 = call ptr @llvm.threadlocal.address(ptr @fail2)32 store i32 42, ptr %p0, align 433 ret void34}35