aaron.ballman added a reviewer: erichkeane.
aaron.ballman added a comment.

Roping in Erich as the attributes code owner. In general, I think this is going 
in roughly the right direction. One concern I have is that the distinction 
between a keyword spelling for an attribute is now a bit harder. We have 
keyword attributes and we have attribute-like keywords, and it's hard to know 
when it's appropriate to use one over another. From what I can tell, it seems 
that the biggest distinction between the two is automatic parsing or not and 
diagnostic wording (please correct me if I'm missing something!). If I'm 
correct, then I don't think we want an additional attribute syntax enumeration 
for this (it's still `AS_Keyword`), but we should surface this via 
Attr.td/tablegen so that the `Keyword` spelling can opt into the extra 
generality (or perhaps we want the default to be all keyword attributes get the 
general behavior and we make a few existing attributes opt out).



================
Comment at: clang/include/clang/Basic/AttributeCommonInfo.h:55
+
+    /// A keyword that can appear wherever a standard attribute can appear.
+    AS_AttributeLikeKeyword,
----------------
I think it would help to describe how this differs from `AS_Keyword` and 
`AS_ContextSensitiveKeyword` as I would expect these to have considerable 
overlap.


================
Comment at: clang/include/clang/Basic/TokenKinds.h:105-107
+inline bool isAttributeLikeKeyword(TokenKind K) {
+  return K >= tok::kw___arm_streaming && K <= tok::kw___arm_preserves_za;
+}
----------------
This strikes me as something that should be handled via tablegen -- the 
spelling used in Attr.td should show what kind of attribute spelling it is 
(regular keyword or not).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D139028

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

Reply via email to