X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=binutils%2Fdebug.c;h=5470e155edcfe414196516a719c13e9fe11daa92;hb=708a2ffff5cc2d280968a6b28268d8276d391bb4;hp=0aa1f50755b968a2406a5d952ed57b4c9d263281;hpb=35431c4c2363b6f3b7254e0c2783ae27e956afbc;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/debug.c b/binutils/debug.c index 0aa1f50755..5470e155ed 100644 --- a/binutils/debug.c +++ b/binutils/debug.c @@ -1,5 +1,5 @@ /* debug.c -- Handle generic debugging information. - Copyright 1995-2013 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of GNU Binutils. @@ -2419,6 +2419,9 @@ debug_write_type (struct debug_handle *info, int is; const char *tag = NULL; + if (type == DEBUG_TYPE_NULL) + return (*fns->empty_type) (fhandle); + /* If we have a name for this type, just output it. We only output typedef names after they have been defined. We output type tags whenever we are not actually defining them. */ @@ -2481,8 +2484,6 @@ debug_write_type (struct debug_handle *info, debug_error (_("debug_write_type: illegal type encountered")); return FALSE; case DEBUG_KIND_INDIRECT: - if (*type->u.kindirect->slot == DEBUG_TYPE_NULL) - return (*fns->empty_type) (fhandle); return debug_write_type (info, fns, fhandle, *type->u.kindirect->slot, name); case DEBUG_KIND_VOID: @@ -3276,6 +3277,8 @@ debug_class_type_samep (struct debug_handle *info, struct debug_type_s *t1, names, since that sometimes fails in the presence of typedefs and we really don't care. */ if (strcmp (f1->name, f2->name) != 0 + || f1->type == NULL + || f2->type == NULL || ! debug_type_samep (info, debug_get_real_type ((void *) info, f1->type, NULL),