On 14 May 2007 19:28, Mike Stump wrote:

> I'm seeing:
> 
> ../../gcc/gcc/dwarf2out.c: In function ‘print_die’:
> ../../gcc/gcc/dwarf2out.c:5772: error: format ‘%4lu’ expects type
> ‘long unsigne
> d int’, but argument 3 has type ‘dw_offset’
> ../../gcc/gcc/dwarf2out.c:5775: error: format ‘%lu’ expects type ‘long
> unsigned
>   int’, but argument 3 has type ‘dw_offset’
> ../../gcc/gcc/dwarf2out.c:5823: error: format ‘%lu’ expects type ‘long
> unsigned
>   int’, but argument 3 has type ‘dw_offset’
> ../../gcc/gcc/dwarf2out.c: In function ‘output_die’:
> ../../gcc/gcc/dwarf2out.c:7094: error: format ‘%lx’ expects type ‘long
> unsigned
>   int’, but argument 3 has type ‘dw_offset’
> ../../gcc/gcc/dwarf2out.c:7276: error: format ‘%lx’ expects type ‘long
> unsigned
>   int’, but argument 4 has type ‘dw_offset’
> make[3]: *** [dwarf2out.o] Error 1
> make[3]: *** Waiting for unfinished jobs....
> rm gcc.pod
> make[2]: *** [all-stage2-gcc] Error 2
> make[1]: *** [stage2-bubble] Error 2
> 
> currently.  :-(  Anyone else seeing it? 

  Well, it looks like this must be what Aaron was referring to in his previous
somewhat mysterious post!

> If I do this:
> 
> Doing diffs in dwarf2out.c.~1~:
> --- dwarf2out.c.~1~   2007-05-02 14:59:45.000000000 -0700
> +++ dwarf2out.c       2007-05-14 11:08:03.000000000 -0700
> @@ -3697,7 +3697,7 @@ const struct gcc_debug_hooks dwarf2_debu
>   /* Various DIE's use offsets relative to the beginning of the
>      .debug_info section to refer to each other.  */
> 
> -typedef long int dw_offset;
> +typedef unsigned long int dw_offset;
> 
>   /* Define typedefs here to avoid circular dependencies.  */
> 
> --------------
> 
> it gets farther.  Anyone want to claim this is obvious?  I glanced at
> the code and it seems reasonable.

  It's hard to see how an 'offset relative to the beginning of [ ... any,
actually ... ] section' could ever usefully or meaningfully be zero.
Particularly since ...

#ifdef DWARF2_DEBUGGING_INFO
/* This location is used by calc_die_sizes() to keep track
   the offset of each DIE within the .debug_info section.  */
static unsigned long next_die_offset;
#endif

...it's unsigned here.


    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....

Reply via email to