[Bug c++/55922] brace initializing parent cause bogus virtual base constructor calls

msebor at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jul 7 17:13:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55922

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |msebor at gcc dot gnu.org

--- Comment #4 from Martin Sebor <msebor at gcc dot gnu.org> ---
I'm not sure how helpful or relevant this is at this point but according to my
testing the wrong code seems to have been emitted since r142404 committed in
the gcc 4.4.0 release cycle:

r142404 | jason | 2008-12-03 14:22:08 -0500 (Wed, 03 Dec 2008) | 6 lines

        PR c++/38380
        * decl.c (grokdeclarator): Only set DECL_NONCONVERTING_P
        on explicit constructors.
        * pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: Propagate
        CONSTRUCTOR_IS_DIRECT_INIT.

Prior to that, GCC rejected the program with the following error:

error: converting to ‘const B1’ from initializer list would use explicit
constructor ‘B1::B1()’


More information about the Gcc-bugs mailing list