[all-commits] [llvm/llvm-project] 8d0dfa: [libcxx] Reenable ranges for clang-cl

Martin Storsjö via All-commits all-commits at lists.llvm.org
Sat May 1 01:16:54 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8d0dfa0d57467a2fd2c7f4ae2f1ab134db04af9e
      https://github.com/llvm/llvm-project/commit/8d0dfa0d57467a2fd2c7f4ae2f1ab134db04af9e
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-05-01 (Sat, 01 May 2021)

  Changed paths:
    M libcxx/include/__config
    M libcxx/include/__iterator/concepts.h
    M libcxx/test/libcxx/iterators/iterator.concepts/iterator.concept.input/subsumption.compile.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_bidirectional_iterator.compile.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_forward_iterator.compile.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_input_iterator.compile.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_iterator.compile.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_random_access_iterator.compile.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/locale_dependent.compile.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.concepts/integer_like.compile.pass.cpp
    M libcxx/test/std/containers/associative/map/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/associative/map/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/associative/multimap/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/associative/multimap/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/associative/multiset/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/associative/multiset/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/associative/set/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/associative/set/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/array/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/array/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/deque/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/deque/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/forwardlist/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/list/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/list/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/vector.bool/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/vector.bool/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/vector/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/sequences/vector/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/unord/unord.map/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/unord/unord.map/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/unord/unord.multimap/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/unord/unord.multimap/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/unord/unord.multiset/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/unord/unord.multiset/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/unord/unord.set/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/unord/unord.set/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/views/enable_borrowed_range.compile.pass.cpp
    M libcxx/test/std/containers/views/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/containers/views/span.iterators/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.directory_iterator/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/iterator.traits/cxx20_iterator_traits.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/iterator.traits/iter_reference_t.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/incrementable.traits/incrementable_traits.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/incrementable.traits/iter_difference_t.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/indirectly_readable_traits.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/iter_value_t.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.inc/incrementable.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.inc/subsumption.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.input/input_iterator.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.iterator/input_or_output_iterator.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.iterator/subsumption.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.readable/indirectly_readable.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sentinel_for.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sentinel_for.subsumption.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sized_sentinel_for.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.winc/subsumption.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.winc/weakly_incrementable.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.writable/indirectly_writable.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.nodiscard.verify.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_rvalue_reference_t.pass.cpp
    M libcxx/test/std/iterators/predef.iterators/insert.iterators/back.insert.iterator/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/iterators/predef.iterators/insert.iterators/front.insert.iterator/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/iterators/predef.iterators/insert.iterators/insert.iterator/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/iterators/predef.iterators/reverse.iterators/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istream.iterator/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostream.iterator/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/ranges/range.access/range.access.begin/begin.pass.cpp
    M libcxx/test/std/ranges/range.access/range.access.begin/incomplete.compile.verify.cpp
    M libcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.compile.verify copy.cpp
    M libcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.compile.verify.cpp
    M libcxx/test/std/ranges/range.access/range.access.cend/incomplete.compile.verify.cpp
    M libcxx/test/std/ranges/range.access/range.access.end/end.cpp
    M libcxx/test/std/ranges/range.access/range.access.end/incomplete.compile.verify.cpp
    M libcxx/test/std/ranges/range.range/enable_borrowed_range.compile.pass.cpp
    M libcxx/test/std/ranges/range.range/helper_aliases.compile.pass.cpp
    M libcxx/test/std/ranges/range.range/iterator_t.compile.pass.cpp
    M libcxx/test/std/ranges/range.range/range.compile.pass.cpp
    M libcxx/test/std/ranges/range.range/sentinel_t.compile.pass.cpp
    M libcxx/test/std/ranges/range.refinements/common_range.compile.pass.cpp
    M libcxx/test/std/ranges/range.refinements/input_range.compile.pass.cpp
    M libcxx/test/std/ranges/range.refinements/subsumption.compile.pass.cpp
    M libcxx/test/std/re/re.iter/re.regiter/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/re/re.iter/re.tokiter/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/re/re.results/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/strings/string.view/enable_borrowed_range.compile.pass.cpp
    M libcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/utilities/function.objects/range.cmp/equal_to.pass.cpp
    M libcxx/test/std/utilities/function.objects/range.cmp/greater.pass.cpp
    M libcxx/test/std/utilities/function.objects/range.cmp/greater_equal.pass.cpp
    M libcxx/test/std/utilities/function.objects/range.cmp/less.pass.cpp
    M libcxx/test/std/utilities/function.objects/range.cmp/less_equal.pass.cpp
    M libcxx/test/std/utilities/function.objects/range.cmp/not_equal_to.pass.cpp
    M libcxx/test/std/utilities/memory/unique.ptr/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/std/utilities/optional/iterator_concept_conformance.compile.pass.cpp
    M libcxx/test/support/nasty_macros.h

  Log Message:
  -----------
  [libcxx] Reenable ranges for clang-cl

This reverts a224bf8ec423b42eea251407e7a6cc8398a5edf4 and fixes the
underlying issue.

The underlying issue is simply that MSVC headers contains a define
like "#define __in", where __in is one macro in the MSVC Source
Code Annotation Language, defined in sal.h

Just use a different variable name than "__in"
__indirectly_readable_impl, and add "__in" to nasty_macros.h just
like the existing __out. (Also adding a couple more potentially
conflicting ones.)

Differential Revision: https://reviews.llvm.org/D101613




More information about the All-commits mailing list