[clang] 5013131 - [SYCL][NFC] Ensure SYCL kernel for unique-stable-name is unqualified.

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 21 12:51:30 PDT 2021


Author: Erich Keane
Date: 2021-06-21T12:51:23-07:00
New Revision: 5013131875402539a249dca47c58cca7c359baf8

URL: https://github.com/llvm/llvm-project/commit/5013131875402539a249dca47c58cca7c359baf8
DIFF: https://github.com/llvm/llvm-project/commit/5013131875402539a249dca47c58cca7c359baf8.diff

LOG: [SYCL][NFC] Ensure SYCL kernel for unique-stable-name is unqualified.

Discovered in our downstream, this function that is used to get the type
of the kernel parameter type needs to be unqualified, otherwise when our
downstream uses this function in a slightly different way, the kernel
types no longer match.

Added: 
    

Modified: 
    clang/lib/Sema/SemaSYCL.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Sema/SemaSYCL.cpp b/clang/lib/Sema/SemaSYCL.cpp
index 3b48a53efc0d..7ae78b1d1943 100644
--- a/clang/lib/Sema/SemaSYCL.cpp
+++ b/clang/lib/Sema/SemaSYCL.cpp
@@ -54,14 +54,14 @@ bool Sema::checkSYCLDeviceFunction(SourceLocation Loc, FunctionDecl *Callee) {
 // this was passed by value, and in SYCL2020, it is passed by reference.
 static QualType GetSYCLKernelObjectType(const FunctionDecl *KernelCaller) {
   assert(KernelCaller->getNumParams() > 0 && "Insufficient kernel parameters");
+  // SYCL 1.2.1
   QualType KernelParamTy = KernelCaller->getParamDecl(0)->getType();
 
   // SYCL 2020 kernels are passed by reference.
   if (KernelParamTy->isReferenceType())
-    return KernelParamTy->getPointeeType();
+    KernelParamTy = KernelParamTy->getPointeeType();
 
-  // SYCL 1.2.1
-  return KernelParamTy;
+  return KernelParamTy.getUnqualifiedType();
 }
 
 void Sema::AddSYCLKernelLambda(const FunctionDecl *FD) {


        


More information about the cfe-commits mailing list