inclhack.def (aix_assert): New fix.

* inclhack.def (aix_assert): New fix.
        * fixincl.x: Regenerate.
	* tests/base/assert.h [AIX_ASSERT_CHECK]: New check.

From-SVN: r202192
This commit is contained in:
David Edelsohn 2013-09-02 23:01:49 +00:00 committed by David Edelsohn
parent a64bbb3f89
commit a4f710a657
4 changed files with 79 additions and 7 deletions

View File

@ -1,3 +1,9 @@
2013-09-02 David Edelsohn <dje.gcc@gmail.com>
* inclhack.def (aix_assert): New fix.
* fixincl.x: Regenerate.
* tests/base/assert.h [AIX_ASSERT_CHECK]: New check.
2013-07-06 Bruce Korb <bkorb@gnu.org>
* inclhack.def (cdef_cplusplus): removed, per Bug 51776

View File

@ -1,12 +1,12 @@
/* -*- buffer-read-only: t -*- vi: set ro:
*
*
* DO NOT EDIT THIS FILE (fixincl.x)
*
* It has been AutoGen-ed July 6, 2013 at 10:40:53 AM by AutoGen 5.17.5pre10
*
* It has been AutoGen-ed August 31, 2013 at 04:29:02 PM by AutoGen 5.12
* From the definitions inclhack.def
* and the template file fixincl
*/
/* DO NOT SVN-MERGE THIS FILE, EITHER Sat Jul 6 10:40:53 PDT 2013
/* DO NOT SVN-MERGE THIS FILE, EITHER Sat Aug 31 16:29:02 PDT 2013
*
* 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 227 fixup descriptions.
* This file contains 228 fixup descriptions.
*
* See README for more information.
*
@ -734,6 +734,45 @@ static const char* apzAab_Vxworks_UnistdPatch[] = {
#endif /* _UNISTD_H */",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Aix_Assert fix
*/
tSCC zAix_AssertName[] =
"aix_assert";
/*
* File name selection pattern
*/
tSCC zAix_AssertList[] =
"assert.h\0";
/*
* Machine/OS name selection pattern
*/
tSCC* apzAix_AssertMachs[] = {
"*-*-aix*",
(const char*)NULL };
/*
* content selection pattern - do fix if pattern found
*/
tSCC zAix_AssertSelect0[] =
"#define[ \t]static_assert[ \t]_Static_assert";
#define AIX_ASSERT_TEST_CT 1
static tTestDesc aAix_AssertTests[] = {
{ TT_EGREP, zAix_AssertSelect0, (regex_t*)NULL }, };
/*
* Fix Command Arguments for Aix_Assert
*/
static const char* apzAix_AssertPatch[] = {
"format",
"#ifndef __cplusplus\n\
%0\n\
#endif",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Aix_Complex fix
@ -9329,9 +9368,9 @@ static const char* apzComplier_H_TradcppPatch[] = {
*
* List of all fixes
*/
#define REGEX_COUNT 266
#define REGEX_COUNT 267
#define MACH_LIST_SIZE_LIMIT 187
#define FIX_COUNT 227
#define FIX_COUNT 228
/*
* Enumerate the fixes
@ -9349,6 +9388,7 @@ typedef enum {
AAB_VXWORKS_REGS_VXTYPES_FIXIDX,
AAB_VXWORKS_STDINT_FIXIDX,
AAB_VXWORKS_UNISTD_FIXIDX,
AIX_ASSERT_FIXIDX,
AIX_COMPLEX_FIXIDX,
AIX_MALLOC_FIXIDX,
AIX_NET_IF_ARP_FIXIDX,
@ -9627,6 +9667,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
AAB_VXWORKS_UNISTD_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
aAab_Vxworks_UnistdTests, apzAab_Vxworks_UnistdPatch, 0 },
{ zAix_AssertName, zAix_AssertList,
apzAix_AssertMachs,
AIX_ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aAix_AssertTests, apzAix_AssertPatch, 0 },
{ zAix_ComplexName, zAix_ComplexList,
apzAix_ComplexMachs,
AIX_COMPLEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,

View File

@ -568,6 +568,20 @@ fix = {
_EndOfHeader_;
};
/*
* assert.h on AIX 7 redefines static_assert as _Static_assert without
* protecting C++.
*/
fix = {
hackname = aix_assert;
mach = "*-*-aix*";
files = assert.h;
select = "#define[ \t]static_assert[ \t]_Static_assert";
c_fix = format;
c_fix_arg = "#ifndef __cplusplus\n%0\n#endif";
test_text = "#define static_assert _Static_assert";
};
/*
* complex.h on AIX 5 and AIX 6 define _Complex_I and I in terms of __I,
* which only is provided by AIX xlc C99.

View File

@ -19,6 +19,13 @@
#include <stdio.h>
#if defined( AIX_ASSERT_CHECK )
#ifndef __cplusplus
#define static_assert _Static_assert
#endif
#endif /* AIX_ASSERT_CHECK */
#if defined( ALPHA___ASSERT_CHECK )
extern void __assert(const char *, const char *, int);
#endif /* ALPHA___ASSERT_CHECK */