Gentoo Archives: gentoo-dev

From: Matt Turner <mattst88@g.o>
To: gentoo development <gentoo-dev@l.g.o>
Subject: Re: [gentoo-dev] Changing policy about -Werror
Date: Fri, 14 Sep 2018 03:36:19
Message-Id: CAEdQ38Gg0iOXBtHebQwHKBT6L91nkWbbQGiGXu=7gavSy3EWSg@mail.gmail.com
In Reply to: Re: [gentoo-dev] Changing policy about -Werror by Richard Yao
1 On Thu, Sep 13, 2018 at 5:44 PM Richard Yao <ryao@g.o> wrote:
2 > > On Sep 13, 2018, at 7:21 PM, Matt Turner <mattst88@g.o> wrote:
3 > >
4 > > On Thu, Sep 13, 2018 at 4:13 PM Richard Yao <ryao@g.o> wrote:
5 > >>> On Sep 13, 2018, at 12:03 PM, Fabian Groffen <grobian@g.o> wrote:
6 > >>>
7 > >>>> On 13-09-2018 07:36:09 -0400, Richard Yao wrote:
8 > >>>>
9 > >>>>
10 > >>>>>> On Sep 12, 2018, at 6:55 PM, Thomas Deutschmann <whissi@g.o> wrote:
11 > >>>>>>
12 > >>>>>> On 2018-09-12 16:50, Rich Freeman wrote:
13 > >>>>>> There is also the case where we want these warnings to block
14 > >>>>>> installation, because the risk of there being a problem is too great.
15 > >>>>>
16 > >>>>> I really disagree with that. So many devs have already said multiple
17 > >>>>> times in this thread that "-Werror" is only turning existing warnings
18 > >>>>> into fatal errors but "-Werror" itself doesn't add any new checks and
19 > >>>>> more often requires "-O3" to be useful.
20 > >>>> The way that compilers work is that the warnings are generated in the front end while the optimization level affects the backend. That means that -O3 has no effect on the code that does error generation. This remark about -O3 being needed to make -Werror useful is just plain wrong.
21 > >>>
22 > >>> Huh? -O3 enables more checks, which can generate more warnings.
23 > >>
24 > >> What checks are those? -O3 affects backend optimization while warnings are generated by the front end. Once the immediate representation is generated, there are no other warnings aside from those from the linker.
25 > >
26 > > https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
27 > >
28 > > Search for "depend on"
29 > >
30 > > -> [...] estimated based on heuristics that depend on thelevel
31 > > argument and on optimization
32 > >
33 > > -> Because these warnings depend on optimization [...]
34 > >
35 > > Yes, warnings are dependent on optimization level.
36 >
37 > There are three such options. The first two are for format statements:
38 >
39 > > “When the exact number of bytes written by a format directive cannot be determined at compile-time it is estimated based on heuristics that depend on the level argument and on optimization. While enabling optimization will in most cases improve the accuracy of the warning, it may also result in false positives. “
40 >
41 > My read of this is that the warning occurs regardless of optimization level, but it could somehow be improved by optimization.
42 >
43 > As for the last, it is for uninitialized variable reads. However, I think you are misinterpreting the claim. The way that optimization level could affect warning generation would be if the warning generation came after optimization passes that could hide reads. That means that -O3 would prevent the warning.
44 >
45 > This is a really odd design decision by the GCC developers. With other compilers, the separation between front end and backend is strong enough that you will never have this sort of thing. It does not seem necessary to me either. :/
46
47 I'm sorry, but you really don't know what you're talking about. I've
48 already told you once that you were just adding noise to this
49 conversation.

Replies

Subject Author
Re: [gentoo-dev] Changing policy about -Werror Richard Yao <ryao@g.o>