This is the mail archive of the gcc@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: What to do with the transparent_union attribute


On Mon, Jan 24, 2005 at 09:09:16AM -0500, Andrew Pinski wrote:
> 
> On Jan 24, 2005, at 9:08 AM, Steven Bosscher wrote:
> 
> >Hi,
> >
> >So I was thinking, should we keep this attribute, or can it perhaps
> >be deprecated for GCC 4.0 and removed in 4.1?  Or is this attribute
> >still useful?
> 
> This attribute is useful it is used all over glibc.

Where "all over" is defined as "in four places, but they're all in
installed headers".

./posix/sys/wait.h:  } __WAIT_STATUS __attribute__ ((__transparent_union__));
./socket/sys/socket.h:        } __SOCKADDR_ARG __attribute__ ((__transparent_union__));
./socket/sys/socket.h:        } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__));
./stdlib/stdlib.h:  } __WAIT_STATUS __attribute__ ((__transparent_union__));

It appears that glibc uses this as a hack to allow redefinitions with
any union member to be accepted.  Does that still work?  I have no
idea.  Deprecating the extension eventually might be goodness, but it
will have to wait a long long time.

-- 
Daniel Jacobowitz


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