diff options
author | David Chisnall <csdavec@swan.ac.uk> | 2012-02-17 16:05:50 +0000 |
---|---|---|
committer | David Chisnall <csdavec@swan.ac.uk> | 2012-02-17 16:05:50 +0000 |
commit | ca5b752d1873707c5c7d846515998ccf5002edca (patch) | |
tree | 62c853712e63b8c046700a5a7f419140fe168218 /test/CodeGen/X86/personality_size.ll | |
parent | c5e6f99981b3195f63e5f3579cbb73e32be12e9f (diff) | |
download | external_llvm-ca5b752d1873707c5c7d846515998ccf5002edca.zip external_llvm-ca5b752d1873707c5c7d846515998ccf5002edca.tar.gz external_llvm-ca5b752d1873707c5c7d846515998ccf5002edca.tar.bz2 |
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.ll | 28 |
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 0000000..30a5d39 --- /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 + |