From ecd7009474cb8d7886039484d073d907497c15eb Mon Sep 17 00:00:00 2001 From: Stephane Carrez Date: Fri, 7 Dec 2001 21:51:04 +0000 Subject: [PATCH] sparc-ret.c: New file, test return corruption bug for ultrasparc. * gcc.dg/sparc-ret.c: New file, test return corruption bug for ultrasparc. From-SVN: r47773 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/sparc-ret.c | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/sparc-ret.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index abdaa5672b0..e3e3046cff6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2001-12-07 Stephane Carrez + + * gcc.dg/sparc-ret.c: New file, test return corruption bug for + ultrasparc. + Fri Dec 7 06:29:03 2001 Richard Kenner * 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 index 00000000000..629bbb155ef --- /dev/null +++ b/gcc/testsuite/gcc.dg/sparc-ret.c @@ -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" } } */ + -- 2.30.2