[libcxx-commits] [libcxx] [libc++] Verify forward_list self-merging is a no-op (PR #129985)

Peng Liu via libcxx-commits libcxx-commits at lists.llvm.org
Thu Mar 6 05:31:38 PST 2025


================
@@ -137,7 +137,7 @@
 "`LWG3593 <https://wg21.link/LWG3593>`__","Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept``","2021-10 (Virtual)","","",""
 "`LWG3595 <https://wg21.link/LWG3595>`__","Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14",""
 "","","","","",""
-"`LWG3088 <https://wg21.link/LWG3088>`__","``forward_list::merge`` behaviour unclear when passed ``*this``","2022-02 (Virtual)","","",""
+"`LWG3088 <https://wg21.link/LWG3088>`__","``forward_list::merge`` behaviour unclear when passed ``*this``","2022-02 (Virtual)","|Complete|","21",""
----------------
winner245 wrote:

Thank you for the feedback. I was hesitant about which status to assign here because it raises a question: what do we really consider as "completed"? Is it implementation-only completed or implementation-with-test completed? 

- If it is the former (implementation-only), then the behavior dates back to [libcxx initial import](https://github.com/llvm/llvm-project/blob/3e519524c118651123eecf60c2bbc5d65ad9bac3/libcxx/include/forward_list#L1274-L1284) about 15 years ago, and commit https://github.com/llvm/llvm-project/commit/f7345de64fd2d6c5528e940a8aed1a9b95b46183 is a bug fix using `std::addressof` to guard against `operator&` hijacking . 
- If it refers to both implementation and tests, then it's the current version that qualifies as "completed."

WDYT?

https://github.com/llvm/llvm-project/pull/129985


More information about the libcxx-commits mailing list