Fix debug builds with GCC
Created attachment 363319 [details] Patch
Comment on attachment 363319 [details] Patch Clearing flags on attachment: 363319 Committed r242262: <https://trac.webkit.org/changeset/242262>
All reviewed patches have been landed. Closing bug.
<rdar://problem/48506653>
Why not add a ASSERT_NOT_REACHED_UNDER_CONSTEXPR that would expand to ASSERT_UNDER_CONSTEXPR(false) instead? Removing the constexpr you're dropping its benefits for all builds, just for the sake of the few that expand the macro (debug builds).
I would have preferred that solution as well: But using ASSERT_UNDER_CONSTEXPR_CONTEXT(false) failed to build for me as well. The macro invokes WTFReportAssertionFailure which isn't constexpr. Since Saam recommended to remove the constexpr keyword in https://bugs.webkit.org/show_bug.cgi?id=194912 I used this solution to get the build working again.
+fredw > The macro invokes WTFReportAssertionFailure which isn't constexpr. Isn't that then a bug in ASSERT_UNDER_CONSTEXPR_CONTEXT()?
(In reply to Claudio Saavedra from comment #7) > +fredw > > > The macro invokes WTFReportAssertionFailure which isn't constexpr. > > Isn't that then a bug in ASSERT_UNDER_CONSTEXPR_CONTEXT()? I think this is expected, as the name indicates it only works under a constexpr context. cc'in Yusuke since he is the one who initially introduced this.
(In reply to Frédéric Wang (:fredw) from comment #8) > (In reply to Claudio Saavedra from comment #7) > > +fredw > > > > > The macro invokes WTFReportAssertionFailure which isn't constexpr. > > > > Isn't that then a bug in ASSERT_UNDER_CONSTEXPR_CONTEXT()? > > I think this is expected, as the name indicates it only works under a > constexpr context. cc'in Yusuke since he is the one who initially introduced > this. But it's ASSERT_UNDER_CONSTEXPR_CONTEXT() that ends up calling WTFReportAssertionFailure(), which is not constexpr. I understood that the idea of ASSERT_UNDER_CONSTEXPR_CONTEXT() was to allow for assertions when the calling methods are constexpr, but it won't work. Unless I'm understanding it completely wrong, of course :)