[PATCH] D15862: A possible direction for fixing https://llvm.org/bugs/show_bug.cgi?id=25973.

Marshall Clow via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 12 19:02:15 PST 2016


mclow.lists updated this revision to Diff 44703.
mclow.lists added a comment.

Last change, I hope. I added some more tests to make sure that string was correctly identifying throwing vs. non-throwing iterators, and I discovered that I had an `#ifdef` backwards. Fixing that revealed a bug in `__libcpp_string_gets_noexcept_iterator_impl`, in that it would cause a compile error if you give it an output iterator.

Addressed Richard's comment about things that derive from `std::input_iterator_tag`, (since Boost does this), even though section 24.4.3/1 seems to say that you must use one of the predefined iterator category tags.


http://reviews.llvm.org/D15862

Files:
  include/algorithm
  include/iterator
  include/string
  test/libcxx/iterators/trivial_iterators.pass.cpp
  test/libcxx/strings/iterators.noexcept.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_append/initializer_list.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_append/size_char.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_assign/initializer_list.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_assign/pointer.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_assign/pointer_size.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_assign/rv_string.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_assign/size_char.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_initializer_list.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer_size.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_size_char.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
  test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
  test/support/test_iterators.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15862.44703.patch
Type: text/x-patch
Size: 59627 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160113/a58b0a61/attachment-0001.bin>


More information about the cfe-commits mailing list