[Bug libstdc++/86272] [6/7/8/9 Regression] __gnu_debug::string uses undefined __glibcxx_check_insert_range2

2018-07-06 Thread fdumont at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272

François Dumont  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from François Dumont  ---
Fixed on trunk and all impacted branches.

[Bug libstdc++/86272] [6/7/8/9 Regression] __gnu_debug::string uses undefined __glibcxx_check_insert_range2

2018-07-05 Thread fdumont at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272

--- Comment #8 from François Dumont  ---
Author: fdumont
Date: Thu Jul  5 20:51:27 2018
New Revision: 262455

URL: https://gcc.gnu.org/viewcvs?rev=262455=gcc=rev
Log:
2018-07-05  François Dumont  

Backport from mainline
2018-07-04  François Dumont  

PR libstdc++/86272
* include/debug/string
(__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite,
_Ite)):
Use __glibcxx_check_insert_range.

Modified:
branches/gcc-6-branch/libstdc++-v3/ChangeLog
branches/gcc-6-branch/libstdc++-v3/include/debug/string

[Bug libstdc++/86272] [6/7/8/9 Regression] __gnu_debug::string uses undefined __glibcxx_check_insert_range2

2018-07-05 Thread fdumont at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272

--- Comment #7 from François Dumont  ---
Author: fdumont
Date: Thu Jul  5 20:48:02 2018
New Revision: 262454

URL: https://gcc.gnu.org/viewcvs?rev=262454=gcc=rev
Log:
2018-07-05  François Dumont  

Backport from mainline
2018-07-04  François Dumont  

PR libstdc++/86272
* include/debug/string
(__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite,
_Ite)):
Use __glibcxx_check_insert_range.

Modified:
branches/gcc-7-branch/libstdc++-v3/ChangeLog
branches/gcc-7-branch/libstdc++-v3/include/debug/string

[Bug libstdc++/86272] [6/7/8/9 Regression] __gnu_debug::string uses undefined __glibcxx_check_insert_range2

2018-07-04 Thread fdumont at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272

--- Comment #6 from François Dumont  ---
Author: fdumont
Date: Thu Jul  5 05:14:36 2018
New Revision: 262430

URL: https://gcc.gnu.org/viewcvs?rev=262430=gcc=rev
Log:
2018-07-05  François Dumont  

Backport from mainline
2018-07-04  François Dumont  

PR libstdc++/86272
* include/debug/string
(__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite,
_Ite)):
Use __glibcxx_check_insert_range.

Modified:
branches/gcc-8-branch/libstdc++-v3/ChangeLog
branches/gcc-8-branch/libstdc++-v3/include/debug/string

[Bug libstdc++/86272] [6/7/8/9 Regression] __gnu_debug::string uses undefined __glibcxx_check_insert_range2

2018-07-04 Thread fdumont at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272

--- Comment #5 from François Dumont  ---
Author: fdumont
Date: Wed Jul  4 18:13:11 2018
New Revision: 262417

URL: https://gcc.gnu.org/viewcvs?rev=262417=gcc=rev
Log:
2018-07-04  François Dumont  

PR libstdc++/86272
* include/debug/string
(__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite,
_Ite)):
Use __glibcxx_check_insert_range.
* 21_strings/basic_string/cons/char/1.cc: Adapt test to use
__gnu_debug::string when _GLIBCXX_DEBUG.
* 21_strings/basic_string/init-list.cc: Likewise.
* 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
* 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
* 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
* 21_strings/basic_string/types/1.cc: Likewise.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/debug/string
trunk/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/1.cc
trunk/libstdc++-v3/testsuite/21_strings/basic_string/init-list.cc
   
trunk/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc
   
trunk/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/2.cc
   
trunk/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc
trunk/libstdc++-v3/testsuite/21_strings/basic_string/types/1.cc

[Bug libstdc++/86272] [6/7/8/9 Regression] __gnu_debug::string uses undefined __glibcxx_check_insert_range2

2018-06-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272

--- Comment #4 from Jonathan Wakely  ---
Oh, also I noticed that __gnu_debug::string probably doesn't work with
_GLIBCXX_USE_CXX11_ABI=0 because it provides the C++11 API, e.g. insert takes
const_iterator not iterator, and returns non-void. The _Base string doesn't
meet that interface when using _GLIBCXX_USE_CXX11_API=0.

I don't consider that a bug - the old std::string has a number of
non-conformance issues, and I don't plan to address them. If you want a proper
C++11 std::string you need to enable the new ABI, because that's why it exists.

[Bug libstdc++/86272] [6/7/8/9 Regression] __gnu_debug::string uses undefined __glibcxx_check_insert_range2

2018-06-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272

--- Comment #3 from Jonathan Wakely  ---
The right fix might be to just remove the line that causes the error, but I
didn't check to see if we've replaced that macro with something different that
we should be using instead.

[Bug libstdc++/86272] [6/7/8/9 Regression] __gnu_debug::string uses undefined __glibcxx_check_insert_range2

2018-06-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272

--- Comment #2 from Jonathan Wakely  ---
Debug Mode does not use __gnu_debug::string it just disables the explicit
instantation declarations in , so that assertions in std::basic_string
are turned on.

To test __gnu_debug::string we really need a completely separate set of tests
that include  and use it explicitly as __gnu_debug::string. Given
that it's probably never used by anybody (or they'd have noticed this bug)
doing that is not a priority.

[Bug libstdc++/86272] [6/7/8/9 Regression] __gnu_debug::string uses undefined __glibcxx_check_insert_range2

2018-06-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |6.5

[Bug libstdc++/86272] [6/7/8/9 Regression] __gnu_debug::string uses undefined __glibcxx_check_insert_range2

2018-06-21 Thread fdumont at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272

François Dumont  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |fdumont at gcc dot 
gnu.org

--- Comment #1 from François Dumont  ---
It should be rather easy to fix but I am going to take time to find out how
__gnu_debug::string could be tested when using make check-debug.

[Bug libstdc++/86272] [6/7/8/9 Regression] __gnu_debug::string uses undefined __glibcxx_check_insert_range2

2018-06-21 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-06-21
  Known to work||5.5.0
Summary|__gnu_debug::string uses|[6/7/8/9 Regression]
   |undefined   |__gnu_debug::string uses
   |__glibcxx_check_insert_rang |undefined
   |e2  |__glibcxx_check_insert_rang
   ||e2
 Ever confirmed|0   |1
  Known to fail||6.4.0, 7.3.0, 8.1.0, 9.0