[clang] [Clang] Fix sema checks thinking kernels aren't kernels (PR #104460)

Joseph Huber via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 15 08:52:33 PDT 2024


================
@@ -7147,7 +7147,9 @@ void Sema::ProcessDeclAttributeList(
   // good to have a way to specify "these attributes must appear as a group",
   // for these. Additionally, it would be good to have a way to specify "these
   // attribute must never appear as a group" for attributes like cold and hot.
-  if (!D->hasAttr<OpenCLKernelAttr>()) {
+  const FunctionType *FnTy = D->getFunctionType();
+  if (!D->hasAttr<OpenCLKernelAttr>() && FnTy &&
+      FnTy->getCallConv() != CallingConv::CC_AMDGPUKernelCall) {
----------------
jhuber6 wrote:

Nope, I originally thought I could check for `AMDGPUKernelCall` attributes, but those don't get attached. It's only on the return type calling conv. 

https://github.com/llvm/llvm-project/pull/104460


More information about the cfe-commits mailing list