This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Avoid implicit float <-> integer conversion warnings
- From: Simon Marchi <simon dot marchi at ericsson dot com>
- To: Pedro Alves <palves at redhat dot com>, <gdb-patches at sourceware dot org>
- Date: Wed, 13 Apr 2016 15:50:06 -0400
- Subject: Re: [PATCH] Avoid implicit float <-> integer conversion warnings
- Authentication-results: sourceware.org; auth=none
- References: <1460574354-21671-1-git-send-email-palves at redhat dot com>
On 16-04-13 03:05 PM, Pedro Alves wrote:
> On:
>
> $ uname -a
> NetBSD gcc70.fsffrance.org 5.1 NetBSD 5.1 (GENERIC) #0: Sat Nov 6 13:19:33 UTC 2010 builds@b6.netbsd.org:/home/builds/ab/netbsd-5-1-RELEASE/amd64/201011061943Z-obj/home/builds/ab/netbsd-5-1-RELEASE/src/sys/arch/amd64/compile/GENERIC amd64
>
> With:
>
> $ g++ -v
> Using built-in specs.
> Target: x86_64--netbsd
> Configured with: /usr/src/tools/gcc/../../gnu/dist/gcc4/configure --enable-long-long --disable-multilib --enable-threads --disable-symvers --build=x86_64-unknown-netbsd4.99.72 --host=x86_64--netbsd --target=x86_64--netbsd --enable-__cxa_atexit
> Thread model: posix
> gcc version 4.1.3 20080704 prerelease (NetBSD nb2 20081120)
>
> I saw:
>
> ../../src/gdb/ada-typeprint.c: In function 'void print_fixed_point_type(type*, ui_file*)':
> ../../src/gdb/ada-typeprint.c:366: warning: passing 'float' for argument 2 to 'DOUBLEST ada_fixed_to_float(type*, LONGEST)'
>
> ../../src/gdb/value.c: In function 'LONGEST unpack_long(type*, const gdb_byte*)':
> ../../src/gdb/value.c:2833: warning: converting to 'LONGEST' from 'DOUBLEST'
> ../../src/gdb/value.c:2838: warning: converting to 'LONGEST' from 'DOUBLEST'
>
> gdb/ChangeLog:
> yyyy-mm-yy Pedro Alves <palves@redhat.com>
>
> * ada-typeprint.c (print_fixed_point_type): Don't pass float as
> argument to function expecting LONGEST.
> * value.c (unpack_long): Add casts to LONGEST.
> ---
> gdb/ada-typeprint.c | 2 +-
> gdb/value.c | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/gdb/ada-typeprint.c b/gdb/ada-typeprint.c
> index 065fbd3..d7a8360 100644
> --- a/gdb/ada-typeprint.c
> +++ b/gdb/ada-typeprint.c
> @@ -363,7 +363,7 @@ static void
> print_fixed_point_type (struct type *type, struct ui_file *stream)
> {
> DOUBLEST delta = ada_delta (type);
> - DOUBLEST small = ada_fixed_to_float (type, 1.0);
> + DOUBLEST small = ada_fixed_to_float (type, 1);
>
> if (delta < 0.0)
> fprintf_filtered (stream, "delta ??");
> diff --git a/gdb/value.c b/gdb/value.c
> index 5aeed02..9657b89 100644
> --- a/gdb/value.c
> +++ b/gdb/value.c
> @@ -2914,12 +2914,12 @@ unpack_long (struct type *type, const gdb_byte *valaddr)
> return extract_signed_integer (valaddr, len, byte_order);
>
> case TYPE_CODE_FLT:
> - return extract_typed_floating (valaddr, type);
> + return (LONGEST) extract_typed_floating (valaddr, type);
>
> case TYPE_CODE_DECFLOAT:
> /* libdecnumber has a function to convert from decimal to integer, but
> it doesn't work when the decimal number has a fractional part. */
> - return decimal_to_doublest (valaddr, len, byte_order);
> + return (LONGEST) decimal_to_doublest (valaddr, len, byte_order);
>
> case TYPE_CODE_PTR:
> case TYPE_CODE_REF:
>
LGTM.