OSDN Git Service

* gcc.dg/sparc-ret.c: New file, test return corruption bug for
authorciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Dec 2001 21:51:04 +0000 (21:51 +0000)
committerciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Dec 2001 21:51:04 +0000 (21:51 +0000)
ultrasparc.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47773 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/sparc-ret.c [new file with mode: 0644]

index abdaa56..e3e3046 100644 (file)
@@ -1,3 +1,8 @@
+2001-12-07  Stephane Carrez  <Stephane.Carrez@sun.com>
+
+       * gcc.dg/sparc-ret.c: New file, test return corruption bug for
+       ultrasparc.
+
 Fri Dec  7 06:29:03 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * g++-old.deja/g++.robertl/eb101.C: Deleted.
diff --git a/gcc/testsuite/gcc.dg/sparc-ret.c b/gcc/testsuite/gcc.dg/sparc-ret.c
new file mode 100644 (file)
index 0000000..629bbb1
--- /dev/null
@@ -0,0 +1,27 @@
+/* Copyright (C) 2001  Free Software Foundation.
+
+   Making sure that Ultrasparc return instructions do not read
+   below the stack.  */
+
+/* { dg-do compile { target sparc*-*-* } } */
+/* { dg-options "-mcpu=ultrasparc -O -m32" } */
+
+
+int bar (int a, int b, int c, int d, int e, int f, int g, int h)
+{
+  int res;
+
+  toto (&res);
+  return h;
+}
+/* { dg-final { scan-assembler "return\[ \t\]*%i7\\+8\n\[^\n\]*ld\[ \t\]*\\\[%sp\\+96\\\]" } } */
+
+int bar2 ()
+{
+  int res;
+
+  toto (&res);
+  return res;
+}
+/* { dg-final { scan-assembler "return\[ \t\]*%i7\\+8\n\[^\n\]*nop" } } */
+