summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorEugene Leviant <eleviant@accesssoftek.com>2018-10-12 07:24:02 +0000
committerEugene Leviant <eleviant@accesssoftek.com>2018-10-12 07:24:02 +0000
commiteddf6b5df563a6d10ba88272faaeae90c37dcc00 (patch)
tree36450af1d4b1f73134ebb85429c3b2d0c3555084 /llvm/test
parentd11aae5db572445dd22c80b2dee100f7dfbaee94 (diff)
downloadbcm5719-llvm-eddf6b5df563a6d10ba88272faaeae90c37dcc00.tar.gz
bcm5719-llvm-eddf6b5df563a6d10ba88272faaeae90c37dcc00.zip
[ThinLTO] Don't import GV which contains blockaddress
Differential revision: https://reviews.llvm.org/D53139 llvm-svn: 344325
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/ThinLTO/X86/Inputs/globals-import-blockaddr.ll12
-rw-r--r--llvm/test/ThinLTO/X86/globals-import-blockaddr.ll18
2 files changed, 30 insertions, 0 deletions
diff --git a/llvm/test/ThinLTO/X86/Inputs/globals-import-blockaddr.ll b/llvm/test/ThinLTO/X86/Inputs/globals-import-blockaddr.ll
new file mode 100644
index 00000000000..fe1fa70ee83
--- /dev/null
+++ b/llvm/test/ThinLTO/X86/Inputs/globals-import-blockaddr.ll
@@ -0,0 +1,12 @@
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+@label_addr = internal constant [1 x i8*] [i8* blockaddress(@foo, %lb)], align 8
+
+; Function Attrs: noinline norecurse nounwind optnone uwtable
+define dso_local [1 x i8*]* @foo() {
+ br label %lb
+
+lb:
+ ret [1 x i8*]* @label_addr
+}
diff --git a/llvm/test/ThinLTO/X86/globals-import-blockaddr.ll b/llvm/test/ThinLTO/X86/globals-import-blockaddr.ll
new file mode 100644
index 00000000000..d4ed674030a
--- /dev/null
+++ b/llvm/test/ThinLTO/X86/globals-import-blockaddr.ll
@@ -0,0 +1,18 @@
+; RUN: opt -module-summary %s -o %t1.bc
+; RUN: opt -module-summary %p/Inputs/globals-import-blockaddr.ll -o %t2.bc
+; RUN: llvm-lto2 run -save-temps %t1.bc -r=%t1.bc,foo,l -r=%t1.bc,main,pl %t2.bc -r=%t2.bc,foo,pl -o %t3
+; RUN: llvm-dis %t3.1.3.import.bc -o - | FileCheck %s
+
+; Verify that we haven't imported GV containing blockaddress
+; CHECK: @label_addr.llvm.0 = external hidden constant
+
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+declare dso_local [1 x i8*]* @foo();
+
+define dso_local i32 @main() {
+ %p = call [1 x i8*]* @foo()
+ %v = ptrtoint [1 x i8*]* %p to i32
+ ret i32 %v
+}
OpenPOWER on IntegriCloud