On Mon, 8 Sept 2025 at 09:25, Jakub Jelinek <ja...@redhat.com> wrote:
>
> Hi!
>
> During the tests mentioned in
> https://gcc.gnu.org/pipermail/gcc-patches/2025-August/692482.html
> (but dunno why I haven't noticed it back in August but only when testing
> https://gcc.gnu.org/pipermail/gcc-patches/2025-September/694527.html )
> I've noticed two ext header problems.
> One is that #include <ext/pointer.h> got broken with the
> r13-3037-g18f176d0b25591e28 change and since then is no longer
> self-contained, as it includes iosfwd only if _GLIBCXX_HOSTED is defined
> but doesn't actually include bits/c++config.h to make sure it is defined,
> then includes a bunch of headers which do include bits/c++config.h and
> finally uses in #if _GLIBCXX_HOSTED guarded code what is declared in iosfwd.
> The other problem is that ext/cast.h is also not a self-contained header,
> but that one has
> /** @file ext/cast.h
>  *  This is an internal header file, included by other library headers.
>  *  Do not attempt to use it directly. @headername{ext/pointer.h}
>  */
> comment, so I think we just shouldn't include it in extc++.h and let
> ext/pointer.h include it.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

OK, and for the branches too if you want.


>
> 2025-09-08  Jakub Jelinek  <ja...@redhat.com>
>
>         PR libstdc++/121827
>         * include/precompiled/extc++.h: Don't include ext/cast.h which is an
>         internal header.
>         * include/ext/pointer.h: Include bits/c++config.h before
>         #if _GLIBCXX_HOSTED.
>
> --- libstdc++-v3/include/precompiled/extc++.h   2025-01-02 20:54:32.906119166 
> +0100
> +++ libstdc++-v3/include/precompiled/extc++.h   2025-09-06 09:57:53.949297638 
> +0200
> @@ -37,7 +37,6 @@
>  #endif
>  #include <ext/alloc_traits.h>
>  #include <ext/atomicity.h>
> -#include <ext/cast.h>
>  #include <ext/iterator>
>  #include <ext/numeric_traits.h>
>  #include <ext/pointer.h>
> --- libstdc++-v3/include/ext/pointer.h.jj       2025-01-02 20:54:32.900119249 
> +0100
> +++ libstdc++-v3/include/ext/pointer.h  2025-09-06 09:57:11.945849025 +0200
> @@ -40,6 +40,7 @@
>  #pragma GCC system_header
>  #endif
>
> +#include <bits/c++config.h>
>  #if _GLIBCXX_HOSTED
>  #  include <iosfwd>
>  #endif
>
>         Jakub
>

Reply via email to