aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2016-01-21 13:33:27 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2016-01-21 13:33:27 +0000
commitab56cbed60ad78b3d77065a5a84b7c1306fe3b5e (patch)
tree020ac32e8d4a12713177248b79cc35b160b93c23
parentaede6748d0abe3e4ec03f0d44f4e784725a9c595 (diff)
downloadgcc-ab56cbed60ad78b3d77065a5a84b7c1306fe3b5e.zip
gcc-ab56cbed60ad78b3d77065a5a84b7c1306fe3b5e.tar.gz
gcc-ab56cbed60ad78b3d77065a5a84b7c1306fe3b5e.tar.bz2
libstdc++/69406 Fix test to check for supported headers
PR libstdc++/69406 * include/bits/cpp_type_traits.h: Ensure C++ language linkage. * include/ext/type_traits.h: Likewise. * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros for presence of C headers. * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust dg-error line number. * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise. * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise. * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise. From-SVN: r232672
-rw-r--r--libstdc++-v3/ChangeLog13
-rw-r--r--libstdc++-v3/include/bits/cpp_type_traits.h3
-rw-r--r--libstdc++-v3/include/ext/type_traits.h3
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc20
-rw-r--r--libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc4
8 files changed, 45 insertions, 6 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 72ee6ed..3b559c5 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,16 @@
+2016-01-21 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/69406
+ * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
+ * include/ext/type_traits.h: Likewise.
+ * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
+ for presence of C headers.
+ * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
+ dg-error line number.
+ * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
+ * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
+ * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
+
2016-01-20 Torvald Riegel <triegel@redhat.com>
PR libstdc++/69310
diff --git a/libstdc++-v3/include/bits/cpp_type_traits.h b/libstdc++-v3/include/bits/cpp_type_traits.h
index 3b188d4..fff1e99 100644
--- a/libstdc++-v3/include/bits/cpp_type_traits.h
+++ b/libstdc++-v3/include/bits/cpp_type_traits.h
@@ -64,6 +64,8 @@
// removed.
//
+extern "C++" {
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -408,5 +410,6 @@ __INT_N(__GLIBCXX_TYPE_INT_N_3)
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
+} // extern "C++"
#endif //_CPP_TYPE_TRAITS_H
diff --git a/libstdc++-v3/include/ext/type_traits.h b/libstdc++-v3/include/ext/type_traits.h
index 0a4f425..dd27657 100644
--- a/libstdc++-v3/include/ext/type_traits.h
+++ b/libstdc++-v3/include/ext/type_traits.h
@@ -34,6 +34,8 @@
#include <bits/c++config.h>
#include <bits/cpp_type_traits.h>
+extern "C++" {
+
namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -214,5 +216,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
+} // extern "C++"
#endif
diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc
index 33e7053..67c384b 100644
--- a/libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc
+++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc
@@ -20,15 +20,23 @@
// libstdc++/69386
+#include <bits/c++config.h>
+
extern "C"
{
#include <assert.h>
+#ifdef _GLIBCXX_HAVE_COMPLEX_H
#include <complex.h>
+#endif
#include <ctype.h>
#include <errno.h>
+#ifdef _GLIBCXX_HAVE_FENV_H
#include <fenv.h>
+#endif
#include <float.h>
+#ifdef _GLIBCXX_HAVE_INTTYPES_H
#include <inttypes.h>
+#endif
#include <iso646.h>
#include <limits.h>
#include <locale.h>
@@ -36,15 +44,27 @@ extern "C"
#include <setjmp.h>
#include <signal.h>
#include <stdarg.h>
+#ifdef _GLIBCXX_HAVE_STDBOOL_H
#include <stdbool.h>
+#endif
#include <stddef.h>
+#ifdef _GLIBCXX_HAVE_STDINT_H
#include <stdint.h>
+#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#ifdef _GLIBCXX_HAVE_TGMATH_H
#include <tgmath.h>
+#endif
#include <time.h>
+#if __has_include(<uchar.h>)
#include <uchar.h>
+#endif
+#ifdef _GLIBCXX_HAVE_WCHAR_H
#include <wchar.h>
+#endif
+#ifdef _GLIBCXX_HAVE_WCTYPE_H
#include <wctype.h>
+#endif
}
diff --git a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
index f0c48d0..09d2c7c 100644
--- a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
+++ b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
@@ -35,4 +35,4 @@ int main()
}
// { dg-error "required from" "" { target *-*-* } 28 }
-// { dg-error "no type" "" { target *-*-* } 69 }
+// { dg-error "no type" "" { target *-*-* } 71 }
diff --git a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
index cee08a3..567684e 100644
--- a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
+++ b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
@@ -36,5 +36,5 @@ int main()
}
// { dg-error "invalid use of incomplete" "" { target *-*-* } 28 }
-// { dg-error "declaration of" "" { target *-*-* } 98 }
-// { dg-error "declaration of" "" { target *-*-* } 101 }
+// { dg-error "declaration of" "" { target *-*-* } 100 }
+// { dg-error "declaration of" "" { target *-*-* } 103 }
diff --git a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
index 98ba8a6..c946a4f 100644
--- a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
+++ b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
@@ -35,4 +35,4 @@ int main()
}
// { dg-error "required from" "" { target *-*-* } 28 }
-// { dg-error "no type" "" { target *-*-* } 112 }
+// { dg-error "no type" "" { target *-*-* } 114 }
diff --git a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
index 14e671d..a2cc4c7 100644
--- a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
+++ b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
@@ -36,5 +36,5 @@ int main()
}
// { dg-error "invalid use of incomplete" "" { target *-*-* } 28 }
-// { dg-error "declaration of" "" { target *-*-* } 141 }
-// { dg-error "declaration of" "" { target *-*-* } 144 }
+// { dg-error "declaration of" "" { target *-*-* } 143 }
+// { dg-error "declaration of" "" { target *-*-* } 146 }