[PATCH] D17955: [OpenCL] Fix piep builtin bug
Xiuli PAN via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 8 03:51:52 PST 2016
pxli168 created this revision.
pxli168 added reviewers: Anastasia, yaxunl.
pxli168 added subscribers: cfe-commits, pekka.jaaskelainen.
1. Diag should be output if types are not the same.
2. Should compare using canonical type.
3. Refine the diag to be more clear.
http://reviews.llvm.org/D17955
Files:
include/clang/Basic/DiagnosticSemaKinds.td
lib/Sema/SemaChecking.cpp
Index: lib/Sema/SemaChecking.cpp
===================================================================
--- lib/Sema/SemaChecking.cpp
+++ lib/Sema/SemaChecking.cpp
@@ -323,10 +323,12 @@
const PointerType *ArgTy = ArgIdx->getType()->getAs<PointerType>();
// The Idx argument should be a pointer and the type of the pointer and
// the type of pipe element should also be the same.
- if (!ArgTy || S.Context.hasSameType(EltTy, ArgTy->getPointeeType())) {
+ if (!ArgTy ||
+ !S.Context.hasSameType(
+ EltTy, ArgTy->getPointeeType()->getCanonicalTypeInternal())) {
S.Diag(Call->getLocStart(), diag::err_opencl_builtin_pipe_invalid_arg)
<< Call->getDirectCallee() << S.Context.getPointerType(EltTy)
- << ArgIdx->getSourceRange();
+ << ArgIdx->getType() << ArgIdx->getSourceRange();
return true;
}
return false;
Index: include/clang/Basic/DiagnosticSemaKinds.td
===================================================================
--- include/clang/Basic/DiagnosticSemaKinds.td
+++ include/clang/Basic/DiagnosticSemaKinds.td
@@ -7753,7 +7753,7 @@
def err_opencl_builtin_pipe_arg_num : Error<
"invalid number of arguments to function: %0">;
def err_opencl_builtin_pipe_invalid_arg : Error<
- "invalid argument type to function %0 (expecting %1)">;
+ "invalid argument type to function %0 (expecting %1 having %2)">;
def err_opencl_builtin_pipe_invalid_access_modifier : Error<
"invalid pipe access modifier (expecting %0)">;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17955.50031.patch
Type: text/x-patch
Size: 1489 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160308/c8ee780a/attachment.bin>
More information about the cfe-commits
mailing list