[Bug libstdc++/64883] FAIL: 17_intro/headers/c++*/all_attributes.cc (test for excess errors) on x86_64-apple-darwin14
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Jan 31 21:31:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64883
--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #6)
> Perhaps unconditionally or conditionally for Darwin only include some C
> header or headers before defining those macros, then include the STL headers?
Yes, something like this:
--- a/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
+++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
@@ -18,6 +18,19 @@
// { dg-options "-std=gnu++98" }
// { dg-do compile }
+#ifdef __APPLE__
+// darwin headers use noreturn and deprecated, PR 64883
+#include <assert.h>
+#include <math.h>
+#include <setjmp.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#endif
+
+// gthr-single.h uses unused, PR 64885
+#include <bits/gthr.h>
+
// Ensure the library only uses the __name__ form for attributes.
// Don't test 'const' because it is reserved anyway.
#define abi_tag 1
But it's a bit fragile, as the list of C headers might vary between darwin
versions. This would be more reliable, and we still test that libstdc++ doesn't
use those names on all other targets:
--- a/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
+++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
@@ -18,12 +18,18 @@
// { dg-options "-std=gnu++98" }
// { dg-do compile }
+// gthr-single.h uses unused, see PR 64885
+#include <bits/gthr.h>
+
// Ensure the library only uses the __name__ form for attributes.
// Don't test 'const' because it is reserved anyway.
#define abi_tag 1
#define always_inline 1
-#define deprecated 1
-#define noreturn 1
+#ifndef __APPLE__
+// darwin headers use these, see PR 64883
+# define deprecated 1
+# define noreturn 1
+#endif
#define packed 1
#define pure 1
#define unused 1
More information about the Gcc-bugs
mailing list