re PR c++/47833 (ICE during GC in gt_ggc_mx_pending_template)
authorJakub Jelinek <jakub@redhat.com>
Wed, 23 Feb 2011 00:47:38 +0000 (01:47 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 23 Feb 2011 00:47:38 +0000 (01:47 +0100)
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
gcc/cp/decl.c
gcc/cp/pt.c

index 291f09b..0e647f8 100644 (file)
@@ -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
index 663ca8f..14d530a 100644 (file)
@@ -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,
index 8867225..8d28219 100644 (file)
@@ -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;
 };