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?

Reply via email to