diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-10-24 20:44:30 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-10-24 20:44:30 +0200 |
commit | 0f2a9e37fa5487d7f1b4ea3530c497661a6d7817 (patch) | |
tree | 6675f8e8df8869495a58275f084067520862325c /gcc/dwarf2out.c | |
parent | 331075711a0f19224c11cc880c695fd52723b881 (diff) | |
download | gcc-0f2a9e37fa5487d7f1b4ea3530c497661a6d7817.zip gcc-0f2a9e37fa5487d7f1b4ea3530c497661a6d7817.tar.gz gcc-0f2a9e37fa5487d7f1b4ea3530c497661a6d7817.tar.bz2 |
dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or DW_AT_rvalue_reference attributes.
* dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or
DW_AT_rvalue_reference attributes.
* cp-objcp-common.c (cp_decl_dwarf_attribute): Handle DW_AT_reference
and DW_AT_rvalue_reference.
* g++.dg/debug/dwarf2/ref-2.C: New test.
From-SVN: r241492
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index b059ed2..515ee6e 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -20662,6 +20662,21 @@ gen_subprogram_die (tree decl, dw_die_ref context_die) if (defaulted != -1) add_AT_unsigned (subr_die, DW_AT_defaulted, defaulted); } + + /* If this is a C++11 non-static member function with & ref-qualifier + then generate a DW_AT_reference attribute. */ + if ((dwarf_version >= 5 || !dwarf_strict) + && lang_hooks.decls.decl_dwarf_attribute (decl, + DW_AT_reference) == 1) + add_AT_flag (subr_die, DW_AT_reference, 1); + + /* If this is a C++11 non-static member function with && + ref-qualifier then generate a DW_AT_reference attribute. */ + if ((dwarf_version >= 5 || !dwarf_strict) + && lang_hooks.decls.decl_dwarf_attribute (decl, + DW_AT_rvalue_reference) + == 1) + add_AT_flag (subr_die, DW_AT_rvalue_reference, 1); } } /* Tag abstract instances with DW_AT_inline. */ |