aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2014-01-28 12:06:40 -0500
committerJason Merrill <jason@gcc.gnu.org>2014-01-28 12:06:40 -0500
commit2e5e7103a39315664f9a625bea42981f5251c27e (patch)
tree4b8efc5521262ece0ec8b7addd7251990e3344e2 /gcc/cp
parentd5d618b5da3494c1e8037863b626f57ebb78975c (diff)
downloadgcc-2e5e7103a39315664f9a625bea42981f5251c27e.zip
gcc-2e5e7103a39315664f9a625bea42981f5251c27e.tar.gz
gcc-2e5e7103a39315664f9a625bea42981f5251c27e.tar.bz2
re PR c++/53756 ([C++1y] ICE: in gen_type_die_with_usage, at dwarf2out.c:18774 with -g and operator auto ())
PR c++/53756 gcc/ * dwarf2out.c (auto_die): New static. (gen_type_die_with_usage): Handle C++1y 'auto'. (gen_subprogram_die): If in-class DIE had 'auto', emit type again on definition. gcc/cp/ * mangle.c (write_unqualified_name): Handle operator auto. From-SVN: r207197
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/mangle.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 66e5cb5..3da4ab4 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2014-01-28 Jason Merrill <jason@redhat.com>
+
+ PR c++/53756
+ * mangle.c (write_unqualified_name): Handle operator auto.
+
2014-01-27 Jason Merrill <jason@redhat.com>
PR c++/59823
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index be3c698..add73cf 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -1231,6 +1231,9 @@ write_unqualified_name (const tree decl)
fn_type = get_mostly_instantiated_function_type (decl);
type = TREE_TYPE (fn_type);
}
+ else if (FNDECL_USED_AUTO (decl))
+ type = (DECL_STRUCT_FUNCTION (decl)->language
+ ->x_auto_return_pattern);
else
type = DECL_CONV_FN_TYPE (decl);
write_conversion_operator_name (type);