summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/personality_size.ll
diff options
context:
space:
mode:
authorDavid Chisnall <csdavec@swan.ac.uk>2012-02-17 16:05:50 +0000
committerDavid Chisnall <csdavec@swan.ac.uk>2012-02-17 16:05:50 +0000
commitca5b752d1873707c5c7d846515998ccf5002edca (patch)
tree62c853712e63b8c046700a5a7f419140fe168218 /test/CodeGen/X86/personality_size.ll
parentc5e6f99981b3195f63e5f3579cbb73e32be12e9f (diff)
downloadllvm-ca5b752d1873707c5c7d846515998ccf5002edca.tar.gz
llvm-ca5b752d1873707c5c7d846515998ccf5002edca.tar.bz2
llvm-ca5b752d1873707c5c7d846515998ccf5002edca.tar.xz
It turns out that putting an 8-byte symbol in a 4-byte section makes Solaris ld sulk. GNU ld is perfectly happy with it, which is worrying for a whole other set of reasons...
Thanks to Anton, Duncan and Rafael for helping me track this down. Pointy hat to Rafael for introducing the bug in the first place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150811 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/personality_size.ll')
-rw-r--r--test/CodeGen/X86/personality_size.ll28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/CodeGen/X86/personality_size.ll b/test/CodeGen/X86/personality_size.ll
new file mode 100644
index 0000000000..30a5d39e4a
--- /dev/null
+++ b/test/CodeGen/X86/personality_size.ll
@@ -0,0 +1,28 @@
+; RUN: llc < %s -relocation-model=pic -disable-cfi -mtriple=x86_64-pc-solaris2.11 -disable-cgp-branch-opts | FileCheck %s -check-prefix=X64
+; RUN: llc < %s -relocation-model=pic -disable-cfi -mtriple=i386-pc-solaris2.11 -disable-cgp-branch-opts | FileCheck %s -check-prefix=X32
+; PR1632
+
+define void @_Z1fv() {
+entry:
+ invoke void @_Z1gv()
+ to label %return unwind label %unwind
+
+unwind: ; preds = %entry
+ %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
+ cleanup
+ ret void
+
+return: ; preds = %eh_then, %entry
+ ret void
+}
+
+declare void @_Z1gv()
+
+declare i32 @__gxx_personality_v0(...)
+
+; X64: .size DW.ref.__gxx_personality_v0, 8
+; X64: .quad __gxx_personality_v0
+
+; X32: .size DW.ref.__gxx_personality_v0, 4
+; X32: .long __gxx_personality_v0
+