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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>:

https://gcc.gnu.org/g:a6ac1fc64c3caed19da65c2e6b12f8ddaf551231

commit r14-4110-ga6ac1fc64c3caed19da65c2e6b12f8ddaf551231
Author: Patrick Palka <ppa...@redhat.com>
Date:   Mon Sep 18 14:41:07 2023 -0400

    c++: unifying identical tmpls from current inst [PR108347]

    Here more_specialized_partial_spec wrongly considers the two partial
    specializations to be unordered ultimately because unify for identical
    parm=arg=A<T>::C returns failure due to C being dependent.

    This patch fixes this by relaxing unify's early-exit identity test to
    also accept dependent decls; we can't deduce anything further from them
    anyway.  In passing this patch removes the CONST_DECL case of unify:
    we should never see the CONST_DECL version of a template parameter here,
    and for other CONST_DECLs (such as enumerators) it seems we can rely on
    them to already have been folded to their DECL_INITIAL.

            PR c++/108347

    gcc/cp/ChangeLog:

            * pt.cc (unify): Return unify_success for identical dependent
            DECL_P 'arg' and 'parm'.
            <case CONST_DECL>: Remove handling.

    gcc/testsuite/ChangeLog:

            * g++.dg/template/ttp41.C: New test.
  • [Bug c++/108347] Incorrect erro... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to