llvm-project/llvm/unittests
Florian Hahn 60243ca45f [ADT] Remove illegal comparison of singular iterators from SmallSetTest
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
2018-10-31 11:00:48 +00:00
..
ADT [ADT] Remove illegal comparison of singular iterators from SmallSetTest 2018-10-31 11:00:48 +00:00
Analysis [NFC] Rename minnan and maxnan to minimum and maximum 2018-10-24 22:49:55 +00:00
AsmParser
BinaryFormat Fix comparison of char and int64 in TestWriteFixNegativeInt 2018-08-23 07:12:05 +00:00
Bitcode Pass a reference to a module to the bitcode writer. 2018-02-14 19:11:32 +00:00
CodeGen Move init code in AArch64SelectionDAGTest to SetUpTestCase (NFC) 2018-09-06 18:40:35 +00:00
DebugInfo [DebugInfo] Define base function on DWARFDie reverse iterators 2018-10-30 18:25:28 +00:00
Demangle Port libcxxabi r344607 into llvm 2018-10-17 18:50:25 +00:00
ExecutionEngine [ORC] Re-apply r345077 with fixes to remove ambiguity in lookup calls. 2018-10-23 23:01:39 +00:00
FuzzMutate [FuzzMutate] Inst deleter doesn't work with PhiNodes 2018-01-25 09:22:18 +00:00
IR [NewPM] teach -passes= to emit meaningful error messages 2018-10-17 10:36:23 +00:00
LineEditor
Linker Inline a few CMake variables into their only uses. 2018-05-14 19:23:31 +00:00
MC [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
MI [LiveIntervals] Handle moving up dead partial write 2018-02-26 14:42:13 +00:00
Object Fix unittest for buildbot with mips host (32bit big endian) from r295174 2017-02-15 16:03:22 +00:00
ObjectYAML
OptRemarks Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
Option [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
Passes [NewPM] teach -passes= to emit meaningful error messages 2018-10-17 10:36:23 +00:00
ProfileData Support for remapping profile data when symbols change, for sample-based 2018-10-10 21:31:01 +00:00
Support [VFS] Add property 'fallthrough' that controls fallback to real file system. 2018-10-26 22:14:33 +00:00
Target [WebAssembly] Add WebAssemblyException information analysis 2018-06-25 01:20:21 +00:00
Transforms [HotColdSplitting] Identify larger cold regions using domtree queries 2018-10-24 22:15:41 +00:00
XRay Fix the build when LLVM_TARGETS_TO_BUILD is empty. 2018-09-19 21:36:26 +00:00
tools [llvm-exegesis] Implements a cache of Instruction objects. 2018-10-24 11:55:06 +00:00
CMakeLists.txt Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
unittest.cfg.in Add support for unittest inputs. 2018-09-05 23:30:17 +00:00