pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: pkgsrc/net/libfetch
On Mon, Oct 15, 2012 at 05:46:17PM +0200, John Marino wrote:
> On 10/15/2012 17:40, Greg Troxel wrote:
> >"John Marino"<marino%netbsd.org@localhost> writes:
> >>When building with gcc4.7, libfetch fails with the following error:
> >> ftp.c: In function 'unmappedaddr':
> >> ftp.c:149:2: error: dereferencing type-punned pointer will break
> >> strict-aliasing rules [-Werror=strict-aliasing]
> >> cc1: all warnings being treated as errors
> >> *** Error code 1
> >>
> >>The code is intentionally grouping an array of four uint8_t bytes into a
> >>uint32_t word. Add -Wno-strict-aliasing in makefile to fix build in gcc4.7.
> >
> >But isn't the warning correct, in that dereferencing a uint32 pointer
> >does not guarantee data coherency for objects of other types? AIUI, in
> >C99, the compiler is free to let objects of type other than foo have
> >inconsistent values while a foo* is being dereferenced, and is only
> >obligated to ensure consistency of objects of type foo. It seems in
> >modern C, one must use a union for such overlays.
> >
>
> Yes, the warning is correct. That's why it had to be disabled.
> To avoid a warning with strict-aliasing checking would require
> recoding. That's a better long-term solution but I'll leave it to
> the maintainers of libfetch to determine if they want to rewrite the
> code.
If the warning is correct, don't disable it. Disable the optimization
feature that triggered it instead.
IOW, shouldn't you be using -fno-strict-aliasing here?
Hans
--
%SYSTEM-F-ANARCHISM, The operating system has been overthrown
Home |
Main Index |
Thread Index |
Old Index