diff --git a/gcc/testsuite/g++.dg/pr97560.C b/gcc/testsuite/g++.dg/pr97560.C new file mode 100644 index 00000000000..f9e7edfcaf9 --- /dev/null +++ b/gcc/testsuite/g++.dg/pr97560.C @@ -0,0 +1,44 @@ +// { dg-do compile } +// { dg-options "-O2 -fno-tree-forwprop -fnon-call-exceptions" } + +template +struct pv; + +template +struct pv { + typedef CY g7; +}; + +template +typename pv::g7 hq (Q6 &&lb) +{ + return static_cast::g7 &&> (lb); +} + +struct fk { + fk *j6; + fk *od; +}; + +fk *qi; + +struct xz : fk { + xz (xz &&) + { + qi = this; + + if (j6) + od = this; + } +}; + +struct el { + struct { + xz ls; + } eu; +}; + +struct be : el { +}; + +be l1 = hq (l1);