https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124389
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
Known to work| |13.4.0
Known to fail| |14.1.0, 15.2.0, 16.0
Last reconfirmed| |2026-03-06
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The example works with GCC 13 and with Clang and EDG.
It stated to be rejected with r14-4793-gdad311874ac3b3
c++: remove NON_DEPENDENT_EXPR, part 1
This tree code dates all the way back to r69130[1] which implemented
typing of non-dependent expressions. Its motivation was never clear (to
me at least) since its documentation in e.g. cp-tree.def doesn't seem
accurate anymore. build_non_dependent_expr has since gained a bunch of
edge cases about whether or how to wrap certain templated trees, making
it hard to reason about in general.
So this patch removes this tree code, and temporarily turns
build_non_dependent_expr into the identity function. The subsequent
patch will remove build_non_dependent_expr and adjust its callers
appropriately.
We now need to more thoroughly handle templated (sub)trees in a couple
of places which previously didn't need to since they didn't look through
NON_DEPENDENT_EXPR.
[1]: https://gcc.gnu.org/pipermail/gcc-patches/2003-July/109355.html