Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Feb 2003 08:22:01 -0600
From:      "Jacques A. Vidrine" <nectar@FreeBSD.org>
To:        Terry Lambert <tlambert2@mindspring.com>, David Schultz <dschultz@uclink.berkeley.edu>, Ray Kohler <ataraxia@cox.net>, freebsd-current@FreeBSD.ORG
Subject:   Re: Compiling with high optimization?
Message-ID:  <20030209142200.GH67612@opus.celabo.org>
In-Reply-To: <20030209141711.GA35708@falcon.midgard.homeip.net>
References:  <20030208173756.GA56030@arkadia.nv.cox.net> <20030208232724.GA20435@HAL9000.homeunix.com> <3E459BF3.BB3FC381@mindspring.com> <20030209002542.GA20812@HAL9000.homeunix.com> <3E45AD75.47C80368@mindspring.com> <20030209140357.GB67612@opus.celabo.org> <20030209141711.GA35708@falcon.midgard.homeip.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Feb 09, 2003 at 03:17:12PM +0100, Erik Trulsson wrote:
> On Sun, Feb 09, 2003 at 08:03:57AM -0600, Jacques A. Vidrine wrote:
> > On Sat, Feb 08, 2003 at 05:23:01PM -0800, Terry Lambert wrote:
> > > The compiler
> > > didn't complain when he checked it before committing it because
> > > optimization was off by default; it should have complained, e.g.:
> >   ^^^^^^^^^^^^
> > Is that really what you meant?  I don't believe it has anything to
> > do with optimization; rather, it is to do with lack of `warning'
> > flags.  For example, if you build libc with WARNS=5 (so as to get the
> > `-Wuninitialized' flag), then you get this warning.
> > 
> > >     "x.c:9:warning: `foo' might be used uninitialized in this function"
> 
> Some warnings are not generated unless you compile with optimization
> on.  The reason for this is that to generate some of the warnings (for
> example about uninitialized variables) you need to do some dataflow
> analysis and gcc only does this when optimizing.
> 
> Take for example this little program:
> 
> #include <stdio.h>
> int main(void)
> 	{
> 	int a;
> 	printf("%d\n",a);
> 	return 0;
> 	}
> 
> When compiled using 'gcc -O0 -Wall' no warnings are generated. When
> compiled with 'gcc -O1 -Wall' you get a warning that 'a' might be used
> uninitalized.  (This is the case for gcc 2.95.x at least. I believe the
> situation is the same with gcc 3.x)

Ah, I see.  Yes, it is the case with gcc 3.x.

  cc1: warning: -Wuninitialized is not supported without -O

I don't think I ever knew that.

I should have tried it before posting, but the comment that the
problem was that `optimization was off by default' threw me --- it is
ON by default.

Cheers,
-- 
Jacques A. Vidrine <nectar@celabo.org>          http://www.celabo.org/
NTT/Verio SME          .     FreeBSD UNIX     .       Heimdal Kerberos
jvidrine@verio.net     .  nectar@FreeBSD.org  .          nectar@kth.se

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030209142200.GH67612>