<div dir="ltr">Test coverage?</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 18, 2016 at 2:14 PM, Jun Bum Lim via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">junbuml created this revision.<br>
junbuml added reviewers: MatzeB, qcolombet, mcrosier.<br>
junbuml added a subscriber: llvm-commits.<br>
Herald added a subscriber: mcrosier.<br>
<br>
Add erase() which returns an iterator pointing to the next element after the<br>
erased one. This makes it possible to erase selected elements while iterating<br>
over the SetVector :<br>
  while (I != E)<br>
    if (test(*I))<br>
      I = SetVector.erase(I);<br>
    else<br>
      ++I;<br>
<br>
<a href="http://reviews.llvm.org/D18281" rel="noreferrer" target="_blank">http://reviews.llvm.org/D18281</a><br>
<br>
Files:<br>
  include/llvm/ADT/SetVector.h<br>
<br>
Index: include/llvm/ADT/SetVector.h<br>
===================================================================<br>
--- include/llvm/ADT/SetVector.h<br>
+++ include/llvm/ADT/SetVector.h<br>
@@ -151,6 +151,21 @@<br>
     return false;<br>
   }<br>
<br>
+  /// \brief Erase a single element from the set vector.<br>
+  /// \returns an iterator pointing to the next element that followed the<br>
+  /// element erased. This is the end of the SetVector if the last element is<br>
+  /// erased.<br>
+  iterator erase(iterator I) {<br>
+    const key_type &V = *I;<br>
+    typename vector_type::iterator VI =<br>
+        std::find(vector_.begin(), vector_.end(), V);<br>
+    assert(VI != vector_.end() && "Iterator to erase is out of bounds.");<br>
+    if (!set_.erase(V)) {<br>
+      assert(false && "Corrupted SetVector instances!");<br>
+    }<br>
+    return vector_.erase(VI);<br>
+  }<br>
+<br>
   /// \brief Remove items from the set vector based on a predicate function.<br>
   ///<br>
   /// This is intended to be equivalent to the following code, if we could<br>
<br>
<br>
<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>