-/* PR target/5755
- This testcase failed because the caller of a function returning struct
- expected the callee to pop up the hidden return structure pointer,
- while callee was actually not poping it up (as the hidden argument
- was passed in register). */
-/* { dg-do run { target i?86-*-* } } */
-/* { dg-options "-O2 -fomit-frame-pointer" } */
-
-extern void abort (void);
-extern void exit (int);
-
-typedef struct {
- int a1, a2;
-} A;
-
-A a;
-
-A __attribute__ ((regparm (2)))
-foo (int x)
-{
- return a;
-}
-
-int __attribute__ ((regparm (2)))
-bar (int x)
-{
- int r = foo(0).a2;
- return r;
-}
-
-int
-main ()
-{
- int f;
- a.a1 = 530;
- a.a2 = 980;
- f = bar (0);
- if (f != 980)
- abort ();
- exit (0);
-}