aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/cp-objcp-common.h
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2016-08-12 07:11:50 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2016-08-12 07:11:50 +0000
commite366d7d807f8d06dc35570871ba2b723b78975af (patch)
tree471d9088fd063b9813bc17c068db09d41e6775d3 /gcc/cp/cp-objcp-common.h
parent71e1a6a4c799e27be77f593c82b1575e094ea548 (diff)
downloadgcc-e366d7d807f8d06dc35570871ba2b723b78975af.zip
gcc-e366d7d807f8d06dc35570871ba2b723b78975af.tar.gz
gcc-e366d7d807f8d06dc35570871ba2b723b78975af.tar.bz2
[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
Diffstat (limited to 'gcc/cp/cp-objcp-common.h')
-rw-r--r--gcc/cp/cp-objcp-common.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/cp/cp-objcp-common.h b/gcc/cp/cp-objcp-common.h
index 1bb19ee..3ad3eb6 100644
--- a/gcc/cp/cp-objcp-common.h
+++ b/gcc/cp/cp-objcp-common.h
@@ -26,8 +26,9 @@ along with GCC; see the file COPYING3. If not see
extern tree objcp_tsubst_copy_and_build (tree, tree, tsubst_flags_t,
tree, bool);
-extern bool cp_function_decl_explicit_p (tree decl);
-extern bool cp_function_decl_deleted_p (tree decl);
+extern bool cp_function_decl_explicit_p (const_tree decl);
+extern bool cp_function_decl_deleted_p (const_tree decl);
+extern int cp_function_decl_defaulted (const_tree decl);
extern void cp_common_init_ts (void);
/* Lang hooks that are shared between C++ and ObjC++ are defined here. Hooks
@@ -134,6 +135,8 @@ extern void cp_common_init_ts (void);
#define LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P cp_function_decl_explicit_p
#undef LANG_HOOKS_FUNCTION_DECL_DELETED_P
#define LANG_HOOKS_FUNCTION_DECL_DELETED_P cp_function_decl_deleted_p
+#undef LANG_HOOKS_FUNCTION_DECL_DEFAULTED
+#define LANG_HOOKS_FUNCTION_DECL_DEFAULTED cp_function_decl_defaulted
#undef LANG_HOOKS_OMP_PREDETERMINED_SHARING
#define LANG_HOOKS_OMP_PREDETERMINED_SHARING cxx_omp_predetermined_sharing
#undef LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR