Commit d8082c18 by David Edelsohn Committed by David Edelsohn

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
parent c9665100
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> 2015-07-28 Eric Gallager <egall@gwmail.gwu.edu>
* check.tpl: Ignore .DS_Store directories. * check.tpl: Ignore .DS_Store directories.
......
/* -*- buffer-read-only: t -*- vi: set ro: /* -*- buffer-read-only: t -*- vi: set ro:
* *
* DO NOT EDIT THIS FILE (fixincl.x) *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 *It has been AutoGen-ed August 13, 2015 at 05:25:50 PM by AutoGen 5.18.3
* From the definitions inclhack.def *From the definitions inclhack.def
* and the template file fixincl *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. * You must regenerate it. Use the ./genfixes script.
* *
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* certain ANSI-incompatible system header files which are fixed to work * 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. * 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. * See README for more information.
* *
...@@ -1503,6 +1503,50 @@ static const char* apzAix_Stdint_5Patch[] = { ...@@ -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 * Description of Aix_Strtof_Const fix
*/ */
tSCC zAix_Strtof_ConstName[] = tSCC zAix_Strtof_ConstName[] =
...@@ -1516,7 +1560,9 @@ tSCC zAix_Strtof_ConstList[] = ...@@ -1516,7 +1560,9 @@ tSCC zAix_Strtof_ConstList[] =
/* /*
* Machine/OS name selection pattern * 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 * content selection pattern - do fix if pattern found
...@@ -1551,7 +1597,9 @@ tSCC zAix_SysmachineList[] = ...@@ -1551,7 +1597,9 @@ tSCC zAix_SysmachineList[] =
/* /*
* Machine/OS name selection pattern * 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 * content selection pattern - do fix if pattern found
...@@ -1586,7 +1634,9 @@ tSCC zAix_Syswait_2List[] = ...@@ -1586,7 +1634,9 @@ tSCC zAix_Syswait_2List[] =
/* /*
* Machine/OS name selection pattern * 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 * content selection pattern - do fix if pattern found
...@@ -1621,7 +1671,9 @@ tSCC zAix_VolatileList[] = ...@@ -1621,7 +1671,9 @@ tSCC zAix_VolatileList[] =
/* /*
* Machine/OS name selection pattern * 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 * content selection pattern - do fix if pattern found
...@@ -9396,9 +9448,9 @@ static const char* apzX11_SprintfPatch[] = { ...@@ -9396,9 +9448,9 @@ static const char* apzX11_SprintfPatch[] = {
* *
* List of all fixes * List of all fixes
*/ */
#define REGEX_COUNT 266 #define REGEX_COUNT 267
#define MACH_LIST_SIZE_LIMIT 187 #define MACH_LIST_SIZE_LIMIT 187
#define FIX_COUNT 229 #define FIX_COUNT 230
/* /*
* Enumerate the fixes * Enumerate the fixes
...@@ -9435,6 +9487,7 @@ typedef enum { ...@@ -9435,6 +9487,7 @@ typedef enum {
AIX_STDINT_3_FIXIDX, AIX_STDINT_3_FIXIDX,
AIX_STDINT_4_FIXIDX, AIX_STDINT_4_FIXIDX,
AIX_STDINT_5_FIXIDX, AIX_STDINT_5_FIXIDX,
AIX_STDIO_INLINE_FIXIDX,
AIX_STRTOF_CONST_FIXIDX, AIX_STRTOF_CONST_FIXIDX,
AIX_SYSMACHINE_FIXIDX, AIX_SYSMACHINE_FIXIDX,
AIX_SYSWAIT_2_FIXIDX, AIX_SYSWAIT_2_FIXIDX,
...@@ -9791,6 +9844,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { ...@@ -9791,6 +9844,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
AIX_STDINT_5_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, AIX_STDINT_5_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aAix_Stdint_5Tests, apzAix_Stdint_5Patch, 0 }, 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, { zAix_Strtof_ConstName, zAix_Strtof_ConstList,
apzAix_Strtof_ConstMachs, apzAix_Strtof_ConstMachs,
AIX_STRTOF_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, AIX_STRTOF_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
......
...@@ -892,10 +892,32 @@ fix = { ...@@ -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. * stdlib.h on AIX 4.3 declares strtof() with a non-const first argument.
*/ */
fix = { fix = {
hackname = aix_strtof_const; hackname = aix_strtof_const;
mach = "*-*-aix*";
files = stdlib.h; files = stdlib.h;
select = "((extern[ \t]+)?float[ \t]+strtof)\\(char \\*, char \\*\\*\\);"; select = "((extern[ \t]+)?float[ \t]+strtof)\\(char \\*, char \\*\\*\\);";
c_fix = format; c_fix = format;
...@@ -909,6 +931,7 @@ fix = { ...@@ -909,6 +931,7 @@ fix = {
*/ */
fix = { fix = {
hackname = aix_sysmachine; hackname = aix_sysmachine;
mach = "*-*-aix*";
files = sys/machine.h; files = sys/machine.h;
select = "\\\\ +\n"; select = "\\\\ +\n";
c_fix = format; c_fix = format;
...@@ -923,6 +946,7 @@ fix = { ...@@ -923,6 +946,7 @@ fix = {
*/ */
fix = { fix = {
hackname = aix_syswait_2; hackname = aix_syswait_2;
mach = "*-*-aix*";
files = sys/wait.h; files = sys/wait.h;
select = '\? (\(\(\(\(unsigned[^)]*\)[^)]*\) >> [^)]*\) \& 0xff\) : -1)'; select = '\? (\(\(\(\(unsigned[^)]*\)[^)]*\) >> [^)]*\) \& 0xff\) : -1)';
c_fix = format; c_fix = format;
...@@ -939,6 +963,7 @@ fix = { ...@@ -939,6 +963,7 @@ fix = {
*/ */
fix = { fix = {
hackname = aix_volatile; hackname = aix_volatile;
mach = "*-*-aix*";
files = sys/signal.h; files = sys/signal.h;
select = "typedef volatile int sig_atomic_t"; select = "typedef volatile int sig_atomic_t";
c_fix = format; c_fix = format;
......
...@@ -19,6 +19,16 @@ ...@@ -19,6 +19,16 @@
#endif /* AAB_AIX_STDIO_CHECK */ #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 ) #if defined( ALPHA_GETOPT_CHECK )
extern int getopt(int, char *const[], const char *); extern int getopt(int, char *const[], const char *);
#endif /* ALPHA_GETOPT_CHECK */ #endif /* ALPHA_GETOPT_CHECK */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment