]> git.ipfire.org Git - thirdparty/gcc.git/commit
[PR63240] generate debug info for defaulted member functions
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Aug 2016 07:11:50 +0000 (07:11 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Aug 2016 07:11:50 +0000 (07:11 +0000)
commit832d369da187f1ff8e59e714720c336cb80f7b49
tree471d9088fd063b9813bc17c068db09d41e6775d3
parent1289a281c150d8a88226bfbf99eca43420dbbd76
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239403 138bc75d-0d04-0410-961f-82ee72b054a4
15 files changed:
gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/cp-objcp-common.c
gcc/cp/cp-objcp-common.h
gcc/dwarf2out.c
gcc/langhooks-def.h
gcc/langhooks.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/debug/dwarf2/defaulted-member-function-1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/defaulted-member-function-2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/defaulted-member-function-3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/deleted-member-function.C
include/ChangeLog
include/dwarf2.def
include/dwarf2.h