diff --git a/llvm/include/llvm/ADT/iterator_range.h b/llvm/include/llvm/ADT/iterator_range.h --- a/llvm/include/llvm/ADT/iterator_range.h +++ b/llvm/include/llvm/ADT/iterator_range.h @@ -43,12 +43,19 @@ IteratorT begin_iterator, end_iterator; public: +#if __GNUC__ == 7 + // Be careful no to break gcc-7 on the mlir target. + // See https://github.com/llvm/llvm-project/issues/63843 + template +#else template , IteratorT>::value> * = nullptr> +#endif iterator_range(Container &&c) : begin_iterator(adl_begin(std::forward(c))), - end_iterator(adl_end(std::forward(c))) {} + end_iterator(adl_end(std::forward(c))) { + } iterator_range(IteratorT begin_iterator, IteratorT end_iterator) : begin_iterator(std::move(begin_iterator)), end_iterator(std::move(end_iterator)) {}