aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/std/variant
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/variant
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/variant')
-rw-r--r--libstdc++-v3/include/std/variant12
1 files changed, 11 insertions, 1 deletions
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