[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