[Bug c++/98930] ICE with static variable in template function used as template argument

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Sep 3 22:58:35 GMT 2026


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

--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Patrick Palka
<ppalka@gcc.gnu.org>:

https://gcc.gnu.org/g:5c89404b1c199e8f6587e5e7d9b26bc7fc98814e

commit r13-10504-g5c89404b1c199e8f6587e5e7d9b26bc7fc98814e
Author: Patrick Palka <ppalka@redhat.com>
Date:   Tue Apr 7 12:28:42 2026 -0400

    c++: templated static local var has value-dep addr, cont [PR123529]

    has_value_dependent_address for a static local variable checks type
    dependence of its context, but that's too narrow and we need a more
    general dependence check that considers outer template arguments as
    well, so that in the testcase below we deem A<T>::g()::i to have a
    value-dependent address (making f<&i>() a dependent call).

            PR c++/123529
            PR c++/98930

    gcc/cp/ChangeLog:

            * pt.cc (has_value_dependent_address): Correct context
            dependence check for a static local variable.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp1z/nontype9.C: New test.

    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 6084b750085ae0de11b65df76b9e590b795afc74)


More information about the Gcc-bugs mailing list