This is an archive of the discontinued LLVM Phabricator instance.

Eliminate _LIBCPP_EQUAL_DELETE in favor of `=delete`. NFC.
ClosedPublic

Authored by Quuxplusone on Sep 16 2021, 7:50 PM.

Details

Summary

All supported compilers have supported =delete as an extension in C++03 mode for many years at this point.

Diff Detail

Event Timeline

Quuxplusone requested review of this revision.Sep 16 2021, 7:50 PM
Quuxplusone created this revision.
Herald added 1 blocking reviewer(s): Restricted Project. · View Herald TranscriptSep 16 2021, 7:50 PM
ldionne accepted this revision.Sep 20 2021, 10:22 AM

I think there are similar simplifications we can make to the test suite.

This revision is now accepted and ready to land.Sep 20 2021, 10:22 AM

I think there are similar simplifications we can make to the test suite.

I didn't immediately see anything related to =delete in the tests. They may have been dealt with already, I guess.

For the record: I do see a similar macro _LIBCPP_DEFAULT in <__config>, but it is not as mechanical to remove, because its semantics are "Make things defaulted (possibly trivial) in C++11, non-defaulted (non-trivial) in C++03." And it is used only in atomic, std::allocator (where ISTR we have needed discussions to avoid exactly that kind of ABI break), and error_category (where it is guarded by some dylib-related stuff that is beyond me). So I am not planning a followup patch to remove _LIBCPP_DEFAULT, myself.

I think there are similar simplifications we can make to the test suite.

I didn't immediately see anything related to =delete in the tests. They may have been dealt with already, I guess.

For the record: I do see a similar macro _LIBCPP_DEFAULT in <__config>, but it is not as mechanical to remove, because its semantics are "Make things defaulted (possibly trivial) in C++11, non-defaulted (non-trivial) in C++03." And it is used only in atomic, std::allocator (where ISTR we have needed discussions to avoid exactly that kind of ABI break), and error_category (where it is guarded by some dylib-related stuff that is beyond me). So I am not planning a followup patch to remove _LIBCPP_DEFAULT, myself.

Yeah, I was mistaking it with the = default machinery in the test suite. Thanks!