blob: b8c3e5bedff759cf20d193b84c433bc948f0b998 [file] [log] [blame]
// PR rtl-optimization/49912
// { dg-do compile }
// { dg-require-effective-target freorder }
// { dg-options "-O -freorder-blocks-and-partition" }
int foo (int *);
struct S
{
int *m1 ();
S (int);
~S () { foo (m1 ()); }
};
template <int>
struct V
{
S *v1;
void m2 (const S &);
S *base ();
};
template <int N>
void V<N>::m2 (const S &x)
{
S a = x;
S *l = base ();
while (l)
*v1 = *--l;
}
V<0> v;
void
foo ()
{
v.m2 (0);
}