> 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.

Reply via email to