Re: [PATCH OBV] Add nowarnings in gdb.base/fileio.exp

Pedro Alves
2017-05-18T11:51:45Z

On 05/18/2017 12:30 PM, Yao Qi wrote:
> Pedro Alves <palves@redhat.com> writes:
>
>> I don't think so. I think that'd be the equivalent of saying that we
>> don't support debugging target code built with gcc versions earlier
>> than 4.6. That's a totally different discussion from the discussion
>> about requirements for building gdb.
>
> That is what I meant by "require gcc 4.6 to run testsuite". If we use
> such diagnostic in tests, we need gcc 4.6 or later to compile gdb test
> cases.

Right, and I was replying to your "I am OK with this requirement."
by explaining why I don't think it's an OK requirement.

I knew that "#pragma GCC diagnostics ignored -Wwhatever" ignores
unknown warnings, and I thought that older GCCs just ignored
unknown #pragmas, but that's not actually true -- I tried it with
gcc 3, and "-Wall" makes it warn about unrecognized pragmas.

So I got confused for a while when you said the "diagnostic" was added
in gcc 4.6. The warning (the diagnostic) is much older than gcc 4.6.
What I think was added in gcc 4.6 was "#pragma GCC diagnostic push/pop".
This means that we wrap the "#pragma GCC diagnostic ignore" under
a gcc 4.6 check, we'd still get a warning with older compilers.
Only with -Wall though, so maybe it was still OK.

BTW, what compiler are you testing with that enables -Wnonnull by default?

>> How about an even simpler fix: pass a global pointer variable that
>> happens to be NULL to stat, instead of a NULL literal. The compiler can't
>> prove (without LTO) that the variable may still be NULL, so it doesn't
>> warn. Works on all compilers I tried it on: gcc 3.4/5.3/7, clang 3.7.
>>
>> Let me send a mini series in reply to this email, which does that,
>> and also fixes a few other warnings that compiling the fileio.c with
>> -Wall exposes.
>
> These three patches are good to me.

I'll push them in in a bit.

Thanks,
Pedro Alves