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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug debug/63240] DWARF does not represent C++ defaulted methods


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63240

--- Comment #2 from Alexandre Oliva <aoliva at gcc dot gnu.org> ---
Author: aoliva
Date: Fri Aug 12 07:11:50 2016
New Revision: 239403

URL: https://gcc.gnu.org/viewcvs?rev=239403&root=gcc&view=rev
Log:
[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.

Added:
    trunk/gcc/testsuite/g++.dg/debug/dwarf2/defaulted-member-function-1.C
    trunk/gcc/testsuite/g++.dg/debug/dwarf2/defaulted-member-function-2.C
    trunk/gcc/testsuite/g++.dg/debug/dwarf2/defaulted-member-function-3.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/cp-objcp-common.c
    trunk/gcc/cp/cp-objcp-common.h
    trunk/gcc/dwarf2out.c
    trunk/gcc/langhooks-def.h
    trunk/gcc/langhooks.h
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/g++.dg/debug/dwarf2/deleted-member-function.C
    trunk/include/ChangeLog
    trunk/include/dwarf2.def
    trunk/include/dwarf2.h

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