schmidt@BONNIE.ICS.UCI.EDU ("Douglas C. Schmidt") (11/26/88)
Bug Report for GCC:
-------------------
Problem : gcc 1.31 dies on the following input
1.) Version : gcc 1.31
-----------
2.) Input Program :
-----------------
extern struct _iobuf {
int _cnt;
unsigned char *_ptr;
unsigned char *_base;
int _bufsiz;
short _flag;
char _file;
} _iob[];
int strcmp();
char *strncpy();
typedef struct _Entry {
char *tag, *value;
int usable;
} Entry;
typedef struct _Buffer {
char *buff;
int room, used;
} Buffer;
typedef struct _Entries {
Entry *entry;
int room, used;
} Entries;
void AddEntry();
int CompareEntries();
char *FindFirst();
void GetEntries(entries, buff)
register Entries *entries;
Buffer *buff;
{
register char *line, *colon, *temp, *str;
Entry entry;
register int length;
str = buff->buff;
if (!str) return;
for (; str < buff->buff + buff->used; str = line + 1) {
line = FindFirst(str, '\n');
if (line == 0 )
break;
if (str[0] == '!')
continue;
if (str[0] == '\n')
continue;
if (str[0] == '#')
continue;
colon = FindFirst(str, ':');
if (colon == 0 )
break;
if (colon > line) {
line[0] = '\0';
fprintf((&_iob[2]) , "line missing colon ignored: %s\n", str);
continue;
}
temp = (char *)malloc((length = colon - str) + 1);
strncpy(temp, str, length);
temp[length] = '\0';
while (temp[0] == ' ' || temp[0] == '\t') {
temp++; length--;
}
while (temp[length-1] == ' ' || temp[length-1] == '\t')
temp[--length] = '\0';
entry.tag = temp;
temp = (char *)malloc((length = line - colon - 1) + 1);
strncpy(temp, colon + 1, length);
temp[length] = '\0';
while (temp[0] == ' ' || temp[0] == '\t') {
temp++; length--;
}
while (temp[length-1] == ' ' || temp[length-1] == '\t')
temp[--length] = '\0';
entry.value = temp;
AddEntry(entries, entry);
}
if (entries->used > 0)
qsort(entries->entry, entries->used, sizeof(Entry), CompareEntries);
}
3.) Command Used : gcc -v
----------------
4.) Files used :
--------------
config.gcc sequent-i386
5.) Machine(s) used :
-------------------
Sequent Symmetry DYNIX (TM)V3 (BSD 4.3 features)
6.) Compiler diagnostics :
------------------------
gcc version 1.31
/usr/public/lib/gcc/gcc-cpp -v -undef -D__GNU__ -D__GNUC__ -Dunix
-Di386 -Dsequent save3.c /tmp/cc012968.cpp GNU CPP version 1.31
/usr/public/lib/gcc/gcc-cc1 /tmp/cc012968.cpp -quiet -dumpbase
save3.c -version -o /tmp/cc012968.s
gcc: Program cc1 got fatal signal 4.