From 3c59ab0d677abcbdf3d0fdee31dfdf5033edd141 Mon Sep 17 00:00:00 2001
From: David Edelsohn <dje.gcc@gmail.com>
Date: Fri, 23 Mar 2012 23:55:01 +0000
Subject: [PATCH] inclhack.def (aix_malloc): New.

       * inclhack.def (aix_malloc): New.
       * fixincl.x: Regenerate.
       * tests/base/malloc.h [AIX_MALLOC_CHECK]: New.

From-SVN: r185752
---
 fixincludes/ChangeLog           |  6 ++++
 fixincludes/fixincl.x           | 53 +++++++++++++++++++++++++++++----
 fixincludes/inclhack.def        | 13 ++++++++
 fixincludes/tests/base/malloc.h |  5 ++++
 4 files changed, 72 insertions(+), 5 deletions(-)

diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
index 28c31d6397cf..37a378fdb81a 100644
--- a/fixincludes/ChangeLog
+++ b/fixincludes/ChangeLog
@@ -1,3 +1,9 @@
+2012-03-23  David Edelsohn  <dje.gcc@gmail.com>
+
+	* inclhack.def (aix_malloc): New.
+	* fixincl.x: Regenerate.
+	* tests/base/malloc.h [AIX_MALLOC_CHECK]: New.
+	
 2012-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
 	PR other/52626
diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
index b6a804dcb413..3dbb744fec16 100644
--- a/fixincludes/fixincl.x
+++ b/fixincludes/fixincl.x
@@ -2,11 +2,11 @@
  * 
  * DO NOT EDIT THIS FILE   (fixincl.x)
  * 
- * It has been AutoGen-ed  Wednesday March 14, 2012 at 03:19:50 PM MET
+ * It has been AutoGen-ed  March 23, 2012 at 02:26:20 PM by AutoGen 5.10
  * From the definitions    inclhack.def
  * and the template file   fixincl
  */
-/* DO NOT SVN-MERGE THIS FILE, EITHER Wed Mar 14 15:19:50 MET 2012
+/* DO NOT SVN-MERGE THIS FILE, EITHER Fri Mar 23 14:26:20 EDT 2012
  *
  * You must regenerate it.  Use the ./genfixes script.
  *
@@ -15,7 +15,7 @@
  * certain ANSI-incompatible system header files which are fixed to work
  * correctly with ANSI C and placed in a directory that GNU C will search.
  *
- * This file contains 211 fixup descriptions.
+ * This file contains 212 fixup descriptions.
  *
  * See README for more information.
  *
@@ -520,6 +520,43 @@ static const char* apzAix_ComplexPatch[] = {
     "#define _Complex_I (__extension__ 1.0iF)",
     (char*)NULL };
 
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  Description of Aix_Malloc fix
+ */
+tSCC zAix_MallocName[] =
+     "aix_malloc";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zAix_MallocList[] =
+  "malloc.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+tSCC* apzAix_MallocMachs[] = {
+        "*-*-aix*",
+        (const char*)NULL };
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zAix_MallocSelect0[] =
+       "#ifdef __cplusplus";
+
+#define    AIX_MALLOC_TEST_CT  1
+static tTestDesc aAix_MallocTests[] = {
+  { TT_EGREP,    zAix_MallocSelect0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Aix_Malloc
+ */
+static const char* apzAix_MallocPatch[] = {
+    "format",
+    "#if (defined(__cplusplus) && defined(__IBMCPP__))",
+    (char*)NULL };
+
 /* * * * * * * * * * * * * * * * * * * * * * * * * *
  *
  *  Description of Aix_Net_If_Arp fix
@@ -8592,9 +8629,9 @@ static const char* apzX11_SprintfPatch[] = {
  *
  *  List of all fixes
  */
-#define REGEX_COUNT          254
+#define REGEX_COUNT          255
 #define MACH_LIST_SIZE_LIMIT 181
-#define FIX_COUNT            211
+#define FIX_COUNT            212
 
 /*
  *  Enumerate the fixes
@@ -8609,6 +8646,7 @@ typedef enum {
     AAB_SOLARIS_SYS_VARARGS_H_FIXIDX,
     AAB_SUN_MEMCPY_FIXIDX,
     AIX_COMPLEX_FIXIDX,
+    AIX_MALLOC_FIXIDX,
     AIX_NET_IF_ARP_FIXIDX,
     AIX_ONCE_INIT_1_FIXIDX,
     AIX_ONCE_INIT_2_FIXIDX,
@@ -8859,6 +8897,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
      AIX_COMPLEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
      aAix_ComplexTests,   apzAix_ComplexPatch, 0 },
 
+  {  zAix_MallocName,    zAix_MallocList,
+     apzAix_MallocMachs,
+     AIX_MALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+     aAix_MallocTests,   apzAix_MallocPatch, 0 },
+
   {  zAix_Net_If_ArpName,    zAix_Net_If_ArpList,
      apzAix_Net_If_ArpMachs,
      AIX_NET_IF_ARP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 2d632b32d0f6..8a26f2837ba9 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -369,6 +369,19 @@ fix = {
     test_text = "#define _Complex_I	__I\n";
 };
 
+/*
+ *  malloc.h on AIX6 uses XLC++ specific builtin syntax
+ */
+fix = {
+    hackname  = aix_malloc;
+    mach      = "*-*-aix*";
+    files     = "malloc.h";
+    select    = "#ifdef __cplusplus";
+    c_fix     = format;
+    c_fix_arg = "#if (defined(__cplusplus) && defined(__IBMCPP__))";
+    test_text = "#ifdef __cplusplus";
+};
+
 /*
  * net/if_arp.h defines a variable fc_softc instead of adding a
  * typedef for the struct on AIX 5.2, 5.3, 6.1 and 7.1
diff --git a/fixincludes/tests/base/malloc.h b/fixincludes/tests/base/malloc.h
index 3866af8c7cf2..15be8b02b88c 100644
--- a/fixincludes/tests/base/malloc.h
+++ b/fixincludes/tests/base/malloc.h
@@ -9,6 +9,11 @@
 
 
 
+#if defined( AIX_MALLOC_CHECK )
+#if (defined(__cplusplus) && defined(__IBMCPP__))
+#endif  /* AIX_MALLOC_CHECK */
+
+
 #if defined( SUN_MALLOC_CHECK )
 typedef void *	malloc_t;
 void	free();
-- 
GitLab