diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2016-10-03 15:35:28 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2016-10-03 15:35:28 +0100 |
commit | e347987da8d37eb2f1d41f1a8d3eda10e0e8e376 (patch) | |
tree | b6af99ff232031deeae85d4b5056af3171278fbc /libstdc++-v3/include/std | |
parent | 1adae327479aaff6d8020d9df6e401b7075c5672 (diff) | |
download | gcc-e347987da8d37eb2f1d41f1a8d3eda10e0e8e376.zip gcc-e347987da8d37eb2f1d41f1a8d3eda10e0e8e376.tar.gz gcc-e347987da8d37eb2f1d41f1a8d3eda10e0e8e376.tar.bz2 |
Fix libstdc++ versioned namespace build
PR libstdc++/68323
PR libstdc++/77794
* config/abi/pre/gnu-versioned-namespace.ver: Add exports for
__cxa_thread_atexit and __gnu_cxx::__freeres.
* include/Makefile.am: Add <experimental/bits/lfts_config.h>
* include/Makefile.in: Regenerate.
* include.bits/basic_string.h: Fix nesting of versioned namespaces.
* include/bits/c++config: Declare versioned namespaces for literals.
* include/bits/regex.h (basic_regex, match_results): Add workarounds
for PR c++/59256.
* include/bits/uniform_int_dist.h: Fix nesting of versioned namespace.
* include/std/chrono: Likewise.
* include/std/complex: Likewise.
* include/std/string_view: Likewise.
* include/std/variant: Likewise. Add workaround for PR c++/59256.
* include/experimental/bits/fs_fwd.h: Declare versioned namespace.
* include/experimental/bits/lfts_config.h: Declare versioned
namespaces.
* include/experimental/algorithm: Include
<experimental/bits/lfts_config.h>.
* include/experimental/any: Likewise.
* include/experimental/bits/erase_if.h: Likewise.
* include/experimental/chrono: Likewise.
* include/experimental/functional: Likewise.
* include/experimental/memory_resource: Likewise.
* include/experimental/optional: Likewise.
* include/experimental/propagate_const: Likewise.
* include/experimental/random: Likewise.
* include/experimental/ratio: Likewise.
* include/experimental/system_error: Likewise.
* include/experimental/tuple: Likewise.
* include/experimental/type_traits: Likewise.
* include/experimental/utility: Likewise.
* include/experimental/string_view: Likewise. Fix nesting of
versioned namespaces.
* include/experimental/bits/string_view.tcc: Reopen inline namespace
for non-inline function definitions.
* testsuite/17_intro/using_namespace_std_exp_neg.cc: New test.
* testsuite/20_util/duration/literals/range.cc: Adjust dg-error line.
* testsuite/experimental/any/misc/any_cast_neg.cc: Likewise.
* testsuite/experimental/propagate_const/assignment/move_neg.cc:
Likewise.
* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
* testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
From-SVN: r240714
Diffstat (limited to 'libstdc++-v3/include/std')
-rw-r--r-- | libstdc++-v3/include/std/chrono | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/std/complex | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/std/string_view | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/std/variant | 12 |
4 files changed, 20 insertions, 7 deletions
diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono index 11e7fa2..cb8c876 100644 --- a/libstdc++-v3/include/std/chrono +++ b/libstdc++-v3/include/std/chrono @@ -881,6 +881,7 @@ _GLIBCXX_END_NAMESPACE_VERSION { inline namespace chrono_literals { + _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Rep, unsigned long long _Val> struct _Checked_integral_constant @@ -956,6 +957,7 @@ _GLIBCXX_END_NAMESPACE_VERSION operator""ns() { return __check_overflow<chrono::nanoseconds, _Digits...>(); } + _GLIBCXX_END_NAMESPACE_VERSION } // inline namespace chrono_literals } // inline namespace literals diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex index bb09b7d..a682247 100644 --- a/libstdc++-v3/include/std/complex +++ b/libstdc++-v3/include/std/complex @@ -1932,10 +1932,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION conj(_Tp __x) { return __x; } +_GLIBCXX_END_NAMESPACE_VERSION + #if __cplusplus > 201103L inline namespace literals { inline namespace complex_literals { +_GLIBCXX_BEGIN_NAMESPACE_VERSION #define __cpp_lib_complex_udls 201309 @@ -1963,12 +1966,12 @@ inline namespace complex_literals { operator""il(unsigned long long __num) { return std::complex<long double>{0.0L, static_cast<long double>(__num)}; } +_GLIBCXX_END_NAMESPACE_VERSION } // inline namespace complex_literals } // inline namespace literals #endif // C++14 -_GLIBCXX_END_NAMESPACE_VERSION } // namespace #endif // C++11 diff --git a/libstdc++-v3/include/std/string_view b/libstdc++-v3/include/std/string_view index d78ed02..14bfcd0 100644 --- a/libstdc++-v3/include/std/string_view +++ b/libstdc++-v3/include/std/string_view @@ -427,10 +427,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION size_t _M_len; const _CharT* _M_str; }; - +_GLIBCXX_END_NAMESPACE_VERSION // [string.view.comparison], non-member basic_string_view comparison function - _GLIBCXX_END_NAMESPACE_VERSION namespace __detail { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -445,8 +444,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Tp> using __idt = typename __identity<_Tp>::type; - _GLIBCXX_END_NAMESPACE_VERSION +_GLIBCXX_END_NAMESPACE_VERSION } + _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _CharT, typename _Traits> @@ -639,8 +639,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION struct __is_fast_hash<hash<u32string_view>> : std::false_type { }; #endif -_GLIBCXX_END_NAMESPACE_VERSION - _GLIBCXX_END_NAMESPACE_VERSION } // namespace std diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include/std/variant index ac483f3..48baf9a 100644 --- a/libstdc++-v3/include/std/variant +++ b/libstdc++-v3/include/std/variant @@ -85,10 +85,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION constexpr size_t variant_npos = -1; +_GLIBCXX_END_NAMESPACE_VERSION + namespace __detail { namespace __variant { +_GLIBCXX_BEGIN_NAMESPACE_VERSION // Returns the first apparence of _Tp in _Types. // Returns sizeof...(_Types) if _Tp is not in _Types. template<typename _Tp, typename... _Types> @@ -725,9 +728,12 @@ namespace __variant } }; +_GLIBCXX_END_NAMESPACE_VERSION } // namespace __variant } // namespace __detail +_GLIBCXX_BEGIN_NAMESPACE_VERSION + template<typename _Tp, typename... _Types> inline constexpr bool holds_alternative(const variant<_Types...>& __v) noexcept @@ -1250,7 +1256,11 @@ namespace __variant } template<typename _Vp> - friend void* __detail::__variant::__get_storage(_Vp&& __v); + friend void* __detail::__variant:: +#if _GLIBCXX_INLINE_VERSION + __7:: // Required due to PR c++/59256 +#endif + __get_storage(_Vp&& __v); }; // To honor algebraic data type, variant<> should be a bottom type, which |