diff options
author | Ian Lance Taylor <ian@airs.com> | 1992-12-15 18:12:37 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1992-12-15 18:12:37 +0000 |
commit | 117f631e54876035af27162ca11ea4e06601c8da (patch) | |
tree | 2039ab0178d57eddf92e438484051f241063c1f6 /gdb/coffread.c | |
parent | 51b80b0072e928c9163087e1fcbc71e52301f524 (diff) | |
download | gdb-117f631e54876035af27162ca11ea4e06601c8da.zip gdb-117f631e54876035af27162ca11ea4e06601c8da.tar.gz gdb-117f631e54876035af27162ca11ea4e06601c8da.tar.bz2 |
Tue Dec 15 10:05:56 1992 Ian Lance Taylor (ian@cygnus.com)
* coffread.c (decode_type): catch negative tagndx fields generated
by SCO 3.2v4 cc.
* exec.c: comment out string following #endif.
* configure.in (i[34]86-*-sco3.2v4*): use host i386sco4.
* xm-i386sco.h: include <sys/types.h> and <sys/dir.h>, required by
<sys/user.h>.
* config/i386sco4.mh: new file; like i386sco.mh, but don't require
gcc, and define const to empty to avoid SCO 3.2v4 cc bug.
Diffstat (limited to 'gdb/coffread.c')
-rw-r--r-- | gdb/coffread.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gdb/coffread.c b/gdb/coffread.c index 6df6492..6078b63 100644 --- a/gdb/coffread.c +++ b/gdb/coffread.c @@ -1800,12 +1800,15 @@ decode_type (cs, c_type, aux) struct, union, and enum types. EPI a29k coff fakes us out by producing aux entries with a nonzero x_tagndx for definitions of structs, unions, and enums, so we - have to check the c_sclass field. */ + have to check the c_sclass field. SCO 3.2v4 cc gets confused + with pointers to pointers to defined structs, and generates + negative x_tagndx fields. */ if (cs->c_naux > 0 && aux->x_sym.x_tagndx.l != 0) { - if (cs->c_sclass != C_STRTAG - && cs->c_sclass != C_UNTAG - && cs->c_sclass != C_ENTAG) + if (cs->c_sclass != C_STRTAG + && cs->c_sclass != C_UNTAG + && cs->c_sclass != C_ENTAG + && aux->x_sym.x_tagndx.l >= 0) { type = coff_alloc_type (aux->x_sym.x_tagndx.l); return type; |