blob: d617d7e4487393f276788f8a1d572a410c242365 [file] [log] [blame]
/* PR target/88620 */
/* { dg-do run } */
/* { dg-options "-Ofast --param ipa-cp-eval-threshold=0 -fno-guess-branch-probability -fno-inline-small-functions" } */
/* { dg-require-effective-target alloca } */
void
foo (int n)
{
struct S { int a[n]; };
struct S
fn (void)
{
struct S s;
s.a[0] = 42;
return s;
}
auto struct S
fn2 (void)
{
return fn ();
}
struct S x;
fn ();
fn2 ();
x = fn ();
if (x.a[0] != 42)
__builtin_abort ();
if (fn ().a[0] != 42)
__builtin_abort ();
__typeof__ (fn ()) *p = &x;
if (p->a[0] != 42)
__builtin_abort ();
if (fn2 ().a[0] != 42)
__builtin_abort ();
}
int
main (void)
{
foo (1);
}