diff mbox

S/390: PR 69625: Add test case

Message ID 20160209131823.GA7564@linux.vnet.ibm.com
State New
Headers show

Commit Message

Dominik Vogt Feb. 9, 2016, 1:18 p.m. UTC
On Fri, Feb 05, 2016 at 05:07:57PM +0100, Dominik Vogt wrote:
> The attached patch adds a testcase for PR 69625.

Version 2 also runs with -m31.

Ciao

Dominik ^_^  ^_^

Comments

Andreas Krebbel Feb. 19, 2016, 10:21 a.m. UTC | #1
On 02/09/2016 02:18 PM, Dominik Vogt wrote:
> On Fri, Feb 05, 2016 at 05:07:57PM +0100, Dominik Vogt wrote:
>> The attached patch adds a testcase for PR 69625.
> 
> Version 2 also runs with -m31.

Applied. Thanks!

-Andreas-
diff mbox

Patch

From 5c539cfea4292dc20bb5e7f854101997f11bc215 Mon Sep 17 00:00:00 2001
From: Dominik Vogt <vogt@linux.vnet.ibm.com>
Date: Fri, 5 Feb 2016 15:13:08 +0100
Subject: [PATCH] S/390: PR 69625: Add test case.

---
 gcc/testsuite/gcc.target/s390/pr69625.c | 37 +++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 gcc/testsuite/gcc.target/s390/pr69625.c

diff --git a/gcc/testsuite/gcc.target/s390/pr69625.c b/gcc/testsuite/gcc.target/s390/pr69625.c
new file mode 100644
index 0000000..f717183
--- /dev/null
+++ b/gcc/testsuite/gcc.target/s390/pr69625.c
@@ -0,0 +1,37 @@ 
+/* Test for PR 69625; make sure that a leaf vararg function does not overwrite
+   the caller's r6.  */
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+extern void abort (void);
+
+__attribute__ ((noinline))
+int
+foo (int x, ...)
+{
+  __builtin_va_list vl;
+  int i;
+
+  __asm__ __volatile__ ("lhi %%r6,1" : : : "r6");
+  __builtin_va_start(vl, x);
+  for (i = 2; i <= 6; i++)
+    x += __builtin_va_arg(vl, int);
+  __builtin_va_end (vl);
+
+  return x;
+}
+
+__attribute__ ((noinline))
+void
+bar (int r2, int r3, int r4, int r5, int r6)
+{
+  foo (r2, r3, r4, r5, r6);
+  if (r6 != 6)
+    abort ();
+}
+
+int
+main (void)
+{
+  bar (2, 3, 4, 5, 6);
+}
-- 
2.3.0