xref: /aosp_15_r20/external/llvm/test/Linker/2003-08-23-GlobalVarLinking.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llvm-as < %s > %t.out1.bc
2*9880d681SAndroid Build Coastguard Worker; RUN: echo "%%T1 = type opaque %%T2 = type opaque @S = external global { i32, %%T1* } declare void @F(%%T2*)"\
3*9880d681SAndroid Build Coastguard Worker; RUN:   | llvm-as > %t.out2.bc
4*9880d681SAndroid Build Coastguard Worker; RUN: llvm-link %t.out1.bc %t.out2.bc -S | FileCheck %s
5*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: opaque
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker; After linking this testcase, there should be no opaque types left.  The two
8*9880d681SAndroid Build Coastguard Worker; S's should cause the opaque type to be resolved to 'int'.
9*9880d681SAndroid Build Coastguard Worker@S = global { i32, i32* } { i32 5, i32* null }		; <{ i32, i32* }*> [#uses=0]
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdeclare void @F(i32*)
12