To eliminate any possible ambiguity, the patch is "approved"

On 01/10/12 23:49, andreast at gcc dot gnu.org wrote:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51705

Andreas Tobler<andreast at gcc dot gnu.org>  changed:

            What    |Removed                     |Added
----------------------------------------------------------------------------
              Status|NEW                         |ASSIGNED

--- Comment #46 from Andreas Tobler<andreast at gcc dot gnu.org>  2012-01-11 
07:49:41 UTC ---
I'm going to apply the patch from comment #45 this evening.

Bootstraped several times, make check in fixincludes successful.

This is the CL I prepared:

2012-01-11  Bruce Korb<bk...@gnu.org>
         Steven G. Kargl<ka...@gcc.gnu.org>
         Andreas Tobler<andre...@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.


Index: inclhack.def
===================================================================
--- inclhack.def        (revision 183089)
+++ inclhack.def        (working copy)
@@ -20,6 +20,7 @@
 FIXINC_DEBUG = yes;
 #endif

+
 /* On AIX when _LARGE_FILES is defined stdio.h defines fopen to
  * fopen64 etc. and this causes problems when building with g++
  * because cstdio udefs everything from stdio.h, leaving us with
@@ -1028,6 +1029,22 @@
     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.
Index: tests/base/sys/cdefs.h
===================================================================
--- tests/base/sys/cdefs.h      (revision 183089)
+++ tests/base/sys/cdefs.h      (working copy)
@@ -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 */
Index: genfixes
===================================================================
--- genfixes    (revision 183089)
+++ genfixes    (working copy)
@@ -62,7 +62,7 @@
 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:"

Reply via email to