Tested x86_64-pc-linux-gnu, applying to trunk. -- >8 -- I was suprised to find out that r14-8759 fixed this accepts-invalid.
clang version 17.0.6 rejects the test as well; clang version 19.0.0git crashes for which I opened <https://github.com/llvm/llvm-project/issues/80869>. PR c++/94231 gcc/testsuite/ChangeLog: * g++.dg/cpp0x/deleted17.C: New test. --- gcc/testsuite/g++.dg/cpp0x/deleted17.C | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/deleted17.C diff --git a/gcc/testsuite/g++.dg/cpp0x/deleted17.C b/gcc/testsuite/g++.dg/cpp0x/deleted17.C new file mode 100644 index 00000000000..3bebe881165 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/deleted17.C @@ -0,0 +1,20 @@ +// PR c++/94231 +// { dg-do compile { target c++11 } } + +struct F {F(F&&)=delete;}; + +template<int=0> +struct M { + F f; + M(); + M(const M&); + M(M&&); +}; + +template<int I> +M<I>::M(M&&)=default; // { dg-error "use of deleted function" } + +M<> f() { + M<> m; + return m; +} base-commit: 8ec2f1922a14ee3636840d1ebc1c40d26e6043a4 -- 2.43.0