https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128428
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |WAITING
Ever confirmed|0 |1
Last reconfirmed| |2026-11-05
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Are you sure the difference you're seeing is whether you test build-tree or
install-tree, and not trunk vs gcc-16?
With trunk, the aka type in the error is always simplified, whether testing an
installed compiler or not.
With gcc-16 it's not fully simplified for an installed compiler.
For the record, the difference is:
diag.cc:9:43: error: 'reflect_constant_array' argument with
'std::ranges::range_value_t<const A [2]>' {aka 'A'} which is not a structural
type
vs
diag.cc:9:43: error: ‘reflect_constant_array’ argument with
‘std::ranges::range_value_t<const A [2]>’ {aka ‘std::iter_value_t<const A*>’}
which is not a structural type
where the test expects the former.
For trunk, I always get the former even when compiling with system headers.
That changed with r17-451
Author: Jason Merrill
AuthorDate: Mon May 11 16:55:06 2026
c-family: look through non-user-facing typedef [PR124621]
'aka' printing shouldn't differ between in-tree and installed compilers due
to difference in whether libstdc++ headers are considered to be system
headers. The problem was that if we encounter a non-user-facing typedef
like __iter_type<T>, we stopped there instead of continuing to look through
typedefs to find the underlying user type.
Maybe your install-tree testing is with GCC 16?