https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104418
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- But this is invalid code with a similar error message: struct B { B(int) {} B(int&&) {} }; struct C : B { C(int a) : B{(int)a}{} }; So the question is how is default constructor done, is it done with the cast causing an rvalue or not?