From: Jonathan Wakely Date: Mon, 30 Mar 2015 17:52:37 +0000 (+0100) Subject: re PR libstdc++/65630 (operator+ for new std::string not exported) X-Git-Tag: upstream/12.2.0~55909 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=744e26e71e5df840ff1fa5e351cadba31e7c29a6;p=platform%2Fupstream%2Fgcc.git re PR libstdc++/65630 (operator+ for new std::string not exported) 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. From-SVN: r221775 --- 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 + + 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 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 +// . + +// { dg-options "-std=gnu++11 -fno-implicit-templates -O0" } +// { dg-do link } + +#include + +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 +// . + +// { dg-options "-std=gnu++11 -fno-implicit-templates -O0" } +// { dg-do link } + +#include + +void test01() +{ + std::wstring t; + t = t + t; + t = L"" + t; + t = L't' + t; +} + +int main() +{ + test01(); +}