[RFA] dwarf2-frame.c sign extension patch

Daniel Jacobowitz drow@false.org
Wed Jul 21 21:18:00 GMT 2004


The rest I have no comment on, but this issue I know...

On Wed, Jul 21, 2004 at 10:29:43PM +0200, Mark Kettenis wrote:
> 	   (dwarf2_build_frame_info): Set unit.addr_size.
> 
> Why is the old code wrong?  The comment clearly says "from unit
> header" which is what the DWARF standard says (or at least implies).
> Theoretically it could change from compilation unit to compilation
> unit.  So I think your change to replace it by
> TYPE_LENGTH(builtin_type_void_data_ptr) is wrong.

The old code doesn't do it from the compilation unit header either:
-  unit.addr_size = objfile->obfd->arch_info->bits_per_address / 8;
+  unit.addr_size = TYPE_LENGTH (builtin_type_void_data_ptr);

Any use of bits_per_address, IMO, is a bug.  Take a look at how this
field is set on MIPS; it's based on the architecture, not the ABI or
the pointer size or the dwarf address size or anything like that.

TYPE_LENGTH doesn't seem like an ideal replacement.  Can we use the
value in the compilation unit header here?

-- 
Daniel Jacobowitz



More information about the Gdb-patches mailing list