yaxunl marked an inline comment as done.

================
Comment at: include/clang/Basic/Attr.td:701
@@ -699,1 +700,3 @@
 
+def OpenCLNoSVM : Attr {
+  let Spellings = [GNU<"nosvm">];
----------------
aaron.ballman wrote:
> yaxunl wrote:
> > aaron.ballman wrote:
> > > Since the attribute is ignored by clang, you should inherit from 
> > > IgnoredAttr.
> > I tried that from beginning. If I inherit from IgnoredAttr, it seems to be 
> > ignored by the parser and won't reach the sema check part, and I cannot 
> > emit error msg based on OpenCL version.
> Ah. so it isn't *totally* ignored. Okay, in that case, you should set ASTNode 
> = 0 and SemaHandler = 0.
If I set ASTNode = 0 and SemaHandler = 0, tablegen will not generate an id 
AT_OpenCLNoSVM to identify this attribute, and I cannot diagnose its invalid 
usage in SemaDeclAttr.cpp due to that. Then it seems the only viable place to 
diagnose its invalid usage is in Parser::ParseGNUAttributes. However currently 
Parser::ParseGNUAttributes only does generic processing of GNU attributes and 
does not diagnose specific attribute. Since there is no id for NoSVM attribute, 
I have to diagnose based on its name string.

Do we really want to do this?


Repository:
  rL LLVM

http://reviews.llvm.org/D17861



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

Reply via email to