diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2016-10-03 12:50:46 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2016-10-03 12:50:46 +0100 |
commit | 6a0d23af49e16577418566ab4fb165fea2efe286 (patch) | |
tree | 00f6965a3a89bc05af5c114be662848901442b64 /libstdc++-v3 | |
parent | 3fe2ddae4b15a17184237097a5c9363eb94fe99a (diff) | |
download | gcc-6a0d23af49e16577418566ab4fb165fea2efe286.zip gcc-6a0d23af49e16577418566ab4fb165fea2efe286.tar.gz gcc-6a0d23af49e16577418566ab4fb165fea2efe286.tar.bz2 |
Ensure "C++" language linkage for std::abs overloads
PR libstdc++/77814
* include/bits/std_abs.h: Use "C++" language linkage.
* testsuite/17_intro/headers/c++2011/linkage.cc: Move <complex.h> to
the end. Add <stdalign.h>.
From-SVN: r240710
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 7 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/std_abs.h | 3 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc | 13 |
3 files changed, 20 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 31dfa65..8c74435 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2016-10-03 Jonathan Wakely <jwakely@redhat.com> + + PR libstdc++/77814 + * include/bits/std_abs.h: Use "C++" language linkage. + * testsuite/17_intro/headers/c++2011/linkage.cc: Move <complex.h> to + the end. Add <stdalign.h>. + 2016-10-03 Ville Voutilainen <ville.voutilainen@gmail.com> PR libstdc++/77802 diff --git a/libstdc++-v3/include/bits/std_abs.h b/libstdc++-v3/include/bits/std_abs.h index ab0f980..732b81a3 100644 --- a/libstdc++-v3/include/bits/std_abs.h +++ b/libstdc++-v3/include/bits/std_abs.h @@ -43,6 +43,8 @@ #undef abs +extern "C++" +{ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -103,5 +105,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION } // namespace +} #endif // _GLIBCXX_BITS_STD_ABS_H 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 67c384b..bb56dbf 100644 --- a/libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc @@ -25,9 +25,7 @@ extern "C" { #include <assert.h> -#ifdef _GLIBCXX_HAVE_COMPLEX_H -#include <complex.h> -#endif +// See below for <complex.h> #include <ctype.h> #include <errno.h> #ifdef _GLIBCXX_HAVE_FENV_H @@ -43,6 +41,9 @@ extern "C" #include <math.h> #include <setjmp.h> #include <signal.h> +#if _GLIBCXX_HAVE_STDALIGN_H +#include <stdalign.h> +#endif #include <stdarg.h> #ifdef _GLIBCXX_HAVE_STDBOOL_H #include <stdbool.h> @@ -67,4 +68,10 @@ extern "C" #ifdef _GLIBCXX_HAVE_WCTYPE_H #include <wctype.h> #endif + +// Include this last, because it adds extern "C++" and so hides problems in +// other headers if included first (e.g. PR libstdc++/77814). +#ifdef _GLIBCXX_HAVE_COMPLEX_H +#include <complex.h> +#endif } |