On Aug 14, 2009, at 3:20 PM, Eli Friedman wrote:

> On Fri, Aug 14, 2009 at 3:12 PM, Ted Kremenek<[email protected]>  
> wrote:
>> Unless I'm mistaken, this breaks constructs like the following:
>> __attribute((malloc)) void *(*f)();
>>
>> -Eli
>>
>> I implemented handling of this case, but I noticed that GCC  
>> actually rejects
>> attribute 'malloc' being applied to function pointers ("warning:  
>> 'malloc'
>> attribute ignored").  Should we do the same in Clang?  For function
>> pointers, the malloc attribute really a property of the pointer  
>> type, not
>> the declaration, but apparently GCC doesn't even reason about that.
>
> I think it's better to be self-consistent here over being consistent
> with gcc, as long as we don't break compatibility.  Function
> attributes are confusing enough without making different attributes
> act differently.

The problem is that this attribute is really a decl attribute, not a  
type attribute.  If I have two functions with the same prototype (but  
one is attribute malloc) I should be able to assign them to the same  
function pointer, no?  If we made it part of the type system, we'd  
have to consider the attribute for assignment compatibility etc.

-Chris
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to