dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
/* Declarations and definitions of codes relating to the DWARF2 and
|
|
|
|
|
DWARF3 symbolic debugging information formats.
|
2004-10-06 22:27:15 +02:00
|
|
|
|
Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
|
final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
* final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
Call var_location debug hook even on CALL_INSNs.
(rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
* rtl.def (ENTRY_VALUE): New.
* dwarf2out.c: Include cfglayout.h.
(dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
(struct call_arg_loc_node): New type.
(call_arg_locations, call_arg_loc_last, block_map, call_site_count,
tail_call_site_count): New variables.
(dwarf_tag_name): Handle DW_TAG_GNU_call_site and
DW_TAG_GNU_call_site_parameter.
(dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
and DW_AT_GNU_all_source_call_sites.
(mem_loc_descriptor): Handle ENTRY_VALUE.
(add_src_coords_attributes): Don't add enything if
DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
(dwarf2out_abstract_function): Save and clear call_arg_location,
call_site_count and tail_call_site_count around dwarf2out_decl call.
(gen_call_site_die): New function.
(gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
(gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
(dwarf2out_function_decl): Clear call_arg_locations,
call_arg_loc_last, set call_site_count and tail_call_site_count
to -1 and free block_map.
(dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
followed by any real instructions.
(dwarf2out_begin_function): Set call_site_count and
tail_call_site_count to 0.
(resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
attempt to force a DIE for it and worst case remove the attribute.
(resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
the decl itself.
* var-tracking.c: Include tm_p.h.
(vt_stack_adjustments): For calls call note_register_arguments.
(argument_reg_set): New variable.
(add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
ensure the VALUE is resolved.
(call_arguments): New variable.
(prepare_call_arguments): New function.
(add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
(struct expand_loc_callback_data): Add ignore_cur_loc field.
(vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
always use the best expression.
(vt_expand_loc): Add ignore_cur_loc argument.
(vt_expand_loc_dummy): Clear ignore_cur_loc field.
(emit_note_insn_var_location): Adjust vt_expand_loc callers.
(emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
note for all calls.
(vt_add_function_parameter): Use cselib_lookup_from_insn.
If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
argument. Don't call cselib_preserve_only_values and
cselib_reset_table.
(note_register_arguments): New function.
(vt_initialize): Compute argument_reg_set. Call
vt_add_function_parameters before processing basic blocks instead of
afterwards. For calls call prepare_call_arguments before calling
cselib_process_insn.
* print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
* Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
(var-tracking.o): Depend on $(TM_P_H).
* cfglayout.h (insn_scope): New prototype.
* gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
* cfglayout.c (insn_scope): No longer static.
* insn-notes.def (CALL_ARG_LOCATION): New.
* calls.c (expand_call, emit_library_call_value_1): Put USEs for
MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
* integrate.c (set_block_origin_self, set_block_abstract_flags): Do
nothing for DECL_EXTERNAL BLOCK_VARS.
cp/
* cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
DECL_LANG_SPECIFIC is NULL.
include/
* dwarf2.h (DW_TAG_GNU_call_site, DW_TAG_GNU_call_site_parameter,
DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered,
DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites,
DW_AT_GNU_all_call_sites,, DW_AT_GNU_all_source_call_sites,
DW_OP_GNU_entry_value): New.
From-SVN: r171033
2011-03-16 09:32:13 +01:00
|
|
|
|
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
2010-04-06 09:37:37 +02:00
|
|
|
|
Free Software Foundation, Inc.
|
2002-01-29 00:23:26 +01:00
|
|
|
|
|
|
|
|
|
Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
|
2003-01-18 03:26:43 +01:00
|
|
|
|
Office (AJPO), Florida State University and Silicon Graphics Inc.
|
2002-01-29 00:23:26 +01:00
|
|
|
|
provided support for this effort -- June 21, 1995.
|
|
|
|
|
|
|
|
|
|
Derived from the DWARF 1 implementation written by Ron Guilmette
|
|
|
|
|
(rfg@netcom.com), November 1990.
|
1996-07-19 02:26:36 +02:00
|
|
|
|
|
2004-10-06 22:27:15 +02:00
|
|
|
|
This file is part of GCC.
|
1999-01-11 14:43:27 +01:00
|
|
|
|
|
2004-10-06 22:27:15 +02:00
|
|
|
|
GCC is free software; you can redistribute it and/or modify it under
|
|
|
|
|
the terms of the GNU General Public License as published by the Free
|
2007-07-26 10:37:01 +02:00
|
|
|
|
Software Foundation; either version 3, or (at your option) any later
|
2004-10-06 22:27:15 +02:00
|
|
|
|
version.
|
1999-01-11 14:43:27 +01:00
|
|
|
|
|
2004-10-06 22:27:15 +02:00
|
|
|
|
GCC is distributed in the hope that it will be useful, but WITHOUT
|
|
|
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
|
|
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
|
|
|
|
License for more details.
|
1999-01-11 14:43:27 +01:00
|
|
|
|
|
2009-04-09 17:00:19 +02:00
|
|
|
|
Under Section 7 of GPL version 3, you are granted additional
|
|
|
|
|
permissions described in the GCC Runtime Library Exception, version
|
|
|
|
|
3.1, as published by the Free Software Foundation.
|
|
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License and
|
|
|
|
|
a copy of the GCC Runtime Library Exception along with this program;
|
|
|
|
|
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
2007-07-26 10:37:01 +02:00
|
|
|
|
<http://www.gnu.org/licenses/>. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
|
|
|
|
|
/* This file is derived from the DWARF specification (a public document)
|
|
|
|
|
Revision 2.0.0 (July 27, 1993) developed by the UNIX International
|
|
|
|
|
Programming Languages Special Interest Group (UI/PLSIG) and distributed
|
|
|
|
|
by UNIX International. Copies of this specification are available from
|
2002-01-29 00:23:26 +01:00
|
|
|
|
UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
|
|
|
|
|
|
2009-06-30 02:02:10 +02:00
|
|
|
|
This file also now contains definitions from the DWARF 3 specification
|
|
|
|
|
published Dec 20, 2005, available from: http://dwarf.freestandards.org. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
|
1997-11-14 02:41:19 +01:00
|
|
|
|
/* This file is shared between GCC and GDB, and should not contain
|
|
|
|
|
prototypes. */
|
|
|
|
|
|
2011-02-23 09:57:49 +01:00
|
|
|
|
#ifndef _DWARF2_H
|
|
|
|
|
#define _DWARF2_H
|
2004-10-06 22:27:15 +02:00
|
|
|
|
|
1996-07-19 02:26:36 +02:00
|
|
|
|
/* Tag names and codes. */
|
|
|
|
|
enum dwarf_tag
|
|
|
|
|
{
|
|
|
|
|
DW_TAG_padding = 0x00,
|
|
|
|
|
DW_TAG_array_type = 0x01,
|
|
|
|
|
DW_TAG_class_type = 0x02,
|
|
|
|
|
DW_TAG_entry_point = 0x03,
|
|
|
|
|
DW_TAG_enumeration_type = 0x04,
|
|
|
|
|
DW_TAG_formal_parameter = 0x05,
|
|
|
|
|
DW_TAG_imported_declaration = 0x08,
|
|
|
|
|
DW_TAG_label = 0x0a,
|
|
|
|
|
DW_TAG_lexical_block = 0x0b,
|
|
|
|
|
DW_TAG_member = 0x0d,
|
|
|
|
|
DW_TAG_pointer_type = 0x0f,
|
|
|
|
|
DW_TAG_reference_type = 0x10,
|
|
|
|
|
DW_TAG_compile_unit = 0x11,
|
|
|
|
|
DW_TAG_string_type = 0x12,
|
|
|
|
|
DW_TAG_structure_type = 0x13,
|
|
|
|
|
DW_TAG_subroutine_type = 0x15,
|
|
|
|
|
DW_TAG_typedef = 0x16,
|
|
|
|
|
DW_TAG_union_type = 0x17,
|
|
|
|
|
DW_TAG_unspecified_parameters = 0x18,
|
|
|
|
|
DW_TAG_variant = 0x19,
|
|
|
|
|
DW_TAG_common_block = 0x1a,
|
|
|
|
|
DW_TAG_common_inclusion = 0x1b,
|
|
|
|
|
DW_TAG_inheritance = 0x1c,
|
|
|
|
|
DW_TAG_inlined_subroutine = 0x1d,
|
|
|
|
|
DW_TAG_module = 0x1e,
|
|
|
|
|
DW_TAG_ptr_to_member_type = 0x1f,
|
|
|
|
|
DW_TAG_set_type = 0x20,
|
|
|
|
|
DW_TAG_subrange_type = 0x21,
|
|
|
|
|
DW_TAG_with_stmt = 0x22,
|
|
|
|
|
DW_TAG_access_declaration = 0x23,
|
|
|
|
|
DW_TAG_base_type = 0x24,
|
|
|
|
|
DW_TAG_catch_block = 0x25,
|
|
|
|
|
DW_TAG_const_type = 0x26,
|
|
|
|
|
DW_TAG_constant = 0x27,
|
|
|
|
|
DW_TAG_enumerator = 0x28,
|
|
|
|
|
DW_TAG_file_type = 0x29,
|
|
|
|
|
DW_TAG_friend = 0x2a,
|
|
|
|
|
DW_TAG_namelist = 0x2b,
|
|
|
|
|
DW_TAG_namelist_item = 0x2c,
|
|
|
|
|
DW_TAG_packed_type = 0x2d,
|
|
|
|
|
DW_TAG_subprogram = 0x2e,
|
|
|
|
|
DW_TAG_template_type_param = 0x2f,
|
|
|
|
|
DW_TAG_template_value_param = 0x30,
|
|
|
|
|
DW_TAG_thrown_type = 0x31,
|
|
|
|
|
DW_TAG_try_block = 0x32,
|
|
|
|
|
DW_TAG_variant_part = 0x33,
|
|
|
|
|
DW_TAG_variable = 0x34,
|
|
|
|
|
DW_TAG_volatile_type = 0x35,
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* DWARF 3. */
|
2001-06-29 18:52:08 +02:00
|
|
|
|
DW_TAG_dwarf_procedure = 0x36,
|
|
|
|
|
DW_TAG_restrict_type = 0x37,
|
|
|
|
|
DW_TAG_interface_type = 0x38,
|
|
|
|
|
DW_TAG_namespace = 0x39,
|
|
|
|
|
DW_TAG_imported_module = 0x3a,
|
|
|
|
|
DW_TAG_unspecified_type = 0x3b,
|
|
|
|
|
DW_TAG_partial_unit = 0x3c,
|
|
|
|
|
DW_TAG_imported_unit = 0x3d,
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
DW_TAG_condition = 0x3f,
|
|
|
|
|
DW_TAG_shared_type = 0x40,
|
2009-07-20 23:00:52 +02:00
|
|
|
|
/* DWARF 4. */
|
|
|
|
|
DW_TAG_type_unit = 0x41,
|
Add rest of new values from DWARF Version 4.
include/
Add rest of new values from DWARF Version 4.
* dwarf2.h (DW_TAG_rvalue_reference_type, DW_TAG_template_alias):
New tags.
(DW_FORM_ref_sig8): New name for DW_FORM_sig8.
(DW_AT_main_subprogram, DW_AT_data_bit_offset, DW_AT_const_expr,
DW_AT_enum_class, DW_AT_linkage_name, DW_AT_GNU_guarded_by,
DW_AT_GNU_pt_guarded_by, DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded,
DW_AT_GNU_locks_excluded, DW_AT_GNU_exclusive_locks_required,
DW_AT_GNU_shared_locks_required, DW_AT_GNU_odr_signature): New
attributes.
(DW_LANG_Python): New language.
From-SVN: r152181
2009-09-25 20:33:04 +02:00
|
|
|
|
DW_TAG_rvalue_reference_type = 0x42,
|
|
|
|
|
DW_TAG_template_alias = 0x43,
|
2009-04-24 17:31:38 +02:00
|
|
|
|
|
|
|
|
|
DW_TAG_lo_user = 0x4080,
|
|
|
|
|
DW_TAG_hi_user = 0xffff,
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* SGI/MIPS Extensions. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
DW_TAG_MIPS_loop = 0x4081,
|
dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and DW_TAG_HP_Bliss_field_set.
2010-06-08 Tristan Gingold <gingold@adacore.com>
* dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and
DW_TAG_HP_Bliss_field_set.
(enum dwarf_attribute): Add DW_AT_HP_prologue, DW_AT_HP_epilogue,
DW_AT_HP_unit_name, DW_AT_HP_unit_size, DW_AT_HP_widened_byte_size,
DW_AT_HP_definition_points, DW_AT_HP_default_location and
DW_AT_HP_is_result_param.
(enum dwarf_type): Add DW_ATE_HP_VAX_float, DW_ATE_HP_VAX_float_d,
DW_ATE_HP_packed_decimal, DW_ATE_HP_zoned_decimal, DW_ATE_HP_edited,
DW_ATE_HP_signed_fixed, DW_ATE_HP_unsigned_fixed,
DW_ATE_HP_VAX_complex_float and DW_ATE_HP_VAX_complex_float_d.
(enum dwarf_line_number_x_ops): Add
DW_LNE_HP_source_file_correlation.
(enum dwarf_source_language): Add DW_LANG_HP_Bliss,
DW_LANG_HP_Basic91, DW_LANG_HP_Pascal91, DW_LANG_HP_IMacro,
DW_LANG_HP_Assembler.
From-SVN: r160430
2010-06-08 11:51:27 +02:00
|
|
|
|
|
2004-10-06 22:27:15 +02:00
|
|
|
|
/* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */
|
|
|
|
|
DW_TAG_HP_array_descriptor = 0x4090,
|
dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and DW_TAG_HP_Bliss_field_set.
2010-06-08 Tristan Gingold <gingold@adacore.com>
* dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and
DW_TAG_HP_Bliss_field_set.
(enum dwarf_attribute): Add DW_AT_HP_prologue, DW_AT_HP_epilogue,
DW_AT_HP_unit_name, DW_AT_HP_unit_size, DW_AT_HP_widened_byte_size,
DW_AT_HP_definition_points, DW_AT_HP_default_location and
DW_AT_HP_is_result_param.
(enum dwarf_type): Add DW_ATE_HP_VAX_float, DW_ATE_HP_VAX_float_d,
DW_ATE_HP_packed_decimal, DW_ATE_HP_zoned_decimal, DW_ATE_HP_edited,
DW_ATE_HP_signed_fixed, DW_ATE_HP_unsigned_fixed,
DW_ATE_HP_VAX_complex_float and DW_ATE_HP_VAX_complex_float_d.
(enum dwarf_line_number_x_ops): Add
DW_LNE_HP_source_file_correlation.
(enum dwarf_source_language): Add DW_LANG_HP_Bliss,
DW_LANG_HP_Basic91, DW_LANG_HP_Pascal91, DW_LANG_HP_IMacro,
DW_LANG_HP_Assembler.
From-SVN: r160430
2010-06-08 11:51:27 +02:00
|
|
|
|
DW_TAG_HP_Bliss_field = 0x4091,
|
|
|
|
|
DW_TAG_HP_Bliss_field_set = 0x4092,
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* GNU extensions. */
|
|
|
|
|
DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */
|
|
|
|
|
DW_TAG_function_template = 0x4102, /* For C++. */
|
|
|
|
|
DW_TAG_class_template = 0x4103, /* For C++. */
|
[multiple changes]
2000-08-28 Daniel Berlin <dberlin@redhat.com>
* dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
(print_die): If we don't know the offset of the
target die, try the symbol. Add a trailing newline.
(reverse_all_dies): New fn.
(dwarf2out_finish): Call it.
(break_out_includes): Reorganize for clarity.
(add_sibling_attributes): Don't call reverse_die_lists.
(output_comp_unit): Rename from output_comdat_comp_unit. Use for
primary CU, too.
* flags.h: Add flag_eliminate_dwarf2_dups.
* toplev.c (f_options): Support -feliminate-dwarf2-dups.
2000-08-28 Jason Merrill <jason@redhat.com>
* dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
* dwarf2out.c: #include "md5.h".
(DIE_LABEL_PREFIX): New macro.
(dw_val_struct): Add 'external' flag to val_die_ref.
(add_AT_die_ref, AT_ref): Adjust.
(AT_ref_external, set_AT_ref_external): New fns.
(build_abbrev_table): Call set_AT_ref_external.
(value_format): Call AT_ref_external.
(die_struct): Add die_symbol field.
(new_die): Clear it.
(dwarf_tag_name): Handle BINCL/EINCL.
(dwarf2out_start_source_file): Add BINCL DIE.
(dwarf2out_end_source_file): Add EINCL DIE.
(push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
(loc_checksum, attr_checksum, die_checksum): New fns.
(is_type_die, is_comdat_die, is_symbol_die): New fns.
(compute_section_prefix, assign_symbol_names): New fns.
(gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
(output_die): Call output_die_symbol and AT_ref_external.
(output_comdat_comp_unit): New fn, split out from...
(dwarf2out_finish): ...here. Also call add_sibling_attributes for
secondary CUs.
(output_pubnames, output_aranges): Abort if we see entries from
secondary CUs.
* toplev.h: Declare file_name_nondirectory.
* toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
(rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
(debug_start_source_file): Call dwarf2out_start_source_file
regardless of debug verbosity.
(debug_end_source_file): Similarly.
* tree.h: Declare clean_symbol_name.
* tree.c (clean_symbol_name): Split out from...
(get_file_function_name_long): ...here.
* dwarf2out.c (new_loc_descr): Use calloc.
(splice_child_die): Remove the die from the right parent.
(gen_struct_or_union_die): Don't add AT_name to a specification DIE.
gcc/cp:
2000-08-28 Jason Merrill <jason@redhat.com>
* lex.c (file_name_nondirectory): Move to toplev.c.
libiberty:
2000-08-28 Jason Merrill <jason@redhat.com>
* Makefile.in (REQUIRED_OFILES): Add md5.o.
(CFILES): Add md5.c.
* md5.c: New file.
include:
2000-08-28 Jason Merrill <jason@redhat.com>
* md5.h: New file.
gcc/cp:
2000-08-28 Jason Merrill <jason@redhat.com>
* cp-tree.h (LOCAL_CLASS_P): New macro.
* class.c (finish_struct_1): Use it.
From-SVN: r36022
2000-08-29 02:29:29 +02:00
|
|
|
|
DW_TAG_GNU_BINCL = 0x4104,
|
2004-10-06 22:27:15 +02:00
|
|
|
|
DW_TAG_GNU_EINCL = 0x4105,
|
Emit DWARF for template parameters (PR debug/30161)
ChangeLog:
PR debug/30161
* include/dwarf2.h (enum dwarf_tag): Added
DW_TAG_GNU_template_template_param
(enum dwarf_attribute): Added DW_AT_GNU_template_name.
gcc/ChangeLog:
PR debug/30161
* cgraph.h (cgraph_get_node): Declare ...
* cgraph.c (cgraph_get_node): ... new function.
* dwarf2out.c (gen_generic_params_dies,
generic_parameter_die, tree_add_const_value_attribute_for_decl,
make_ith_pack_parameter_name,
append_entry_to_tmpl_value_parm_die_table,
gen_remaining_tmpl_value_param_die_attribute): New functions.
(gen_subprogram_die): Generate debug info for template parameters
if debug info level is higher than DINFO_LEVEL_TERSE.
Use tree_add_const_value_attribute_for_decl instead of
tree_add_const_value_attribute.
(gen_const_die): Use tree_add_const_value_attribute_for_decl
instead of tree_add_const_value_attribute.
(gen_struct_or_union_type_die): Generate debug
info for template parameters if debug info level is higher than
DINFO_LEVEL_TERSE.
(tree_add_const_value_attribute): Handle integral and pointer
constants. Update comment.
(dwarf_tag_name): Support DW_TAG_GNU_template_template_param.
(dwarf_attr_name): Support DW_AT_GNU_template_name.
(reference_to_unused): Fix thinko. Remove redundant predicates from
tests.
(tree_add_const_value_attribute): Make this work for constant
expressions only.
tree_add_const_value_attribute_for_decl is to be used for variable
DECLs now.
(add_location_or_const_value_attribute): Use
tree_add_const_value_attribute_for_decl now.
(dwarf2out_finish): Emit the DW_AT_const_value attribute of
DW_TAG_template_value_param DIEs after function DIEs have been
emitted.
* langhooks.h (lang_hooks_for_types): Add
get_argument_pack_elems.
(lang_hooks_for_decls): Add generic_generic_parameter_decl_p.
(lang_hooks): Added get_innermost_generic_parms,
get_innermost_generic_args.
* langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks.
gcc/cp/ChangeLog:
PR debug/30161
* cp-tree.h (get_template_info): Parameter should be const.
(CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): Fix typo.
(get_template_argument_pack_elems,
get_primary_template_innermost_parameters,
get_template_innermost_arguments, template_template_parameter_p):
Declare ...
* pt.c (get_template_argument_pack_elems,
get_template_innermost_parameters, get_template_innermost_arguments,
template_template_parameter_p):
... New C++ front end implementation of new language hooks.
(primary_template_instantiation_p): New private helper.
(make_ith_pack_parameter_name): Use snprintf and strnlen instead of
printf and strlen.
(get_template_info): Const-ify parameter.
* cp-lang.c (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
LANG_HOOKS_GENERIC_TYPE_PARAMETER_DECL_P): Initialize these
interfaces for the C++ front-end.
gcc/testsuite/ChangeLog:
PR debug/30161
* g++.dg/debug/dwarf2/template-params-1.C: New test.
* g++.dg/debug/dwarf2/template-params-2.C: Likewise.
* g++.dg/debug/dwarf2/template-params-3.C: Likewise.
* g++.dg/debug/dwarf2/template-params-4.C: Likewise.
* g++.dg/debug/dwarf2/template-params-5.C: Likewise.
* g++.dg/debug/dwarf2/template-params-6.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-1.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-2.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-3.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-4.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-5.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-6.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-7.C: Likewise.
From-SVN: r151249
2009-08-31 23:48:04 +02:00
|
|
|
|
/* Template template parameter.
|
|
|
|
|
See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
|
|
|
|
|
DW_TAG_GNU_template_template_param = 0x4106,
|
2009-09-26 01:23:18 +02:00
|
|
|
|
|
|
|
|
|
/* Template parameter pack extension, specified at
|
|
|
|
|
http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
|
|
|
|
|
The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
|
|
|
|
|
are properly part of DWARF 5. */
|
|
|
|
|
DW_TAG_GNU_template_parameter_pack = 0x4107,
|
|
|
|
|
DW_TAG_GNU_formal_parameter_pack = 0x4108,
|
final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
* final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
Call var_location debug hook even on CALL_INSNs.
(rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
* rtl.def (ENTRY_VALUE): New.
* dwarf2out.c: Include cfglayout.h.
(dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
(struct call_arg_loc_node): New type.
(call_arg_locations, call_arg_loc_last, block_map, call_site_count,
tail_call_site_count): New variables.
(dwarf_tag_name): Handle DW_TAG_GNU_call_site and
DW_TAG_GNU_call_site_parameter.
(dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
and DW_AT_GNU_all_source_call_sites.
(mem_loc_descriptor): Handle ENTRY_VALUE.
(add_src_coords_attributes): Don't add enything if
DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
(dwarf2out_abstract_function): Save and clear call_arg_location,
call_site_count and tail_call_site_count around dwarf2out_decl call.
(gen_call_site_die): New function.
(gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
(gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
(dwarf2out_function_decl): Clear call_arg_locations,
call_arg_loc_last, set call_site_count and tail_call_site_count
to -1 and free block_map.
(dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
followed by any real instructions.
(dwarf2out_begin_function): Set call_site_count and
tail_call_site_count to 0.
(resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
attempt to force a DIE for it and worst case remove the attribute.
(resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
the decl itself.
* var-tracking.c: Include tm_p.h.
(vt_stack_adjustments): For calls call note_register_arguments.
(argument_reg_set): New variable.
(add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
ensure the VALUE is resolved.
(call_arguments): New variable.
(prepare_call_arguments): New function.
(add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
(struct expand_loc_callback_data): Add ignore_cur_loc field.
(vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
always use the best expression.
(vt_expand_loc): Add ignore_cur_loc argument.
(vt_expand_loc_dummy): Clear ignore_cur_loc field.
(emit_note_insn_var_location): Adjust vt_expand_loc callers.
(emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
note for all calls.
(vt_add_function_parameter): Use cselib_lookup_from_insn.
If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
argument. Don't call cselib_preserve_only_values and
cselib_reset_table.
(note_register_arguments): New function.
(vt_initialize): Compute argument_reg_set. Call
vt_add_function_parameters before processing basic blocks instead of
afterwards. For calls call prepare_call_arguments before calling
cselib_process_insn.
* print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
* Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
(var-tracking.o): Depend on $(TM_P_H).
* cfglayout.h (insn_scope): New prototype.
* gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
* cfglayout.c (insn_scope): No longer static.
* insn-notes.def (CALL_ARG_LOCATION): New.
* calls.c (expand_call, emit_library_call_value_1): Put USEs for
MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
* integrate.c (set_block_origin_self, set_block_abstract_flags): Do
nothing for DECL_EXTERNAL BLOCK_VARS.
cp/
* cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
DECL_LANG_SPECIFIC is NULL.
include/
* dwarf2.h (DW_TAG_GNU_call_site, DW_TAG_GNU_call_site_parameter,
DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered,
DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites,
DW_AT_GNU_all_call_sites,, DW_AT_GNU_all_source_call_sites,
DW_OP_GNU_entry_value): New.
From-SVN: r171033
2011-03-16 09:32:13 +01:00
|
|
|
|
/* The GNU call site extension, specified at
|
|
|
|
|
http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .
|
|
|
|
|
The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
|
|
|
|
|
are properly part of DWARF 5. */
|
|
|
|
|
DW_TAG_GNU_call_site = 0x4109,
|
|
|
|
|
DW_TAG_GNU_call_site_parameter = 0x410a,
|
2004-10-06 22:27:15 +02:00
|
|
|
|
/* Extensions for UPC. See: http://upc.gwu.edu/~upc. */
|
|
|
|
|
DW_TAG_upc_shared_type = 0x8765,
|
|
|
|
|
DW_TAG_upc_strict_type = 0x8766,
|
|
|
|
|
DW_TAG_upc_relaxed_type = 0x8767,
|
|
|
|
|
/* PGI (STMicroelectronics) extensions. No documentation available. */
|
|
|
|
|
DW_TAG_PGI_kanji_type = 0xA000,
|
|
|
|
|
DW_TAG_PGI_interface_block = 0xA020
|
1996-07-19 02:26:36 +02:00
|
|
|
|
};
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* Flag that tells whether entry has a child or not. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
#define DW_children_no 0
|
|
|
|
|
#define DW_children_yes 1
|
|
|
|
|
|
|
|
|
|
/* Form names and codes. */
|
|
|
|
|
enum dwarf_form
|
|
|
|
|
{
|
|
|
|
|
DW_FORM_addr = 0x01,
|
|
|
|
|
DW_FORM_block2 = 0x03,
|
|
|
|
|
DW_FORM_block4 = 0x04,
|
|
|
|
|
DW_FORM_data2 = 0x05,
|
|
|
|
|
DW_FORM_data4 = 0x06,
|
|
|
|
|
DW_FORM_data8 = 0x07,
|
|
|
|
|
DW_FORM_string = 0x08,
|
|
|
|
|
DW_FORM_block = 0x09,
|
|
|
|
|
DW_FORM_block1 = 0x0a,
|
|
|
|
|
DW_FORM_data1 = 0x0b,
|
|
|
|
|
DW_FORM_flag = 0x0c,
|
|
|
|
|
DW_FORM_sdata = 0x0d,
|
|
|
|
|
DW_FORM_strp = 0x0e,
|
|
|
|
|
DW_FORM_udata = 0x0f,
|
|
|
|
|
DW_FORM_ref_addr = 0x10,
|
|
|
|
|
DW_FORM_ref1 = 0x11,
|
|
|
|
|
DW_FORM_ref2 = 0x12,
|
|
|
|
|
DW_FORM_ref4 = 0x13,
|
|
|
|
|
DW_FORM_ref8 = 0x14,
|
|
|
|
|
DW_FORM_ref_udata = 0x15,
|
2009-07-20 23:00:52 +02:00
|
|
|
|
DW_FORM_indirect = 0x16,
|
|
|
|
|
/* DWARF 4. */
|
|
|
|
|
DW_FORM_sec_offset = 0x17,
|
|
|
|
|
DW_FORM_exprloc = 0x18,
|
|
|
|
|
DW_FORM_flag_present = 0x19,
|
Add rest of new values from DWARF Version 4.
include/
Add rest of new values from DWARF Version 4.
* dwarf2.h (DW_TAG_rvalue_reference_type, DW_TAG_template_alias):
New tags.
(DW_FORM_ref_sig8): New name for DW_FORM_sig8.
(DW_AT_main_subprogram, DW_AT_data_bit_offset, DW_AT_const_expr,
DW_AT_enum_class, DW_AT_linkage_name, DW_AT_GNU_guarded_by,
DW_AT_GNU_pt_guarded_by, DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded,
DW_AT_GNU_locks_excluded, DW_AT_GNU_exclusive_locks_required,
DW_AT_GNU_shared_locks_required, DW_AT_GNU_odr_signature): New
attributes.
(DW_LANG_Python): New language.
From-SVN: r152181
2009-09-25 20:33:04 +02:00
|
|
|
|
DW_FORM_ref_sig8 = 0x20
|
1996-07-19 02:26:36 +02:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* Attribute names and codes. */
|
|
|
|
|
enum dwarf_attribute
|
|
|
|
|
{
|
|
|
|
|
DW_AT_sibling = 0x01,
|
|
|
|
|
DW_AT_location = 0x02,
|
|
|
|
|
DW_AT_name = 0x03,
|
|
|
|
|
DW_AT_ordering = 0x09,
|
|
|
|
|
DW_AT_subscr_data = 0x0a,
|
|
|
|
|
DW_AT_byte_size = 0x0b,
|
|
|
|
|
DW_AT_bit_offset = 0x0c,
|
|
|
|
|
DW_AT_bit_size = 0x0d,
|
|
|
|
|
DW_AT_element_list = 0x0f,
|
|
|
|
|
DW_AT_stmt_list = 0x10,
|
|
|
|
|
DW_AT_low_pc = 0x11,
|
|
|
|
|
DW_AT_high_pc = 0x12,
|
|
|
|
|
DW_AT_language = 0x13,
|
|
|
|
|
DW_AT_member = 0x14,
|
|
|
|
|
DW_AT_discr = 0x15,
|
|
|
|
|
DW_AT_discr_value = 0x16,
|
|
|
|
|
DW_AT_visibility = 0x17,
|
|
|
|
|
DW_AT_import = 0x18,
|
|
|
|
|
DW_AT_string_length = 0x19,
|
|
|
|
|
DW_AT_common_reference = 0x1a,
|
|
|
|
|
DW_AT_comp_dir = 0x1b,
|
|
|
|
|
DW_AT_const_value = 0x1c,
|
|
|
|
|
DW_AT_containing_type = 0x1d,
|
|
|
|
|
DW_AT_default_value = 0x1e,
|
|
|
|
|
DW_AT_inline = 0x20,
|
|
|
|
|
DW_AT_is_optional = 0x21,
|
|
|
|
|
DW_AT_lower_bound = 0x22,
|
|
|
|
|
DW_AT_producer = 0x25,
|
|
|
|
|
DW_AT_prototyped = 0x27,
|
|
|
|
|
DW_AT_return_addr = 0x2a,
|
|
|
|
|
DW_AT_start_scope = 0x2c,
|
2007-12-09 18:08:06 +01:00
|
|
|
|
DW_AT_bit_stride = 0x2e,
|
2009-06-30 02:02:10 +02:00
|
|
|
|
#define DW_AT_stride_size DW_AT_bit_stride /* Note: The use of DW_AT_stride_size is deprecated. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
DW_AT_upper_bound = 0x2f,
|
|
|
|
|
DW_AT_abstract_origin = 0x31,
|
|
|
|
|
DW_AT_accessibility = 0x32,
|
|
|
|
|
DW_AT_address_class = 0x33,
|
|
|
|
|
DW_AT_artificial = 0x34,
|
|
|
|
|
DW_AT_base_types = 0x35,
|
|
|
|
|
DW_AT_calling_convention = 0x36,
|
|
|
|
|
DW_AT_count = 0x37,
|
|
|
|
|
DW_AT_data_member_location = 0x38,
|
|
|
|
|
DW_AT_decl_column = 0x39,
|
|
|
|
|
DW_AT_decl_file = 0x3a,
|
|
|
|
|
DW_AT_decl_line = 0x3b,
|
|
|
|
|
DW_AT_declaration = 0x3c,
|
|
|
|
|
DW_AT_discr_list = 0x3d,
|
|
|
|
|
DW_AT_encoding = 0x3e,
|
|
|
|
|
DW_AT_external = 0x3f,
|
|
|
|
|
DW_AT_frame_base = 0x40,
|
|
|
|
|
DW_AT_friend = 0x41,
|
|
|
|
|
DW_AT_identifier_case = 0x42,
|
|
|
|
|
DW_AT_macro_info = 0x43,
|
|
|
|
|
DW_AT_namelist_items = 0x44,
|
|
|
|
|
DW_AT_priority = 0x45,
|
|
|
|
|
DW_AT_segment = 0x46,
|
|
|
|
|
DW_AT_specification = 0x47,
|
|
|
|
|
DW_AT_static_link = 0x48,
|
|
|
|
|
DW_AT_type = 0x49,
|
|
|
|
|
DW_AT_use_location = 0x4a,
|
|
|
|
|
DW_AT_variable_parameter = 0x4b,
|
|
|
|
|
DW_AT_virtuality = 0x4c,
|
|
|
|
|
DW_AT_vtable_elem_location = 0x4d,
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* DWARF 3 values. */
|
|
|
|
|
DW_AT_allocated = 0x4e,
|
|
|
|
|
DW_AT_associated = 0x4f,
|
|
|
|
|
DW_AT_data_location = 0x50,
|
2007-12-09 18:08:06 +01:00
|
|
|
|
DW_AT_byte_stride = 0x51,
|
2009-06-30 02:02:10 +02:00
|
|
|
|
#define DW_AT_stride DW_AT_byte_stride /* Note: The use of DW_AT_stride is deprecated. */
|
2002-01-29 00:23:26 +01:00
|
|
|
|
DW_AT_entry_pc = 0x52,
|
|
|
|
|
DW_AT_use_UTF8 = 0x53,
|
|
|
|
|
DW_AT_extension = 0x54,
|
|
|
|
|
DW_AT_ranges = 0x55,
|
|
|
|
|
DW_AT_trampoline = 0x56,
|
|
|
|
|
DW_AT_call_column = 0x57,
|
|
|
|
|
DW_AT_call_file = 0x58,
|
|
|
|
|
DW_AT_call_line = 0x59,
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
DW_AT_description = 0x5a,
|
|
|
|
|
DW_AT_binary_scale = 0x5b,
|
|
|
|
|
DW_AT_decimal_scale = 0x5c,
|
|
|
|
|
DW_AT_small = 0x5d,
|
|
|
|
|
DW_AT_decimal_sign = 0x5e,
|
|
|
|
|
DW_AT_digit_count = 0x5f,
|
|
|
|
|
DW_AT_picture_string = 0x60,
|
|
|
|
|
DW_AT_mutable = 0x61,
|
|
|
|
|
DW_AT_threads_scaled = 0x62,
|
|
|
|
|
DW_AT_explicit = 0x63,
|
|
|
|
|
DW_AT_object_pointer = 0x64,
|
|
|
|
|
DW_AT_endianity = 0x65,
|
|
|
|
|
DW_AT_elemental = 0x66,
|
|
|
|
|
DW_AT_pure = 0x67,
|
|
|
|
|
DW_AT_recursive = 0x68,
|
2009-07-20 23:00:52 +02:00
|
|
|
|
/* DWARF 4. */
|
Add rest of new values from DWARF Version 4.
include/
Add rest of new values from DWARF Version 4.
* dwarf2.h (DW_TAG_rvalue_reference_type, DW_TAG_template_alias):
New tags.
(DW_FORM_ref_sig8): New name for DW_FORM_sig8.
(DW_AT_main_subprogram, DW_AT_data_bit_offset, DW_AT_const_expr,
DW_AT_enum_class, DW_AT_linkage_name, DW_AT_GNU_guarded_by,
DW_AT_GNU_pt_guarded_by, DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded,
DW_AT_GNU_locks_excluded, DW_AT_GNU_exclusive_locks_required,
DW_AT_GNU_shared_locks_required, DW_AT_GNU_odr_signature): New
attributes.
(DW_LANG_Python): New language.
From-SVN: r152181
2009-09-25 20:33:04 +02:00
|
|
|
|
DW_AT_signature = 0x69,
|
|
|
|
|
DW_AT_main_subprogram = 0x6a,
|
|
|
|
|
DW_AT_data_bit_offset = 0x6b,
|
|
|
|
|
DW_AT_const_expr = 0x6c,
|
|
|
|
|
DW_AT_enum_class = 0x6d,
|
|
|
|
|
DW_AT_linkage_name = 0x6e,
|
2009-04-24 17:31:38 +02:00
|
|
|
|
|
|
|
|
|
DW_AT_lo_user = 0x2000, /* Implementation-defined range start. */
|
2011-01-12 12:18:49 +01:00
|
|
|
|
DW_AT_hi_user = 0x3fff, /* Implementation-defined range end. */
|
2009-04-24 17:31:38 +02:00
|
|
|
|
|
2004-10-06 22:27:15 +02:00
|
|
|
|
/* SGI/MIPS extensions. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
DW_AT_MIPS_fde = 0x2001,
|
|
|
|
|
DW_AT_MIPS_loop_begin = 0x2002,
|
|
|
|
|
DW_AT_MIPS_tail_loop_begin = 0x2003,
|
|
|
|
|
DW_AT_MIPS_epilog_begin = 0x2004,
|
|
|
|
|
DW_AT_MIPS_loop_unroll_factor = 0x2005,
|
|
|
|
|
DW_AT_MIPS_software_pipeline_depth = 0x2006,
|
|
|
|
|
DW_AT_MIPS_linkage_name = 0x2007,
|
1996-10-08 00:02:43 +02:00
|
|
|
|
DW_AT_MIPS_stride = 0x2008,
|
|
|
|
|
DW_AT_MIPS_abstract_name = 0x2009,
|
|
|
|
|
DW_AT_MIPS_clone_origin = 0x200a,
|
|
|
|
|
DW_AT_MIPS_has_inlines = 0x200b,
|
2004-10-06 22:27:15 +02:00
|
|
|
|
/* HP extensions. */
|
|
|
|
|
DW_AT_HP_block_index = 0x2000,
|
|
|
|
|
DW_AT_HP_unmodifiable = 0x2001, /* Same as DW_AT_MIPS_fde. */
|
dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and DW_TAG_HP_Bliss_field_set.
2010-06-08 Tristan Gingold <gingold@adacore.com>
* dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and
DW_TAG_HP_Bliss_field_set.
(enum dwarf_attribute): Add DW_AT_HP_prologue, DW_AT_HP_epilogue,
DW_AT_HP_unit_name, DW_AT_HP_unit_size, DW_AT_HP_widened_byte_size,
DW_AT_HP_definition_points, DW_AT_HP_default_location and
DW_AT_HP_is_result_param.
(enum dwarf_type): Add DW_ATE_HP_VAX_float, DW_ATE_HP_VAX_float_d,
DW_ATE_HP_packed_decimal, DW_ATE_HP_zoned_decimal, DW_ATE_HP_edited,
DW_ATE_HP_signed_fixed, DW_ATE_HP_unsigned_fixed,
DW_ATE_HP_VAX_complex_float and DW_ATE_HP_VAX_complex_float_d.
(enum dwarf_line_number_x_ops): Add
DW_LNE_HP_source_file_correlation.
(enum dwarf_source_language): Add DW_LANG_HP_Bliss,
DW_LANG_HP_Basic91, DW_LANG_HP_Pascal91, DW_LANG_HP_IMacro,
DW_LANG_HP_Assembler.
From-SVN: r160430
2010-06-08 11:51:27 +02:00
|
|
|
|
DW_AT_HP_prologue = 0x2005, /* Same as DW_AT_MIPS_loop_unroll. */
|
|
|
|
|
DW_AT_HP_epilogue = 0x2008, /* Same as DW_AT_MIPS_stride. */
|
2004-10-06 22:27:15 +02:00
|
|
|
|
DW_AT_HP_actuals_stmt_list = 0x2010,
|
|
|
|
|
DW_AT_HP_proc_per_section = 0x2011,
|
|
|
|
|
DW_AT_HP_raw_data_ptr = 0x2012,
|
|
|
|
|
DW_AT_HP_pass_by_reference = 0x2013,
|
|
|
|
|
DW_AT_HP_opt_level = 0x2014,
|
|
|
|
|
DW_AT_HP_prof_version_id = 0x2015,
|
|
|
|
|
DW_AT_HP_opt_flags = 0x2016,
|
|
|
|
|
DW_AT_HP_cold_region_low_pc = 0x2017,
|
|
|
|
|
DW_AT_HP_cold_region_high_pc = 0x2018,
|
|
|
|
|
DW_AT_HP_all_variables_modifiable = 0x2019,
|
|
|
|
|
DW_AT_HP_linkage_name = 0x201a,
|
|
|
|
|
DW_AT_HP_prof_flags = 0x201b, /* In comp unit of procs_info for -g. */
|
dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and DW_TAG_HP_Bliss_field_set.
2010-06-08 Tristan Gingold <gingold@adacore.com>
* dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and
DW_TAG_HP_Bliss_field_set.
(enum dwarf_attribute): Add DW_AT_HP_prologue, DW_AT_HP_epilogue,
DW_AT_HP_unit_name, DW_AT_HP_unit_size, DW_AT_HP_widened_byte_size,
DW_AT_HP_definition_points, DW_AT_HP_default_location and
DW_AT_HP_is_result_param.
(enum dwarf_type): Add DW_ATE_HP_VAX_float, DW_ATE_HP_VAX_float_d,
DW_ATE_HP_packed_decimal, DW_ATE_HP_zoned_decimal, DW_ATE_HP_edited,
DW_ATE_HP_signed_fixed, DW_ATE_HP_unsigned_fixed,
DW_ATE_HP_VAX_complex_float and DW_ATE_HP_VAX_complex_float_d.
(enum dwarf_line_number_x_ops): Add
DW_LNE_HP_source_file_correlation.
(enum dwarf_source_language): Add DW_LANG_HP_Bliss,
DW_LANG_HP_Basic91, DW_LANG_HP_Pascal91, DW_LANG_HP_IMacro,
DW_LANG_HP_Assembler.
From-SVN: r160430
2010-06-08 11:51:27 +02:00
|
|
|
|
DW_AT_HP_unit_name = 0x201f,
|
|
|
|
|
DW_AT_HP_unit_size = 0x2020,
|
|
|
|
|
DW_AT_HP_widened_byte_size = 0x2021,
|
|
|
|
|
DW_AT_HP_definition_points = 0x2022,
|
|
|
|
|
DW_AT_HP_default_location = 0x2023,
|
|
|
|
|
DW_AT_HP_is_result_param = 0x2029,
|
|
|
|
|
|
1996-07-19 02:26:36 +02:00
|
|
|
|
/* GNU extensions. */
|
2002-01-29 00:23:26 +01:00
|
|
|
|
DW_AT_sf_names = 0x2101,
|
|
|
|
|
DW_AT_src_info = 0x2102,
|
|
|
|
|
DW_AT_mac_info = 0x2103,
|
1996-07-19 02:26:36 +02:00
|
|
|
|
DW_AT_src_coords = 0x2104,
|
|
|
|
|
DW_AT_body_begin = 0x2105,
|
2002-01-29 00:23:26 +01:00
|
|
|
|
DW_AT_body_end = 0x2106,
|
2002-04-24 20:49:51 +02:00
|
|
|
|
DW_AT_GNU_vector = 0x2107,
|
Add rest of new values from DWARF Version 4.
include/
Add rest of new values from DWARF Version 4.
* dwarf2.h (DW_TAG_rvalue_reference_type, DW_TAG_template_alias):
New tags.
(DW_FORM_ref_sig8): New name for DW_FORM_sig8.
(DW_AT_main_subprogram, DW_AT_data_bit_offset, DW_AT_const_expr,
DW_AT_enum_class, DW_AT_linkage_name, DW_AT_GNU_guarded_by,
DW_AT_GNU_pt_guarded_by, DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded,
DW_AT_GNU_locks_excluded, DW_AT_GNU_exclusive_locks_required,
DW_AT_GNU_shared_locks_required, DW_AT_GNU_odr_signature): New
attributes.
(DW_LANG_Python): New language.
From-SVN: r152181
2009-09-25 20:33:04 +02:00
|
|
|
|
/* Thread-safety annotations.
|
|
|
|
|
See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . */
|
|
|
|
|
DW_AT_GNU_guarded_by = 0x2108,
|
|
|
|
|
DW_AT_GNU_pt_guarded_by = 0x2109,
|
|
|
|
|
DW_AT_GNU_guarded = 0x210a,
|
|
|
|
|
DW_AT_GNU_pt_guarded = 0x210b,
|
|
|
|
|
DW_AT_GNU_locks_excluded = 0x210c,
|
|
|
|
|
DW_AT_GNU_exclusive_locks_required = 0x210d,
|
|
|
|
|
DW_AT_GNU_shared_locks_required = 0x210e,
|
|
|
|
|
/* One-definition rule violation detection.
|
|
|
|
|
See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . */
|
|
|
|
|
DW_AT_GNU_odr_signature = 0x210f,
|
Emit DWARF for template parameters (PR debug/30161)
ChangeLog:
PR debug/30161
* include/dwarf2.h (enum dwarf_tag): Added
DW_TAG_GNU_template_template_param
(enum dwarf_attribute): Added DW_AT_GNU_template_name.
gcc/ChangeLog:
PR debug/30161
* cgraph.h (cgraph_get_node): Declare ...
* cgraph.c (cgraph_get_node): ... new function.
* dwarf2out.c (gen_generic_params_dies,
generic_parameter_die, tree_add_const_value_attribute_for_decl,
make_ith_pack_parameter_name,
append_entry_to_tmpl_value_parm_die_table,
gen_remaining_tmpl_value_param_die_attribute): New functions.
(gen_subprogram_die): Generate debug info for template parameters
if debug info level is higher than DINFO_LEVEL_TERSE.
Use tree_add_const_value_attribute_for_decl instead of
tree_add_const_value_attribute.
(gen_const_die): Use tree_add_const_value_attribute_for_decl
instead of tree_add_const_value_attribute.
(gen_struct_or_union_type_die): Generate debug
info for template parameters if debug info level is higher than
DINFO_LEVEL_TERSE.
(tree_add_const_value_attribute): Handle integral and pointer
constants. Update comment.
(dwarf_tag_name): Support DW_TAG_GNU_template_template_param.
(dwarf_attr_name): Support DW_AT_GNU_template_name.
(reference_to_unused): Fix thinko. Remove redundant predicates from
tests.
(tree_add_const_value_attribute): Make this work for constant
expressions only.
tree_add_const_value_attribute_for_decl is to be used for variable
DECLs now.
(add_location_or_const_value_attribute): Use
tree_add_const_value_attribute_for_decl now.
(dwarf2out_finish): Emit the DW_AT_const_value attribute of
DW_TAG_template_value_param DIEs after function DIEs have been
emitted.
* langhooks.h (lang_hooks_for_types): Add
get_argument_pack_elems.
(lang_hooks_for_decls): Add generic_generic_parameter_decl_p.
(lang_hooks): Added get_innermost_generic_parms,
get_innermost_generic_args.
* langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks.
gcc/cp/ChangeLog:
PR debug/30161
* cp-tree.h (get_template_info): Parameter should be const.
(CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): Fix typo.
(get_template_argument_pack_elems,
get_primary_template_innermost_parameters,
get_template_innermost_arguments, template_template_parameter_p):
Declare ...
* pt.c (get_template_argument_pack_elems,
get_template_innermost_parameters, get_template_innermost_arguments,
template_template_parameter_p):
... New C++ front end implementation of new language hooks.
(primary_template_instantiation_p): New private helper.
(make_ith_pack_parameter_name): Use snprintf and strnlen instead of
printf and strlen.
(get_template_info): Const-ify parameter.
* cp-lang.c (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
LANG_HOOKS_GENERIC_TYPE_PARAMETER_DECL_P): Initialize these
interfaces for the C++ front-end.
gcc/testsuite/ChangeLog:
PR debug/30161
* g++.dg/debug/dwarf2/template-params-1.C: New test.
* g++.dg/debug/dwarf2/template-params-2.C: Likewise.
* g++.dg/debug/dwarf2/template-params-3.C: Likewise.
* g++.dg/debug/dwarf2/template-params-4.C: Likewise.
* g++.dg/debug/dwarf2/template-params-5.C: Likewise.
* g++.dg/debug/dwarf2/template-params-6.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-1.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-2.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-3.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-4.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-5.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-6.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-7.C: Likewise.
From-SVN: r151249
2009-08-31 23:48:04 +02:00
|
|
|
|
/* Template template argument name.
|
|
|
|
|
See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
|
|
|
|
|
DW_AT_GNU_template_name = 0x2110,
|
final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
* final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
Call var_location debug hook even on CALL_INSNs.
(rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
* rtl.def (ENTRY_VALUE): New.
* dwarf2out.c: Include cfglayout.h.
(dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
(struct call_arg_loc_node): New type.
(call_arg_locations, call_arg_loc_last, block_map, call_site_count,
tail_call_site_count): New variables.
(dwarf_tag_name): Handle DW_TAG_GNU_call_site and
DW_TAG_GNU_call_site_parameter.
(dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
and DW_AT_GNU_all_source_call_sites.
(mem_loc_descriptor): Handle ENTRY_VALUE.
(add_src_coords_attributes): Don't add enything if
DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
(dwarf2out_abstract_function): Save and clear call_arg_location,
call_site_count and tail_call_site_count around dwarf2out_decl call.
(gen_call_site_die): New function.
(gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
(gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
(dwarf2out_function_decl): Clear call_arg_locations,
call_arg_loc_last, set call_site_count and tail_call_site_count
to -1 and free block_map.
(dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
followed by any real instructions.
(dwarf2out_begin_function): Set call_site_count and
tail_call_site_count to 0.
(resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
attempt to force a DIE for it and worst case remove the attribute.
(resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
the decl itself.
* var-tracking.c: Include tm_p.h.
(vt_stack_adjustments): For calls call note_register_arguments.
(argument_reg_set): New variable.
(add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
ensure the VALUE is resolved.
(call_arguments): New variable.
(prepare_call_arguments): New function.
(add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
(struct expand_loc_callback_data): Add ignore_cur_loc field.
(vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
always use the best expression.
(vt_expand_loc): Add ignore_cur_loc argument.
(vt_expand_loc_dummy): Clear ignore_cur_loc field.
(emit_note_insn_var_location): Adjust vt_expand_loc callers.
(emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
note for all calls.
(vt_add_function_parameter): Use cselib_lookup_from_insn.
If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
argument. Don't call cselib_preserve_only_values and
cselib_reset_table.
(note_register_arguments): New function.
(vt_initialize): Compute argument_reg_set. Call
vt_add_function_parameters before processing basic blocks instead of
afterwards. For calls call prepare_call_arguments before calling
cselib_process_insn.
* print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
* Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
(var-tracking.o): Depend on $(TM_P_H).
* cfglayout.h (insn_scope): New prototype.
* gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
* cfglayout.c (insn_scope): No longer static.
* insn-notes.def (CALL_ARG_LOCATION): New.
* calls.c (expand_call, emit_library_call_value_1): Put USEs for
MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
* integrate.c (set_block_origin_self, set_block_abstract_flags): Do
nothing for DECL_EXTERNAL BLOCK_VARS.
cp/
* cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
DECL_LANG_SPECIFIC is NULL.
include/
* dwarf2.h (DW_TAG_GNU_call_site, DW_TAG_GNU_call_site_parameter,
DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered,
DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites,
DW_AT_GNU_all_call_sites,, DW_AT_GNU_all_source_call_sites,
DW_OP_GNU_entry_value): New.
From-SVN: r171033
2011-03-16 09:32:13 +01:00
|
|
|
|
/* The GNU call site extension.
|
|
|
|
|
See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . */
|
|
|
|
|
DW_AT_GNU_call_site_value = 0x2111,
|
|
|
|
|
DW_AT_GNU_call_site_data_value = 0x2112,
|
|
|
|
|
DW_AT_GNU_call_site_target = 0x2113,
|
|
|
|
|
DW_AT_GNU_call_site_target_clobbered = 0x2114,
|
|
|
|
|
DW_AT_GNU_tail_call = 0x2115,
|
|
|
|
|
DW_AT_GNU_all_tail_call_sites = 0x2116,
|
|
|
|
|
DW_AT_GNU_all_call_sites = 0x2117,
|
|
|
|
|
DW_AT_GNU_all_source_call_sites = 0x2118,
|
2011-07-22 22:06:09 +02:00
|
|
|
|
/* Section offset into .debug_macro section. */
|
|
|
|
|
DW_AT_GNU_macros = 0x2119,
|
2004-10-06 22:27:15 +02:00
|
|
|
|
/* VMS extensions. */
|
|
|
|
|
DW_AT_VMS_rtnbeg_pd_address = 0x2201,
|
2009-12-29 05:14:21 +01:00
|
|
|
|
/* GNAT extensions. */
|
|
|
|
|
/* GNAT descriptive type.
|
|
|
|
|
See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . */
|
2010-01-13 12:13:53 +01:00
|
|
|
|
DW_AT_use_GNAT_descriptive_type = 0x2301,
|
2009-12-29 05:14:21 +01:00
|
|
|
|
DW_AT_GNAT_descriptive_type = 0x2302,
|
2004-10-06 22:27:15 +02:00
|
|
|
|
/* UPC extension. */
|
|
|
|
|
DW_AT_upc_threads_scaled = 0x3210,
|
|
|
|
|
/* PGI (STMicroelectronics) extensions. */
|
|
|
|
|
DW_AT_PGI_lbase = 0x3a00,
|
|
|
|
|
DW_AT_PGI_soffset = 0x3a01,
|
|
|
|
|
DW_AT_PGI_lstride = 0x3a02
|
1996-07-19 02:26:36 +02:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* Location atom names and codes. */
|
|
|
|
|
enum dwarf_location_atom
|
|
|
|
|
{
|
|
|
|
|
DW_OP_addr = 0x03,
|
|
|
|
|
DW_OP_deref = 0x06,
|
|
|
|
|
DW_OP_const1u = 0x08,
|
|
|
|
|
DW_OP_const1s = 0x09,
|
|
|
|
|
DW_OP_const2u = 0x0a,
|
|
|
|
|
DW_OP_const2s = 0x0b,
|
|
|
|
|
DW_OP_const4u = 0x0c,
|
|
|
|
|
DW_OP_const4s = 0x0d,
|
|
|
|
|
DW_OP_const8u = 0x0e,
|
|
|
|
|
DW_OP_const8s = 0x0f,
|
|
|
|
|
DW_OP_constu = 0x10,
|
|
|
|
|
DW_OP_consts = 0x11,
|
|
|
|
|
DW_OP_dup = 0x12,
|
|
|
|
|
DW_OP_drop = 0x13,
|
|
|
|
|
DW_OP_over = 0x14,
|
|
|
|
|
DW_OP_pick = 0x15,
|
|
|
|
|
DW_OP_swap = 0x16,
|
|
|
|
|
DW_OP_rot = 0x17,
|
|
|
|
|
DW_OP_xderef = 0x18,
|
|
|
|
|
DW_OP_abs = 0x19,
|
|
|
|
|
DW_OP_and = 0x1a,
|
|
|
|
|
DW_OP_div = 0x1b,
|
|
|
|
|
DW_OP_minus = 0x1c,
|
|
|
|
|
DW_OP_mod = 0x1d,
|
|
|
|
|
DW_OP_mul = 0x1e,
|
|
|
|
|
DW_OP_neg = 0x1f,
|
|
|
|
|
DW_OP_not = 0x20,
|
|
|
|
|
DW_OP_or = 0x21,
|
|
|
|
|
DW_OP_plus = 0x22,
|
|
|
|
|
DW_OP_plus_uconst = 0x23,
|
|
|
|
|
DW_OP_shl = 0x24,
|
|
|
|
|
DW_OP_shr = 0x25,
|
|
|
|
|
DW_OP_shra = 0x26,
|
|
|
|
|
DW_OP_xor = 0x27,
|
|
|
|
|
DW_OP_bra = 0x28,
|
|
|
|
|
DW_OP_eq = 0x29,
|
|
|
|
|
DW_OP_ge = 0x2a,
|
|
|
|
|
DW_OP_gt = 0x2b,
|
|
|
|
|
DW_OP_le = 0x2c,
|
|
|
|
|
DW_OP_lt = 0x2d,
|
|
|
|
|
DW_OP_ne = 0x2e,
|
|
|
|
|
DW_OP_skip = 0x2f,
|
|
|
|
|
DW_OP_lit0 = 0x30,
|
|
|
|
|
DW_OP_lit1 = 0x31,
|
|
|
|
|
DW_OP_lit2 = 0x32,
|
|
|
|
|
DW_OP_lit3 = 0x33,
|
|
|
|
|
DW_OP_lit4 = 0x34,
|
|
|
|
|
DW_OP_lit5 = 0x35,
|
|
|
|
|
DW_OP_lit6 = 0x36,
|
|
|
|
|
DW_OP_lit7 = 0x37,
|
|
|
|
|
DW_OP_lit8 = 0x38,
|
|
|
|
|
DW_OP_lit9 = 0x39,
|
|
|
|
|
DW_OP_lit10 = 0x3a,
|
|
|
|
|
DW_OP_lit11 = 0x3b,
|
|
|
|
|
DW_OP_lit12 = 0x3c,
|
|
|
|
|
DW_OP_lit13 = 0x3d,
|
|
|
|
|
DW_OP_lit14 = 0x3e,
|
|
|
|
|
DW_OP_lit15 = 0x3f,
|
|
|
|
|
DW_OP_lit16 = 0x40,
|
|
|
|
|
DW_OP_lit17 = 0x41,
|
|
|
|
|
DW_OP_lit18 = 0x42,
|
|
|
|
|
DW_OP_lit19 = 0x43,
|
|
|
|
|
DW_OP_lit20 = 0x44,
|
|
|
|
|
DW_OP_lit21 = 0x45,
|
|
|
|
|
DW_OP_lit22 = 0x46,
|
|
|
|
|
DW_OP_lit23 = 0x47,
|
|
|
|
|
DW_OP_lit24 = 0x48,
|
|
|
|
|
DW_OP_lit25 = 0x49,
|
|
|
|
|
DW_OP_lit26 = 0x4a,
|
|
|
|
|
DW_OP_lit27 = 0x4b,
|
|
|
|
|
DW_OP_lit28 = 0x4c,
|
|
|
|
|
DW_OP_lit29 = 0x4d,
|
|
|
|
|
DW_OP_lit30 = 0x4e,
|
|
|
|
|
DW_OP_lit31 = 0x4f,
|
|
|
|
|
DW_OP_reg0 = 0x50,
|
|
|
|
|
DW_OP_reg1 = 0x51,
|
|
|
|
|
DW_OP_reg2 = 0x52,
|
|
|
|
|
DW_OP_reg3 = 0x53,
|
|
|
|
|
DW_OP_reg4 = 0x54,
|
|
|
|
|
DW_OP_reg5 = 0x55,
|
|
|
|
|
DW_OP_reg6 = 0x56,
|
|
|
|
|
DW_OP_reg7 = 0x57,
|
|
|
|
|
DW_OP_reg8 = 0x58,
|
|
|
|
|
DW_OP_reg9 = 0x59,
|
|
|
|
|
DW_OP_reg10 = 0x5a,
|
|
|
|
|
DW_OP_reg11 = 0x5b,
|
|
|
|
|
DW_OP_reg12 = 0x5c,
|
|
|
|
|
DW_OP_reg13 = 0x5d,
|
|
|
|
|
DW_OP_reg14 = 0x5e,
|
|
|
|
|
DW_OP_reg15 = 0x5f,
|
|
|
|
|
DW_OP_reg16 = 0x60,
|
|
|
|
|
DW_OP_reg17 = 0x61,
|
|
|
|
|
DW_OP_reg18 = 0x62,
|
|
|
|
|
DW_OP_reg19 = 0x63,
|
|
|
|
|
DW_OP_reg20 = 0x64,
|
|
|
|
|
DW_OP_reg21 = 0x65,
|
|
|
|
|
DW_OP_reg22 = 0x66,
|
|
|
|
|
DW_OP_reg23 = 0x67,
|
|
|
|
|
DW_OP_reg24 = 0x68,
|
|
|
|
|
DW_OP_reg25 = 0x69,
|
|
|
|
|
DW_OP_reg26 = 0x6a,
|
|
|
|
|
DW_OP_reg27 = 0x6b,
|
|
|
|
|
DW_OP_reg28 = 0x6c,
|
|
|
|
|
DW_OP_reg29 = 0x6d,
|
|
|
|
|
DW_OP_reg30 = 0x6e,
|
|
|
|
|
DW_OP_reg31 = 0x6f,
|
|
|
|
|
DW_OP_breg0 = 0x70,
|
|
|
|
|
DW_OP_breg1 = 0x71,
|
|
|
|
|
DW_OP_breg2 = 0x72,
|
|
|
|
|
DW_OP_breg3 = 0x73,
|
|
|
|
|
DW_OP_breg4 = 0x74,
|
|
|
|
|
DW_OP_breg5 = 0x75,
|
|
|
|
|
DW_OP_breg6 = 0x76,
|
|
|
|
|
DW_OP_breg7 = 0x77,
|
|
|
|
|
DW_OP_breg8 = 0x78,
|
|
|
|
|
DW_OP_breg9 = 0x79,
|
|
|
|
|
DW_OP_breg10 = 0x7a,
|
|
|
|
|
DW_OP_breg11 = 0x7b,
|
|
|
|
|
DW_OP_breg12 = 0x7c,
|
|
|
|
|
DW_OP_breg13 = 0x7d,
|
|
|
|
|
DW_OP_breg14 = 0x7e,
|
|
|
|
|
DW_OP_breg15 = 0x7f,
|
|
|
|
|
DW_OP_breg16 = 0x80,
|
|
|
|
|
DW_OP_breg17 = 0x81,
|
|
|
|
|
DW_OP_breg18 = 0x82,
|
|
|
|
|
DW_OP_breg19 = 0x83,
|
|
|
|
|
DW_OP_breg20 = 0x84,
|
|
|
|
|
DW_OP_breg21 = 0x85,
|
|
|
|
|
DW_OP_breg22 = 0x86,
|
|
|
|
|
DW_OP_breg23 = 0x87,
|
|
|
|
|
DW_OP_breg24 = 0x88,
|
|
|
|
|
DW_OP_breg25 = 0x89,
|
|
|
|
|
DW_OP_breg26 = 0x8a,
|
|
|
|
|
DW_OP_breg27 = 0x8b,
|
|
|
|
|
DW_OP_breg28 = 0x8c,
|
|
|
|
|
DW_OP_breg29 = 0x8d,
|
|
|
|
|
DW_OP_breg30 = 0x8e,
|
|
|
|
|
DW_OP_breg31 = 0x8f,
|
|
|
|
|
DW_OP_regx = 0x90,
|
|
|
|
|
DW_OP_fbreg = 0x91,
|
|
|
|
|
DW_OP_bregx = 0x92,
|
|
|
|
|
DW_OP_piece = 0x93,
|
|
|
|
|
DW_OP_deref_size = 0x94,
|
|
|
|
|
DW_OP_xderef_size = 0x95,
|
2001-06-29 18:52:08 +02:00
|
|
|
|
DW_OP_nop = 0x96,
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* DWARF 3 extensions. */
|
2001-06-29 18:52:08 +02:00
|
|
|
|
DW_OP_push_object_address = 0x97,
|
|
|
|
|
DW_OP_call2 = 0x98,
|
|
|
|
|
DW_OP_call4 = 0x99,
|
2002-09-08 20:36:54 +02:00
|
|
|
|
DW_OP_call_ref = 0x9a,
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
DW_OP_form_tls_address = 0x9b,
|
|
|
|
|
DW_OP_call_frame_cfa = 0x9c,
|
|
|
|
|
DW_OP_bit_piece = 0x9d,
|
2009-04-24 17:31:38 +02:00
|
|
|
|
|
2009-07-09 22:16:56 +02:00
|
|
|
|
/* DWARF 4 extensions. */
|
|
|
|
|
DW_OP_implicit_value = 0x9e,
|
|
|
|
|
DW_OP_stack_value = 0x9f,
|
|
|
|
|
|
2009-04-24 17:31:38 +02:00
|
|
|
|
DW_OP_lo_user = 0xe0, /* Implementation-defined range start. */
|
|
|
|
|
DW_OP_hi_user = 0xff, /* Implementation-defined range end. */
|
|
|
|
|
|
2002-09-08 20:36:54 +02:00
|
|
|
|
/* GNU extensions. */
|
2004-10-06 22:27:15 +02:00
|
|
|
|
DW_OP_GNU_push_tls_address = 0xe0,
|
2007-07-14 01:11:15 +02:00
|
|
|
|
/* The following is for marking variables that are uninitialized. */
|
|
|
|
|
DW_OP_GNU_uninit = 0xf0,
|
2008-09-25 00:38:03 +02:00
|
|
|
|
DW_OP_GNU_encoded_addr = 0xf1,
|
final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
* final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
Call var_location debug hook even on CALL_INSNs.
(rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
* rtl.def (ENTRY_VALUE): New.
* dwarf2out.c: Include cfglayout.h.
(dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
(struct call_arg_loc_node): New type.
(call_arg_locations, call_arg_loc_last, block_map, call_site_count,
tail_call_site_count): New variables.
(dwarf_tag_name): Handle DW_TAG_GNU_call_site and
DW_TAG_GNU_call_site_parameter.
(dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
and DW_AT_GNU_all_source_call_sites.
(mem_loc_descriptor): Handle ENTRY_VALUE.
(add_src_coords_attributes): Don't add enything if
DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
(dwarf2out_abstract_function): Save and clear call_arg_location,
call_site_count and tail_call_site_count around dwarf2out_decl call.
(gen_call_site_die): New function.
(gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
(gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
(dwarf2out_function_decl): Clear call_arg_locations,
call_arg_loc_last, set call_site_count and tail_call_site_count
to -1 and free block_map.
(dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
followed by any real instructions.
(dwarf2out_begin_function): Set call_site_count and
tail_call_site_count to 0.
(resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
attempt to force a DIE for it and worst case remove the attribute.
(resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
the decl itself.
* var-tracking.c: Include tm_p.h.
(vt_stack_adjustments): For calls call note_register_arguments.
(argument_reg_set): New variable.
(add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
ensure the VALUE is resolved.
(call_arguments): New variable.
(prepare_call_arguments): New function.
(add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
(struct expand_loc_callback_data): Add ignore_cur_loc field.
(vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
always use the best expression.
(vt_expand_loc): Add ignore_cur_loc argument.
(vt_expand_loc_dummy): Clear ignore_cur_loc field.
(emit_note_insn_var_location): Adjust vt_expand_loc callers.
(emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
note for all calls.
(vt_add_function_parameter): Use cselib_lookup_from_insn.
If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
argument. Don't call cselib_preserve_only_values and
cselib_reset_table.
(note_register_arguments): New function.
(vt_initialize): Compute argument_reg_set. Call
vt_add_function_parameters before processing basic blocks instead of
afterwards. For calls call prepare_call_arguments before calling
cselib_process_insn.
* print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
* Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
(var-tracking.o): Depend on $(TM_P_H).
* cfglayout.h (insn_scope): New prototype.
* gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
* cfglayout.c (insn_scope): No longer static.
* insn-notes.def (CALL_ARG_LOCATION): New.
* calls.c (expand_call, emit_library_call_value_1): Put USEs for
MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
* integrate.c (set_block_origin_self, set_block_abstract_flags): Do
nothing for DECL_EXTERNAL BLOCK_VARS.
cp/
* cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
DECL_LANG_SPECIFIC is NULL.
include/
* dwarf2.h (DW_TAG_GNU_call_site, DW_TAG_GNU_call_site_parameter,
DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered,
DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites,
DW_AT_GNU_all_call_sites,, DW_AT_GNU_all_source_call_sites,
DW_OP_GNU_entry_value): New.
From-SVN: r171033
2011-03-16 09:32:13 +01:00
|
|
|
|
/* The GNU implicit pointer extension.
|
|
|
|
|
See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . */
|
2010-09-09 08:43:47 +02:00
|
|
|
|
DW_OP_GNU_implicit_pointer = 0xf2,
|
final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
* final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
Call var_location debug hook even on CALL_INSNs.
(rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
* rtl.def (ENTRY_VALUE): New.
* dwarf2out.c: Include cfglayout.h.
(dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
(struct call_arg_loc_node): New type.
(call_arg_locations, call_arg_loc_last, block_map, call_site_count,
tail_call_site_count): New variables.
(dwarf_tag_name): Handle DW_TAG_GNU_call_site and
DW_TAG_GNU_call_site_parameter.
(dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
and DW_AT_GNU_all_source_call_sites.
(mem_loc_descriptor): Handle ENTRY_VALUE.
(add_src_coords_attributes): Don't add enything if
DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
(dwarf2out_abstract_function): Save and clear call_arg_location,
call_site_count and tail_call_site_count around dwarf2out_decl call.
(gen_call_site_die): New function.
(gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
(gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
(dwarf2out_function_decl): Clear call_arg_locations,
call_arg_loc_last, set call_site_count and tail_call_site_count
to -1 and free block_map.
(dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
followed by any real instructions.
(dwarf2out_begin_function): Set call_site_count and
tail_call_site_count to 0.
(resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
attempt to force a DIE for it and worst case remove the attribute.
(resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
the decl itself.
* var-tracking.c: Include tm_p.h.
(vt_stack_adjustments): For calls call note_register_arguments.
(argument_reg_set): New variable.
(add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
ensure the VALUE is resolved.
(call_arguments): New variable.
(prepare_call_arguments): New function.
(add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
(struct expand_loc_callback_data): Add ignore_cur_loc field.
(vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
always use the best expression.
(vt_expand_loc): Add ignore_cur_loc argument.
(vt_expand_loc_dummy): Clear ignore_cur_loc field.
(emit_note_insn_var_location): Adjust vt_expand_loc callers.
(emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
note for all calls.
(vt_add_function_parameter): Use cselib_lookup_from_insn.
If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
argument. Don't call cselib_preserve_only_values and
cselib_reset_table.
(note_register_arguments): New function.
(vt_initialize): Compute argument_reg_set. Call
vt_add_function_parameters before processing basic blocks instead of
afterwards. For calls call prepare_call_arguments before calling
cselib_process_insn.
* print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
* Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
(var-tracking.o): Depend on $(TM_P_H).
* cfglayout.h (insn_scope): New prototype.
* gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
* cfglayout.c (insn_scope): No longer static.
* insn-notes.def (CALL_ARG_LOCATION): New.
* calls.c (expand_call, emit_library_call_value_1): Put USEs for
MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
* integrate.c (set_block_origin_self, set_block_abstract_flags): Do
nothing for DECL_EXTERNAL BLOCK_VARS.
cp/
* cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
DECL_LANG_SPECIFIC is NULL.
include/
* dwarf2.h (DW_TAG_GNU_call_site, DW_TAG_GNU_call_site_parameter,
DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered,
DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites,
DW_AT_GNU_all_call_sites,, DW_AT_GNU_all_source_call_sites,
DW_OP_GNU_entry_value): New.
From-SVN: r171033
2011-03-16 09:32:13 +01:00
|
|
|
|
/* The GNU entry value extension.
|
|
|
|
|
See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . */
|
|
|
|
|
DW_OP_GNU_entry_value = 0xf3,
|
dwarf2.h (DW_OP_GNU_const_type, [...]): New.
* dwarf2.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
DW_OP_GNU_deref_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret): New.
* dwarf2out.c (get_address_mode): New inline.
(mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
if not dwarf_strict emit
DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
(dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
mem_loc_descriptor callers.
(dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
(base_types): New variable.
(get_base_type_offset, calc_base_type_die_sizes,
base_type_for_mode, mark_base_types, base_type_cmp,
move_marked_base_types): New functions.
(calc_die_sizes): Assert that die_offset is 0 or equal to
next_die_offset.
(loc_descriptor): Only handle here lowpart SUBREGs of REG, for
others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
callers. If not dwarf_strict, call mem_loc_descriptor even for
non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
(gen_subprogram_die): Don't give up on call site parameters
with non-integral or large integral modes. Adjust
mem_loc_descriptor callers.
(prune_unused_types): Call prune_unused_types_mark on base_types
vector entries.
(resolve_addr): Call mark_base_types.
(dwarf2out_finish): Call move_marked_base_types.
From-SVN: r173210
2011-04-30 12:06:18 +02:00
|
|
|
|
/* The GNU typed stack extension.
|
|
|
|
|
See http://www.dwarfstd.org/doc/040408.1.html . */
|
|
|
|
|
DW_OP_GNU_const_type = 0xf4,
|
|
|
|
|
DW_OP_GNU_regval_type = 0xf5,
|
|
|
|
|
DW_OP_GNU_deref_type = 0xf6,
|
|
|
|
|
DW_OP_GNU_convert = 0xf7,
|
|
|
|
|
DW_OP_GNU_reinterpret = 0xf9,
|
re PR debug/47858 (IPA-SRA decreases quality of debug info)
PR debug/47858
* gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
(gimple_build_debug_source_bind_stat): New prototype.
(gimple_build_debug_source_bind): Define.
(gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
gimple_debug_source_bind_get_value,
gimple_debug_source_bind_get_value_ptr,
gimple_debug_source_bind_set_var,
gimple_debug_source_bind_set_value): New inlines.
* gimple.c (gimple_build_debug_source_bind_stat): New function.
* gimple-pretty-print.c (dump_gimple_debug): Handle
GIMPLE_DEBUG_SOURCE_BIND.
* sese.c (rename_uses): Handle gimple_debug_source_bind_p.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
* tree-parloops.c (eliminate_local_variables,
separate_decls_in_region): Likewise.
(separate_decls_in_region_debug): Renamed from
separate_decls_in_region_debug_bind. Handle
gimple_debug_source_bind_p.
* tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
prototypes.
(DECL_HAS_DEBUG_ARGS_P): Define.
(struct tree_function_decl): Add has_debug_args_flag field.
* tree.c (debug_args_for_decl): New variable.
(decl_debug_args_lookup, decl_debug_args_insert): New functions.
* tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
(rewrite_debug_stmt_uses): New function.
(rewrite_stmt): Use it to rewrite debug stmt uses.
* rtl.def (DEBUG_PARAMETER_REF): New.
* rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
* cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
DEBUG_PARAMETER_REF.
* rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
* print-rtl.c (print_rtx): Likewise.
* tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
debug stmts in the first bb.
* tree-inline.c (remap_ssa_name): If remapping default def
of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
a source bind debug stmt.
(remap_gimple_stmt): Handle gimple_debug_source_bind_p.
(maybe_move_debug_stmts_to_successors): Likewise.
(copy_debug_stmt): Likewise. Avoid shadowing a variable.
(tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
debug args vector from old_decl to new_decl.
* ipa-prop.c (ipa_modify_call_arguments): For optimized away
or modified parameters, add debug bind stmts before call
setting DEBUG_EXPR_DECL which is remembered in debug args
vector.
* cfgexpand.c (expand_call_stmt): Call expand_debug_expr
on DECL_DEBUG_EXPRs from debug args vector.
(expand_debug_source_expr): New function.
(expand_debug_locations): Use it for source bind insns.
(expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
* var-tracking.c (prepare_call_arguments): Add debug args
to call_arguments if any.
* dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
output_loc_operands, output_loc_operands_raw,
resolve_addr_in_expr, compare_loc_operands): Handle
DW_OP_GNU_parameter_ref.
(get_ref_die_offset, parameter_ref_descriptor): New functions.
(mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
(gen_subprogram_die): Handle parameters identified by
DEBUG_PARAMETER_REF.
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_GNU_parameter_ref.
From-SVN: r175288
2011-06-22 12:41:58 +02:00
|
|
|
|
/* The GNU parameter ref extension. */
|
|
|
|
|
DW_OP_GNU_parameter_ref = 0xfa,
|
2004-10-06 22:27:15 +02:00
|
|
|
|
/* HP extensions. */
|
|
|
|
|
DW_OP_HP_unknown = 0xe0, /* Ouch, the same as GNU_push_tls_address. */
|
|
|
|
|
DW_OP_HP_is_value = 0xe1,
|
|
|
|
|
DW_OP_HP_fltconst4 = 0xe2,
|
|
|
|
|
DW_OP_HP_fltconst8 = 0xe3,
|
|
|
|
|
DW_OP_HP_mod_range = 0xe4,
|
|
|
|
|
DW_OP_HP_unmod_range = 0xe5,
|
2009-06-08 06:00:50 +02:00
|
|
|
|
DW_OP_HP_tls = 0xe6,
|
2009-06-30 02:02:10 +02:00
|
|
|
|
/* PGI (STMicroelectronics) extensions. */
|
|
|
|
|
DW_OP_PGI_omp_thread_num = 0xf8
|
1996-07-19 02:26:36 +02:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* Type encodings. */
|
|
|
|
|
enum dwarf_type
|
|
|
|
|
{
|
|
|
|
|
DW_ATE_void = 0x0,
|
|
|
|
|
DW_ATE_address = 0x1,
|
|
|
|
|
DW_ATE_boolean = 0x2,
|
|
|
|
|
DW_ATE_complex_float = 0x3,
|
|
|
|
|
DW_ATE_float = 0x4,
|
|
|
|
|
DW_ATE_signed = 0x5,
|
|
|
|
|
DW_ATE_signed_char = 0x6,
|
|
|
|
|
DW_ATE_unsigned = 0x7,
|
2001-06-29 18:52:08 +02:00
|
|
|
|
DW_ATE_unsigned_char = 0x8,
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* DWARF 3. */
|
2004-10-06 22:27:15 +02:00
|
|
|
|
DW_ATE_imaginary_float = 0x9,
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
DW_ATE_packed_decimal = 0xa,
|
|
|
|
|
DW_ATE_numeric_string = 0xb,
|
|
|
|
|
DW_ATE_edited = 0xc,
|
|
|
|
|
DW_ATE_signed_fixed = 0xd,
|
|
|
|
|
DW_ATE_unsigned_fixed = 0xe,
|
2005-11-23 01:07:23 +01:00
|
|
|
|
DW_ATE_decimal_float = 0xf,
|
2010-06-21 18:29:51 +02:00
|
|
|
|
/* DWARF 4. */
|
|
|
|
|
DW_ATE_UTF = 0x10,
|
2009-04-24 17:31:38 +02:00
|
|
|
|
|
|
|
|
|
DW_ATE_lo_user = 0x80,
|
|
|
|
|
DW_ATE_hi_user = 0xff,
|
|
|
|
|
|
2004-10-06 22:27:15 +02:00
|
|
|
|
/* HP extensions. */
|
dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and DW_TAG_HP_Bliss_field_set.
2010-06-08 Tristan Gingold <gingold@adacore.com>
* dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and
DW_TAG_HP_Bliss_field_set.
(enum dwarf_attribute): Add DW_AT_HP_prologue, DW_AT_HP_epilogue,
DW_AT_HP_unit_name, DW_AT_HP_unit_size, DW_AT_HP_widened_byte_size,
DW_AT_HP_definition_points, DW_AT_HP_default_location and
DW_AT_HP_is_result_param.
(enum dwarf_type): Add DW_ATE_HP_VAX_float, DW_ATE_HP_VAX_float_d,
DW_ATE_HP_packed_decimal, DW_ATE_HP_zoned_decimal, DW_ATE_HP_edited,
DW_ATE_HP_signed_fixed, DW_ATE_HP_unsigned_fixed,
DW_ATE_HP_VAX_complex_float and DW_ATE_HP_VAX_complex_float_d.
(enum dwarf_line_number_x_ops): Add
DW_LNE_HP_source_file_correlation.
(enum dwarf_source_language): Add DW_LANG_HP_Bliss,
DW_LANG_HP_Basic91, DW_LANG_HP_Pascal91, DW_LANG_HP_IMacro,
DW_LANG_HP_Assembler.
From-SVN: r160430
2010-06-08 11:51:27 +02:00
|
|
|
|
DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */
|
|
|
|
|
DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */
|
|
|
|
|
DW_ATE_HP_float128 = 0x82, /* Floating-point (128 bit). */
|
|
|
|
|
DW_ATE_HP_complex_float128 = 0x83, /* Complex fp (128 bit). */
|
|
|
|
|
DW_ATE_HP_floathpintel = 0x84, /* Floating-point (82 bit IA64). */
|
|
|
|
|
DW_ATE_HP_imaginary_float80 = 0x85,
|
|
|
|
|
DW_ATE_HP_imaginary_float128 = 0x86,
|
|
|
|
|
DW_ATE_HP_VAX_float = 0x88, /* F or G floating. */
|
|
|
|
|
DW_ATE_HP_VAX_float_d = 0x89, /* D floating. */
|
|
|
|
|
DW_ATE_HP_packed_decimal = 0x8a, /* Cobol. */
|
|
|
|
|
DW_ATE_HP_zoned_decimal = 0x8b, /* Cobol. */
|
|
|
|
|
DW_ATE_HP_edited = 0x8c, /* Cobol. */
|
|
|
|
|
DW_ATE_HP_signed_fixed = 0x8d, /* Cobol. */
|
|
|
|
|
DW_ATE_HP_unsigned_fixed = 0x8e, /* Cobol. */
|
|
|
|
|
DW_ATE_HP_VAX_complex_float = 0x8f, /* F or G floating complex. */
|
|
|
|
|
DW_ATE_HP_VAX_complex_float_d = 0x90 /* D floating complex. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
};
|
|
|
|
|
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
/* Decimal sign encodings. */
|
|
|
|
|
enum dwarf_decimal_sign_encoding
|
|
|
|
|
{
|
|
|
|
|
/* DWARF 3. */
|
|
|
|
|
DW_DS_unsigned = 0x01,
|
|
|
|
|
DW_DS_leading_overpunch = 0x02,
|
|
|
|
|
DW_DS_trailing_overpunch = 0x03,
|
|
|
|
|
DW_DS_leading_separate = 0x04,
|
|
|
|
|
DW_DS_trailing_separate = 0x05
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* Endianity encodings. */
|
|
|
|
|
enum dwarf_endianity_encoding
|
|
|
|
|
{
|
|
|
|
|
/* DWARF 3. */
|
|
|
|
|
DW_END_default = 0x00,
|
|
|
|
|
DW_END_big = 0x01,
|
2009-04-24 17:31:38 +02:00
|
|
|
|
DW_END_little = 0x02,
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
|
2009-04-24 17:31:38 +02:00
|
|
|
|
DW_END_lo_user = 0x40,
|
|
|
|
|
DW_END_hi_user = 0xff
|
|
|
|
|
};
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
|
1996-07-19 02:26:36 +02:00
|
|
|
|
/* Array ordering names and codes. */
|
|
|
|
|
enum dwarf_array_dim_ordering
|
|
|
|
|
{
|
|
|
|
|
DW_ORD_row_major = 0,
|
|
|
|
|
DW_ORD_col_major = 1
|
|
|
|
|
};
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* Access attribute. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
enum dwarf_access_attribute
|
|
|
|
|
{
|
|
|
|
|
DW_ACCESS_public = 1,
|
|
|
|
|
DW_ACCESS_protected = 2,
|
|
|
|
|
DW_ACCESS_private = 3
|
|
|
|
|
};
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* Visibility. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
enum dwarf_visibility_attribute
|
|
|
|
|
{
|
|
|
|
|
DW_VIS_local = 1,
|
|
|
|
|
DW_VIS_exported = 2,
|
|
|
|
|
DW_VIS_qualified = 3
|
|
|
|
|
};
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* Virtuality. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
enum dwarf_virtuality_attribute
|
|
|
|
|
{
|
|
|
|
|
DW_VIRTUALITY_none = 0,
|
|
|
|
|
DW_VIRTUALITY_virtual = 1,
|
|
|
|
|
DW_VIRTUALITY_pure_virtual = 2
|
|
|
|
|
};
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* Case sensitivity. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
enum dwarf_id_case
|
|
|
|
|
{
|
|
|
|
|
DW_ID_case_sensitive = 0,
|
|
|
|
|
DW_ID_up_case = 1,
|
|
|
|
|
DW_ID_down_case = 2,
|
|
|
|
|
DW_ID_case_insensitive = 3
|
|
|
|
|
};
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* Calling convention. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
enum dwarf_calling_convention
|
|
|
|
|
{
|
|
|
|
|
DW_CC_normal = 0x1,
|
|
|
|
|
DW_CC_program = 0x2,
|
2004-10-01 07:08:59 +02:00
|
|
|
|
DW_CC_nocall = 0x3,
|
2009-04-24 17:31:38 +02:00
|
|
|
|
|
|
|
|
|
DW_CC_lo_user = 0x40,
|
|
|
|
|
DW_CC_hi_user = 0xff,
|
|
|
|
|
|
2009-11-06 15:36:57 +01:00
|
|
|
|
DW_CC_GNU_renesas_sh = 0x40,
|
2011-02-23 09:57:49 +01:00
|
|
|
|
DW_CC_GNU_borland_fastcall_i386 = 0x41,
|
|
|
|
|
|
|
|
|
|
/* This DW_CC_ value is not currently generated by any toolchain. It is
|
|
|
|
|
used internally to GDB to indicate OpenCL C functions that have been
|
|
|
|
|
compiled with the IBM XL C for OpenCL compiler and use a non-platform
|
|
|
|
|
calling convention for passing OpenCL C vector types. This value may
|
|
|
|
|
be changed freely as long as it does not conflict with any other DW_CC_
|
|
|
|
|
value defined here. */
|
|
|
|
|
DW_CC_GDB_IBM_OpenCL = 0xff
|
1996-07-19 02:26:36 +02:00
|
|
|
|
};
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* Inline attribute. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
enum dwarf_inline_attribute
|
|
|
|
|
{
|
|
|
|
|
DW_INL_not_inlined = 0,
|
|
|
|
|
DW_INL_inlined = 1,
|
|
|
|
|
DW_INL_declared_not_inlined = 2,
|
|
|
|
|
DW_INL_declared_inlined = 3
|
|
|
|
|
};
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* Discriminant lists. */
|
1997-12-07 01:31:01 +01:00
|
|
|
|
enum dwarf_discrim_list
|
1996-07-19 02:26:36 +02:00
|
|
|
|
{
|
|
|
|
|
DW_DSC_label = 0,
|
|
|
|
|
DW_DSC_range = 1
|
|
|
|
|
};
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* Line number opcodes. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
enum dwarf_line_number_ops
|
|
|
|
|
{
|
|
|
|
|
DW_LNS_extended_op = 0,
|
|
|
|
|
DW_LNS_copy = 1,
|
|
|
|
|
DW_LNS_advance_pc = 2,
|
|
|
|
|
DW_LNS_advance_line = 3,
|
|
|
|
|
DW_LNS_set_file = 4,
|
|
|
|
|
DW_LNS_set_column = 5,
|
|
|
|
|
DW_LNS_negate_stmt = 6,
|
|
|
|
|
DW_LNS_set_basic_block = 7,
|
|
|
|
|
DW_LNS_const_add_pc = 8,
|
2002-01-29 00:23:26 +01:00
|
|
|
|
DW_LNS_fixed_advance_pc = 9,
|
|
|
|
|
/* DWARF 3. */
|
|
|
|
|
DW_LNS_set_prologue_end = 10,
|
|
|
|
|
DW_LNS_set_epilogue_begin = 11,
|
|
|
|
|
DW_LNS_set_isa = 12
|
1996-07-19 02:26:36 +02:00
|
|
|
|
};
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* Line number extended opcodes. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
enum dwarf_line_number_x_ops
|
|
|
|
|
{
|
|
|
|
|
DW_LNE_end_sequence = 1,
|
|
|
|
|
DW_LNE_set_address = 2,
|
2004-10-06 22:27:15 +02:00
|
|
|
|
DW_LNE_define_file = 3,
|
2009-06-30 02:02:10 +02:00
|
|
|
|
DW_LNE_set_discriminator = 4,
|
2004-10-06 22:27:15 +02:00
|
|
|
|
/* HP extensions. */
|
|
|
|
|
DW_LNE_HP_negate_is_UV_update = 0x11,
|
|
|
|
|
DW_LNE_HP_push_context = 0x12,
|
|
|
|
|
DW_LNE_HP_pop_context = 0x13,
|
|
|
|
|
DW_LNE_HP_set_file_line_column = 0x14,
|
|
|
|
|
DW_LNE_HP_set_routine_name = 0x15,
|
|
|
|
|
DW_LNE_HP_set_sequence = 0x16,
|
|
|
|
|
DW_LNE_HP_negate_post_semantics = 0x17,
|
|
|
|
|
DW_LNE_HP_negate_function_exit = 0x18,
|
|
|
|
|
DW_LNE_HP_negate_front_end_logical = 0x19,
|
2009-04-24 17:31:38 +02:00
|
|
|
|
DW_LNE_HP_define_proc = 0x20,
|
dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and DW_TAG_HP_Bliss_field_set.
2010-06-08 Tristan Gingold <gingold@adacore.com>
* dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and
DW_TAG_HP_Bliss_field_set.
(enum dwarf_attribute): Add DW_AT_HP_prologue, DW_AT_HP_epilogue,
DW_AT_HP_unit_name, DW_AT_HP_unit_size, DW_AT_HP_widened_byte_size,
DW_AT_HP_definition_points, DW_AT_HP_default_location and
DW_AT_HP_is_result_param.
(enum dwarf_type): Add DW_ATE_HP_VAX_float, DW_ATE_HP_VAX_float_d,
DW_ATE_HP_packed_decimal, DW_ATE_HP_zoned_decimal, DW_ATE_HP_edited,
DW_ATE_HP_signed_fixed, DW_ATE_HP_unsigned_fixed,
DW_ATE_HP_VAX_complex_float and DW_ATE_HP_VAX_complex_float_d.
(enum dwarf_line_number_x_ops): Add
DW_LNE_HP_source_file_correlation.
(enum dwarf_source_language): Add DW_LANG_HP_Bliss,
DW_LANG_HP_Basic91, DW_LANG_HP_Pascal91, DW_LANG_HP_IMacro,
DW_LANG_HP_Assembler.
From-SVN: r160430
2010-06-08 11:51:27 +02:00
|
|
|
|
DW_LNE_HP_source_file_correlation = 0x80,
|
1996-07-19 02:26:36 +02:00
|
|
|
|
|
2009-04-24 17:31:38 +02:00
|
|
|
|
DW_LNE_lo_user = 0x80,
|
|
|
|
|
DW_LNE_hi_user = 0xff
|
|
|
|
|
};
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
|
2011-03-31 16:02:39 +02:00
|
|
|
|
/* Sub-opcodes for DW_LNE_HP_source_file_correlation. */
|
|
|
|
|
enum dwarf_line_number_hp_sfc_ops
|
|
|
|
|
{
|
|
|
|
|
DW_LNE_HP_SFC_formfeed = 1,
|
|
|
|
|
DW_LNE_HP_SFC_set_listing_line = 2,
|
|
|
|
|
DW_LNE_HP_SFC_associate = 3
|
|
|
|
|
};
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* Call frame information. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
enum dwarf_call_frame_info
|
|
|
|
|
{
|
|
|
|
|
DW_CFA_advance_loc = 0x40,
|
|
|
|
|
DW_CFA_offset = 0x80,
|
|
|
|
|
DW_CFA_restore = 0xc0,
|
|
|
|
|
DW_CFA_nop = 0x00,
|
|
|
|
|
DW_CFA_set_loc = 0x01,
|
|
|
|
|
DW_CFA_advance_loc1 = 0x02,
|
|
|
|
|
DW_CFA_advance_loc2 = 0x03,
|
|
|
|
|
DW_CFA_advance_loc4 = 0x04,
|
|
|
|
|
DW_CFA_offset_extended = 0x05,
|
|
|
|
|
DW_CFA_restore_extended = 0x06,
|
|
|
|
|
DW_CFA_undefined = 0x07,
|
|
|
|
|
DW_CFA_same_value = 0x08,
|
|
|
|
|
DW_CFA_register = 0x09,
|
|
|
|
|
DW_CFA_remember_state = 0x0a,
|
|
|
|
|
DW_CFA_restore_state = 0x0b,
|
|
|
|
|
DW_CFA_def_cfa = 0x0c,
|
|
|
|
|
DW_CFA_def_cfa_register = 0x0d,
|
|
|
|
|
DW_CFA_def_cfa_offset = 0x0e,
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* DWARF 3. */
|
dwarf2.h (enum dwarf_call_frame_info): Add DW_CFA_def_cfa_expression.
* dwarf2.h (enum dwarf_call_frame_info): Add
DW_CFA_def_cfa_expression.
* dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
dw_loc_descr_struct entry.
(struct cfa_loc): New structure to track a CFA location.
(lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
(lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
offset, plus handle DW_CFA_def_cfa_expression.
(def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
cfa_loc record.
(dwarf2out_def_cfa): Entry point maintained for compatability.
(dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
(cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
(cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
(initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
cfa_reg.
(dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
sequences for the new DW_CFA_def_cfa_expression record.
(dwarf2out_frame_debug): Use new variables/fields.A
(output_cfi): Handle DW_CFA_def_cfa_expression.
(output_cfa_loc): New function to generate a CFI record for
DW_CFA_def_cfa_expression.
(get_cfa_from_loc_descr): New function to get a cfa_loc record from
a dw_loc_descr sequeunce.
(build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
(dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
size_of_locs, output_loc_operands, output_loc_sequence): Move into
unwind info section.
* frame.h (frame_state): Add base_offset and indirect fields.
* frame-dwarf2.c (decode_stack_op): New function to interpret a
dw_loc_descr operation.
(execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
(struct frame_state): Add base offset and indirect fields.
* libgcc2.c (next_stack_level): Support indirect loading for CFA.
From-SVN: r34717
2000-06-26 22:15:07 +02:00
|
|
|
|
DW_CFA_def_cfa_expression = 0x0f,
|
|
|
|
|
DW_CFA_expression = 0x10,
|
2001-03-28 13:04:51 +02:00
|
|
|
|
DW_CFA_offset_extended_sf = 0x11,
|
|
|
|
|
DW_CFA_def_cfa_sf = 0x12,
|
|
|
|
|
DW_CFA_def_cfa_offset_sf = 0x13,
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
DW_CFA_val_offset = 0x14,
|
|
|
|
|
DW_CFA_val_offset_sf = 0x15,
|
|
|
|
|
DW_CFA_val_expression = 0x16,
|
2009-04-24 17:31:38 +02:00
|
|
|
|
|
|
|
|
|
DW_CFA_lo_user = 0x1c,
|
|
|
|
|
DW_CFA_hi_user = 0x3f,
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* SGI/MIPS specific. */
|
1997-06-25 22:58:55 +02:00
|
|
|
|
DW_CFA_MIPS_advance_loc8 = 0x1d,
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* GNU extensions. */
|
1997-09-10 20:00:28 +02:00
|
|
|
|
DW_CFA_GNU_window_save = 0x2d,
|
2000-02-09 02:57:21 +01:00
|
|
|
|
DW_CFA_GNU_args_size = 0x2e,
|
|
|
|
|
DW_CFA_GNU_negative_offset_extended = 0x2f
|
1996-07-19 02:26:36 +02:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#define DW_CIE_ID 0xffffffff
|
2006-04-01 02:21:46 +02:00
|
|
|
|
#define DW64_CIE_ID 0xffffffffffffffffULL
|
2009-06-30 02:02:10 +02:00
|
|
|
|
#define DW_CIE_VERSION 1
|
1996-07-19 02:26:36 +02:00
|
|
|
|
|
|
|
|
|
#define DW_CFA_extended 0
|
|
|
|
|
|
|
|
|
|
#define DW_CHILDREN_no 0x00
|
|
|
|
|
#define DW_CHILDREN_yes 0x01
|
|
|
|
|
|
|
|
|
|
#define DW_ADDR_none 0
|
|
|
|
|
|
|
|
|
|
/* Source language names and codes. */
|
|
|
|
|
enum dwarf_source_language
|
|
|
|
|
{
|
|
|
|
|
DW_LANG_C89 = 0x0001,
|
|
|
|
|
DW_LANG_C = 0x0002,
|
|
|
|
|
DW_LANG_Ada83 = 0x0003,
|
|
|
|
|
DW_LANG_C_plus_plus = 0x0004,
|
|
|
|
|
DW_LANG_Cobol74 = 0x0005,
|
|
|
|
|
DW_LANG_Cobol85 = 0x0006,
|
|
|
|
|
DW_LANG_Fortran77 = 0x0007,
|
|
|
|
|
DW_LANG_Fortran90 = 0x0008,
|
|
|
|
|
DW_LANG_Pascal83 = 0x0009,
|
|
|
|
|
DW_LANG_Modula2 = 0x000a,
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* DWARF 3. */
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
DW_LANG_Java = 0x000b,
|
2001-06-29 18:52:08 +02:00
|
|
|
|
DW_LANG_C99 = 0x000c,
|
|
|
|
|
DW_LANG_Ada95 = 0x000d,
|
|
|
|
|
DW_LANG_Fortran95 = 0x000e,
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
DW_LANG_PLI = 0x000f,
|
|
|
|
|
DW_LANG_ObjC = 0x0010,
|
|
|
|
|
DW_LANG_ObjC_plus_plus = 0x0011,
|
|
|
|
|
DW_LANG_UPC = 0x0012,
|
|
|
|
|
DW_LANG_D = 0x0013,
|
dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type and DW_TAG_template_alias.
* dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
and DW_TAG_template_alias.
(dwarf_attr_name): Handle DW_AT_main_subprogram,
DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
and DW_AT_GNU_odr_signature.
(dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
DW_FORM_flag_present and DW_FORM_ref_sig8.
(output_signature): Only print name on the first byte.
(output_die): Likewise for dw_val_class_data8.
* include/dwarf2.h (DW_LANG_Python): Add comment that it is
a DWARF 4 addition.
From-SVN: r152853
2009-10-15 18:40:52 +02:00
|
|
|
|
/* DWARF 4. */
|
Add rest of new values from DWARF Version 4.
include/
Add rest of new values from DWARF Version 4.
* dwarf2.h (DW_TAG_rvalue_reference_type, DW_TAG_template_alias):
New tags.
(DW_FORM_ref_sig8): New name for DW_FORM_sig8.
(DW_AT_main_subprogram, DW_AT_data_bit_offset, DW_AT_const_expr,
DW_AT_enum_class, DW_AT_linkage_name, DW_AT_GNU_guarded_by,
DW_AT_GNU_pt_guarded_by, DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded,
DW_AT_GNU_locks_excluded, DW_AT_GNU_exclusive_locks_required,
DW_AT_GNU_shared_locks_required, DW_AT_GNU_odr_signature): New
attributes.
(DW_LANG_Python): New language.
From-SVN: r152181
2009-09-25 20:33:04 +02:00
|
|
|
|
DW_LANG_Python = 0x0014,
|
2010-11-05 18:56:58 +01:00
|
|
|
|
/* DWARF 5. */
|
|
|
|
|
DW_LANG_Go = 0x0016,
|
2009-04-24 17:31:38 +02:00
|
|
|
|
|
|
|
|
|
DW_LANG_lo_user = 0x8000, /* Implementation-defined range start. */
|
|
|
|
|
DW_LANG_hi_user = 0xffff, /* Implementation-defined range start. */
|
|
|
|
|
|
2002-01-29 00:23:26 +01:00
|
|
|
|
/* MIPS. */
|
2004-10-06 22:27:15 +02:00
|
|
|
|
DW_LANG_Mips_Assembler = 0x8001,
|
|
|
|
|
/* UPC. */
|
dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and DW_TAG_HP_Bliss_field_set.
2010-06-08 Tristan Gingold <gingold@adacore.com>
* dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and
DW_TAG_HP_Bliss_field_set.
(enum dwarf_attribute): Add DW_AT_HP_prologue, DW_AT_HP_epilogue,
DW_AT_HP_unit_name, DW_AT_HP_unit_size, DW_AT_HP_widened_byte_size,
DW_AT_HP_definition_points, DW_AT_HP_default_location and
DW_AT_HP_is_result_param.
(enum dwarf_type): Add DW_ATE_HP_VAX_float, DW_ATE_HP_VAX_float_d,
DW_ATE_HP_packed_decimal, DW_ATE_HP_zoned_decimal, DW_ATE_HP_edited,
DW_ATE_HP_signed_fixed, DW_ATE_HP_unsigned_fixed,
DW_ATE_HP_VAX_complex_float and DW_ATE_HP_VAX_complex_float_d.
(enum dwarf_line_number_x_ops): Add
DW_LNE_HP_source_file_correlation.
(enum dwarf_source_language): Add DW_LANG_HP_Bliss,
DW_LANG_HP_Basic91, DW_LANG_HP_Pascal91, DW_LANG_HP_IMacro,
DW_LANG_HP_Assembler.
From-SVN: r160430
2010-06-08 11:51:27 +02:00
|
|
|
|
DW_LANG_Upc = 0x8765,
|
|
|
|
|
/* HP extensions. */
|
|
|
|
|
DW_LANG_HP_Bliss = 0x8003,
|
|
|
|
|
DW_LANG_HP_Basic91 = 0x8004,
|
|
|
|
|
DW_LANG_HP_Pascal91 = 0x8005,
|
|
|
|
|
DW_LANG_HP_IMacro = 0x8006,
|
|
|
|
|
DW_LANG_HP_Assembler = 0x8007
|
1996-07-19 02:26:36 +02:00
|
|
|
|
};
|
|
|
|
|
|
1996-11-18 23:42:34 +01:00
|
|
|
|
/* Names and codes for macro information. */
|
1996-07-19 02:26:36 +02:00
|
|
|
|
enum dwarf_macinfo_record_type
|
|
|
|
|
{
|
|
|
|
|
DW_MACINFO_define = 1,
|
|
|
|
|
DW_MACINFO_undef = 2,
|
|
|
|
|
DW_MACINFO_start_file = 3,
|
|
|
|
|
DW_MACINFO_end_file = 4,
|
1996-11-18 23:42:34 +01:00
|
|
|
|
DW_MACINFO_vendor_ext = 255
|
1996-07-19 02:26:36 +02:00
|
|
|
|
};
|
2011-07-22 22:06:09 +02:00
|
|
|
|
|
|
|
|
|
/* Names and codes for new style macro information. */
|
|
|
|
|
enum dwarf_macro_record_type
|
|
|
|
|
{
|
|
|
|
|
DW_MACRO_GNU_define = 1,
|
|
|
|
|
DW_MACRO_GNU_undef = 2,
|
|
|
|
|
DW_MACRO_GNU_start_file = 3,
|
|
|
|
|
DW_MACRO_GNU_end_file = 4,
|
|
|
|
|
DW_MACRO_GNU_define_indirect = 5,
|
|
|
|
|
DW_MACRO_GNU_undef_indirect = 6,
|
|
|
|
|
DW_MACRO_GNU_transparent_include = 7,
|
|
|
|
|
DW_MACRO_GNU_lo_user = 0xe0,
|
|
|
|
|
DW_MACRO_GNU_hi_user = 0xff
|
|
|
|
|
};
|
2001-03-28 13:04:51 +02:00
|
|
|
|
|
|
|
|
|
/* @@@ For use with GNU frame unwind information. */
|
|
|
|
|
|
|
|
|
|
#define DW_EH_PE_absptr 0x00
|
|
|
|
|
#define DW_EH_PE_omit 0xff
|
|
|
|
|
|
|
|
|
|
#define DW_EH_PE_uleb128 0x01
|
|
|
|
|
#define DW_EH_PE_udata2 0x02
|
|
|
|
|
#define DW_EH_PE_udata4 0x03
|
|
|
|
|
#define DW_EH_PE_udata8 0x04
|
|
|
|
|
#define DW_EH_PE_sleb128 0x09
|
|
|
|
|
#define DW_EH_PE_sdata2 0x0A
|
|
|
|
|
#define DW_EH_PE_sdata4 0x0B
|
|
|
|
|
#define DW_EH_PE_sdata8 0x0C
|
|
|
|
|
#define DW_EH_PE_signed 0x08
|
|
|
|
|
|
|
|
|
|
#define DW_EH_PE_pcrel 0x10
|
|
|
|
|
#define DW_EH_PE_textrel 0x20
|
|
|
|
|
#define DW_EH_PE_datarel 0x30
|
|
|
|
|
#define DW_EH_PE_funcrel 0x40
|
2001-06-06 03:57:49 +02:00
|
|
|
|
#define DW_EH_PE_aligned 0x50
|
2001-03-28 13:04:51 +02:00
|
|
|
|
|
|
|
|
|
#define DW_EH_PE_indirect 0x80
|
2004-01-08 08:50:46 +01:00
|
|
|
|
|
2011-02-23 09:57:49 +01:00
|
|
|
|
#endif /* _DWARF2_H */
|