llvm-project/llvm
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
..
benchmarks
bindings [TI removal] Remove TerminatorInst references from bindings. 2018-10-18 07:40:03 +00:00
cmake [MinGW] Enable large file for mingw-w64 2018-10-24 12:22:12 +00:00
docs [FPEnv] [FPEnv] Add constrained intrinsics for MAXNUM and MINNUM 2018-10-30 21:01:29 +00:00
examples [BuildingAJIT] Update the Ch1 KaleidoscopeJIT class to expose errors to clients. 2018-10-18 00:51:38 +00:00
include [LV] Support vectorization of interleave-groups that require an epilog under 2018-10-31 09:57:56 +00:00
lib [AMDGPU] support image load/store a16 2018-10-31 10:34:48 +00:00
projects
resources
runtimes
test [AMDGPU] support image load/store a16 2018-10-31 10:34:48 +00:00
tools [llvm-objdump] Mark syms/t flags as NotHidden. NFC. 2018-10-31 09:35:25 +00:00
unittests [ADT] Remove illegal comparison of singular iterators from SmallSetTest 2018-10-31 11:00:48 +00:00
utils Use the container form llvm::sort(C) 2018-10-31 00:31:06 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore [git/svn] Ignore Visual Studio's CMakeSettings.json. 2018-10-29 14:51:02 +00:00
CMakeLists.txt [CMake] Fix a missing LLVM_ENABLE_IDE from r344555 2018-10-15 22:36:59 +00:00
CODE_OWNERS.TXT
CREDITS.TXT [NFC] Add periods to CREDITS.txt (testing git-llvm) 2018-10-26 06:57:02 +00:00
LICENSE.TXT
LLVMBuild.txt
README.txt Test commit. 2018-09-22 01:01:03 +00:00
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.