rjmccall added inline comments.

================
Comment at: include/clang/Basic/Attr.td:239
+  bit IncludeC = includeC;
+}
 
----------------
I have no objection to allowing ObjC attributes to be spelled in 
[[clang::objc_whatever]] style.  We can debate giving them a more appropriate 
standard name in the objc namespace at a later time — or even the primary 
namespace, if we really want to flex our Somewhat Major Language muscles.

I feel like this IncludeC is not the best name for this tablegen property.  
Perhaps AllowInC?

Also, a random positional 1 argument is pretty obscure TableGen design.  Do we 
really expect to be making very many attributes that intentionally disallow 
C2x?  What would these be, just C++-specific attributes without C analogues?  
It doesn't seem important to prohibit those at the parsing level rather than at 
the semantic level, since, after all, we are still allowing the GNU-style 
spelling, and these would still qualified with ``clang::``.

I would suggest standardizing in the opposite direction:  instead of forcing 
attributes to opt in to being allowed in C, we should make attributes that we 
really don't want to allow in the C2x [[clang::]] namespace be explicit about 
it.  If there are a lot of C++-specific attributes like that, we can make a 
ClangCXXOnly subclass.


https://reviews.llvm.org/D41553



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

Reply via email to