[PATCH] D91488: Consider reference, pointer, and pointer-to-membber TemplateArguments to be different if they have different types.

David Zarzycki via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 14 02:49:14 PST 2020


davezarzycki added a comment.

This change is causing second stage build failures on Fedora 33 (x86-64). I'll probably revert this soon, but in the mean time, here is a snippet of the build output:

  FAILED: lib/ExecutionEngine/JITLink/CMakeFiles/LLVMJITLink.dir/JITLinkGeneric.cpp.o
  /p/tllvm/bin/clang++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Ilib/ExecutionEngine/JITLink -I/home/dave/ro_s/lp/llvm/lib/ExecutionEngine/JITLink -Iinclude -I/home/dave/ro_s/lp/llvm/include -Werror=switch -Wno-deprecated-copy -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -fdiagnostics-color -ffunction-sections -fdata-sections -O2   -march=skylake -fno-vectorize -fno-slp-vectorize -fno-tree-slp-vectorize -fno-exceptions -fno-rtti -UNDEBUG -std=c++14 -MD -MT lib/ExecutionEngine/JITLink/CMakeFiles/LLVMJITLink.dir/JITLinkGeneric.cpp.o -MF lib/ExecutionEngine/JITLink/CMakeFiles/LLVMJITLink.dir/JITLinkGeneric.cpp.o.d -o lib/ExecutionEngine/JITLink/CMakeFiles/LLVMJITLink.dir/JITLinkGeneric.cpp.o -c /home/dave/ro_s/lp/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp
  In file included from /home/dave/ro_s/lp/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:13:
  /home/dave/ro_s/lp/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:150:18: error: invalid operands to binary expression ('llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>' and 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>')
      for (auto *B : G.blocks()) {
                   ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/APInt.h:2037:13: note: candidate function not viable: no known conversion from 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>' to 'uint64_t' (aka 'unsigned long') for 1st argument
  inline bool operator!=(uint64_t V1, const APInt &V2) { return V2 != V1; }
              ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/APSInt.h:340:13: note: candidate function not viable: no known conversion from 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>' to 'int64_t' (aka 'long') for 1st argument
  inline bool operator!=(int64_t V1, const APSInt &V2) { return V2 != V1; }
              ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/StringRef.h:904:15: note: candidate function not viable: no known conversion from 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>' to 'llvm::StringRef' for 1st argument
    inline bool operator!=(StringRef LHS, StringRef RHS) { return !(LHS == RHS); }
                ^
  /p/tllvm/bin/../include/c++/v1/system_error:419:1: note: candidate function not viable: no known conversion from 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>' to 'const std::error_code' for 1st argument
  operator!=(const error_code& __x, const error_code& __y) _NOEXCEPT
  ^
  /p/tllvm/bin/../include/c++/v1/system_error:424:1: note: candidate function not viable: no known conversion from 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>' to 'const std::error_code' for 1st argument
  operator!=(const error_code& __x, const error_condition& __y) _NOEXCEPT
  ^
  /p/tllvm/bin/../include/c++/v1/system_error:429:1: note: candidate function not viable: no known conversion from 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>' to 'const std::error_condition' for 1st argument
  operator!=(const error_condition& __x, const error_code& __y) _NOEXCEPT
  ^
  /p/tllvm/bin/../include/c++/v1/system_error:434:1: note: candidate function not viable: no known conversion from 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>' to 'const std::error_condition' for 1st argument
  operator!=(const error_condition& __x, const error_condition& __y) _NOEXCEPT
  ^
  /home/dave/ro_s/lp/llvm/include/llvm/Support/Alignment.h:262:13: note: candidate function not viable: no known conversion from 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>' to 'llvm::Align' for 1st argument
  inline bool operator!=(Align Lhs, uint64_t Rhs) {
              ^
  /home/dave/ro_s/lp/llvm/include/llvm/Support/Alignment.h:287:13: note: candidate function not viable: no known conversion from 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>' to 'llvm::MaybeAlign' for 1st argument
  inline bool operator!=(MaybeAlign Lhs, uint64_t Rhs) {
              ^
  /home/dave/ro_s/lp/llvm/include/llvm/Support/Alignment.h:295:13: note: candidate function not viable: no known conversion from 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>' to 'llvm::Align' for 1st argument
  inline bool operator!=(Align Lhs, Align Rhs) {
              ^
  /p/tllvm/bin/../include/c++/v1/utility:584:1: note: candidate template ignored: could not match 'pair' against 'nested_collection_iterator'
  operator!=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)
  ^
  /p/tllvm/bin/../include/c++/v1/iterator:818:1: note: candidate template ignored: could not match 'reverse_iterator' against 'nested_collection_iterator'
  operator!=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
  ^
  /p/tllvm/bin/../include/c++/v1/iterator:1040:1: note: candidate template ignored: could not match 'istream_iterator' against 'nested_collection_iterator'
  operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Distance>& __x,
  ^
  /p/tllvm/bin/../include/c++/v1/iterator:1151:6: note: candidate template ignored: could not match 'istreambuf_iterator' against 'nested_collection_iterator'
  bool operator!=(const istreambuf_iterator<_CharT,_Traits>& __a,
       ^
  /p/tllvm/bin/../include/c++/v1/iterator:1274:1: note: candidate template ignored: could not match 'move_iterator' against 'nested_collection_iterator'
  operator!=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)
  ^
  /p/tllvm/bin/../include/c++/v1/iterator:1650:1: note: candidate template ignored: could not match '__wrap_iter' against 'nested_collection_iterator'
  operator!=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT
  ^
  /p/tllvm/bin/../include/c++/v1/iterator:1682:1: note: candidate template ignored: could not match '__wrap_iter' against 'nested_collection_iterator'
  operator!=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) _NOEXCEPT
  ^
  /p/tllvm/bin/../include/c++/v1/tuple:1185:1: note: candidate template ignored: could not match 'tuple' against 'nested_collection_iterator'
  operator!=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)
  ^
  /p/tllvm/bin/../include/c++/v1/memory:1713:6: note: candidate template ignored: could not match 'allocator' against 'nested_collection_iterator'
  bool operator!=(const allocator<_Tp>&, const allocator<_Up>&) _NOEXCEPT {return false;}
       ^
  /p/tllvm/bin/../include/c++/v1/memory:2642:1: note: candidate template ignored: could not match 'unique_ptr' against 'nested_collection_iterator'
  operator!=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return !(__x == __y);}
  ^
  /p/tllvm/bin/../include/c++/v1/memory:2689:1: note: candidate template ignored: could not match 'unique_ptr' against 'nested_collection_iterator'
  operator!=(const unique_ptr<_T1, _D1>& __x, nullptr_t) _NOEXCEPT
  ^
  /p/tllvm/bin/../include/c++/v1/memory:2697:1: note: candidate template ignored: could not match 'unique_ptr' against 'nested_collection_iterator'
  operator!=(nullptr_t, const unique_ptr<_T1, _D1>& __x) _NOEXCEPT
  ^
  /p/tllvm/bin/../include/c++/v1/memory:4082:1: note: candidate template ignored: could not match 'shared_ptr' against 'nested_collection_iterator'
  operator!=(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT
  ^
  /p/tllvm/bin/../include/c++/v1/memory:4144:1: note: candidate template ignored: could not match 'shared_ptr' against 'nested_collection_iterator'
  operator!=(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT
  ^
  /p/tllvm/bin/../include/c++/v1/memory:4152:1: note: candidate template ignored: could not match 'shared_ptr' against 'nested_collection_iterator'
  operator!=(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT
  ^
  /p/tllvm/bin/../include/c++/v1/functional:2599:1: note: candidate template ignored: could not match 'function' against 'nested_collection_iterator'
  operator!=(const function<_Rp(_ArgTypes...)>& __f, nullptr_t) _NOEXCEPT {return (bool)__f;}
  ^
  /p/tllvm/bin/../include/c++/v1/functional:2604:1: note: candidate template ignored: could not match 'function' against 'nested_collection_iterator'
  operator!=(nullptr_t, const function<_Rp(_ArgTypes...)>& __f) _NOEXCEPT {return (bool)__f;}
  ^
  /p/tllvm/bin/../include/c++/v1/string_view:664:6: note: candidate template ignored: could not match 'basic_string_view' against 'nested_collection_iterator'
  bool operator!=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT
       ^
  /p/tllvm/bin/../include/c++/v1/string_view:673:6: note: candidate template ignored: could not match 'basic_string_view' against 'nested_collection_iterator'
  bool operator!=(basic_string_view<_CharT, _Traits> __lhs,
       ^
  /p/tllvm/bin/../include/c++/v1/string_view:683:6: note: candidate template ignored: could not match 'basic_string_view' against 'nested_collection_iterator'
  bool operator!=(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs,
       ^
  /p/tllvm/bin/../include/c++/v1/string:571:6: note: candidate template ignored: could not match 'fpos' against 'nested_collection_iterator'
  bool operator!=(const fpos<_StateT>& __x, const fpos<_StateT>& __y)
       ^
  /p/tllvm/bin/../include/c++/v1/string:4072:1: note: candidate template ignored: could not match 'basic_string' against 'nested_collection_iterator'
  operator!=(const basic_string<_CharT,_Traits,_Allocator>& __lhs,
  ^
  /p/tllvm/bin/../include/c++/v1/string:4081:1: note: candidate template ignored: could not match 'const _CharT *' against 'llvm::jitlink::LinkGraph::nested_collection_iterator<llvm::pointee_iterator<std::__wrap_iter<const std::unique_ptr<llvm::jitlink::Section> *>, llvm::jitlink::Section>, llvm::detail::DenseSetImpl<llvm::jitlink::Block *, llvm::DenseMap<llvm::jitlink::Block *, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::jitlink::Block *>, llvm::detail::DenseSetPair<llvm::jitlink::Block *>>, llvm::DenseMapInfo<llvm::jitlink::Block *>>::Iterator, llvm::jitlink::Block *, &llvm::jitlink::LinkGraph::getSectionBlocks>'
  operator!=(const _CharT* __lhs,
  ^
  /p/tllvm/bin/../include/c++/v1/string:4090:1: note: candidate template ignored: could not match 'basic_string' against 'nested_collection_iterator'
  operator!=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
  ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/Optional.h:315:16: note: candidate template ignored: could not match 'Optional' against 'nested_collection_iterator'
  constexpr bool operator!=(const Optional<T> &X, const Optional<U> &Y) {
                 ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/Optional.h:352:16: note: candidate template ignored: could not match 'Optional' against 'nested_collection_iterator'
  constexpr bool operator!=(const Optional<T> &X, NoneType) {
                 ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/Optional.h:357:16: note: candidate template ignored: could not match 'Optional' against 'nested_collection_iterator'
  constexpr bool operator!=(NoneType, const Optional<T> &X) {
                 ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/Optional.h:408:16: note: candidate template ignored: could not match 'Optional' against 'nested_collection_iterator'
  constexpr bool operator!=(const Optional<T> &X, const T &Y) {
                 ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/Optional.h:413:16: note: candidate template ignored: could not match 'Optional' against 'nested_collection_iterator'
  constexpr bool operator!=(const T &X, const Optional<T> &Y) {
                 ^
  /p/tllvm/bin/../include/c++/v1/array:381:1: note: candidate template ignored: could not match 'array' against 'nested_collection_iterator'
  operator!=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)
  ^
  /p/tllvm/bin/../include/c++/v1/vector:3346:1: note: candidate template ignored: could not match 'vector' against 'nested_collection_iterator'
  operator!=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)
  ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/ArrayRef.h:541:15: note: candidate template ignored: could not match 'ArrayRef' against 'nested_collection_iterator'
    inline bool operator!=(ArrayRef<T> LHS, ArrayRef<T> RHS) {
                ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/ArrayRef.h:546:15: note: candidate template ignored: could not match 'SmallVectorImpl' against 'nested_collection_iterator'
    inline bool operator!=(SmallVectorImpl<T> &LHS, ArrayRef<T> RHS) {
                ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/DenseMap.h:704:6: note: candidate template ignored: could not match 'DenseMapBase' against 'nested_collection_iterator'
  bool operator!=(
       ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/DenseSet.h:251:6: note: candidate template ignored: could not match 'DenseSetImpl' against 'nested_collection_iterator'
  bool operator!=(const DenseSetImpl<ValueT, MapTy, ValueInfoT> &LHS,
       ^
  /p/tllvm/bin/../include/c++/v1/map:1614:1: note: candidate template ignored: could not match 'map' against 'nested_collection_iterator'
  operator!=(const map<_Key, _Tp, _Compare, _Allocator>& __x,
  ^
  /p/tllvm/bin/../include/c++/v1/map:2199:1: note: candidate template ignored: could not match 'multimap' against 'nested_collection_iterator'
  operator!=(const multimap<_Key, _Tp, _Compare, _Allocator>& __x,
  ^
  /p/tllvm/bin/../include/c++/v1/set:918:1: note: candidate template ignored: could not match 'set' against 'nested_collection_iterator'
  operator!=(const set<_Key, _Compare, _Allocator>& __x,
  ^
  /p/tllvm/bin/../include/c++/v1/set:1445:1: note: candidate template ignored: could not match 'multiset' against 'nested_collection_iterator'
  operator!=(const multiset<_Key, _Compare, _Allocator>& __x,
  ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/PointerUnion.h:241:6: note: candidate template ignored: could not match 'PointerUnion' against 'nested_collection_iterator'
  bool operator!=(PointerUnion<PTs...> lhs, PointerUnion<PTs...> rhs) {
       ^
  /home/dave/ro_s/lp/llvm/include/llvm/ADT/iterator.h:145:8: note: candidate function not viable: no known conversion from 'nested_collection_iterator<...>' to 'const nested_collection_iterator<...>' for 1st argument
    bool operator!=(const DerivedT &RHS) const {
         ^


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91488/new/

https://reviews.llvm.org/D91488



More information about the cfe-commits mailing list