[cfe-commits] r79041 - /cfe/trunk/lib/Sema/SemaDeclAttr.cpp
kremenek at apple.com
Fri Aug 14 15:30:59 PDT 2009
On Aug 14, 2009, at 3:30 PM, Chris Lattner wrote:
> On Aug 14, 2009, at 3:20 PM, Eli Friedman wrote:
>> On Fri, Aug 14, 2009 at 3:12 PM, Ted Kremenek<kremenek at apple.com>
>>> Unless I'm mistaken, this breaks constructs like the following:
>>> __attribute((malloc)) void *(*f)();
>>> I implemented handling of this case, but I noticed that GCC
>>> actually rejects
>>> attribute 'malloc' being applied to function pointers ("warning:
>>> 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.
Yes, this was my thought exactly. Unless it is part of the type, the
attribute doesn't make sense for function pointers.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-commits