From 805b8166cf77947bc0ad3a620e8ff35bc88b2cc2 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Mon, 1 Dec 2014 03:20:57 +0000 Subject: [PATCH] Add a test showing what the linker IdentifiedStructTypes is for. Without this it could just be deleted and all tests would pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222985 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Linker/Inputs/type-unique-dst-types2.ll | 3 +++ test/Linker/Inputs/type-unique-dst-types3.ll | 2 ++ test/Linker/type-unique-dst-types.ll | 16 ++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 test/Linker/Inputs/type-unique-dst-types2.ll create mode 100644 test/Linker/Inputs/type-unique-dst-types3.ll create mode 100644 test/Linker/type-unique-dst-types.ll diff --git a/test/Linker/Inputs/type-unique-dst-types2.ll b/test/Linker/Inputs/type-unique-dst-types2.ll new file mode 100644 index 00000000000..b565c6d7364 --- /dev/null +++ b/test/Linker/Inputs/type-unique-dst-types2.ll @@ -0,0 +1,3 @@ +%A.11 = type { %B } +%B = type { i8 } +@g1 = external global %A.11 diff --git a/test/Linker/Inputs/type-unique-dst-types3.ll b/test/Linker/Inputs/type-unique-dst-types3.ll new file mode 100644 index 00000000000..c5794ad839a --- /dev/null +++ b/test/Linker/Inputs/type-unique-dst-types3.ll @@ -0,0 +1,2 @@ +%A.11 = type opaque +@g2 = external global %A.11 diff --git a/test/Linker/type-unique-dst-types.ll b/test/Linker/type-unique-dst-types.ll new file mode 100644 index 00000000000..6033cb4d501 --- /dev/null +++ b/test/Linker/type-unique-dst-types.ll @@ -0,0 +1,16 @@ +; RUN: llvm-link %p/type-unique-dst-types.ll \ +; RUN: %p/Inputs/type-unique-dst-types2.ll \ +; RUN: %p/Inputs/type-unique-dst-types3.ll -S -o - | FileCheck %s + +; This tests the importance of keeping track of which types are part of the +; destination module. +; When the second input is merged in, the context gets an unused A.11. When +; the third module is then merged, we should pretend it doesn't exist. + +; CHECK: %A = type { %B } +; CHECK-NEXT: %B = type { i8 } +; CHECK-NEXT: %A.11.1 = type opaque + +%A = type { %B } +%B = type { i8 } +@g3 = external global %A -- 2.34.1