This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RFA: fix warning building spu-tdep.c


I got this error while building gdb cvs on x86 F11 yesterday:

../../src/gdb/spu-tdep.c: In function âspu_gdbarch_idâ:
../../src/gdb/spu-tdep.c:362: error: overflow in implicit constant conversion
../../src/gdb/spu-tdep.c: In function âgdb_print_insn_spuâ:
../../src/gdb/spu-tdep.c:1597: error: overflow in implicit constant conversion
../../src/gdb/spu-tdep.c: In function âspu_overlay_update_osectâ:
../../src/gdb/spu-tdep.c:1739: error: large integer implicitly truncated to unsigned type

The problem is that CORE_ADDR is 4 bytes here, but LONGEST is 8.

The fix is to change SPUADDR_SPU to cast its result to CORE_ADDR.  This
seems to be what is expected -- but, some places use int while others
use CORE_ADDR, so I did not want to commit this without review from
someone who knows the intent of this macro.

Tom

2009-08-04  Tom Tromey  <tromey@redhat.com>

	* spu-tdep.h (SPUADDR_SPU): Cast result to CORE_ADDR.

Index: spu-tdep.h
===================================================================
RCS file: /cvs/src/src/gdb/spu-tdep.h,v
retrieving revision 1.7
diff -u -r1.7 spu-tdep.h
--- spu-tdep.h	31 Jul 2009 15:28:27 -0000	1.7
+++ spu-tdep.h	4 Aug 2009 14:48:10 -0000
@@ -54,7 +54,9 @@
 #define SPUADDR(spu, addr) \
   ((spu) != -1? (ULONGEST)1 << 63 | (ULONGEST)(spu) << 32 | (addr) : (addr))
 #define SPUADDR_SPU(addr) \
-  (((addr) & (ULONGEST)1 << 63)? (ULONGEST)(addr) >> 32 & 0x7fffffff : -1)
+  (((addr) & (ULONGEST)1 << 63) \
+   ? (CORE_ADDR) ((ULONGEST)(addr) >> 32 & 0x7fffffff) \
+   : -1)
 #define SPUADDR_ADDR(addr) \
   (((addr) & (ULONGEST)1 << 63)? (ULONGEST)(addr) & 0xffffffff : (addr))
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]