From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Jacobowitz To: Jim Ingham Cc: gdb-patches@sources.redhat.com Subject: Re: Bug Fix: make_cv_type Date: Wed, 12 May 2004 22:29:00 -0000 Message-id: <20040512222914.GA6551@nevyn.them.org> References: <1AA36FBA-A463-11D8-9DB9-000A958F4C44@apple.com> X-SW-Source: 2004-05/msg00393.html On Wed, May 12, 2004 at 03:24:16PM -0700, Jim Ingham wrote: > make_cv_type actually gets called in two ways that require it to fix up > an unresolved type which could potentially get its complete type from > another objfile. One is then the input type is a stub. The other is > when the input type is an opaque type (TYPE_IS_OPAQUE). For an > instance of the latter, see check_typedef where is calls > lookup_transparent_type when it sees an opaque type. > > But the second case in not accounted for in the gdb_assert in > make_cv_type. It should read: Do you have a testcase (or ChangeLog entry :) for this? > > Index: gdbtypes.c > =================================================================== > RCS file: /cvs/src/src/gdb/gdbtypes.c,v > retrieving revision 1.82 > diff -p -p -r1.82 gdbtypes.c > *** gdbtypes.c 9 Mar 2004 17:08:25 -0000 1.82 > --- gdbtypes.c 12 May 2004 22:18:34 -0000 > *************** make_cv_type (int cnst, int voltl, struc > *** 525,531 **** > to do is to copy the core type into the new objfile. */ > > gdb_assert (TYPE_OBJFILE (*typeptr) == TYPE_OBJFILE (type) > ! || TYPE_STUB (*typeptr)); > if (TYPE_OBJFILE (*typeptr) != TYPE_OBJFILE (type)) > { > TYPE_MAIN_TYPE (*typeptr) > --- 525,531 ---- > to do is to copy the core type into the new objfile. */ > > gdb_assert (TYPE_OBJFILE (*typeptr) == TYPE_OBJFILE (type) > ! || (TYPE_STUB (*typeptr) || TYPE_IS_OPAQUE > (*typeptr))); > if (TYPE_OBJFILE (*typeptr) != TYPE_OBJFILE (type)) > { > TYPE_MAIN_TYPE (*typeptr) > > Jim > -- > Jim Ingham jingham@apple.com > Developer Tools > Apple Computer > > -- Daniel Jacobowitz