aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/config/abi/pre/gnu.ver3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operators/char/65630.cc34
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/65630.cc34
4 files changed, 78 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 3183a08..89041ab 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2015-03-30 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/65630
+ * config/abi/pre/gnu.ver: Export operator+ for new strings.
+ * testsuite/21_strings/basic_string/operators/char/65630.cc: New.
+ * testsuite/21_strings/basic_string/operators/wchar_t/65630.cc: New.
+
2015-03-28 Tim Shen <timshen@google.com>
PR libstdc++/65420
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index 6028acf..d2116fa 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -1675,6 +1675,9 @@ GLIBCXX_3.4.21 {
_ZNSt7__cxx1112basic_string*;
_ZNKSt7__cxx1112basic_string*;
+ # operator+ for ABI-tagged std::basic_string
+ _ZStplI[cw]St11char_traitsI[cw]ESaI[cw]EENSt7__cxx1112basic_stringIT_T0_T1_EE*;
+
# ABI-tagged stringstreams
_ZNSt7__cxx1115basic_stringbuf*;
_ZNSt7__cxx1118basic_stringstream*;
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operators/char/65630.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operators/char/65630.cc
new file mode 100644
index 0000000..04be512
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operators/char/65630.cc
@@ -0,0 +1,34 @@
+// Copyright (C) 2015 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 "-std=gnu++11 -fno-implicit-templates -O0" }
+// { dg-do link }
+
+#include <string>
+
+void test01()
+{
+ std::string t;
+ t = t + t;
+ t = "" + t;
+ t = 't' + t;
+}
+
+int main()
+{
+ test01();
+}
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/65630.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/65630.cc
new file mode 100644
index 0000000..a07e599
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/65630.cc
@@ -0,0 +1,34 @@
+// Copyright (C) 2015 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 "-std=gnu++11 -fno-implicit-templates -O0" }
+// { dg-do link }
+
+#include <string>
+
+void test01()
+{
+ std::wstring t;
+ t = t + t;
+ t = L"" + t;
+ t = L't' + t;
+}
+
+int main()
+{
+ test01();
+}