brunodf added a comment.

This change is important make better use of `#pragma clang attribute` (which is 
cool!), but for some uses the check still seems to restrictive.

Concretely, for an attribute where `Subjects` includes `FunctionLike`, I can 
only match it using the rule `hasType(functionType)` but not with a `function` 
rule. E.g. if I want to apply it to C++ methods, the rule `function(is_member)` 
is rejected (as `attribute ... can't be applied to 'function(is_member)'`).

If I change the subject list of my attribute to include `Function` in addition 
to `FunctionLike`, it does work, but I don't know if there are other effects.

I'm not exactly sure what is the purpose of the check, since there is already a 
warning when your pragma does not match anything? If an attribute is updated to 
allow more subjects, how does that affect matching of existing rules?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100136/new/

https://reviews.llvm.org/D100136

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to