Commit Graph

34 Commits

Author SHA1 Message Date
Alan Modra
6c3c8f087c Correct spelling of DW_AT_namelist_item
include/
	* dwarf2.def: Correct spelling of DW_AT_namelist_item.
gcc/
	* dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
	spelling of DW_AT_namelist_item.
2022-05-31 23:35:23 +09:30
Jakub Jelinek
7adcbafe45 Update copyright years. 2022-01-03 10:42:10 +01:00
Jakub Jelinek
99dee82307 Update copyright years. 2021-01-04 10:26:59 +01:00
Mark Wielaard
942ab9e9d4 libiberty: Add get_DW_UT_name and update include/dwarf2.{def,h}
This adds a get_DW_UT_name function to dwarfnames using dwarf2.def
for use in binutils readelf to show the unit types in a DWARF5 header.

Also remove DW_CIE_VERSION which was already removed in binutils/gdb
and is not used in gcc.

include/ChangeLog:

	* dwarf2.def: Add DWARF5 Unit type header encoding macros
	DW_UT_FIRST, DW_UT and DW_UT_END.
	* dwarf2.h (enum dwarf_unit_type): Removed and define using
	DW_UT_FIRST, DW_UT and DW_UT_END macros.
	(DW_CIE_VERSION): Removed.
	(get_DW_UT_name): New function declaration.

libiberty/ChangeLog:

	* dwarfnames.c (get_DW_UT_name): Define using DW_UT_FIRST, DW_UT
	and DW_UT_END.
2020-09-24 22:37:10 +02:00
Jakub Jelinek
8d9254fc8a Update copyright years.
From-SVN: r279813
2020-01-01 12:51:42 +01:00
Jakub Jelinek
a554497024 Update copyright years.
From-SVN: r267494
2019-01-01 13:31:55 +01:00
Tom Rix
91294f1e4f * dwarf2.def (DW_FORM_strx*, DW_FORM_addrx*): New.
From-SVN: r260695
2018-05-24 16:03:06 -06:00
Alexandre Oliva
5800666390 [IEPM] Introduce inline entry point markers
Output DW_AT_entry_pc based on markers.

Introduce DW_AT_GNU_entry_view as a DWARF extension.

If views are enabled are we're not in strict compliance mode, output
DW_AT_GNU_entry_view if it might be nonzero.

This patch depends on SFN and LVU patchsets, and on the IEPM patch that
introduces the inline_entry debug hook.

for  include/ChangeLog

	* dwarf2.def (DW_AT_GNU_entry_view): New.

for  gcc/ChangeLog

	* cfgexpand.c (expand_gimple_basic_block): Handle inline entry
	markers.
	* dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook.
	(BLOCK_INLINE_ENTRY_LABEL): New.
	(dwarf2out_var_location): Disregard inline entry markers.
	(inline_entry_data): New struct.
	(inline_entry_data_hasher): New hashtable type.
	(inline_entry_data_hasher::hash): New.
	(inline_entry_data_hasher::equal): New.
	(inline_entry_data_table): New variable.
	(add_high_low_attributes): Add DW_AT_entry_pc and
	DW_AT_GNU_entry_view attributes if a pending entry is found
	in inline_entry_data_table.  Add old entry_pc attribute only
	if debug nonbinding markers are disabled.
	(gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding
	markers are enabled.
	(block_within_block_p, dwarf2out_inline_entry): New.
	(dwarf2out_finish): Check that no entries remained in
	inline_entry_data_table.
	* final.c (reemit_insn_block_notes): Handle inline entry notes.
	(final_scan_insn, notice_source_line): Likewise.
	(rest_of_clean_state): Skip inline entry markers.
	* gimple-pretty-print.c (dump_gimple_debug): Handle inline entry
	markers.
	* gimple.c (gimple_build_debug_inline_entry): New.
	* gimple.h (enum gimple_debug_subcode): Add
	GIMPLE_DEBUG_INLINE_ENTRY.
	(gimple_build_debug_inline_entry): Declare.
	(gimple_debug_inline_entry_p): New.
	(gimple_debug_nonbind_marker_p): Adjust.
	* insn-notes.def (INLINE_ENTRY): New.
	* print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
	inline entry marker notes.
	(print_insn): Likewise.
	* rtl.h	(NOTE_MARKER_P): Add INLINE_ENTRY support.
	(INSN_DEBUG_MARKER_KIND): Likewise.
	(GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New.
	* tree-inline.c	(expand_call_inline): Build and insert
	debug_inline_entry stmt.
	* tree-ssa-live.c (remove_unused_scope_block_p): Preserve
	inline entry blocks early, if nonbind markers are enabled.
	(dump_scope_block): Dump fragment info.
	* var-tracking.c (reemit_marker_as_note): Handle inline entry note.
	* doc/gimple.texi (gimple_debug_inline_entry_p): New.
	(gimple_build_debug_inline_entry): New.
	* doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers):
	Enable/disable inline entry points too.
	* doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New.
	(DEBUG_INSN): Describe inline entry markers.

From-SVN: r257511
2018-02-09 02:22:11 +00:00
Alexandre Oliva
bd2b9f1e2d [LVU] Introduce location views
This patch introduces an option to enable the generation of location
views along with location lists.  The exact format depends on the
DWARF version: it can be a separate attribute (DW_AT_GNU_locviews) or
(DW_LLE_view_pair) entries in DWARF5+ loclists.

Line number tables are also affected.  If the assembler is found, at
compiler build time, to support .loc views, we use them and
assembler-computed view labels, otherwise we output compiler-generated
line number programs with conservatively-computed view labels.  In
either case, we output view information next to line number changes
when verbose assembly output is requested.

This patch requires an LVU patch that modifies the exported API of
final_scan_insn.  It also expects the entire SFN patchset to be
installed first, although SFN is not a requirement for LVU.

for  include/ChangeLog

	* dwarf2.def (DW_AT_GNU_locviews): New.
	* dwarf2.h (enum dwarf_location_list_entry_type): Add
	DW_LLE_GNU_view_pair.
	(DW_LLE_view_pair): Define.

for  gcc/ChangeLog

	* common.opt (gvariable-location-views): New.
	(gvariable-location-views=incompat5): New.
	* config.in: Rebuilt.
	* configure: Rebuilt.
	* configure.ac: Test assembler for view support.
	* dwarf2asm.c (dw2_asm_output_symname_uleb128): New.
	* dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare.
	* dwarf2out.c (var_loc_view): New typedef.
	(struct dw_loc_list_struct): Add vl_symbol, vbegin, vend.
	(dwarf2out_locviews_in_attribute): New.
	(dwarf2out_locviews_in_loclist): New.
	(dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists.
	(enum dw_line_info_opcode): Add LI_adv_address.
	(struct dw_line_info_table): Add view.
	(RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros.
	(DWARF2_ASM_VIEW_DEBUG_INFO): Define default.
	(zero_view_p): New variable.
	(ZERO_VIEW_P): New macro.
	(output_asm_line_debug_info): New.
	(struct var_loc_node): Add view.
	(add_AT_view_list, AT_loc_list): New.
	(add_var_loc_to_decl): Add view param.  Test it against last.
	(new_loc_list): Add view params.  Record them.
	(AT_loc_list_ptr): Handle loc and view lists.
	(view_list_to_loc_list_val_node): New.
	(print_dw_val): Handle dw_val_class_view_list.
	(size_of_die): Likewise.
	(value_format): Likewise.
	(loc_list_has_views): New.
	(gen_llsym): Set vl_symbol too.
	(maybe_gen_llsym, skip_loc_list_entry): New.
	(dwarf2out_maybe_output_loclist_view_pair): New.
	(output_loc_list): Output view list or entries too.
	(output_view_list_offset): New.
	(output_die): Handle dw_val_class_view_list.
	(output_dwarf_version): New.
	(output_compilation_unit_header): Use it.
	(output_skeleton_debug_sections): Likewise.
	(output_rnglists, output_line_info): Likewise.
	(output_pubnames, output_aranges): Update version comments.
	(output_one_line_info_table): Output view numbers in asm comments.
	(dw_loc_list): Determine current endview, pass it to new_loc_list.
	Call maybe_gen_llsym.
	(loc_list_from_tree_1): Adjust.
	(add_AT_location_description): Create view list attribute if
	needed, check it's absent otherwise.
	(convert_cfa_to_fb_loc_list): Adjust.
	(maybe_emit_file): Call output_asm_line_debug_info for test.
	(dwarf2out_var_location): Reset views as needed.  Precompute
	add_var_loc_to_decl args.  Call get_attr_min_length only if we have the
	attribute.  Set view.
	(new_line_info_table): Reset next view.
	(set_cur_line_info_table): Call output_asm_line_debug_info for test.
	(dwarf2out_source_line): Likewise.  Output view resets and labels to
	the assembler, or select appropriate line info opcodes.
	(prune_unused_types_walk_attribs): Handle dw_val_class_view_list.
	(optimize_string_length): Catch it.  Adjust.
	(resolve_addr): Copy vl_symbol along with ll_symbol.  Handle
	dw_val_class_view_list, and remove it if no longer needed.
	(hash_loc_list): Hash view numbers.
	(loc_list_hasher::equal): Compare them.
	(optimize_location_lists): Check whether a view list symbol is
	needed, and whether the locview attribute is present, and
	whether they match.  Remove the locview attribute if no longer
	needed.
	(index_location_lists): Call skip_loc_list_entry for test.
	(dwarf2out_finish): Call output_asm_line_debug_info for test.
	Use output_dwarf_version.
	* dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list.
	(struct dw_val_node): Add val_view_list.
	* final.c (SEEN_NEXT_VIEW): New.
	(set_next_view_needed): New.
	(clear_next_view_needed): New.
	(maybe_output_next_view): New.
	(final_start_function): Rename to...
	(final_start_function_1): ... this.  Take pointer to FIRST,
	add SEEN parameter.  Emit param bindings in the initial view.
	(final_start_function): Reintroduce SEEN-less interface.
	(final): Rename to...
	(final_1): ... this.  Take SEEN parameter.  Output final pending
	next view at the end.
	(final): Reintroduce seen-less interface.
	(final_scan_insn): Output pending next view before switching
	sections or ending a block.  Mark the next view as needed when
	outputting variable locations.  Notify debug backend of section
	changes, and of location view changes.
	(rest_of_handle_final): Adjust.
	* toplev.c (process_options): Autodetect value for debug variable
	location views option.  Warn on incompat5 without -gdwarf-5.
	* doc/invoke.texi (gvariable-location-views): New.
	(gvariable-location-views=incompat5): New.
	(gno-variable-location-views): New.

From-SVN: r257510
2018-02-09 02:21:57 +00:00
Jakub Jelinek
85ec4feb11 Update copyright years.
From-SVN: r256169
2018-01-03 11:03:58 +01:00
Jiong Wang
ff971abe60 Add DW_CFA_AARCH64_negate_ra_state to dwarf2.def/h and dwarfnames.c
A new vendor CFA DW_CFA_AARCH64_negate_ra_state was introduced for ARMv8.3-A
return address signing, it is multiplexing DW_CFA_GNU_window_save in CFA vendor
extension space.

  This patch adds necessary code to make it available to external, the GDB
patch (https://sourceware.org/ml/gdb-patches/2017-08/msg00215.html) is intended
to use it.

  A new DW_CFA_DUP for it is added in dwarf2.def.  The use of DW_CFA_DUP is to
avoid duplicated case value issue when included in libiberty/dwarfnames.

  Native x86 builds OK to make sure no macro expanding errors.

Committed on behalf of Jiong Wang.

    include/
	* dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP.
	* dwarf2.h (DW_CFA_DUP): New define.

    libiberty/
	* dwarfnames.c (DW_CFA_DUP): New define.

From-SVN: r252037
2017-09-12 16:39:59 +00:00
Jan Kratochvil
ef29f5dd77 include/ChangeLog
2017-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

        * dwarf2.def (DW_IDX_compile_unit, DW_IDX_type_unit, DW_IDX_die_offset)
        (DW_IDX_parent, DW_IDX_type_hash, DW_IDX_lo_user, DW_IDX_hi_user)
        (DW_IDX_GNU_internal, DW_IDX_GNU_external): New.
        * dwarf2.h (DW_IDX, DW_IDX_DUP, DW_FIRST_IDX, DW_END_IDX): New.
        (enum dwarf_name_index_attribute): Remove.
        (get_DW_IDX_name): New declaration.

libiberty/ChangeLog
2017-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

        * dwarfnames.c (DW_FIRST_IDX, DW_END_IDX, DW_IDX, DW_IDX_DUP): New.

From-SVN: r249883
2017-07-02 20:00:48 +00:00
Jakub Jelinek
680c60feb4 re PR debug/77589 (fortran: Missing DW_AT_byte_stride for an array record field selection)
PR debug/77589
include/
	* dwarf2.def (DW_OP_GNU_variable_value): New opcode.
gcc/
	* dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
	bitfield.
	(size_of_loc_descr): Handle DW_OP_GNU_variable_value.
	(output_loc_operands): Handle DW_OP_call_ref and
	DW_OP_GNU_variable_value.
	(struct variable_value_struct): New type.
	(struct variable_value_hasher): Likewise.
	(variable_value_hash): New variable.
	(string_types): Remove.
	(copy_loc_descr): New function.
	(add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
	(prepend_loc_descr_to_each): New function.
	(add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
	instead of add_loc_descr_to_each if the first argument is single
	location list and the second has multiple.
	(resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
	(loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
	when looking for variable value which doesn't have other location info.
	(loc_list_from_tree): Formatting fix.
	(gen_array_type_die): Simplify DW_AT_string_length handling.
	(adjust_string_types): Remove.
	(gen_subprogram_die): Don't call adjust_string_types nor test/set
	string_types.  Call resolve_variable_values.
	(prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
	(resolve_addr_in_expr): Likewise.  Add A argument.
	(copy_deref_exprloc): Remove deref argument.  Adjust for the
	original expression being DW_OP_GNU_variable_value with optionally
	DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
	optionally after it.
	(optimize_string_length): Rework for DW_OP_GNU_variable_value.
	(resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
	callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
	(variable_value_hasher::hash, variable_value_hasher::equal): New
	methods.
	(resolve_variable_value_in_expr, resolve_variable_value,
	resolve_variable_values, note_variable_value_in_expr,
	note_variable_value): New functions.
	(dwarf2out_early_finish): Call note_variable_value on all toplevel
	DIEs.

From-SVN: r245733
2017-02-25 09:18:24 +01:00
Richard Earnshaw
65793e420e [DWARF] New DWARF operation "DW_OP_AARCH64_operation" for AArch64
include/
	* dwarf2.def (DW_OP_AARCH64_operation): Reserve the number 0xea.
	(DW_CFA_GNU_window_save): Comments the multiplexing on AArch64.


Co-Authored-By: Jiong Wang <jiong.wang@arm.com>

From-SVN: r244055
2017-01-04 14:25:04 +00:00
Jakub Jelinek
2afd3180c5 Update copyright years.
From-SVN: r244052
2017-01-04 12:30:51 +01:00
Jakub Jelinek
d8ee9c7e54 dwarf2.def (DW_FORM_ref_sup): Renamed to ...
* dwarf2.def (DW_FORM_ref_sup): Renamed to ...
	(DW_FORM_ref_sup4): ... this.  New form.
	(DW_FORM_ref_sup8): New form.

From-SVN: r243876
2016-12-21 23:48:51 +01:00
Jakub Jelinek
558c7db061 dwarf2.h (enum dwarf_calling_convention): Add new DWARF5 calling convention codes.
* dwarf2.h (enum dwarf_calling_convention): Add new DWARF5
	calling convention codes.
	(enum dwarf_line_number_content_type): New.
	(enum dwarf_location_list_entry_type): Add DWARF5 DW_LLE_*
	codes.
	(enum dwarf_source_language): Add new DWARF5 DW_LANG_* codes.
	(enum dwarf_macro_record_type): Add DWARF5 DW_MACRO_* codes.
	(enum dwarf_name_index_attribute): New.
	(enum dwarf_range_list_entry): New.
	(enum dwarf_unit_type): New.
	* dwarf2.def: Add new DWARF5 DW_TAG_*, DW_FORM_*, DW_AT_*,
	DW_OP_* and DW_ATE_* entries.

From-SVN: r241272
2016-10-17 19:35:33 +02:00
Jakub Jelinek
980bd53780 dwarf2.def (DW_AT_string_length_bit_size, [...]): New attributes.
* dwarf2.def (DW_AT_string_length_bit_size,
	DW_AT_string_length_byte_size): New attributes.

	* dwarf2out.c (struct checksum_attributes): Add
	at_string_length_bit_size and at_string_length_byte_size fields.
	(collect_checksum_attributes): Handle DW_AT_string_length_bit_size
	and DW_AT_string_length_byte_size.
	(die_checksum_ordered): Handle at_string_length_bit_size and
	at_string_length_byte_size.
	(gen_array_type_die): For dwarf_version >= 5 emit
	DW_AT_string_length_byte_size instead of DW_AT_byte_size.
	(adjust_string_types): For dwarf_version >= 5 remove
	DW_AT_string_length_byte_size instead of DW_AT_byte_size.
	(resolve_addr): Likewise.

From-SVN: r239470
2016-08-15 11:51:44 +02:00
Alexandre Oliva
e366d7d807 [PR63240] generate debug info for defaulted member functions
This implements <http://dwarfstd.org/ShowIssue.php?issue=141215.3>, a
proposal already accepted for inclusion in DWARF-5, but using
DW_AT_GNU_defaulted instead of DW_AT_defaulted as the attribute name,
because the attribute id for DW_AT_defaulted is not yet publicly
available.

for  include/ChangeLog

	PR debug/63240
	* dwarf2.def (DW_AT_deleted, DW_AT_defaulted): New.
	* dwarf2.h (enu dwarf_defaulted_attribute): New.

for  gcc/ChangeLog

	PR debug/63240
	* langhooks-def.h
	(LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
	(LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
	(LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
	(LANG_HOOKS_DECLS): Add it.
	* langhooks.h (struct lang_hooks_for_decls): Add
	function_decl_defaulted.  Const_tree-ify
	function_decl_explicit_p and function_decl_deleted_p.
	* dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
	attribute.  Add DW_AT_deleted instead of DW_AT_GNU_deleted,
	also at strict DWARF v5.

for  gcc/cp/ChangeLog

	PR debug/63240
	* cp-objcp-common.c (cp_function_decl_defaulted): New.
	(cp_function_decl_explicit_p): Const_tree-ify.
	(cp_function_decl_deleted_p): Likewise.
	* cp-objcp-common.h (cp_function_decl_defaulted): Declare.
	(cp_function_decl_explicit_p): Const_tree-ify.
	(cp_function_decl_deleted_p): Likewise.
	(LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Redefine.

for  gcc/testsuite/ChangeLog

	PR debug/63240
	* g++.dg/debug/dwarf2/defaulted-member-function-1.C: New.
	* g++.dg/debug/dwarf2/defaulted-member-function-2.C: New.
	* g++.dg/debug/dwarf2/defaulted-member-function-3.C: New.
	* g++.dg/debug/dwarf2/deleted-member-function.C: Expect
	DW_AT_deleted.

From-SVN: r239403
2016-08-12 07:11:50 +00:00
Pierre-Marie de Rodat
9d14780002 DWARF2: add extensions to handle biased types
include/ChangeLog:

	* dwarf2.def (DW_AT_GNU_bias): New attribute.

From-SVN: r226888
2015-08-14 09:48:13 +00:00
Pierre-Marie de Rodat
07d574b4dc DWARF2: add extensions to handle fixed point types
include/ChangeLog:

	* dwarf2.def (DW_AT_GNU_numerator, DW_AT_GNU_denominator): New
	attributes.

From-SVN: r226887
2015-08-14 09:48:02 +00:00
H.J. Lu
9cefc85619 Update copyright year in include
From-SVN: r225781
2015-07-14 09:08:59 -07:00
Mark Wielaard
bc3518da23 DWARFv5 Emit DW_TAG_atomic_type for C11 _Atomic.
This implements the DW_TAG_atomic_type for C11 _Atomic proposal as adopted
in the latest DWARF5 draft. http://dwarfstd.org/ShowIssue.php?issue=131112.1

gcc/ChangeLog

	PR debug/60782
	* dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.

gcc/testsuite/ChangeLog

	PR debug/60782
	* gcc.dg/debug/dwarf2/atomic.c: New test.
	* gcc.dg/debug/dwarf2/stacked-qualified-types-3.c: Likewise.

include/ChangeLog

	PR debug/60782
	* dwarf2.def: Add DWARFv5 DW_TAG_atomic_type.

From-SVN: r218496
2014-12-08 22:32:23 +00:00
Mark Wielaard
42bc352001 DWARF add DW_AT_noreturn on noreturn function subprogram.
This implements the DWARFv5 noreturn proposal:
http://dwarfstd.org/ShowIssue.php?issue=140331.1

TREE_THIS_VOLATILE on a FUNCTION_DECL node means the function does not
return normally. This catches the traditional noreturn GNU attribute,
the C11 _Noreturn keyword and the C++11 [[noreturn]] attribute.

This relies on the DW_AT_noreturn constant defined in the DWARFv5 DRAFT:
http://www.dwarfstd.org/doc/dwarf5.20141029.pdf

gcc/ChangeLog

	* dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
	function decl has TREE_THIS_VOLATILE.

gcc/testsuite/ChangeLog

	* g++.dg/debug/dwarf2/noreturn-function.C: New test.
	* gcc.dg/debug/dwarf2/noreturn-function-attribute.c: Likewise.
	* gcc.dg/debug/dwarf2/noreturn-function-keyword.c: Likewise.

include/ChangeLog

	* dwarf2.def (DW_AT_noreturn): New DWARF5 attribute.

From-SVN: r218075
2014-11-26 10:10:27 +00:00
Shinichiro Hamaji
d8607f259c * dwarf2.def (DW_AT_APPLE_optimized, DW_AT_APPLE_flags)
(DW_AT_APPLE_isa, DW_AT_APPLE_block)
	(DW_AT_APPLE_major_runtime_vers, DW_AT_APPLE_runtime_class)
	(DW_AT_APPLE_omit_frame_ptr, DW_AT_APPLE_property_name)
	(DW_AT_APPLE_property_getter, DW_AT_APPLE_property_setter)
	(DW_AT_APPLE_property_attribute, DW_AT_APPLE_objc_complete_type)
	(DW_AT_APPLE_property): New macros.

From-SVN: r217578
2014-11-14 18:18:34 +01:00
Mark Wielaard
f50592234c PR debug/63239 Add DWARF representation for C++11 deleted member function.
include/ChangeLog

	* dwarf2.def (DW_AT_GNU_deleted): New attribute.

gcc/ChangeLog

	* dwarf2out.c (gen_subprogram_die): When a member function is
	explicitly deleted then add a DW_AT_GNU_deleted attribute.
	* langhooks.h (struct lang_hooks_for_decls): Add
	function_decl_deleted_p langhook.
	* langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
	(LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.

gcc/cp/ChangeLog

	* cp-objcp-common.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
	(cp_function_decl_deleted_p): New prototype.
	* cp-objcp-common.c (cp_function_deleted_p): New function.

gcc/testsuite/ChangeLog

	* g++.dg/debug/dwarf2/deleted-member-function.C: New testcase.

From-SVN: r215901
2014-10-05 15:25:03 +00:00
Dehao Chen
f524d0aa99 dwarf2.def (DW_AT_GNU_discriminator): New attribute.
2013-08-19  Dehao Chen  <dehao@google.com>

	* dwarf2.def (DW_AT_GNU_discriminator): New attribute.

From-SVN: r201855
2013-08-19 20:11:09 +00:00
Cary Coutant
316b938ed7 dwarf2.def: Edit comment.
2012-09-06  Cary Coutant  <ccoutant@google.com>

include/
	* dwarf2.def: Edit comment.

From-SVN: r191046
2012-09-06 16:32:59 -07:00
Doug Evans
1810019879 * dwarf2.def (DW_OP): Add DW_OP_GNU_const_index.
From-SVN: r188759
2012-06-18 23:35:08 +00:00
Jakub Jelinek
c6133dbed2 dwarf2.def (DW_FORM_GNU_ref_alt, [...]): New forms.
* dwarf2.def (DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt): New
	forms.
	* dwarf2.h (enum dwarf_macro_record_type): Add
	DW_MACRO_GNU_define_indirect_alt, DW_MACRO_GNU_undef_indirect_alt
	and DW_MACRO_GNU_transparent_include_alt.

From-SVN: r188337
2012-06-08 20:48:46 +02:00
Gary Funck
103ab31f69 dwarf2.def: Update comment re: UPC extensions to reference DWARF4 specification.
toplevel/include/
	* dwarf2.def: Update comment re: UPC extensions to reference
	DWARF4 specification.

From-SVN: r187689
2012-05-20 00:55:05 +00:00
Cary Coutant
43f7c4322c dwarf2.def: Remove DW_FORM_GNU_ref_index, replace DW_AT_GNU_ref_base with DW_AT_GNU_ranges_base.
include/

	* dwarf2.def: Remove DW_FORM_GNU_ref_index,
	replace DW_AT_GNU_ref_base with DW_AT_GNU_ranges_base.

From-SVN: r187061
2012-05-02 11:41:56 -07:00
Doug Evans
d028426aa1 * dwarf2.def (DW_OP): Add DW_OP_GNU_addr_index.
From-SVN: r186934
2012-04-28 21:37:19 +00:00
Tom Tromey
11ec770e46 dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
	* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
	(dwarf_tag_name): Use get_DW_TAG_name.
	(dwarf_attr_name): Use get_DW_AT_name.
	(dwarf_form_name): Use get_DW_FORM_name.
	* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
	* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
	(enum dwarf_location_atom, enum dwarf_type, enum
	dwarf_call_frame_info): Remove.
	(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
	(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
	Include dwarf2.def.
	(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
	(get_DW_OP_name, get_DW_ATE_name): Declare.
	* dwarf2.def: New file, from dwarf2.h.
libiberty
	* dwarfnames.c: New file.
	* Makefile.in (CFILES): Add dwarfnames.
	(REQUIRED_OFILES): Add dwarfnames.
	(./dwarfnames.$(objext)): New target.

From-SVN: r186908
2012-04-27 14:14:14 +00:00