[Bug c++/95066] [C++ 20] Incorrect successful compilation with a conditional explicit

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed May 13 20:26:13 GMT 2020


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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Marek Polacek <mpolacek@gcc.gnu.org>:

https://gcc.gnu.org/g:661232da72d29f8f2385d5f588727beb74360144

commit r11-371-g661232da72d29f8f2385d5f588727beb74360144
Author: Marek Polacek <polacek@redhat.com>
Date:   Mon May 11 18:28:19 2020 -0400

    c++: explicit(bool) malfunction with dependent expression [PR95066]

    I forgot to set DECL_HAS_DEPENDENT_EXPLICIT_SPEC_P when merging two
    function declarations and as a sad consequence, we never tsubsted
    the dependent explicit-specifier in tsubst_function_decl, leading to
    disregarding the explicit-specifier altogether, and wrongly accepting
    this test.

            PR c++/95066
            * decl.c (duplicate_decls): Set DECL_HAS_DEPENDENT_EXPLICIT_SPEC_P.

            * g++.dg/cpp2a/explicit16.C: New test.


More information about the Gcc-bugs mailing list