Removing pointer indirections to at least somewhat preserve test
intent. I wasn't aware this kind of directly co-recursive type
is even legal.
-%struct.A = type { %struct.B* }
+%struct.A = type { %struct.B }
%struct.B = type opaque
define i32 @foo(%struct.A** %A) {
-%struct.A = type { %struct.B* }
+%struct.A = type { %struct.B }
%struct.B = type opaque
-define i32 @bar(%struct.A* %A) {
+define i32 @bar(%struct.A %A) {
ret i32 0
}
; RUN: llvm-link -S -o - %p/pr22807.ll %p/Inputs/pr22807-1.ll %p/Inputs/pr22807-2.ll | FileCheck %s
; CHECK-NOT: type
-; CHECK: %struct.B = type { %struct.A* }
-; CHECK-NEXT: %struct.A = type { %struct.B* }
+; CHECK: %struct.B = type { %struct.A }
+; CHECK-NEXT: %struct.A = type { %struct.B }
; CHECK-NOT: type
-%struct.B = type { %struct.A* }
+%struct.B = type { %struct.A }
%struct.A = type opaque
-define i32 @baz(%struct.B* %BB) {
+define i32 @baz(%struct.B %BB) {
ret i32 0
}