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

commit r15-2007-gf4047a8614d2215e0d6acf071c521ac08ab1bbb2
Author: FX Coudert <fxcoud...@gmail.com>
Date:   Fri Jul 12 15:39:50 2024 +0100

    modula2: bootstrap fix for string and vector headers.
    
    This patch fixes the include of headers (<string> and <vector>) which
    are included after GCC's system.h has been included.  It defines
    INCLUDE_STRING before including "system.h".  This allows gcc to
    bootstrap with Apple clang 15.
    
    gcc/m2/ChangeLog:
    
            * gm2-gcc/m2linemap.cc (INCLUDE_STRING): Define before
            include of gcc-consolidation.h.
            * gm2spec.cc (INCLUDE_STRING): Define before include of
            system.h.
            (INCLUDE_VECTOR): Ditto.
    
    Signed-off-by: Gaius Mulley <gaiusm...@gmail.com>

Diff:
---
 gcc/m2/gm2-gcc/m2linemap.cc | 2 +-
 gcc/m2/gm2spec.cc           | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/m2/gm2-gcc/m2linemap.cc b/gcc/m2/gm2-gcc/m2linemap.cc
index c916ba6155af..fcf589e840f8 100644
--- a/gcc/m2/gm2-gcc/m2linemap.cc
+++ b/gcc/m2/gm2-gcc/m2linemap.cc
@@ -19,6 +19,7 @@ You should have received a copy of the GNU General Public 
License
 along with GNU Modula-2; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
+#define INCLUDE_STRING
 #include "gcc-consolidation.h"
 
 /* Utilize some of the C build routines */
@@ -36,7 +37,6 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #define m2linemap_c
 #include "m2linemap.h"
 #include "m2color.h"
-#include <string>
 
 static int inFile = FALSE;
 
diff --git a/gcc/m2/gm2spec.cc b/gcc/m2/gm2spec.cc
index a4faf88027a2..2a4dccf8b93c 100644
--- a/gcc/m2/gm2spec.cc
+++ b/gcc/m2/gm2spec.cc
@@ -20,6 +20,8 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
+#define INCLUDE_STRING
+#define INCLUDE_VECTOR
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
@@ -31,8 +33,6 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #include "gcc.h"
 #include "opts.h"
 #include "vec.h"
-#include <vector>
-#include <string>
 
 #include "m2/gm2config.h"

Reply via email to