Anastasia added a comment.

> I've left the check during parsing as well, because it provides slightly 
> better error messages, though some are lost now that NewVD is set as invalid, 
> instead of just setting D invalid.

Yes, when there are multiple errors we don't provide the diagnostics 
consistently so I think it's fine.



================
Comment at: clang/lib/Sema/SemaDecl.cpp:6825
+/// Returns true if there hasn't been any invalid type diagnosed.
+static bool diagnoseOpenCLTypeDecl(Sema &Se, Declarator &D, VarDecl *NewVD) {
+  // C++ for OpenCL does not allow the thread_local storage qualifier.
----------------
I find this function a bit confusing I would just move its body inline where it 
is currently called.

Although actually could this code be moved to where we do similar check for 
`static` or `extern`
https://clang.llvm.org/doxygen/SemaDecl_8cpp_source.html#l07911

You would then need to change this slightly i.e. to call `VarDecl::getTSCSpec` 
instead.


================
Comment at: clang/test/SemaOpenCLCXX/template-diagnostics.clcpp:27
+
+  static __global clk_event_t local_static;
+}
----------------
Let's move this into the OpenCL C test for `clk_event_t` diagnostic 
`test/SemaOpenCL/clk_event_t.cl`. I would add a `FIXME` comment next to it 
stating that it is not clear whether this should be diagnosed or not.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D100860

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

Reply via email to