RE: [RFA] Fix cygwin32 failure introduced by [patch] windows-nat.c: Fix offset problem in signal string handling

Pierre Muller
2013-03-27T08:54:48Z

Hi Eli,

> > ChangeLog entry:
> >
> > 2013-03-26 Pierre Muller <muller@sourceware.org>
> >
> > * windows-nat.c (handle_output_debug_string): Avoid typecast
> > from integer of different size warning.
> >
> >
> > Index: windows-nat.c
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/windows-nat.c,v
> > retrieving revision 1.245
> > diff -u -p -r1.245 windows-nat.c
> > --- windows-nat.c 23 Mar 2013 10:48:23 -0000 1.245
> > +++ windows-nat.c 26 Mar 2013 21:39:57 -0000
> > @@ -990,7 +990,7 @@ handle_output_debug_string (struct targe
> > retval = strtoul (p, &p, 0);
> > if (!retval)
> > retval = main_thread_id;
> > - else if ((x = (LPCVOID) strtoull (p, NULL, 0))
> > + else if ((x = (LPCVOID) (uintptr_t) strtoull (p, NULL, 0))
> > && ReadProcessMemory (current_process_handle, x,
> > &saved_context,
> > __COPY_CONTEXT_SIZE, &n)
>
> Is the cast to LPCVOID really needed? What if you drop it (and not
> add the cast to uintptr_t)?

Without any cast, I get this warning:
gcc -gstabs+ -O0 -I. -I../../src/gdb -I../../src/gdb/common
-I../../src/gdb/config -DLOCALEDIR="\"/usr/local/share/l
ocale\"" -DHAVE_CONFIG_H -I../../src/gdb/../include/opcode
-I../../src/gdb/../opcodes/.. -I../../src/gdb/../readline/..
-I../bfd -I../../src/gdb/../bfd -I../../src/gdb/../include
-I../libdecnumber -I../../src/gdb/../libdecnumber -I../../
src/gdb/gnulib/import -Ibuild-gnulib/import -DTUI=1
-I/usr/include/python2.7 -I/usr/include/python2.7 -Wall -Wdeclara
tion-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign
-Wno-unused -Wunused-value -Wunused-function
-Wno-switch -Wno-char-subscripts -Wmissing-prototypes
-Wdeclaration-after-statement -Wempty-body -Werror -c -o windows-n
at.o -MT windows-nat.o -MMD -MP -MF .deps/windows-nat.Tpo
../../src/gdb/windows-nat.c
cc1: warnings being treated as errors
../../src/gdb/windows-nat.c: In function 'handle_output_debug_string':
../../src/gdb/windows-nat.c:993:16: erreur: assignment makes pointer from
integer without a cast
Makefile:972: recipe for target `windows-nat.o' failed
make: *** [windows-nat.o] Error 1

Thus, I will commit the patch I proposed as Corinna already approved it.

Pierre Muller