From patchwork Tue Oct 9 11:34:46 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [c-family] Small tweak to -fdump-ada-spec Date: Tue, 09 Oct 2012 01:34:46 -0000 From: Eric Botcazou X-Patchwork-Id: 190283 Message-Id: <3282139.CPa9RoBt6V@polaris> To: gcc-patches@gcc.gnu.org Hi, we noticed that we dump TEMPLATE_DECLs that are built for template friend declarations in the current file, which doesn't really make sense. Tested on x86_64-suse-linux, OK for the mainline? 2012-10-09 Eric Botcazou * c-ada-spec.c (dump_ada_template): Bail out for template declarations declaring something coming from another file. Index: c-ada-spec.c =================================================================== --- c-ada-spec.c (revision 192137) +++ c-ada-spec.c (working copy) @@ -1700,10 +1700,18 @@ static int dump_ada_template (pretty_printer *buffer, tree t, int (*cpp_check)(tree, cpp_operation), int spc) { - tree inst = DECL_VINDEX (t); /* DECL_VINDEX is DECL_TEMPLATE_INSTANTIATIONS in this context. */ + tree inst = DECL_VINDEX (t); + /* DECL_RESULT_FLD is DECL_TEMPLATE_RESULT in this context. */ + tree result = DECL_RESULT_FLD (t); int num_inst = 0; + /* Don't look at template declarations declaring something coming from + another file. This can occur for template friend declarations. */ + if (LOCATION_FILE (decl_sloc (result, false)) + != LOCATION_FILE (decl_sloc (t, false))) + return 0; + while (inst && inst != error_mark_node) { tree types = TREE_PURPOSE (inst);