aix: apply aix_malloc more narrowly.
authorClément Chigot <clement.chigot@atos.net>
Fri, 25 Sep 2020 07:48:22 +0000 (09:48 +0200)
committerDavid Edelsohn <dje.gcc@gmail.com>
Sat, 3 Oct 2020 23:48:40 +0000 (23:48 +0000)
In recent Technology Levels of AIX 7.2, new "#ifdef __cplusplus" have been
added. Thus, the aix_malloc fix was applied in wrong locations. This patch
increases the context to avoid this.

fixincludes/ChangeLog:

2020-10-03  Clément Chigot  <clement.chigot@atos.net>

* inclhack.def (aix_malloc): Add more context to select.
* fixincl.x: Regenerate.
* tests/base/malloc.h: Update expected results.

fixincludes/fixincl.x
fixincludes/inclhack.def
fixincludes/tests/base/malloc.h

index cb966829ba3b964c7272f1da18969e6d82d3d0c2..758d562064126dc2671940a1e81c09e4081e3505 100644 (file)
@@ -2,11 +2,11 @@
  *
  * DO NOT EDIT THIS FILE   (fixincl.x)
  *
- * It has been AutoGen-ed  September 17, 2020 at 03:10:47 PM by AutoGen 5.18
+ * It has been AutoGen-ed  October  3, 2020 at 11:40:52 PM by AutoGen 5.18
  * From the definitions    inclhack.def
  * and the template file   fixincl
  */
-/* DO NOT SVN-MERGE THIS FILE, EITHER Thu Sep 17 15:10:47 UTC 2020
+/* DO NOT SVN-MERGE THIS FILE, EITHER Sat Oct  3 23:40:52 UTC 2020
  *
  * You must regenerate it.  Use the ./genfixes script.
  *
@@ -943,7 +943,9 @@ tSCC* apzAix_MallocMachs[] = {
  *  content selection pattern - do fix if pattern found
  */
 tSCC zAix_MallocSelect0[] =
-       "#ifdef __cplusplus";
+       "#ifdef __cplusplus\n\
+extern \"C\" \\{\n\
+[ \t]extern \"builtin\" char \\*__alloca \\(size_t\\);";
 
 #define    AIX_MALLOC_TEST_CT  1
 static tTestDesc aAix_MallocTests[] = {
@@ -954,7 +956,9 @@ static tTestDesc aAix_MallocTests[] = {
  */
 static const char* apzAix_MallocPatch[] = {
     "format",
-    "#if (defined(__cplusplus) && defined(__IBMCPP__))",
+    "#if (defined(__cplusplus) && defined(__IBMCPP__))\n\
+extern \"C\" {\n\
+\textern \"builtin\" char *__alloca (size_t);",
     (char*)NULL };
 
 /* * * * * * * * * * * * * * * * * * * * * * * * * *
index 6e59be981d67bc5fe126649e3d2b221208252c65..47eb236586ce45e4cac4259038f600a0327ee840 100644 (file)
@@ -597,10 +597,16 @@ fix = {
     hackname  = aix_malloc;
     mach      = "*-*-aix*";
     files     = "malloc.h";
-    select    = "#ifdef __cplusplus";
+    select    = "#ifdef __cplusplus\n"
+                "extern \"C\" \\{\n"
+                "[ \t]extern \"builtin\" char \\*__alloca \\(size_t\\);";
     c_fix     = format;
-    c_fix_arg = "#if (defined(__cplusplus) && defined(__IBMCPP__))";
-    test_text = "#ifdef __cplusplus";
+    c_fix_arg = "#if (defined(__cplusplus) && defined(__IBMCPP__))\n"
+                "extern \"C\" {\n"
+       "\textern \"builtin\" char *__alloca (size_t);";
+    test_text = "#ifdef __cplusplus\n"
+                "extern \"C\" {\n"
+       "\textern \"builtin\" char *__alloca (size_t);";
 };
 
 /*
index 15be8b02b88c0cc4017f35b48033a05313c374bd..b5d0e6e31c9323fbb8be2ba5b1f661a41eb5e0d7 100644 (file)
@@ -11,6 +11,8 @@
 
 #if defined( AIX_MALLOC_CHECK )
 #if (defined(__cplusplus) && defined(__IBMCPP__))
+extern "C" {
+       extern "builtin" char *__alloca (size_t);
 #endif  /* AIX_MALLOC_CHECK */