%A = type { } | |
%B = type { %D, %E, %B* } | |
%D = type { %E } | |
%E = type opaque | |
@g2 = external global %A | |
@g3 = external global %B | |
define void @f1() { | |
getelementptr %A, %A* null, i32 0 | |
ret void | |
} | |
define %A* @use_g2() { | |
ret %A* @g2 | |
} | |
define %B* @use_g3() { | |
ret %B* @g3 | |
} |