[RFA] dwarf2-frame.c sign extension patch

Mark Kettenis kettenis@chello.nl
Wed Jul 21 20:30:00 GMT 2004


   From: "Martin M. Hunt" <hunt@redhat.com>
   Date: Tue, 20 Jul 2004 12:11:25 -0700

   This patch fixes some dwarf2 problems with sign-extension.

   2004-07-20  Kevin Buettner and Martin Hunt  <hunt@redhat.com>

	   * dwarf2-frame.c (execute_cfa_program): Fix typo in which the
	   alignment was being added to the offset instead of multiplied.

This is unrelated to the rest of the changes.  Please make this a
seperate commit.  Consider that one pre-approved.

	   (struct comp_unit): Add new field ``signed_addr_p''.

	   (encoding_for_size): Add new parameter ``signed_addr_p''. 
	   Adjust all callers.  Add code for handling signed encodings.

	   (dwarf2_build_frame_info): Initialize ``unit.signed_addr_p''.

These are all related, so there shouldn't be any blank lines between
them.  The formatting of your changes to encoding_for_size() is wrong.
Please re-indent the exitsing return()-lines.  Or perhaps it's better
to use:

  return signed_addr_p ? DW_EH_PE_sdata4 : DW_EH_PE_udata4;

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

Mark



More information about the Gdb-patches mailing list