* gcc.c-torture/execute/nestfunc-4.c: New test.
From-SVN: r48556
This commit is contained in:
parent
4deaa2f859
commit
f21bf182c7
@ -1,3 +1,7 @@
|
||||
2002-01-05 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* gcc.c-torture/execute/nestfunc-4.c: New test.
|
||||
|
||||
2002-01-04 Loren J. Rittle <ljrittle@acm.org>
|
||||
|
||||
* g++.old-deja/g++.abi/aggregates.C: Corrected last patch: removed
|
||||
|
37
gcc/testsuite/gcc.c-torture/execute/nestfunc-4.c
Normal file
37
gcc/testsuite/gcc.c-torture/execute/nestfunc-4.c
Normal file
@ -0,0 +1,37 @@
|
||||
/* Origin: hp@bitrange.com
|
||||
Test that return values come out right from a 1000-level call chain to
|
||||
functions without parameters that each need at least one "long"
|
||||
preserved. Exposed problems related to the MMIX port. */
|
||||
|
||||
long level = 0;
|
||||
extern long foo (void);
|
||||
extern long bar (void);
|
||||
|
||||
#ifdef STACK_SIZE
|
||||
#define DEPTH ((STACK_SIZE) / 512 + 1)
|
||||
#else
|
||||
#define DEPTH 500
|
||||
#endif
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
if (foo () == -42)
|
||||
exit (0);
|
||||
|
||||
abort ();
|
||||
}
|
||||
|
||||
long
|
||||
foo (void)
|
||||
{
|
||||
long tmp = ++level;
|
||||
return bar () + tmp;
|
||||
}
|
||||
|
||||
long
|
||||
bar (void)
|
||||
{
|
||||
long tmp = level;
|
||||
return tmp > DEPTH - 1 ? -42 - tmp : foo () - tmp;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user