From 8d422e63960595d448137624ec34e24b69b2f33d Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 23 Feb 2011 01:47:38 +0100 Subject: re PR c++/47833 (ICE during GC in gt_ggc_mx_pending_template) PR c++/47833 * pt.c (struct pending_template): Add chain_next GTY option. * decl.c (struct named_label_use_entry): Likewise. From-SVN: r170424 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/decl.c | 4 ++-- gcc/cp/pt.c | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) (limited to 'gcc') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 291f09b..0e647f8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2011-02-23 Jakub Jelinek + + PR c++/47833 + * pt.c (struct pending_template): Add chain_next GTY option. + * decl.c (struct named_label_use_entry): Likewise. + 2011-02-22 Paolo Carlini PR c++/47242 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 663ca8f..14d530a 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -1,6 +1,6 @@ /* Process declarations and variables for C++ compiler. Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) @@ -178,7 +178,7 @@ tree integer_two_node; /* Used only for jumps to as-yet undefined labels, since jumps to defined labels can have their validity checked immediately. */ -struct GTY(()) named_label_use_entry { +struct GTY((chain_next ("%h.next"))) named_label_use_entry { struct named_label_use_entry *next; /* The binding level to which this entry is *currently* attached. This is initially the binding level in which the goto appeared, diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 8867225..8d28219 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -53,7 +53,7 @@ typedef int (*tree_fn_t) (tree, void*); /* The PENDING_TEMPLATES is a TREE_LIST of templates whose instantiations have been deferred, either because their definitions were not yet available, or because we were putting off doing the work. */ -struct GTY (()) pending_template { +struct GTY ((chain_next ("%h.next"))) pending_template { struct pending_template *next; struct tinst_level *tinst; }; -- cgit v1.1