* stabsread.c (read_type): Skip type attributes if present.

This commit is contained in:
Jim Kingdon 1993-05-31 20:14:59 +00:00
parent 05b4279b30
commit 36bcda7958
2 changed files with 26 additions and 15 deletions

View File

@ -1,5 +1,7 @@
Mon May 31 10:37:04 1993 Jim Kingdon (kingdon@cygnus.com) Mon May 31 10:37:04 1993 Jim Kingdon (kingdon@cygnus.com)
* stabread.c (read_type): Skip type attributes if present.
* stabsread.c (read_huge_number): Don't accept '0' + radix as part * stabsread.c (read_huge_number): Don't accept '0' + radix as part
of number, just through '0' + radix - 1. of number, just through '0' + radix - 1.

View File

@ -1255,22 +1255,31 @@ read_type (pp, objfile)
return dbx_alloc_type (typenums, objfile); return dbx_alloc_type (typenums, objfile);
/* Type is being defined here. */ /* Type is being defined here. */
#if 0 /* Callers aren't prepared for a NULL result! FIXME -- metin! */ /* Skip the '='. */
{ ++(*pp);
struct type *tt;
/* if such a type already exists, this is an unnecessary duplication while (**pp == '@')
of the stab string, which is common in (RS/6000) xlc generated {
objects. In that case, simply return NULL and let the caller take char *p = *pp + 1;
care of it. */ /* It might be a type attribute or a member type. */
if (isdigit (*p) || *p == '(' || *p == '-')
tt = *dbx_lookup_type (typenums); /* Member type. */
if (tt && tt->length && tt->code) break;
return NULL; else
} {
#endif /* Type attributes; skip to the semicolon. */
while (*p != ';' && *p != '\0')
*pp += 2; ++p;
*pp = p;
if (*p == '\0')
return error_type (pp);
else
/* Skip the semicolon. */
++*pp;
}
}
/* Skip the type descriptor, we get it below with (*pp)[-1]. */
++(*pp);
} }
else else
{ {