https://gcc.gnu.org/g:f6e00226a4ca63e76e3e0b3a09a4ce6223980981

commit r15-5661-gf6e00226a4ca63e76e3e0b3a09a4ce6223980981
Author: Andrew Pinski <quic_apin...@quicinc.com>
Date:   Mon Nov 25 14:03:27 2024 -0800

    build: Move sstream include above safe-ctype.h {PR117771]
    
    sstream in some versions of libstdc++ include locale which might not have 
been
    included yet. safe-ctype.h defines the toupper, tolower, etc. as macros so 
the
    c++ header files needed to be included before hand as comment in system.h 
says:
    /* Include C++ standard headers before "safe-ctype.h" to avoid GCC
       poisoning the ctype macros through safe-ctype.h */
    
    I don't understand how it was working before when memory was included after
    safe-ctype.h rather than before. But this makes sstream consistent with the
    other C++ headers.
    
    Pushed as obvious after a build for riscv64-elf.
    
    gcc/ChangeLog:
    
            PR target/117771
            * system.h: Move the include of sstream above safe-ctype.h.
    
    Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>

Diff:
---
 gcc/system.h | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gcc/system.h b/gcc/system.h
index c209871df72d..57ce22ab893c 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -222,6 +222,9 @@ extern int fprintf_unlocked (FILE *, const char *, ...);
 #ifdef INCLUDE_FUNCTIONAL
 # include <functional>
 #endif
+#ifdef INCLUDE_SSTREAM
+# include <sstream>
+#endif
 # include <memory>
 # include <cstring>
 # include <initializer_list>
@@ -764,10 +767,6 @@ private:
 # include <mutex>
 #endif
 
-#ifdef INCLUDE_SSTREAM
-# include <sstream>
-#endif
-
 #ifdef INCLUDE_MALLOC_H
 #if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2)
 #include <malloc.h>

Reply via email to