[PATCH] D45174: non-zero-length bit-fields should make a class non-empty

2018-05-07 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL331620: Non-zero-length bit-fields make a class non-empty. (authored by rsmith, committed by ). Herald added a subscriber: llvm-commits. Changed prior to commit:

[PATCH] D45174: non-zero-length bit-fields should make a class non-empty

2018-05-04 Thread John McCall via Phabricator via cfe-commits
rjmccall accepted this revision. rjmccall added a comment. This revision is now accepted and ready to land. Okay, LGTM. Repository: rC Clang https://reviews.llvm.org/D45174 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D45174: non-zero-length bit-fields should make a class non-empty

2018-05-04 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith marked an inline comment as done. rsmith added a comment. Ping. Repository: rC Clang https://reviews.llvm.org/D45174 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D45174: non-zero-length bit-fields should make a class non-empty

2018-04-03 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith marked an inline comment as done. rsmith added inline comments. Comment at: ReleaseNotes.rst:68-72 +- Clang implements the proposed resolution of LWG issue 2358, along with the + `corresponding change to the Itanium C++ ABI +

[PATCH] D45174: non-zero-length bit-fields should make a class non-empty

2018-04-02 Thread David Majnemer via Phabricator via cfe-commits
majnemer added a comment. In https://reviews.llvm.org/D45174#1055125, @rsmith wrote: > In https://reviews.llvm.org/D45174#1055048, @rsmith wrote: > > > I wonder if we can delete the `getNonVirtualSize()` check now -- I don't > > see any way that an empty class can have a nonzero nvsize except

[PATCH] D45174: non-zero-length bit-fields should make a class non-empty

2018-04-02 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith added a comment. In https://reviews.llvm.org/D45174#1055048, @rsmith wrote: > I wonder if we can delete the `getNonVirtualSize()` check now -- I don't see > any way that an empty class can have a nonzero nvsize except by this nonempty > anonymous bit-fields situation. Yup, looks like:

[PATCH] D45174: non-zero-length bit-fields should make a class non-empty

2018-04-02 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith added a comment. In https://reviews.llvm.org/D45174#1054936, @rnk wrote: > I've convinced myself that this is NFC for MS record layout because this is > the only place we use RD->isEmpty() that matters: > > if (!FoundBase) { > if (MDCUsesEBO && BaseDecl->isEmpty() && >

[PATCH] D45174: non-zero-length bit-fields should make a class non-empty

2018-04-02 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added a subscriber: majnemer. rnk added a comment. In https://reviews.llvm.org/D45174#1054820, @rsmith wrote: > +rnk This might also affect the MS ABI, but it does not result in any test > case failures at least (and MSVC's type trait matches our state after this > patch rather than

[PATCH] D45174: non-zero-length bit-fields should make a class non-empty

2018-04-02 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith added a comment. +rnk This might also affect the MS ABI, but it does not result in any test case failures at least (and MSVC's type trait matches our state after this patch rather than before). Repository: rC Clang https://reviews.llvm.org/D45174

[PATCH] D45174: non-zero-length bit-fields should make a class non-empty

2018-04-02 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith created this revision. rsmith added a reviewer: rjmccall. Herald added a subscriber: sanjoy. This implements the rule intended by the standard (see LWG 2358) and the rule presumably intended by the Itanium C++ ABI (see https://github.com/itanium-cxx-abi/cxx-abi/pull/51), and makes Clang