summaryrefslogtreecommitdiff
path: root/test/LTO
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2017-05-15 18:28:29 +0000
committerTeresa Johnson <tejohnson@google.com>2017-05-15 18:28:29 +0000
commit34e726e44a08d669d7dc110dc709bf99d61cead4 (patch)
treedb30fa483939287ea67119f74b6adbe6344dc908 /test/LTO
parent6a2b505bf942f940eebecfee310ada479e3f5e6a (diff)
Add support for handling ifuncs to GlobalValue::getBaseObject
Summary: All GlobalIndirectSymbol types (not just GlobalAlias) should return their base object. Without this patch LTO would warn "Unable to determine comdat of alias!" for an ifunc. Reviewers: pcc Subscribers: mehdi_amini, inglorion, llvm-commits Differential Revision: https://reviews.llvm.org/D33202 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303096 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/LTO')
-rw-r--r--test/LTO/Resolution/X86/ifunc.ll15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/LTO/Resolution/X86/ifunc.ll b/test/LTO/Resolution/X86/ifunc.ll
new file mode 100644
index 00000000000..63723763430
--- /dev/null
+++ b/test/LTO/Resolution/X86/ifunc.ll
@@ -0,0 +1,15 @@
+; RUN: opt -module-summary -o %t.bc %s
+; RUN: llvm-lto2 run %t.bc -r %t.bc,foo,pl -o %t2
+; RUN: llvm-nm %t2.0 | FileCheck %s
+; CHECK: T foo
+; CHECK: t foo_ifunc
+
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+@foo = ifunc i32 (i32), i64 ()* @foo_ifunc
+
+define internal i64 @foo_ifunc() {
+entry:
+ ret i64 0
+}