From cf6abd9d9f23b871e5d93be826b988da1a43edf1 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Mon, 24 Nov 2014 14:59:52 +0000 Subject: [PATCH] re PR c++/58561 ([c++11] ICE using declaration of function with auto in return type) PR c++/58561 * dbxout.c: Include stringpool.h (dbxout_type) [default]: Ignore auto type. From-SVN: r218020 --- gcc/ChangeLog | 6 ++++++ gcc/dbxout.c | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cadd82f65c7..6bc1bb13adb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-11-24 David Edelsohn + + PR c++/58561 + * dbxout.c: Include stringpool.h + (dbxout_type) [default]: Ignore auto type. + 2014-11-24 Richard Biener PR tree-optimization/63679 diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 1f04f72cbb5..207db1094d5 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -103,6 +103,7 @@ along with GCC; see the file COPYING3. If not see #include "plugin-api.h" #include "ipa-ref.h" #include "cgraph.h" +#include "stringpool.h" #ifdef XCOFF_DEBUGGING_INFO #include "xcoffout.h" @@ -2329,6 +2330,17 @@ dbxout_type (tree type, int full) break; default: + /* A C++ function with deduced return type can have a TEMPLATE_TYPE_PARM + named 'auto' in its type. + No debug info for TEMPLATE_TYPE_PARM type supported yet. */ + if (lang_GNU_CXX ()) + { + tree name = TYPE_IDENTIFIER (type); + if (name == get_identifier ("auto") + || name == get_identifier ("decltype(auto)")) + break; + } + gcc_unreachable (); } } -- 2.30.2