aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/22_locale
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2019-01-03 20:38:04 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2019-01-03 20:38:04 +0000
commitdd87c5c2283406aa06d262d383fbfb88d152fe22 (patch)
treeb3dcb88981072b3dced10fd24a291ad162f060ae /libstdc++-v3/testsuite/22_locale
parent19db0ebb16b4df01c536e108257bab81e0b1dabd (diff)
downloadgcc-dd87c5c2283406aa06d262d383fbfb88d152fe22.zip
gcc-dd87c5c2283406aa06d262d383fbfb88d152fe22.tar.gz
gcc-dd87c5c2283406aa06d262d383fbfb88d152fe22.tar.bz2
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
Diffstat (limited to 'libstdc++-v3/testsuite/22_locale')
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate_byname/88681.cc48
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get/char/88681.cc51
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/88681.cc51
3 files changed, 150 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/22_locale/collate_byname/88681.cc b/libstdc++-v3/testsuite/22_locale/collate_byname/88681.cc
new file mode 100644
index 0000000..863319d
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/collate_byname/88681.cc
@@ -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();
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/char/88681.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/char/88681.cc
new file mode 100644
index 0000000..5365871
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/char/88681.cc
@@ -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();
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/88681.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/88681.cc
new file mode 100644
index 0000000..cae6251
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/88681.cc
@@ -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();
+}