[Bug c++/126483] [13/14/15/16/17 Regression] Wrong active union member in constant evaluation of variable template initializers since r13-6422
"cvs-commit at gcc dot gnu.org via Gcc-bugs" <[email protected]>
| Newsgroups | gmane.comp.gcc.bugs |
|---|---|
| Message-ID | <[email protected]/bugzilla/> |
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126483 --- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <[email protected]>: https://gcc.gnu.org/g:9b0341a7a6a38912e667982003bcbfebdfb86335 commit r17-3303-g9b0341a7a6a38912e667982003bcbfebdfb86335 Author: Patrick Palka <[email protected]> Date: Fri Aug 14 15:53:10 2026 -0400 c++: testsuite: Add some opt/is_constant_evaluated3.C variants r13-6422 added opt/is_constant_evaluated3.C to verify that we constant fold copy-init such as a1. (Later, r14-6506 enabled constant folding of the a2-a5 inits.) r13-6422 turns out to trigger a latent bug and causes PR c++/126483, premature folding of is_constant_evaluated in copy-init inside a lambda scope. This patch adds a couple extra variants of this test, one where the containing function is constexpr (3a) and one where it's a lambda (3b). The new 3a.C demonstrates however that we still don't constant fold a1's copy-init when inside a constexpr function scope. 3b.C demonstrates that we do fold it when inside a (maybe-constexpr) lambda scope. gcc/testsuite/ChangeLog: * g++.dg/opt/is_constant_evaluated3a.C: New test. * g++.dg/opt/is_constant_evaluated3b.C: New test. Reviewed-by: Jason Merrill <[email protected]>