This was already fixed by the patch for PR97520, but it can't hurt to keep this test around as well :).
Pushed. gcc/testsuite/ChangeLog: PR tree-optimization/97560 * g++.dg/pr97560.C: New test. --- gcc/testsuite/g++.dg/pr97560.C | 44 ++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 gcc/testsuite/g++.dg/pr97560.C 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 <typename> +struct pv; + +template <typename CY> +struct pv<CY &> { + typedef CY g7; +}; + +template <typename Q6> +typename pv<Q6>::g7 hq (Q6 &&lb) +{ + return static_cast<typename pv<Q6>::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); -- 2.26.2