diff options
| author | Eugene Leviant <eleviant@accesssoftek.com> | 2018-10-12 07:24:02 +0000 |
|---|---|---|
| committer | Eugene Leviant <eleviant@accesssoftek.com> | 2018-10-12 07:24:02 +0000 |
| commit | eddf6b5df563a6d10ba88272faaeae90c37dcc00 (patch) | |
| tree | 36450af1d4b1f73134ebb85429c3b2d0c3555084 /llvm/test | |
| parent | d11aae5db572445dd22c80b2dee100f7dfbaee94 (diff) | |
| download | bcm5719-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.ll | 12 | ||||
| -rw-r--r-- | llvm/test/ThinLTO/X86/globals-import-blockaddr.ll | 18 |
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 +} |

