diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2016-01-21 13:33:27 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2016-01-21 13:33:27 +0000 |
commit | ab56cbed60ad78b3d77065a5a84b7c1306fe3b5e (patch) | |
tree | 020ac32e8d4a12713177248b79cc35b160b93c23 | |
parent | aede6748d0abe3e4ec03f0d44f4e784725a9c595 (diff) | |
download | gcc-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
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 } |