xref: /aosp_15_r20/external/llvm/test/Linker/opaque.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llvm-link %p/opaque.ll %p/Inputs/opaque.ll -S -o - | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: %A =   type {}
4*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: %B =   type { %C, %C, %B* }
5*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: %B.1 = type { %D, %E, %B.1* }
6*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: %C =   type { %A }
7*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: %D =   type { %E }
8*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: %E =   type opaque
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: @g1 = external global %B
11*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: @g2 = external global %A
12*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: @g3 = external global %B.1
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: getelementptr %A, %A* null, i32 0
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Worker%A = type opaque
17*9880d681SAndroid Build Coastguard Worker%B = type { %C, %C, %B* }
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Worker%C = type { %A }
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker@g1 = external global %B
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Workerdefine %B* @use_g1() {
24*9880d681SAndroid Build Coastguard Worker  ret %B* @g1
25*9880d681SAndroid Build Coastguard Worker}
26