From b213c608e69f53857a98ec7766a50a05cdf7f42a Mon Sep 17 00:00:00 2001 From: Christopher Di Bella Date: Wed, 3 Apr 2024 18:12:25 +0000 Subject: [PATCH 1/2] fully qualifies use of `detail` namespace Some TUs apparently end up with an ambiguity between `::llvm::detail` and `support::detail`, so we close that gap at the source. --- llvm/include/llvm/ADT/iterator_range.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm/include/llvm/ADT/iterator_range.h b/llvm/include/llvm/ADT/iterator_range.h index 7d288ea4506ba..021256c545b0a 100644 --- a/llvm/include/llvm/ADT/iterator_range.h +++ b/llvm/include/llvm/ADT/iterator_range.h @@ -50,7 +50,7 @@ class iterator_range { #else template , IteratorT>::value> * = nullptr> + llvm::detail::IterOfRange, IteratorT>::value> * = nullptr> #endif iterator_range(Container &&c) : begin_iterator(adl_begin(c)), end_iterator(adl_end(c)) { @@ -65,7 +65,7 @@ class iterator_range { }; template -iterator_range(Container &&) -> iterator_range>; +iterator_range(Container &&) -> iterator_range>; /// Convenience function for iterating over sub-ranges. /// From 0b4230d682599272addba2c1961b10ad6fab2f81 Mon Sep 17 00:00:00 2001 From: Christopher Di Bella Date: Wed, 3 Apr 2024 18:18:51 +0000 Subject: [PATCH 2/2] fixes formatting --- llvm/include/llvm/ADT/iterator_range.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/llvm/include/llvm/ADT/iterator_range.h b/llvm/include/llvm/ADT/iterator_range.h index 021256c545b0a..6c66def0fcd77 100644 --- a/llvm/include/llvm/ADT/iterator_range.h +++ b/llvm/include/llvm/ADT/iterator_range.h @@ -48,9 +48,10 @@ class iterator_range { // See https://github.com/llvm/llvm-project/issues/63843 template #else - template , IteratorT>::value> * = nullptr> + template < + typename Container, + std::enable_if_t, IteratorT>::value> * = nullptr> #endif iterator_range(Container &&c) : begin_iterator(adl_begin(c)), end_iterator(adl_end(c)) { @@ -65,7 +66,8 @@ class iterator_range { }; template -iterator_range(Container &&) -> iterator_range>; +iterator_range(Container &&) + -> iterator_range>; /// Convenience function for iterating over sub-ranges. ///