This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: Commence binfo extraction


Hi Nathan,

I think you missed one or two spots in dbxout.c, dbxout_type:

    case RECORD_TYPE:
    case UNION_TYPE:
    case QUAL_UNION_TYPE:
      {
	int i, n_baseclasses = 0;

	if (TYPE_BINFO (type) != 0
	    && TREE_CODE (TYPE_BINFO (type)) == TREE_VEC
	    && TYPE_BINFO_BASETYPES (type) != 0)
	  n_baseclasses = TREE_VEC_LENGTH (TYPE_BINFO_BASETYPES (type));

'type' changed from TREE_VEC to TREE_BINFO and that's causing gcc to
omit all the base class info from stabs.  I confirmed this with a
debugger.

There's one other spot in dbxout.c that uses TREE_VEC:

  if (TREE_CODE (methods) != TREE_VEC)
    fndecl = methods;
  else if (TREE_VEC_ELT (methods, 0) != NULL_TREE)
    fndecl = TREE_VEC_ELT (methods, 0);
  else
    fndecl = TREE_VEC_ELT (methods, 1);

I'm really not sure what the right change there would be.

This is causing me trouble with stabs+ on native i686-pc-linux-gnu
in the gdb test suite.  dwarf-2 is working fine, no regressions there.

(I run a test bed where I run the gdb test suite on development
versions of gcc, to catch things like this).

Michael C


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]