This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/51705] [4.7 Regression] FreeBSD uses unsupported C++11 features when __cplusplus == 201103L
- From: "bkorb at gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 06 Jan 2012 15:09:46 +0000
- Subject: [Bug bootstrap/51705] [4.7 Regression] FreeBSD uses unsupported C++11 features when __cplusplus == 201103L
- Auto-submitted: auto-generated
- References: <bug-51705-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51705
--- Comment #25 from bkorb at gnu dot org 2012-01-06 15:09:46 UTC ---
RE: Comment #16 through Comment #23 -- Do not use sed. There is no compelling
reason to do so. Please read the fixincludes README, wherein "sed" is
disparaged. I'll add to that the fact that BSD has some non-POSIX treatments
of multi-line commands. I think this is what you want (not specific to BSD):
+/*
+ * g++ -std=c++11 defines __cplusplus to 201103L, but does not
+ * properly support [[noreturn]].
+ */
+fix = {
+ hackname = cdef_cplusplus;
+ files = sys/cdefs.h;
+ select = '\[\[noreturn\]\]';
+ c_fix = format;
+ c_fix_arg = "/* noreturn */";
+ test_text = "#define _Noreturn [[noreturn]]";
+};
Note to self (Bruce): devise a way to compile this fix out
once GCC++ properly supports "[[noreturn]]".