This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: C++ PATCH for c++/50614 (ICE with NSDMI and -fcompare-debug)
- From: Jason Merrill <jason at redhat dot com>
- Cc: gcc-patches List <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 14 Oct 2011 14:55:45 -0400
- Subject: Re: C++ PATCH for c++/50614 (ICE with NSDMI and -fcompare-debug)
- References: <4E97568E.7090406@redhat.com>
On 10/13/2011 05:22 PM, Jason Merrill wrote:
+ DECL_INITIAL (r) = error_mark_node;
While working on 50507 I noticed that we check for error_mark_node in
walk_field_subobs, so I'm changing the placeholder to void_zero_node.
Tested x86_64-pc-linux-gnu, applying to trunk.
commit ca436fb810b1b85abcb3bd7bc950e55df259dafd
Author: Jason Merrill <jason@redhat.com>
Date: Thu Oct 13 21:56:23 2011 -0400
* pt.c (tsubst_decl) [FIELD_DECL]: Use void_zero_node
instead of error_mark_node as a placeholder.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 1632c01..bbe1139 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -10273,8 +10273,8 @@ tsubst_decl (tree t, tree args, tsubst_flags_t complain)
{
/* Set up DECL_TEMPLATE_INFO so that we can get at the
NSDMI in perform_member_init. Still set DECL_INITIAL
- to error_mark_node so that we know there is one. */
- DECL_INITIAL (r) = error_mark_node;
+ so that we know there is one. */
+ DECL_INITIAL (r) = void_zero_node;
gcc_assert (DECL_LANG_SPECIFIC (r) == NULL);
retrofit_lang_decl (r);
DECL_TEMPLATE_INFO (r) = build_template_info (t, args);