[libcxx-commits] [libcxx] 74fb868 - [libc++] Add XFAIL for Clang ToT with modules

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Thu Jul 8 11:40:31 PDT 2021


Author: Louis Dionne
Date: 2021-07-08T14:40:18-04:00
New Revision: 74fb868942c8c126a69a09c0503041b7573f68e0

URL: https://github.com/llvm/llvm-project/commit/74fb868942c8c126a69a09c0503041b7573f68e0
DIFF: https://github.com/llvm/llvm-project/commit/74fb868942c8c126a69a09c0503041b7573f68e0.diff

LOG: [libc++] Add XFAIL for Clang ToT with modules

This is what I should have done instead of 6afd6e96ce20.

Added: 
    

Modified: 
    libcxx/include/__iterator/advance.h
    libcxx/include/__iterator/next.h
    libcxx/include/__iterator/prev.h
    libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/special_function.compile.pass.cpp
    libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/special_function.compile.pass.cpp
    libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/special_function.compile.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/include/__iterator/advance.h b/libcxx/include/__iterator/advance.h
index a903e45cec51d..4971bebfed864 100644
--- a/libcxx/include/__iterator/advance.h
+++ b/libcxx/include/__iterator/advance.h
@@ -178,9 +178,6 @@ struct __advance_fn final : __function_like {
 
     _LIBCPP_UNREACHABLE();
   }
-
-  // TODO: Remove this workaround for broken Clang modules.
-  using __function_like::operator&;
 };
 
 inline constexpr auto advance = __advance_fn(__function_like::__tag());

diff  --git a/libcxx/include/__iterator/next.h b/libcxx/include/__iterator/next.h
index 5db5b2fd5875e..af719e3cab113 100644
--- a/libcxx/include/__iterator/next.h
+++ b/libcxx/include/__iterator/next.h
@@ -68,9 +68,6 @@ struct __next_fn final : private __function_like {
     ranges::advance(__x, __n, __bound);
     return __x;
   }
-
-  // TODO: Remove this workaround for broken Clang modules.
-  using __function_like::operator&;
 };
 
 inline constexpr auto next = __next_fn(__function_like::__tag());

diff  --git a/libcxx/include/__iterator/prev.h b/libcxx/include/__iterator/prev.h
index 1fc2b9c73f1a2..f1ba2be5ff950 100644
--- a/libcxx/include/__iterator/prev.h
+++ b/libcxx/include/__iterator/prev.h
@@ -61,9 +61,6 @@ struct __prev_fn final : private __function_like {
     ranges::advance(__x, -__n, __bound);
     return __x;
   }
-
-  // TODO: Remove this workaround for broken Clang modules.
-  using __function_like::operator&;
 };
 
 inline constexpr auto prev = __prev_fn(__function_like::__tag());

diff  --git a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/special_function.compile.pass.cpp b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/special_function.compile.pass.cpp
index d1e5bb06c0379..281486c33bdb3 100644
--- a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/special_function.compile.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/special_function.compile.pass.cpp
@@ -9,8 +9,12 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
 // UNSUPPORTED: gcc-10
+
+// Clang has a bug when modules are enabled that causes `__function_like::operator&`
+// not to be picked up by the derived class.
 // XFAIL: clang-11 && modules-build
 // XFAIL: clang-12 && modules-build
+// XFAIL: clang-13 && modules-build
 
 // ranges::advance
 

diff  --git a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/special_function.compile.pass.cpp b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/special_function.compile.pass.cpp
index 91132c9918afd..4de702f4c62fc 100644
--- a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/special_function.compile.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/special_function.compile.pass.cpp
@@ -9,8 +9,12 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
 // UNSUPPORTED: gcc-10
+
+// Clang has a bug when modules are enabled that causes `__function_like::operator&`
+// not to be picked up by the derived class.
 // XFAIL: clang-11 && modules-build
 // XFAIL: clang-12 && modules-build
+// XFAIL: clang-13 && modules-build
 
 // ranges::next
 

diff  --git a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/special_function.compile.pass.cpp b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/special_function.compile.pass.cpp
index 68ed26692f314..4e949a6d49db5 100644
--- a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/special_function.compile.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/special_function.compile.pass.cpp
@@ -9,8 +9,12 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17
 // UNSUPPORTED: libcpp-no-concepts
 // UNSUPPORTED: gcc-10
+
+// Clang has a bug when modules are enabled that causes `__function_like::operator&`
+// not to be picked up by the derived class.
 // XFAIL: clang-11 && modules-build
 // XFAIL: clang-12 && modules-build
+// XFAIL: clang-13 && modules-build
 
 // ranges::prev
 


        


More information about the libcxx-commits mailing list