https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93258
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- > Btw, on trunk I see it optimized, maybe some recent CTOR "fixing" fixed it > again? Can you double-check? > > If it's fixed again I suggest to add the testcase (ck should be elided > in the assembly?) I can confirm it's not an issue: gcc-bisect.py bisect 'g++ pr93258.cc -O3 -Wno-return-type -c -fdump-tree-optimized=/dev/stdout | grep ", 6)"' Releases 7.1.0 (303f81ad7e9f278d)(02 May 2017 12:42): [took: 2.503s] result: OK D.2542 = bw::ci::cj (0B, 6); [return slot optimization] 7.2.0 (586a0829dc38626c)(14 Aug 2017 07:59): [took: 2.480s] result: OK D.2542 = bw::ci::cj (0B, 6); [return slot optimization] 7.3.0 (6184085fc664265d)(25 Jan 2018 08:17): [took: 2.520s] result: OK D.2542 = bw::ci::cj (0B, 6); [return slot optimization] 7.4.0 (adafdb1e7212d53a)(06 Dec 2018 10:00): [took: 2.439s] result: OK D.2542 = bw::ci::cj (0B, 6); [return slot optimization] 7.5.0 (b2d961e7342b5ba4)(14 Nov 2019 07:40): [took: 2.347s] result: OK D.2542 = bw::ci::cj (0B, 6); [return slot optimization] 8.1.0 (406c2abec3f998e9)(02 May 2018 10:13): [took: 2.623s] result: OK D.2637 = bw::ci::cj (0B, 6); [return slot optimization] 8.2.0 (ddeb81e76461fc00)(26 Jul 2018 09:47): [took: 2.563s] result: OK D.2637 = bw::ci::cj (0B, 6); [return slot optimization] 8.3.0 (4c44b708f11eec6f)(22 Feb 2019 14:20): [took: 2.659s] result: OK D.2641 = bw::ci::cj (0B, 6); [return slot optimization] 9.1.0 (c8913260b0756f97)(03 May 2019 07:59): [took: 2.714s] result: OK D.2585 = bw::ci::cj (0B, 6); [return slot optimization] 9.2.0 (a0c06cc27d2146b7)(12 Aug 2019 09:38): [took: 2.714s] result: OK D.2585 = bw::ci::cj (0B, 6); [return slot optimization] 3d77686d2eddf76d(13 Jan 2020 16:39)(jos...@codesourcery.com): [took: 3.305s] result: OK D.2606 = bw::ci::cj (0B, 6); [return slot optimization]