This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
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