http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51705

--- Comment #37 from bkorb at gnu dot org 2012-01-09 22:11:09 UTC ---
It is getting too confusing.

+/*
+ * '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]]";
+};

This is the fix/hack that should be used.
There will also be a change required for tests/base/sys/cdefs.h.

The following is also correct, since I read a more recent GNU Coding
standards that makes it clear to not use "Ver." in the version.

This is approved.  Regards, Bruce

Index: genfixes
===================================================================
--- genfixes    (revision 182738)
+++ genfixes    (working copy)
@@ -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:"

Reply via email to