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