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) {


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

Reply via email to