summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2013-06-28 22:29:56 +0000
committerHal Finkel <hfinkel@anl.gov>2013-06-28 22:29:56 +0000
commit6a636a813f33b46b3271ec8517ee1936a0c92c9f (patch)
treef078b88b5ee78841a73cdebea3334d6ad9e1e14d /test
parent8bb9ec15c89da88c8e223f334296d81080cd829c (diff)
downloadllvm-6a636a813f33b46b3271ec8517ee1936a0c92c9f.tar.gz
llvm-6a636a813f33b46b3271ec8517ee1936a0c92c9f.tar.bz2
llvm-6a636a813f33b46b3271ec8517ee1936a0c92c9f.tar.xz
PPC: Ignore spill/restore requests for VRSAVE (except on Darwin)
This fixes PR16418, which reports that a function calling __builtin_unwind_init() asserts. The cause is that this generates a spill/restore for VRSAVE, and we support that only on Darwin (because VRSAVE is only really used on Darwin). The test case checks only that we don't crash. We can add correctness checks once someone verifies what behavior the function is supposed to have. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185235 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/PowerPC/unwind-dw2.ll15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/CodeGen/PowerPC/unwind-dw2.ll b/test/CodeGen/PowerPC/unwind-dw2.ll
new file mode 100644
index 0000000000..e58edff65d
--- /dev/null
+++ b/test/CodeGen/PowerPC/unwind-dw2.ll
@@ -0,0 +1,15 @@
+; RUN: llc < %s
+target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-v128:128:128-n32:64"
+target triple = "powerpc64-unknown-linux-gnu"
+
+; Function Attrs: nounwind
+define void @foo() #0 {
+entry:
+ call void @llvm.eh.unwind.init()
+ ret void
+}
+
+; Function Attrs: nounwind
+declare void @llvm.eh.unwind.init() #0
+
+attributes #0 = { nounwind }