Re: [BUG REPORT] use of unreachable() masks uninitialized variables warnings

From: Jeff Merkey
Date: Thu Feb 11 2016 - 23:41:09 EST


On 2/11/16, Jeff Merkey <linux.mdb@xxxxxxxxx> wrote:
>> In your case, for example, I looked through several dozen warnings,
>> and they were ***all*** bogus. Keep in mind that this might make me
>> less inclined to pay attention to complaints from you in the future.
>> The story of the buy who cried wolf too often comes to mind.
>>
>> Perhaps you could actually take a close look at the warnings, before
>> you fire off an e-mail? If at least one of the warnings were valid
>> and pointed at an actual bug, it wouldn't have been a complete waste
>> of my time....
>>
>
> I did take a close look at some of them (I reviewed them in assembler
> -- probably a closer look than you gave them) and it was somewhat
> confusing since the compiler was outputing jmp labels in the wrong
> places in the code after I removed the calls to unreachable().
>
> Ted, that's the problem with sitting around looking at C code all day
> trying to find bugs created by the linux macros with assembler output
> that does not map precisely to the C code. I discovered this grepping
> around in the assembler output of these macro H libs.
>

In other words folks who sit around staring at C code all day looking
for bugs instead of looking at what the compiler output in assembler
are not going to have a clue as to what is busted in their C code. I
worked on a bug for days with tglx that turned out to be a stupid
signed variable declaration outputing a sar instruction instead of a
shr. 6 years it was in linux and all the code reviews failed to catch
it. An assembly language debugger went right to it and it was nailed
shortly thereafter. Of course I had to endure lashing comments from
several folks who were in denial mode and wouldn't accept a simple
patch to just fix the damn thing -- finally someone reported it on
sparc and it got fixed -- amazing.

Jeff