/* Verify that gimple-level NRV is occurring even for RESULT_DECLs. */ /* { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ /* { dg-options "-O -fdump-tree-optimized" } */ struct P { long long l; int a; unsigned int b; P(long long x) : l(x) {} }; P foo (P); P bar (P); P foo (P x) { P y = P (-1LL); y = bar (x); return y; } /* { dg-final { scan-tree-dump-times "return slot optimization" 1 "optimized" } } */ /* { dg-final { cleanup-tree-dump "optimized" } } */