> On Sep 13, 2018, at 11:35 PM, Matt Turner <matts...@gentoo.org> wrote:
>
> On Thu, Sep 13, 2018 at 5:44 PM Richard Yao <r...@gentoo.org> wrote:
>>> On Sep 13, 2018, at 7:21 PM, Matt Turner <matts...@gentoo.org> wrote:
>>>
>>> On Thu, Sep 13, 2018 at 4:13 PM Richard Yao <r...@gentoo.org> wrote:
>>>>> On Sep 13, 2018, at 12:03 PM, Fabian Groffen <grob...@gentoo.org> wrote:
>>>>>
>>>>>> On 13-09-2018 07:36:09 -0400, Richard Yao wrote:
>>>>>>
>>>>>>
>>>>>>>> On Sep 12, 2018, at 6:55 PM, Thomas Deutschmann <whi...@gentoo.org>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> On 2018-09-12 16:50, Rich Freeman wrote:
>>>>>>>> There is also the case where we want these warnings to block
>>>>>>>> installation, because the risk of there being a problem is too great.
>>>>>>>
>>>>>>> I really disagree with that. So many devs have already said multiple
>>>>>>> times in this thread that "-Werror" is only turning existing warnings
>>>>>>> into fatal errors but "-Werror" itself doesn't add any new checks and
>>>>>>> more often requires "-O3" to be useful.
>>>>>> 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.
>>>>>
>>>>> Huh? -O3 enables more checks, which can generate more warnings.
>>>>
>>>> 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.
>>>
>>> https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
>>>
>>> Search for "depend on"
>>>
>>> -> [...] estimated based on heuristics that depend on thelevel
>>> argument and on optimization
>>>
>>> -> Because these warnings depend on optimization [...]
>>>
>>> Yes, warnings are dependent on optimization level.
>>
>> There are three such options. The first two are for format statements:
>>
>>> “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. “
>>
>> My read of this is that the warning occurs regardless of optimization level,
>> but it could somehow be improved by optimization.
>>
>> 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.
>>
>> 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. :/
>
> I'm sorry, but you really don't know what you're talking about.
Either provide code examples that generate warnings in a way that demonstrates
that I am incorrect or withdraw that ad hominem.
> I've
> already told you once that you were just adding noise to this
> conversation.
I can understand the remarks about USE=debug being considered noise given that
people seem to think that -Werror is a boolean thing where it is either on for
any combination of USE flags or off for any combination of USE flags. However,
discussing how compiler internals impacts how -Werror works is definitely not
noise.
You cannot have a discussion about how -Werror should be handled without
understanding what I actually does.