[Bug 192303] New: C++11 std::list<>::remove_if() visits elements multiple times

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Aug 1 10:00:11 UTC 2014


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192303

            Bug ID: 192303
           Summary: C++11 std::list<>::remove_if() visits elements
                    multiple times
           Product: Base System
           Version: 10.0-STABLE
          Hardware: amd64
                OS: Any
            Status: Needs Triage
          Severity: Affects Many People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: kamikaze at bsdforen.de

Created attachment 145205
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=145205&action=edit
Bug demo

When calling std::list<>::remove_if() with a lambda for the condition (I did
not test without lambdas), it visits the list entry *following* a delete twice.

Attached is a demo of the bug. The number of visits should be 10:

# ./main
Initial list: 0 1 2 3 4 5 6 7 8 9
Remove odd numbers ...
| val | remove
|-----|--------
|   0 | 
|   1 | X
|   2 | 
|   2 | 
|   3 | X
|   4 | 
|   4 | 
|   5 | X
|   6 | 
|   6 | 
|   7 | X
|   8 | 
|   8 | 
|   9 | X
Updated list: 0 2 4 6 8
Visits: 14

Build the test program with:
# make CXX="c++ -std=c++11" main

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list