Fix crash in gengtype debug dump
authorMikhail Maltsev <maltsevm@gmail.com>
Sun, 18 Oct 2015 23:33:21 +0000 (23:33 +0000)
committerMikhail Maltsev <miyuki@gcc.gnu.org>
Sun, 18 Oct 2015 23:33:21 +0000 (23:33 +0000)
gcc/
PR other/65800
* gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.

From-SVN: r228956

gcc/ChangeLog
gcc/gengtype.c

index 46cff7ba6c90511dcd57eaa89d50f68fdf355a63..d89db937b99a560809cd735cc4fc8e664d217d92 100644 (file)
@@ -1,3 +1,8 @@
+2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
+
+       PR other/65800
+       * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
+
 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
 
        * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
index 866d809889d6d295ed3bfc42ad0a0657521329eb..8c5c36d384e471f3fd9bec37b19c7b81f9c2fbbe 100644 (file)
@@ -4878,10 +4878,17 @@ dump_type (int indent, type_p t)
 {
   PTR *slot;
 
+  printf ("%*cType at %p: ", indent, ' ', (void *) t);
+  if (t->kind == TYPE_UNDEFINED)
+    {
+      gcc_assert (t->gc_used == GC_UNUSED);
+      printf ("undefined.\n");
+      return;
+    }
+
   if (seen_types == NULL)
     seen_types = htab_create (100, htab_hash_pointer, htab_eq_pointer, NULL);
 
-  printf ("%*cType at %p: ", indent, ' ', (void *) t);
   slot = htab_find_slot (seen_types, t, INSERT);
   if (*slot != NULL)
     {