+2015-03-18 Jonathan Wakely <jwakely@redhat.com>
+
+ PR c++/65046
+ * config/locale/gnu/messages_members.cc (Catalog_info, Catalogs,
+ get_catalogs): Add abi-tag.
+ * include/ext/codecvt_specializations.h (encoding_state,
+ encoding_char_traits): Likewise.
+ * src/c++11/cxx11-ios_failure.cc (io_error_category): Likewise.
+ * src/c++11/cxx11-shim_facets.cc (__any_string::operator basic_string,
+ numpunct_shim, collate_shim, time_get_shim, moneypunct_shim,
+ money_get_shim, money_put_shim, messages_shim): Likewise.
+ * src/c++11/future.cc (future_error_category::message): Likewise.
+ * src/c++11/system_error.cc (generic_error_category::message,
+ system_error_category::message): Likewise.
+ (__sso_string): Disable -Wabi-tag warnings.
+
2015-03-18 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/13631
// This includes conversions and comparisons between various character
// sets. This object encapsulates data that may need to be shared between
// char_traits, codecvt and ctype.
- class encoding_state
+ class _GLIBCXX_DEFAULT_ABI_TAG encoding_state
{
public:
// Types:
// associated fpos<encoding_state> for the position type, all other
// bits equivalent to the required char_traits instantiations.
template<typename _CharT>
- struct encoding_char_traits : public std::char_traits<_CharT>
+ struct _GLIBCXX_DEFAULT_ABI_TAG encoding_char_traits
+ : public std::char_traits<_CharT>
{
typedef encoding_state state_type;
typedef typename std::fpos<state_type> pos_type;
// The returned object will match the caller's string ABI, even when the
// stored string doesn't.
template<typename C>
+ _GLIBCXX_DEFAULT_ABI_TAG
operator basic_string<C>() const
{
if (!_M_dtor)
namespace // unnamed
{
template<typename _CharT>
- struct numpunct_shim : std::numpunct<_CharT>, facet::__shim
+ struct _GLIBCXX_DEFAULT_ABI_TAG numpunct_shim
+ : std::numpunct<_CharT>, facet::__shim
{
typedef typename numpunct<_CharT>::__cache_type __cache_type;
};
template<typename _CharT>
- struct collate_shim : std::collate<_CharT>, facet::__shim
+ struct _GLIBCXX_DEFAULT_ABI_TAG collate_shim
+ : std::collate<_CharT>, facet::__shim
{
typedef basic_string<_CharT> string_type;
};
template<typename _CharT>
- struct time_get_shim : std::time_get<_CharT>, facet::__shim
+ struct _GLIBCXX_DEFAULT_ABI_TAG time_get_shim
+ : std::time_get<_CharT>, facet::__shim
{
typedef typename std::time_get<_CharT>::iter_type iter_type;
typedef typename std::time_get<_CharT>::char_type char_type;
};
template<typename _CharT, bool _Intl>
- struct moneypunct_shim : std::moneypunct<_CharT, _Intl>, facet::__shim
+ struct _GLIBCXX_DEFAULT_ABI_TAG moneypunct_shim
+ : std::moneypunct<_CharT, _Intl>, facet::__shim
{
typedef typename moneypunct<_CharT, _Intl>::__cache_type __cache_type;
};
template<typename _CharT>
- struct money_get_shim : std::money_get<_CharT>, facet::__shim
+ struct _GLIBCXX_DEFAULT_ABI_TAG money_get_shim
+ : std::money_get<_CharT>, facet::__shim
{
typedef typename std::money_get<_CharT>::iter_type iter_type;
typedef typename std::money_get<_CharT>::char_type char_type;
};
template<typename _CharT>
- struct money_put_shim : std::money_put<_CharT>, facet::__shim
+ struct _GLIBCXX_DEFAULT_ABI_TAG money_put_shim
+ : std::money_put<_CharT>, facet::__shim
{
typedef typename std::money_put<_CharT>::iter_type iter_type;
typedef typename std::money_put<_CharT>::char_type char_type;
};
template<typename _CharT>
- struct messages_shim : std::messages<_CharT>, facet::__shim
+ struct _GLIBCXX_DEFAULT_ABI_TAG messages_shim
+ : std::messages<_CharT>, facet::__shim
{
typedef messages_base::catalog catalog;
typedef basic_string<_CharT> string_type;
name() const noexcept
{ return "generic"; }
+ _GLIBCXX_DEFAULT_ABI_TAG
virtual string
message(int i) const
{
name() const noexcept
{ return "system"; }
+ _GLIBCXX_DEFAULT_ABI_TAG
virtual string
message(int i) const
{
#endif
#if _GLIBCXX_USE_DUAL_ABI
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wabi-tag"
// Redefine __sso_string so that we can define and export its members
// in terms of the SSO std::string.
struct __sso_string
__sso_string(__sso_string&&) noexcept;
__sso_string& operator=(__sso_string&&) noexcept;
};
+#pragma GCC diagnostic pop
__sso_string::__sso_string() : _M_str() { }