summaryrefslogtreecommitdiff
path: root/fixincludes
diff options
context:
space:
mode:
authorDavid Edelsohn <dje.gcc@gmail.com>2015-08-14 11:17:29 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2015-08-14 07:17:29 -0400
commitd8082c18c88227ba1747ce06833858cc1ea16aa0 (patch)
treeb270294fed651578cb12dca99f956ce2a8e88fce /fixincludes
parentc9665100d6ee2421d8dfe4d001d23019bd4e656b (diff)
inclhack.def (aix_stdio_inline): New fix.
* inclhack.def (aix_stdio_inline): New fix. (aix_strtof_const): Limit to *-*-aix*. (aix_sysmachine): Same. (aix_syswait_2): Same. (aix_volatile): Same. * fixincl.x: Regenerated. * test/base/stdio.h [AIX_STDIO_INLINE]: New test. From-SVN: r226891
Diffstat (limited to 'fixincludes')
-rw-r--r--fixincludes/ChangeLog10
-rw-r--r--fixincludes/fixincl.x86
-rw-r--r--fixincludes/inclhack.def25
-rw-r--r--fixincludes/tests/base/stdio.h10
4 files changed, 117 insertions, 14 deletions
diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
index e22e7c62c76..26f697ad189 100644
--- a/fixincludes/ChangeLog
+++ b/fixincludes/ChangeLog
@@ -1,3 +1,13 @@
+2015-08-14 David Edelsohn <dje.gcc@gmail.com>
+
+ * inclhack.def (aix_stdio_inline): New fix.
+ (aix_strtof_const): Limit to *-*-aix*.
+ (aix_sysmachine): Same.
+ (aix_syswait_2): Same.
+ (aix_volatile): Same.
+ * fixincl.x: Regenerated.
+ * test/base/stdio.h [AIX_STDIO_INLINE]: New test.
+
2015-07-28 Eric Gallager <egall@gwmail.gwu.edu>
* check.tpl: Ignore .DS_Store directories.
diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
index d796014275e..79af6d10f55 100644
--- a/fixincludes/fixincl.x
+++ b/fixincludes/fixincl.x
@@ -1,12 +1,12 @@
/* -*- buffer-read-only: t -*- vi: set ro:
- *
- * DO NOT EDIT THIS FILE (fixincl.x)
- *
- * It has been AutoGen-ed May 21, 2015 at 02:48:12 AM by AutoGen 5.18.3
- * From the definitions inclhack.def
- * and the template file fixincl
+ *
+ *DO NOT EDIT THIS FILE (fixincl.x)
+ *
+ *It has been AutoGen-ed August 13, 2015 at 05:25:50 PM by AutoGen 5.18.3
+ *From the definitions inclhack.def
+ *and the template file fixincl
*/
-/* DO NOT SVN-MERGE THIS FILE, EITHER Thu May 21 02:48:12 UTC 2015
+/* DO NOT SVN-MERGE THIS FILE, EITHER Thu Aug 13 17:25:50 UTC 2015
*
* 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 229 fixup descriptions.
+ * This file contains 230 fixup descriptions.
*
* See README for more information.
*
@@ -1503,6 +1503,50 @@ static const char* apzAix_Stdint_5Patch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Aix_Stdio_Inline fix
+ */
+tSCC zAix_Stdio_InlineName[] =
+ "aix_stdio_inline";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAix_Stdio_InlineList[] =
+ "stdio.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAix_Stdio_InlineMachs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAix_Stdio_InlineSelect0[] =
+ "#ifdef __cplusplus\\\n\
+}\\\n\
+\\\n\
+#ifdef ferror\\\n";
+
+#define AIX_STDIO_INLINE_TEST_CT 1
+static tTestDesc aAix_Stdio_InlineTests[] = {
+ { TT_EGREP, zAix_Stdio_InlineSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aix_Stdio_Inline
+ */
+static const char* apzAix_Stdio_InlinePatch[] = {
+ "format",
+ "#ifdef __cplusplus\n\
+}\n\
+#endif\n\n\
+#if (defined(__cplusplus) && defined(__IBMCPP__))\n\
+#ifdef ferror\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Aix_Strtof_Const fix
*/
tSCC zAix_Strtof_ConstName[] =
@@ -1516,7 +1560,9 @@ tSCC zAix_Strtof_ConstList[] =
/*
* Machine/OS name selection pattern
*/
-#define apzAix_Strtof_ConstMachs (const char**)NULL
+tSCC* apzAix_Strtof_ConstMachs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
/*
* content selection pattern - do fix if pattern found
@@ -1551,7 +1597,9 @@ tSCC zAix_SysmachineList[] =
/*
* Machine/OS name selection pattern
*/
-#define apzAix_SysmachineMachs (const char**)NULL
+tSCC* apzAix_SysmachineMachs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
/*
* content selection pattern - do fix if pattern found
@@ -1586,7 +1634,9 @@ tSCC zAix_Syswait_2List[] =
/*
* Machine/OS name selection pattern
*/
-#define apzAix_Syswait_2Machs (const char**)NULL
+tSCC* apzAix_Syswait_2Machs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
/*
* content selection pattern - do fix if pattern found
@@ -1621,7 +1671,9 @@ tSCC zAix_VolatileList[] =
/*
* Machine/OS name selection pattern
*/
-#define apzAix_VolatileMachs (const char**)NULL
+tSCC* apzAix_VolatileMachs[] = {
+ "*-*-aix*",
+ (const char*)NULL };
/*
* content selection pattern - do fix if pattern found
@@ -9396,9 +9448,9 @@ static const char* apzX11_SprintfPatch[] = {
*
* List of all fixes
*/
-#define REGEX_COUNT 266
+#define REGEX_COUNT 267
#define MACH_LIST_SIZE_LIMIT 187
-#define FIX_COUNT 229
+#define FIX_COUNT 230
/*
* Enumerate the fixes
@@ -9435,6 +9487,7 @@ typedef enum {
AIX_STDINT_3_FIXIDX,
AIX_STDINT_4_FIXIDX,
AIX_STDINT_5_FIXIDX,
+ AIX_STDIO_INLINE_FIXIDX,
AIX_STRTOF_CONST_FIXIDX,
AIX_SYSMACHINE_FIXIDX,
AIX_SYSWAIT_2_FIXIDX,
@@ -9791,6 +9844,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
AIX_STDINT_5_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aAix_Stdint_5Tests, apzAix_Stdint_5Patch, 0 },
+ { zAix_Stdio_InlineName, zAix_Stdio_InlineList,
+ apzAix_Stdio_InlineMachs,
+ AIX_STDIO_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAix_Stdio_InlineTests, apzAix_Stdio_InlinePatch, 0 },
+
{ zAix_Strtof_ConstName, zAix_Strtof_ConstList,
apzAix_Strtof_ConstMachs,
AIX_STRTOF_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 89c7aa8d938..fc72add35dc 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -892,10 +892,32 @@ fix = {
};
/*
+ * stdio.h on AIX defines ferror, clearerr and feof as C++ inline, which
+ produces wrong code with G++.
+ */
+fix = {
+ hackname = aix_stdio_inline;
+ mach = "*-*-aix*";
+ files = stdio.h;
+ select = "#ifdef __cplusplus\\\n"
+ "}\\\n\\\n"
+ "#ifdef ferror\\\n";
+ c_fix = format;
+ c_fix_arg = "#ifdef __cplusplus\n"
+ "}\n"
+ "#endif\n\n"
+ "#if (defined(__cplusplus) && defined(__IBMCPP__))\n"
+ "#ifdef ferror\n";
+ test_text = "#ifdef __cplusplus\n}\n\n#ifdef ferror";
+};
+
+
+/*
* stdlib.h on AIX 4.3 declares strtof() with a non-const first argument.
*/
fix = {
hackname = aix_strtof_const;
+ mach = "*-*-aix*";
files = stdlib.h;
select = "((extern[ \t]+)?float[ \t]+strtof)\\(char \\*, char \\*\\*\\);";
c_fix = format;
@@ -909,6 +931,7 @@ fix = {
*/
fix = {
hackname = aix_sysmachine;
+ mach = "*-*-aix*";
files = sys/machine.h;
select = "\\\\ +\n";
c_fix = format;
@@ -923,6 +946,7 @@ fix = {
*/
fix = {
hackname = aix_syswait_2;
+ mach = "*-*-aix*";
files = sys/wait.h;
select = '\? (\(\(\(\(unsigned[^)]*\)[^)]*\) >> [^)]*\) \& 0xff\) : -1)';
c_fix = format;
@@ -939,6 +963,7 @@ fix = {
*/
fix = {
hackname = aix_volatile;
+ mach = "*-*-aix*";
files = sys/signal.h;
select = "typedef volatile int sig_atomic_t";
c_fix = format;
diff --git a/fixincludes/tests/base/stdio.h b/fixincludes/tests/base/stdio.h
index 975d0a52168..275931c52cc 100644
--- a/fixincludes/tests/base/stdio.h
+++ b/fixincludes/tests/base/stdio.h
@@ -19,6 +19,16 @@
#endif /* AAB_AIX_STDIO_CHECK */
+#if defined( AIX_STDIO_INLINE_CHECK )
+#ifdef __cplusplus
+}
+#endif
+
+#if (defined(__cplusplus) && defined(__IBMCPP__))
+#ifdef ferror
+#endif /* AIX_STDIO_INLINE_CHECK */
+
+
#if defined( ALPHA_GETOPT_CHECK )
extern int getopt(int, char *const[], const char *);
#endif /* ALPHA_GETOPT_CHECK */