This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [OB] Fix xcoffread.c build error
On Thu, May 19, 2011 at 17:59, Pedro Alves <pedro@codesourcery.com> wrote:
> On Thursday 19 May 2011 07:56:00, Hui Zhu wrote:
>> gcc -g -O2 ? -I. -I../../src/gdb -I../../src/gdb/common
>> -I../../src/gdb/config -DLOCALEDIR="\"/usr/local/share/locale\""
>> -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 -Ignulib
>> -DMI_OUT=1 -DTUI=1 -DGDBTK ?-Wall -Wdeclaration-after-statement
>> -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused
>> -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts
>> -Werror -c -o xcoffread.o -MT xcoffread.o -MMD -MP -MF
>> .deps/xcoffread.Tpo ../../src/gdb/xcoffread.c
>> cc1: warnings being treated as errors
>> ../../src/gdb/xcoffread.c: In function 'xcoff_psymtab_to_symtab_1':
>> ../../src/gdb/xcoffread.c:964:25: error:
>> 'fcn_aux_saved$x_sym$x_misc$x_fsize' may be used uninitialized in this
>> function
>> make[2]: *** [xcoffread.o] Error 1
>> make[2]: Leaving directory `/home/teawater/gdb/cvs/ba/gdb'
>> make[1]: *** [all-gdb] Error 2
>> make[1]: Leaving directory `/home/teawater/gdb/cvs/ba'
>> make: *** [all] Error 2
>>
>> 2011-05-19 ?Hui Zhu ?<teawater@gmail.com>
>>
>> ? ? ? * xcoffread.c (read_xcoff_symtab): Initialize fcn_aux_saved.
>> ===================================================================
>> RCS file: /cvs/src/src/gdb/xcoffread.c,v
>> retrieving revision 1.87
>> retrieving revision 1.88
>> diff -u -r1.87 -r1.88
>> --- src/gdb/xcoffread.c ? ? ? 2011/04/19 14:33:09 ? ? 1.87
>> +++ src/gdb/xcoffread.c ? ? ? 2011/05/19 06:54:30 ? ? 1.88
>> @@ -961,7 +961,7 @@
>> ? ?struct coff_symbol fcn_stab_saved = { 0 };
>>
>> ? ?/* fcn_cs_saved is global because process_xcoff_symbol needs it. ?*/
>> - ?union internal_auxent fcn_aux_saved;
>> + ?union internal_auxent fcn_aux_saved = main_aux;
>
> Hmm? ?Initializing fcn_aux_saved with the also uninitialized
> main_aux makes the warning go away?
>
> This appears to be hiding a real bug.
>
>> ? ?struct context_stack *new;
>>
>> ? ?char *filestring = " _start_ "; ? ?/* Name of the current file. ?*/
>>
>
> --
> Pedro Alves
>
I am sorry that I just make it can be build but looks didn't fix it.
I checked all of this function:
while (symnum < max_symnum)
{
if ((cs->c_sclass == C_EXT || cs->c_sclass == C_HIDEXT)
&& cs->c_naux == 1)
{
bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->c_type, cs->c_sclass,
0, cs->c_naux, &main_aux);
case XTY_LD:
case XMC_PR:
fcn_aux_saved = main_aux;
case C_FCN:
else if (strcmp (cs->c_name, ".ef") == 0)
finish_block (new->name, &local_symbols, new->old_blocks,
new->start_addr,
(fcn_cs_saved.c_value
+ fcn_aux_saved.x_sym.x_misc.x_fsize
+ ANOFFSET (objfile->section_offsets,
SECT_OFF_TEXT (objfile))),
objfile);
Not sure I can fixed it or not. What about add a "fcn_aux_saved =
main_aux;" after "bfd_coff_swap_aux_in"?
Thanks,
Hui