This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


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

Re: [PATCH] Location lists, with dwarf 2.1 support


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


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