forked from OSchip/llvm-project
60243ca45f
This removes the assertion that a copy of a moved-from SmallSetIterator equals the original, which is illegal due to SmallSetIterator including an instance of a standard `std::set` iterator. C++ [iterator.requirements.general] states that comparing singular iterators has undefined result: > Iterators can also have singular values that are not associated with > any sequence. [...] Results of most expressions are undefined for > singular values; the only exceptions are destroying an iterator that > holds a singular value, the assignment of a non-singular value to an > iterator that holds a singular value, and, for iterators that satisfy > the Cpp17DefaultConstructible requirements, using a value-initialized > iterator as the source of a copy or move operation. This assertion triggers the following error in the GNU C++ Library in debug mode under EXPENSIVE_CHECKS: /usr/include/c++/8.2.1/debug/safe_iterator.h:518: Error: attempt to compare a singular iterator to a singular iterator. Objects involved in the operation: iterator "lhs" @ 0x0x7fff86420670 { state = singular; } iterator "rhs" @ 0x0x7fff86420640 { state = singular; } Patch by Eugene Sharygin. Reviewers: fhahn, dblaikie, chandlerc Reviewed By: fhahn, dblaikie Differential Revision: https://reviews.llvm.org/D53793 llvm-svn: 345712 |
||
---|---|---|
.. | ||
ADT | ||
Analysis | ||
AsmParser | ||
BinaryFormat | ||
Bitcode | ||
CodeGen | ||
DebugInfo | ||
Demangle | ||
ExecutionEngine | ||
FuzzMutate | ||
IR | ||
LineEditor | ||
Linker | ||
MC | ||
MI | ||
Object | ||
ObjectYAML | ||
OptRemarks | ||
Option | ||
Passes | ||
ProfileData | ||
Support | ||
Target | ||
Transforms | ||
XRay | ||
tools | ||
CMakeLists.txt | ||
unittest.cfg.in |