summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2014-03-14 12:45:22 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2014-03-14 12:45:22 +0000
commit0951eecae4ff281e8890651833d3835ed30b8531 (patch)
tree98a81f628fb64a099a17fbb512c9b7681f320b84 /test
parent670ef0236b1c343fb1bce33787dc9642e723b11f (diff)
downloadllvm-0951eecae4ff281e8890651833d3835ed30b8531.tar.gz
llvm-0951eecae4ff281e8890651833d3835ed30b8531.tar.bz2
llvm-0951eecae4ff281e8890651833d3835ed30b8531.tar.xz
[ppc64] Avoid copy relocs in named rodata sections
Commit r181723 introduced code to avoid placing initialized variables needing relocations into the .rodata section, which avoid copy relocs that do not work as expected on ppc64 function references. The same treatment is also needed for *named* .rodata.XXX sections. This patch changes PPC64LinuxTargetObjectFile::SelectSectionForGlobal to modify "Kind" *before* calling the default SelectSectionForGlobal routine, instead of first calling the default routine and then just checking for the (main) .rodata section afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203921 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/PowerPC/vtable-reloc.ll11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/CodeGen/PowerPC/vtable-reloc.ll b/test/CodeGen/PowerPC/vtable-reloc.ll
new file mode 100644
index 0000000000..995a5d03ba
--- /dev/null
+++ b/test/CodeGen/PowerPC/vtable-reloc.ll
@@ -0,0 +1,11 @@
+; RUN: llc -O0 < %s | FileCheck %s
+
+target datalayout = "E-m:e-i64:64-n32:64"
+target triple = "powerpc64-unknown-linux-gnu"
+
+@_ZTV3foo = linkonce_odr unnamed_addr constant [1 x i8*] [i8* bitcast (void ()* @__cxa_pure_virtual to i8*)]
+declare void @__cxa_pure_virtual()
+
+; CHECK: .section .data.rel.ro
+; CHECK: .quad __cxa_pure_virtual
+