aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-02-23 01:47:38 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2011-02-23 01:47:38 +0100
commit8d422e63960595d448137624ec34e24b69b2f33d (patch)
treec310f9ccca18a94ab05cc98fb60fa5a0719ce69c
parenta26e0b8113f3a58fde9b98041140b301c4407c00 (diff)
downloadgcc-8d422e63960595d448137624ec34e24b69b2f33d.zip
gcc-8d422e63960595d448137624ec34e24b69b2f33d.tar.gz
gcc-8d422e63960595d448137624ec34e24b69b2f33d.tar.bz2
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
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/decl.c4
-rw-r--r--gcc/cp/pt.c2
3 files changed, 9 insertions, 3 deletions
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 <jakub@redhat.com>
+
+ 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 <paolo.carlini@oracle.com>
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;
};