This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Location lists, with dwarf 2.1 support
- To: Daniel Berlin <dan at www dot cgsoftware dot com>
- Subject: Re: [PATCH] Location lists, with dwarf 2.1 support
- From: Jason Merrill <jason_merrill at redhat dot com>
- Date: 25 Apr 2001 16:22:32 +0100
- Cc: <gcc-patches at gcc dot gnu dot org>
- References: <Pine.LNX.4.33.0104241230420.31541-100000@www.cgsoftware.com>
>>>>> "Daniel" == Daniel Berlin <dan@www.cgsoftware.com> writes:
> I didn't check in the old version, since 2.1 support forces a change to
> the interface of the loc list createion stuff (So you can specify the
> section to base the addresses on).
I think that should be "label", not "section". The section pseudo-symbols
are just a special case. I think this is just a matter of changing names
and comments.
> + /*FIXME: 0xffffffff should be the max address representable, so on 64 bit machines, this is wrong. */
> + dw2_asm_output_data (DWARF2_ADDR_SIZE, 0xffffffff, "Location list base address specifier fake entry");
This is easy to fix; please do. Also, please wrap your lines.
> *************** output_die (die)
> *** 5770,5776 ****
> case dw_val_class_flag:
> dw2_asm_output_data (1, AT_flag (a), "%s", name);
> break;
> !
> case dw_val_class_die_ref:
> if (AT_ref_external (a))
> {
> --- 5921,5934 ----
> case dw_val_class_flag:
> dw2_asm_output_data (1, AT_flag (a), "%s", name);
> break;
> ! case dw_val_class_loc_list:
> ! {
Typo.
> *************** output_aranges ()
> *** 6037,6043 ****
> dw_attr_ref a = get_AT (die, DW_AT_location);
> dw_loc_descr_ref loc;
> ! if (! a || AT_class (a) != dw_val_class_loc)
> abort ();
> loc = AT_loc (a);
> --- 6192,6198 ----
> dw_attr_ref a = get_AT (die, DW_AT_location);
> dw_loc_descr_ref loc;
> ! if (! a || (AT_class (a) != dw_val_class_loc ))
> abort ();
Typo (extra space before paren).
> *************** dwarf2out_init (asm_out_file, main_input
> *** 11016,11022 ****
> register const char *main_input_filename;
> {
> init_file_table ();
> !
> /* Remember the name of the primary input file. */
> primary_filename = main_input_filename;
> --- 11183,11189 ----
> register const char *main_input_filename;
> {
> init_file_table ();
> ! have_location_lists = 0;
> /* Remember the name of the primary input file. */
> primary_filename = main_input_filename;
This is unnecessary; since it's at file scope, it's initialized to 0 already.
> *************** dwarf2out_init (asm_out_file, main_input
> *** 11045,11050 ****
> --- 11212,11218 ----
> /* Zero-th entry is allocated, but unused */
> abbrev_die_table_in_use = 1;
> +
> /* Allocate the initial hunk of the line_info_table. */
> line_info_table
> = (dw_line_info_ref) xcalloc (LINE_INFO_TABLE_INCREMENT,
Typo?
Jason