Author: Jiefeng Wang Date: 2025-05-23T10:38:35+02:00 New Revision: 4f844e7881d86971cd31401d02a418235d18f456
URL: https://github.com/llvm/llvm-project/commit/4f844e7881d86971cd31401d02a418235d18f456 DIFF: https://github.com/llvm/llvm-project/commit/4f844e7881d86971cd31401d02a418235d18f456.diff LOG: [OpenCL] No need to check array of struct for kernel arguments (#138894) Since arrays decay into pointers, no need to check them for arguments. This commit reverts part of the changes from the commit "[OpenCL] Check for invalid kernel arguments in array types" 3b238ed6626983beb238b95eada4172184fb2d29. Added: Modified: clang/lib/Sema/SemaDecl.cpp Removed: ################################################################################ diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 814f81cb64cae..90525f386468a 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -9725,14 +9725,10 @@ static void checkIsValidOpenCLKernelParameter( SmallVector<const FieldDecl *, 4> HistoryStack; HistoryStack.push_back(nullptr); - // At this point we already handled everything except of a RecordType or - // an ArrayType of a RecordType. - assert((PT->isArrayType() || PT->isRecordType()) && "Unexpected type."); - const RecordType *RecTy = - PT->getPointeeOrArrayElementType()->getAs<RecordType>(); - const RecordDecl *OrigRecDecl = RecTy->getDecl(); - - VisitStack.push_back(RecTy->getDecl()); + // At this point we already handled everything except of a RecordType. + assert(PT->isRecordType() && "Unexpected type."); + const RecordDecl *PD = PT->castAs<RecordType>()->getDecl(); + VisitStack.push_back(PD); assert(VisitStack.back() && "First decl null?"); do { @@ -9797,8 +9793,8 @@ static void checkIsValidOpenCLKernelParameter( S.Diag(Param->getLocation(), diag::err_bad_kernel_param_type) << PT; } - S.Diag(OrigRecDecl->getLocation(), diag::note_within_field_of_type) - << OrigRecDecl->getDeclName(); + S.Diag(PD->getLocation(), diag::note_within_field_of_type) + << PD->getDeclName(); // We have an error, now let's go back up through history and show where // the offending field came from _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits