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....