<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Apr 14, 2014 at 9:21 AM, Aaron Ballman <span dir="ltr"><<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Fri, Apr 11, 2014 at 5:40 PM, Aaron Ballman <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>> wrote:<br>

> On Fri, Apr 11, 2014 at 5:38 PM, Richard Smith <<a href="mailto:richard@metafoo.co.uk">richard@metafoo.co.uk</a>> wrote:<br>
>> Thanks for doing this!<br>
>><br>
>> Looks like this won't reject the ill-formed construct [[deprecated()]].<br>
>> (Both [[gnu::deprecated()]] and __attribute__((deprecated())) are OK, IIRC.)<br>
><br>
> Good point! I'll add that on my TODO list. :-)<br>
<br>
</div></div>Fixed in r206186, but I have a question -- I think<br>
IsBuiltInOrStandardCXX11Attribute should actually be implemented more<br>
in terms of the scope name. If there's no scope name, it must be a<br>
standard C++ attribute. If the scope name is clang, then it is one of<br>
our built-in attributes and we can reason about it. But anything else<br>
doesn't qualify. Would you agree with the attached patch?</blockquote><div><br></div><div>Seems like this function is really now just checking whether an attribute can be repeated within the same attribute list? I don't see why that rule should necessarily apply to all clang:: attributes, and there are some capability-related attributes where it almost certainly should not apply.</div>
<div><br></div><div>Maybe this should be another tablegen-generated property?</div></div></div></div>