This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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: Incomplete patch to fix build with top-of-tree GCC


On Sat, 2015-05-16 at 00:13 -0400, Carlos O'Donell wrote:
> On 05/15/2015 04:29 PM, Paul Eggert wrote:
> > On 05/15/2015 09:47 AM, Joseph Myers wrote:
> >> The first question is:*is*  it OK to ignore the warnings?
> > I looked just at the first hunk of the patch, and it appears to me
> > that it's not OK to ignore its warnings. The type punning in the
> > first hunk appears to violate the C standard; although I don't know
> > whether GCC is generating "incorrect" code as a result, instead of
> > silencing the warning how about fixing the code so that it doesn't
> > have those funky casts? Something like the attached (untested) patch,
> > say.
> 
> Yes please.
> 
> We should be fixing this everywhere we see obvious C strict-aliasing violations.
> 
> Your changes are mechanical and look good to me.
> 
> Cheers,
> Carlos.

> >  #ifdef SALEN
> > -	ss.__ss_len = len;
> > +	ss.generic.__ss_len = len;
> >  #endif
> > -	ss.ss_family = family;
> > +	ss.generic.ss_family = family;

It looks like this last line should be 'sa_family', not 'ss_family'.  If
I change that, there are still two lines that give an error:

rcmd.c: In function 'iruserok_af':
rcmd.c:618:24: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
     memcpy (&(((struct sockaddr_in *)&ra)->sin_addr), raddr,
                         ^
rcmd.c:624:24: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
     memcpy (&(((struct sockaddr_in6 *)&ra)->sin6_addr), raddr,


Do we need to create another anonymous union in iruserok_af to fix
these?

Steve Ellcey
sellcey@imgtec.com


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