mirror of git://gcc.gnu.org/git/gcc.git
PR libstdc++/88681 export missing symbols
These new facet functions were added to GCC 5.1 but the versions for the old std::string ABI were never exported from the shared library. PR libstdc++/88681 * config/abi/pre/gnu.ver: Add missing exports. * testsuite/22_locale/collate_byname/88681.cc: New test. * testsuite/22_locale/time_get/get/char/88681.cc: New test. * testsuite/22_locale/time_get/get/wchar_t/88681.cc: New test. From-SVN: r267563
This commit is contained in:
parent
19db0ebb16
commit
dd87c5c228
|
|
@ -1,3 +1,11 @@
|
||||||
|
2019-01-03 Jonathan Wakely <jwakely@redhat.com>
|
||||||
|
|
||||||
|
PR libstdc++/88681
|
||||||
|
* config/abi/pre/gnu.ver: Add missing exports.
|
||||||
|
* testsuite/22_locale/collate_byname/88681.cc: New test.
|
||||||
|
* testsuite/22_locale/time_get/get/char/88681.cc: New test.
|
||||||
|
* testsuite/22_locale/time_get/get/wchar_t/88681.cc: New test.
|
||||||
|
|
||||||
2019-01-02 Jonathan Wakely <jwakely@redhat.com>
|
2019-01-02 Jonathan Wakely <jwakely@redhat.com>
|
||||||
|
|
||||||
* testsuite/23_containers/map/cons/deduction.cc: Test deduction from
|
* testsuite/23_containers/map/cons/deduction.cc: Test deduction from
|
||||||
|
|
|
||||||
|
|
@ -2069,6 +2069,9 @@ GLIBCXX_3.4.26 {
|
||||||
_ZNSt3pmr28unsynchronized_pool_resource11do_allocateE[jmy][jmy];
|
_ZNSt3pmr28unsynchronized_pool_resource11do_allocateE[jmy][jmy];
|
||||||
_ZNSt3pmr28unsynchronized_pool_resource13do_deallocateEPv[jmy][jmy];
|
_ZNSt3pmr28unsynchronized_pool_resource13do_deallocateEPv[jmy][jmy];
|
||||||
|
|
||||||
|
_ZNSt14collate_bynameI[cw]EC[12]ERKSs[jmy];
|
||||||
|
_ZNKSt8time_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc;
|
||||||
|
|
||||||
} GLIBCXX_3.4.25;
|
} GLIBCXX_3.4.25;
|
||||||
|
|
||||||
# Symbols in the support library (libsupc++) have their own tag.
|
# Symbols in the support library (libsupc++) have their own tag.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
// Copyright (C) 2019 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License along
|
||||||
|
// with this library; see the file COPYING3. If not see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
// { dg-options "-fno-inline" }
|
||||||
|
// { dg-do link { target c++11 } }
|
||||||
|
|
||||||
|
#undef _GLIBCXX_USE_CXX11_ABI
|
||||||
|
#define _GLIBCXX_USE_CXX11_ABI 0
|
||||||
|
#include <locale>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
std::string s = "C";
|
||||||
|
|
||||||
|
template<typename C>
|
||||||
|
struct facet : std::collate_byname<C>
|
||||||
|
{
|
||||||
|
facet() : std::collate_byname<C>(s) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
test01()
|
||||||
|
{
|
||||||
|
facet<char> c;
|
||||||
|
|
||||||
|
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||||
|
facet<wchar_t> w;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
test01();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
// Copyright (C) 2019 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License along
|
||||||
|
// with this library; see the file COPYING3. If not see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
// { dg-options "-fno-inline" }
|
||||||
|
// { dg-do link { target c++11 } }
|
||||||
|
|
||||||
|
#undef _GLIBCXX_USE_CXX11_ABI
|
||||||
|
#define _GLIBCXX_USE_CXX11_ABI 0
|
||||||
|
#include <locale>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
|
using C = char;
|
||||||
|
|
||||||
|
void
|
||||||
|
test01()
|
||||||
|
{
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
locale loc_c = locale::classic();
|
||||||
|
|
||||||
|
basic_istringstream<C> iss;
|
||||||
|
iss.imbue(loc_c);
|
||||||
|
const time_get<C>& tget = use_facet<time_get<C>>(iss.getloc());
|
||||||
|
typedef istreambuf_iterator<C> iter;
|
||||||
|
const iter end;
|
||||||
|
|
||||||
|
tm time;
|
||||||
|
ios_base::iostate err = ios_base::badbit;
|
||||||
|
|
||||||
|
tget.get(iter(iss), end, iss, err, &time, 'Y');
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
test01();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
// Copyright (C) 2019 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License along
|
||||||
|
// with this library; see the file COPYING3. If not see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
// { dg-options "-fno-inline" }
|
||||||
|
// { dg-do link { target c++11 } }
|
||||||
|
|
||||||
|
#undef _GLIBCXX_USE_CXX11_ABI
|
||||||
|
#define _GLIBCXX_USE_CXX11_ABI 0
|
||||||
|
#include <locale>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
|
using C = wchar_t;
|
||||||
|
|
||||||
|
void
|
||||||
|
test01()
|
||||||
|
{
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
locale loc_c = locale::classic();
|
||||||
|
|
||||||
|
basic_istringstream<C> iss;
|
||||||
|
iss.imbue(loc_c);
|
||||||
|
const time_get<C>& tget = use_facet<time_get<C>>(iss.getloc());
|
||||||
|
typedef istreambuf_iterator<C> iter;
|
||||||
|
const iter end;
|
||||||
|
|
||||||
|
tm time;
|
||||||
|
ios_base::iostate err = ios_base::badbit;
|
||||||
|
|
||||||
|
tget.get(iter(iss), end, iss, err, &time, 'Y');
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
test01();
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue