Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Jun 2014 18:11:15 +0200
From:      Polytropon <freebsd@edvax.de>
To:        Rick Miller <vmiller@hostileadmin.com>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: release.sh: Thousands of warnings...
Message-ID:  <20140613181115.d7d67b7d.freebsd@edvax.de>
In-Reply-To: <CAHzLAVFXs_y1SLVvBitvjkV0MbX5=wXMqmr=V8842J=GjBOAbA@mail.gmail.com>
References:  <CAHzLAVFXs_y1SLVvBitvjkV0MbX5=wXMqmr=V8842J=GjBOAbA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 13 Jun 2014 08:36:49 -0400, Rick Miller wrote:
> Hi all,
> 
> During execution of release.sh to build FreeBSD releng/10.0 I see several
> thousand warnings and conflicts.  I am unsure whether or not these are
> warnings and conflicts that I need to address somehow.  I'd be most
> appreciative of those that take a look at the logs and help me decipher
> them.

I had a short look at some of the warnings and would like
to make the following claim: The compiler in use is in
"maximum warnings mode", so it issues valid warnings about
everything that might be a result of sloppy programming.
Many warnings originate from GNU contributions, but also
things ported from Solaris contain warnings.

For example, the compiler questions if the precedence of
|| and && has been properly understood by the programmer,
and suggests that he should use () to explicitely indicate
what he wants; simplified:

	if (a && b || c && d) ...

Is this

	if ((a && b) || (c && d)) ...

as we would "intuitively" read it, or

	if (a && (b || c) && d) ...

The evaluation (according to the C specification) for &&
and || is left to right, with && binding stronger than ||,
so it's _clear_ that the first interpretation is correct.
Still the compiler suggests using means to make this "more
explicit". (Maybe there's even a C compiler that does not
work as intended and interprets it in the 2nd way?)

Similar warnings are printed for formatting strings that
might not match the variable types associated with them,
as well as "string + char" operations. In the same manner,
the compiler wants to help by addresssing if-then-else
topics, like

	if (x)
		;
	else for (y, ...)
		...

Also type casting "irregularities" are being warned about. There
are many other kinds of "possibly unintended" program code that
the compiler considers worth a warning.

I think it's common to ignore compiler warnings. If you compile
ports, you will see a lot of them, especially when you compile
ported software. You will furthermore see warnings when you run
that software. Take a look at most X-related software and see
how your ~/.xsession-errors fills with warnings and errors
nobody seems to care about.

There are other programmers who intendedly use -Wall or check
for individual warning types to clean their code prior to any
contribution or publication. They make sure no warnings are
issued. I have no idea where those have gone. :-)





-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...



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