[PATCH 1/1] gdb, testsuite: Adapt gdb.base/callfuncs.exp for new clang warnings.

Andrew Burgess aburgess@redhat.com
Mon Jul 18 13:37:29 GMT 2022


"Willgerodt, Felix via Gdb-patches" <gdb-patches@sourceware.org> writes:

>> -----Original Message-----
>> From: Bruno Larsen <blarsen@redhat.com>
>> Sent: Mittwoch, 8. Juni 2022 14:59
>> To: Willgerodt, Felix <felix.willgerodt@intel.com>; gdb-
>> patches@sourceware.org
>> Subject: Re: [PATCH 1/1] gdb, testsuite: Adapt gdb.base/callfuncs.exp for
>> new clang warnings.
>> 
>> 
>> On 6/8/22 04:17, Felix Willgerodt via Gdb-patches wrote:
>> > This patch fixes two issues with callfuncs.exp, which are both related
>> > to new Clang warnings:
>> 
>> Hi Felix!
>> 
>> Thanks for this!
>> 
>> >
>> > 1) Clang 15.0.0 added a new warning for deprecated non-prototype
>> functions:
>> > https://reviews.llvm.org/D122895
>> > Callfuncs.exp is impacted and won't run due to new warnings:
>> >
>> > callfuncs.c:339:5: warning: a function declaration without a prototype is
>> > deprecated in all versions of C and is not supported in C2x
>> > [-Wdeprecated-non-prototype]
>> > int t_float_values (float_arg1, float_arg2)
>> >
>> > This patch disables those warnings with -Wno-deprecated-non-prototype.
>> > Removing the test for deprecated syntax would also be an option. But I will
>> > leave that for others to decide.
>> 
>> I like your solution with -Wno-deprecated-non-prototype.
>> 
>> I think it is important (at least for now) to keep this test, since we have to
>> support very old setups.
>> 
>> >
>> > 2) The other new warnings are about comparing a define with floats and
>> doubles:
>> >
>> > callfuncs.c:518:1: warning: floating-point comparison is always true;
>> constant
>> > cannot be represented exactly in type 'float' [-Wliteral-range]
>> > DEF_FUNC_VALUES_3(fc, float, crealf, cimagf)
>> >
>> > This can be fixed by making the define a float.
>> 
>> Genuine question, would this not cause a problem for the times where the
>> parameters are doubles and DELTA is a float? If it isn't a problem, I'm fine
>> with this.
>> 
>
> I was wondering about that as well, but it still passes with GCC, clang and Intel
> compilers and there are no compiler warnings about it.
> I couldn't really figure it out if it would actually a problem somewhere. I could only
> test on linux x86 though. My best guess was, as it is the "smaller precision" the
> compiler will do the right thing.

Indeed, my understanding of type promotion is that the compiler will
promote the float argument to double or long double as needed.

But then, prior to this patch, when DELTA was just (0.001), and would be
considered a double, I would have expected, in any comparison between a
float and DELTA, for the float to be converted to double, so I don't
really understand that part of the original patch.

Thanks,
Andrew

>                                    But we could always add a DELTA that is double
> as well. Hopefully someone else can chime in.



More information about the Gdb-patches mailing list