Erik Trulsson ertr1013 at student.uu.se
Tue Nov 20 15:34:57 PST 2007

On Tue, Nov 20, 2007 at 10:43:37PM +0000, John Birrell wrote:
> On Tue, Nov 20, 2007 at 07:35:42AM -0800, John Merryweather Cooper wrote:
> > Could not -fno-strict-aliasing be considered as just another WARN level?
> > At least then, there might be some pressure to eliminate strict aliasing
> > warnings as a necessary component to moving to a higher WARN level.
> > 
> This is something I'd like to do right now as "a step in the right
> direction".
> RCS file: /u/freebsd/cvsup/src/src/share/mk/bsd.sys.mk,v
> retrieving revision 1.43
> diff -r1.43 bsd.sys.mk
> 11,12d10
> < 
> 78a77,80
> > .if defined(NO_WARNS) || (defined(WARNS) && ${WARNS} == 0)
> > CFLAGS                +=      -fno-strict-aliasing
> > .endif
> > 
> and remove it from the default CFLAGS in sys.mk

You seem to misunderstand what -fno-strict-aliasing does.
Its purpose is not to disable some warnings, but to disable
certain optimizations which can easily cause not-quite-correct code
to behave differently than the programmer intended.
Such incorrect code is unfortunately fairly common, which is why
-fno-strict-aliasing is often needed.

Which optimizations are enabled or disabled should not depend
on which WARN level is used.

If gcc gives a warning about strict aliasing this means that there is
almost certainly a bug in the code which need to be fixed, to make it safe
to compile with the extra optimizations that an assumption of strict
aliasing enables.

<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at student.uu.se

More information about the freebsd-current mailing list