Hi Eli,

Thank you for the review!

I was using "<" to differentiate case '[[foo]] int x' from 'int [[foo]] x'. Is 
there a reliable way to tell from SourceLocation that one construct appears 
before the other?

Regarding "try to apply to a type, fall back to a decl": the patch tries to 
avoid that by having all C++11 attributes that apply to types get processed in 
processTypeAttrs, so C++11 attributes are either get handled directly (like 
carries_dependency), or warns on default case; there is no fall back to 
declaration. Do you think this strategy is in general valid and if so any 
suggestions on the best place to handle C++11 attributes that applies to types?

Cheers
Michael
-----Original Message-----
From: Eli Friedman [mailto:[email protected]] 
Sent: Tuesday, October 23, 2012 2:08 PM
To: Michael Han
Cc: [email protected]
Subject: Re: [cfe-commits] [PATCH] c++11 type attribute fix

On Mon, Oct 22, 2012 at 9:40 AM, Michael Han <[email protected]> wrote:
> Ping with updated patch against TOT.
>
> Michael
> -----Original Message-----
> From: Michael Han
> Sent: Thursday, October 18, 2012 11:48 AM
> To: '[email protected]'
> Subject: [PATCH] c++11 type attribute fix
>
> Hi,
>
> This patch enables Clang to apply C++11 attributes present after declaration 
> specifiers to types instead of declarators, and warn on attributes that 
> appear at wrong place (like carries_dependency which can't be applied to 
> types). Please review, thanks!

+      if (isDeclSpec && declSpecLoc.isValid() && declSpecLoc < 
+ attr.getLoc())

You can't use "<" on source locations like this; it provides an ordering, but 
that ordering isn't source order.

More generally, the whole "try to apply to a type, fall back to a decl" thing 
is specific to gcc attribute syntax; we shouldn't be doing that for C++11 
attributes regardless of whether the attribute in question is defined in the 
C++11 standard.

-Eli

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to