<div dir="ltr"><div dir="ltr">Patch: <a href="https://reviews.llvm.org/D59223">https://reviews.llvm.org/D59223</a></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 9, 2019 at 1:24 PM Aaron Ballman <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Fri, Mar 8, 2019 at 8:10 PM Erik Pilkington<br>
<<a href="mailto:erik.pilkington@gmail.com" target="_blank">erik.pilkington@gmail.com</a>> wrote:<br>
><br>
><br>
><br>
> > On Mar 8, 2019, at 4:51 PM, Aaron Ballman <<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>> wrote:<br>
> ><br>
> > On Fri, Mar 8, 2019 at 11:52 AM Nico Weber <<a href="mailto:thakis@chromium.org" target="_blank">thakis@chromium.org</a>> wrote:<br>
> >><br>
> >> On Fri, Mar 8, 2019 at 11:23 AM Aaron Ballman <<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>> wrote:<br>
> >>><br>
> >>> On Fri, Mar 8, 2019 at 11:20 AM Nico Weber via cfe-dev<br>
> >>> <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<br>
> >>>><br>
> >>>> Hi,<br>
> >>>><br>
> >>>> I'm trying to enable -Wextra-semi in Chromium. I'm almost there; the last remaining issue is that we have a macro THREAD_CHECKER(name) that expands to nothing in release builds but to `ThreadChecker name` in debug builds. It's supposed to be used like<br>
> >>>><br>
> >>>> class C {<br>
> >>>>  THREAD_CHECKER(checker_);<br>
> >>>> };<br>
> >>>><br>
> >>>> And then in the implementation, you do CHECK_CALLED_ON_VALID_THREAD(checker_); which again does nothing in release builds but calls a method on checker_ in debug builds.<br>
> >>>><br>
> >>>> Since this is a declaration, this triggers -Wextra-semi. I figured the way to spell the usual `do {} while (0)` you tag on the end of a statement macro to silence this warning could be `static_assert(1, "")`, so I changed THREAD_CHECKER() to expand to that in release builds instead of nothing.<br>
> >>>><br>
> >>>> This works beautifully, but Objective-C interfaces don't support static_assert()s as I have learned. So I'd like to add support for that.<br>
> >>><br>
> >>> Do they support _Static_assert() instead (the C11 spelling)<br>
> >><br>
> >><br>
> >> No.<br>
> ><br>
> > Good to know!<br>
> ><br>
> > I'd also like to see _Static_assert() supported in Objective-C and<br>
> > static_assert() supported in Objective-C++; I think they'd be useful.<br>
> > However, I'm not certain of the relationship between ObjC/C++ versions<br>
> > and the language standard version of C/C++ and whether there might be<br>
> > concerns there.<br>
><br>
><br>
> My understanding is that we try to be as compatible as possible with the base language, so -xobjective-c++ -std=c++11 should behave just like -std=c++11, but also have objective-c stuff. Thats what we do in general with static_assert/_Static_assert here too, its just that for some reason we don’t parse them in this context.<br>
<br>
Ah, nice to know, thank you Erik. Then yeah, count me as a +1 for<br>
supporting this.<br>
<br>
~Aaron<br>
<br>
><br>
> Erik<br>
><br>
><br>
> ><br>
> > ~Aaron<br>
><br>
</blockquote></div>