Avoid implicit float <-> integer conversion warnings

Message ID 1460574354-21671-1-git-send-email-palves@redhat.com
State New, archived
Headers

Commit Message

Pedro Alves April 13, 2016, 7:05 p.m. UTC
  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(-)
  

Comments

Simon Marchi April 13, 2016, 7:50 p.m. UTC | #1
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.
  
Pedro Alves April 14, 2016, noon UTC | #2
On 04/13/2016 08:50 PM, Simon Marchi wrote:

> LGTM.
> 

Pushed.

Thanks,
Pedro Alves
  

Patch

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: