This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: typedef char *temp __attribute__ ((cleanup(free));


On Mon, 26 Jul 2004 19:14:28 -0500
Eljay Love-Jensen <eljay@adobe.com> wrote:

> Hi Leah,
> 
> I believe the cleanup attribute is associated with the variable, not
> with the type.  And not just any variable, it has to be an auto
> variable (not a static variable, not a parameter).
> 
> A typedef does not define a variable, it defines a type (or, really, a
> synonymous alias to a type).

Yes, but it should be possible to postpone the attribute's instantiation
until there's a variable it can be applied to.  ((aligned)) behaves that
way, for example.  I found a vague comment in the source
(c-common.c, 5488), but it doesn't help much:

/* ??? Could perhaps support cleanups on TREE_STATIC, much like we do
   for global destructors in C++.  This requires infrastructure that
   we don't have generically at the moment.  It's also not a feature
   we'd be missing too much, since we do have attribute constructor.  */

Somewhat later is the following nice thought:

/* ??? We could support pointers to functions here as well, if
   that was considered desirable.  */

-- 
Leah


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]