[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