re PR c++/32609 (ICE in htab_clear_slot at libiberty/hashtab.c:722)
authorRichard Guenther <rguenther@suse.de>
Tue, 3 Jul 2007 15:29:19 +0000 (15:29 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 3 Jul 2007 15:29:19 +0000 (15:29 +0000)
2007-07-03  Richard Guenther  <rguenther@suse.de>

PR c++/32609
* class.c (fixed_type_or_null): Re-lookup the hashtable slot
after recursing.

From-SVN: r126262

gcc/cp/ChangeLog
gcc/cp/class.c

index 27f6dc5f1b3cd8bd6ff5a7aa622cf01becc885f6..059631f2e3e8415b4ad6a34ff04b56c2dbc95eef 100644 (file)
@@ -1,3 +1,9 @@
+2007-07-03  Richard Guenther  <rguenther@suse.de>
+
+       PR c++/32609
+       * class.c (fixed_type_or_null): Re-lookup the hashtable slot
+       after recursing.
+
 2007-07-02  Simon Baldwin  <simonb@google.com>
 
        * parser.c (cp_parser_elaborated_type_specifier): Added a warning
index 67cf63db1bd025fa20c00e7824d882f6166afd23..f2ccd5bd8b4a62b7b4324ab2c3ee0971555cc19e 100644 (file)
@@ -5377,7 +5377,7 @@ fixed_type_or_null (tree instance, int *nonnull, int *cdtorp)
              slot = htab_find_slot (ht, instance, INSERT);
              *slot = instance;
              type = RECUR (DECL_INITIAL (instance));
-             htab_clear_slot (ht, slot);
+             htab_remove_elt (ht, instance);
 
              return type;
            }