[PATCH][OpenCL] Check that kernel returns void type

Tanya Lattner lattner at apple.com
Wed Jan 30 10:21:06 PST 2013


On Jan 30, 2013, at 10:17 AM, Joey Gouly <joey.gouly at arm.com> wrote:

> I prefer "kernel cannot have void return type" over "kernel function must
> return void".

I honestly have no strong preference, so sure. You and Anton L can duke it out if he complains ;)

> 
> Apart from putting the check in test/SemaOpenCL/invalid-kernels.cl, it looks
> good, please commit!

Yes, I will. Thanks!

-Tanya

> 
> Joey
> 
> -----Original Message-----
> From: cfe-commits-bounces at cs.uiuc.edu
> [mailto:cfe-commits-bounces at cs.uiuc.edu] On Behalf Of Tanya Lattner
> Sent: 30 January 2013 18:11
> To: Richard Smith
> Cc: cfe-commits at cs.uiuc.edu
> Subject: Re: [PATCH][OpenCL] Check that kernel returns void type
> 
> I am guessing this patch is ok since its so small and Richard already
> approved the part and I removed the one he questioned.
> 
> If anyone has any final comments, please let me know.
> 
> -Tanya
> 
> On Jan 29, 2013, at 4:51 PM, Tanya Lattner <lattner at apple.com> wrote:
> 
>> 
>> On Jan 29, 2013, at 4:14 PM, Richard Smith <richard at metafoo.co.uk> wrote:
>> 
>>> --- lib/Sema/SemaDecl.cpp	(revision 173469)
>>> +++ lib/Sema/SemaDecl.cpp	(working copy)
>>> @@ -6178,7 +6178,15 @@
>>>     Diag(D.getIdentifierLoc(), diag::err_static_kernel);
>>>     D.setInvalidType();
>>>   }
>>> -
>>> +
>>> +    // OpenCL v1.2, s6.9 -- Kernels can only have return type void.
>>> +    if (!NewFD->getResultType()->isVoidType() &&
>>> +        !NewFD->getAttr<SectionAttr>()) {
>>> 
>>> Use hasAttr<SectionAttr> not getAttr<SectionAttr>. Also, test coverage
>>> for this half of the check would be useful.
>>> 
>> 
>> Actually, this is a mistake as that check is not standard for OpenCL so I
> will remove it. Updated patch attached.
>> 
>> 
>> -Tanya
>> 
>> <voidKernelCheck2.patch>
>> 
>> 
>>> On Tue, Jan 29, 2013 at 3:50 PM, Tanya Lattner <lattner at apple.com> wrote:
>>>> Sending this patch for review. I made some changes to it based upon
> previous feedback. This is a simple error check to see if the kernel returns
> void type.
>>>> 
>>>> Thanks,
>>>> Tanya
>>>> 
>>>> 
>>>> _______________________________________________
>>>> cfe-commits mailing list
>>>> cfe-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>> 
>> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> 
> 
> 
> 




More information about the cfe-commits mailing list