This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] dwarf2-frame.c sign extension patch


   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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]