aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/std
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2016-10-03 15:35:28 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2016-10-03 15:35:28 +0100
commite347987da8d37eb2f1d41f1a8d3eda10e0e8e376 (patch)
treeb6af99ff232031deeae85d4b5056af3171278fbc /libstdc++-v3/include/std
parent1adae327479aaff6d8020d9df6e401b7075c5672 (diff)
downloadgcc-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/chrono2
-rw-r--r--libstdc++-v3/include/std/complex5
-rw-r--r--libstdc++-v3/include/std/string_view8
-rw-r--r--libstdc++-v3/include/std/variant12
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