[cfe-dev] Parameter check question

Douglas Gregor dgregor at apple.com
Tue Oct 6 15:55:31 PDT 2009


On Oct 6, 2009, at 3:44 PM, Tanya Lattner wrote:

>
> On Oct 5, 2009, at 2:58 PM, Douglas Gregor wrote:
>
>>
>> On Oct 5, 2009, at 2:37 PM, Tanya Lattner wrote:
>>
>>> Hello,
>>>
>>> I want to do a check on function parameters similar to the  
>>> "err_arg_with_address_space" check that I added in  
>>> ActOnParamDeclarator (r83165). However, this time, I only want to  
>>> perform the check if the function has a specific attribute. Is  
>>> ActOnParamDeclarator the right place? I'm not seeing a way to get  
>>> the function attribute there. Or, any suggestion on where to add  
>>> this?
>>
>>
>> ActOnParamDeclarator won't work, since that gets can get called by  
>> the parser before we've seen the function attributes. I suggest  
>> putting this check into ActOnFunctionDeclarator (e.g., where we  
>> check for parameters of "void" type).
>>
>
> Awesome, thanks! At this point in ActOnFunctionDeclarator, do  
> parameters know about their attributes? Specifically addr space  
> qualifiers. I'm thinking no because it always seems to think the  
> param's in addr space 0, but when I dump the QualType I can clearly  
> see the addr space attribute and its non zero, but I assume it just  
> hasn't been processed yet.


The address-space qualifier has probably migrated to the type of the  
parameter, rather than sitting on the parameter itself. You can use  
QualType::getAddressSpace() to figure out the address space of the  
parameter.

	- Doug
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20091006/6b477e6f/attachment.html>


More information about the cfe-dev mailing list