https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106599
--- Comment #4 from Fedor Chelnokov <fchelnokov at gmail dot com> --- And if one deletes copy constructor of A: struct A { constexpr A() = default; constexpr A(const A&) = delete; constexpr A(int) : A(A()) {} }; A a(2); Then Clang rejects the program, but GCC accepts it (ignoring that selected constructor is deleted), online demo: https://gcc.godbolt.org/z/s8Kjx6qPW Is it ok?