mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-21 05:21:28 +00:00

The explicit set of destination types is not fully redundant when lazy loading since the TypeFinder will not find types used only in function bodies. This keeps the logic to drop the name of mapped types since it still helps with avoiding further renaming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223043 91177308-0d34-0410-b5e6-96231b3b80d8
23 lines
625 B
LLVM
23 lines
625 B
LLVM
; RUN: llvm-as %s -o %t.bc
|
|
; RUN: llvm-link -S %t.bc -o - | FileCheck %s
|
|
; RUN: llvm-link -S %s -o - | FileCheck %s
|
|
|
|
; Test that we don't try to map %C.0 and C and then try to map %C to a new type.
|
|
; This used to happen when lazy loading since we wouldn't then identify %C
|
|
; as a destination type until it was too late.
|
|
|
|
; CHECK: %C.0 = type { %B }
|
|
; CHECK-NEXT: %B = type { %A }
|
|
; CHECK-NEXT: %A = type { i8 }
|
|
; CHECK-NEXT: %C = type { %B }
|
|
|
|
%A = type { i8 }
|
|
%B = type { %A }
|
|
%C = type { %B }
|
|
%C.0 = type { %B }
|
|
define void @f1() {
|
|
getelementptr %C* null, i64 0, i32 0, i32 0
|
|
ret void
|
|
}
|
|
@g1 = external global %C.0
|