summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fixincludes/ChangeLog12
-rw-r--r--fixincludes/fixincl.x51
-rwxr-xr-xfixincludes/genfixes2
-rw-r--r--fixincludes/inclhack.def16
-rw-r--r--fixincludes/tests/base/sys/cdefs.h5
5 files changed, 80 insertions, 6 deletions
diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
index 64fcc459b17..3e058ec3d0f 100644
--- a/fixincludes/ChangeLog
+++ b/fixincludes/ChangeLog
@@ -1,3 +1,15 @@
+2012-01-11 Bruce Korb <bkorb@gnu.org>
+ Steven G. Kargl <kargl@gcc.gnu.org>
+ Andreas Tobler <andreast@fgznet.ch>
+
+ PR bootstrap/57105
+ PR preprocessor/51776
+ * inclhack.def (cdef_cplusplus): Add a replacement for [[noreturn]].
+ * fixincl.x: Regenerate.
+ * tests/base/sys/cdefs.h: Update.
+
+ * genfixes: Remove the 'Ver.' from the version check.
+
2011-12-20 Andreas Schwab <schwab@linux-m68k.org>
* configure: Regenerate.
diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
index dac0a4ed229..517fba9df06 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 November 7, 2011 at 01:16:39 PM by AutoGen 5.10
+ * It has been AutoGen-ed January 9, 2012 at 11:55:38 PM by AutoGen 5.12
* From the definitions inclhack.def
* and the template file fixincl
*/
-/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Nov 7 13:16:39 EST 2011
+/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Jan 9 23:55:38 CET 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 222 fixup descriptions.
+ * This file contains 223 fixup descriptions.
*
* See README for more information.
*
@@ -1880,6 +1880,41 @@ int vfscanf(FILE *, const char *, __builtin_va_list) __asm__ (_BSD_STRING(__USER
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Cdef_Cplusplus fix
+ */
+tSCC zCdef_CplusplusName[] =
+ "cdef_cplusplus";
+
+/*
+ * File name selection pattern
+ */
+tSCC zCdef_CplusplusList[] =
+ "sys/cdefs.h\0";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzCdef_CplusplusMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zCdef_CplusplusSelect0[] =
+ "\\[\\[noreturn\\]\\]";
+
+#define CDEF_CPLUSPLUS_TEST_CT 1
+static tTestDesc aCdef_CplusplusTests[] = {
+ { TT_EGREP, zCdef_CplusplusSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Cdef_Cplusplus
+ */
+static const char* apzCdef_CplusplusPatch[] = {
+ "format",
+ "__attribute__((__noreturn__))",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Ctrl_Quotes_Def fix
*/
tSCC zCtrl_Quotes_DefName[] =
@@ -9034,9 +9069,9 @@ static const char* apzX11_SprintfPatch[] = {
*
* List of all fixes
*/
-#define REGEX_COUNT 264
+#define REGEX_COUNT 265
#define MACH_LIST_SIZE_LIMIT 181
-#define FIX_COUNT 222
+#define FIX_COUNT 223
/*
* Enumerate the fixes
@@ -9086,6 +9121,7 @@ typedef enum {
BROKEN_CABS_FIXIDX,
BROKEN_NAN_FIXIDX,
BSD_STDIO_ATTRS_CONFLICT_FIXIDX,
+ CDEF_CPLUSPLUS_FIXIDX,
CTRL_QUOTES_DEF_FIXIDX,
CTRL_QUOTES_USE_FIXIDX,
CXX_UNREADY_FIXIDX,
@@ -9487,6 +9523,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
BSD_STDIO_ATTRS_CONFLICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aBsd_Stdio_Attrs_ConflictTests, apzBsd_Stdio_Attrs_ConflictPatch, 0 },
+ { zCdef_CplusplusName, zCdef_CplusplusList,
+ apzCdef_CplusplusMachs,
+ CDEF_CPLUSPLUS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aCdef_CplusplusTests, apzCdef_CplusplusPatch, 0 },
+
{ zCtrl_Quotes_DefName, zCtrl_Quotes_DefList,
apzCtrl_Quotes_DefMachs,
CTRL_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
diff --git a/fixincludes/genfixes b/fixincludes/genfixes
index 6bc60d2279c..f186a508246 100755
--- a/fixincludes/genfixes
+++ b/fixincludes/genfixes
@@ -62,7 +62,7 @@ fi
AG="autogen $AG"
set -e
-if [ -z "`${AG} -v | fgrep 'Ver. 5.'`" ]
+if [ -z "`${AG} -v | fgrep ' 5.'`" ]
then
echo "AutoGen appears to be out of date or not correctly installed."
echo "Please download and install:"
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 0567bf474e0..b441dc15f54 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -1028,6 +1028,22 @@ fix = {
test_text = '#define vfscanf __svfscanf';
};
+/*
+ * 'g++ -std=c++11' defines __cplusplus to 201103L, which suggests
+ * that it conforms to ISO/IEC 14882:2011. Until G++ fully conforms,
+ * it should not set __cplusplus to that value. It currently does
+ * not support the [[noreturn]] procedure attribute.
+ * When it does, this hack should be removed.
+ * SEE: gcc.gnu.org/bugzilla/show_bug.cgi?id=51776
+ */
+fix = {
+ hackname = cdef_cplusplus;
+ files = sys/cdefs.h;
+ select = '\[\[noreturn\]\]';
+ c_fix = format;
+ c_fix_arg = '__attribute__((__noreturn__))';
+ test_text = "#define _Noreturn [[noreturn]]";
+};
/*
* Fix various macros used to define ioctl numbers.
diff --git a/fixincludes/tests/base/sys/cdefs.h b/fixincludes/tests/base/sys/cdefs.h
index 6ccd0b7738a..e42df6f527b 100644
--- a/fixincludes/tests/base/sys/cdefs.h
+++ b/fixincludes/tests/base/sys/cdefs.h
@@ -9,6 +9,11 @@
+#if defined( CDEF_CPLUSPLUS_CHECK )
+#define _Noreturn __attribute__((__noreturn__))
+#endif /* CDEF_CPLUSPLUS_CHECK */
+
+
#if defined( FREEBSD_GCC3_BREAKAGE_CHECK )
#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7
#endif /* FREEBSD_GCC3_BREAKAGE_CHECK */
OpenPOWER on IntegriCloud