Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!shelby!apple!gem.mps.ohio-state.edu!tut.cis.ohio-state.edu!ZEUS.CRAY.COM!wdp From: wdp@ZEUS.CRAY.COM (Walter Poxon) Newsgroups: gnu.gcc.bug Subject: bug report Message-ID: <8909291915.AA09113@zeus.cray.com> Date: 29 Sep 89 19:15:18 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 711 ======================================================================== We are using GCC 1.36 on Sun-3/50s under SunOS 3.5. Our compiler is configured thusly: aux-output.c: symbolic link to ./config/out-m68k.c config.h: symbolic link to ./config/xm-m68k.h md: symbolic link to ./config/m68k.md tm.h: symbolic link to ./config/tm-sun3os3nf.h While compiling the following source code, with no command-line parameters to gcc other than "-c", we get the error gcc: Program cc1 got fatal signal 6. The preprocessed source file follows my .signature. It is some rot generated by a 4GL prepreocessor. -- Walter Poxon Domain: wdp@cray.com Cray Research Old style: wdp%cray.com@uc.msc.umn.edu 1440 Northland Dr. UUCP: uunet!cray!wdp Mendota Hts, MN 55120 USA Telephone: +1 612 681 3126 ======================================================================== extern struct _iobuf { int _cnt; unsigned char *_ptr; unsigned char *_base; int _bufsiz; short _flag; char _file; } _iob[]; extern struct _iobuf *fopen(); extern struct _iobuf *fdopen(); extern struct _iobuf *freopen(); extern struct _iobuf *popen(); extern struct _iobuf *tmpfile(); extern long ftell(); extern char *fgets(); extern char *gets(); extern char *ctermid(); extern char *cuserid(); extern char *tempnam(); extern char *tmpnam(); extern char *strcpy(), *strncpy(), *strcat(), *strncat(), *strchr(), *strrchr(), *strpbrk(), *strtok(); extern int strcmp(), strncmp(), strlen(), strspn(), strcspn(); typedef struct tir_list { char tir[10]; char from[30]; char to[30]; char severity[15]; char status[15]; char open_date[15]; char change_date[15]; char product[20]; char opsys[20]; char machine[15]; char prj[15]; char spr[10]; char des[10]; char info[10]; char res[10]; char found[20]; char fixed[20]; struct tir_list *next; struct tir_list *prev; } tirlist_t; extern int errno; struct sqlca { char sqlcaid[8]; long sqlabc; long sqlcode; struct { unsigned short sqlerrml; char sqlerrmc[70]; } sqlerrm; char sqlerrp[8]; long sqlerrd[6]; char sqlwarn[8]; char sqlext[8]; }; struct sqlca sqlca ; static struct { unsigned int sq001N; unsigned char *sq001V[4]; unsigned int sq001L[4]; unsigned short sq001T[4]; unsigned short *sq001I[4]; } sq001 = {4}; static struct { unsigned int sq002N; unsigned char *sq002V[1]; unsigned int sq002L[1]; unsigned short sq002T[1]; unsigned short *sq002I[1]; } sq002 = {1}; static struct { unsigned int sq003N; unsigned char *sq003V[1]; unsigned int sq003L[1]; unsigned short sq003T[1]; unsigned short *sq003I[1]; } sq003 = {1}; static struct { unsigned int sq004N; unsigned char *sq004V[1]; unsigned int sq004L[1]; unsigned short sq004T[1]; unsigned short *sq004I[1]; } sq004 = {1}; static char sq005[404] = "UPDATE OIR SET CHANGE_DATE=SYSDATE,STATUS=:b1:i1,SERIAL_NUM=:b2:i2,REPORT_BY=:b3:i3,ASSIGN_TO=:b4:i4,CAUSE=:b5:i5,OS_NAME=:b6:i6,OS_VERS=:b7:i7,CORE=:b8:i8,VENDOR=:b9:i9,DEVICE=:b10:i10,TIM_OF_CALL=TO_DATE(:b11:i11,'MM/DD/YY HH24:MI:SS'),TIM_OF_ACK=TO_DA TE(:b12:i12,'MM/DD/YY HH24:MI:SS'),TIM_ON_SITE=TO_DATE(:b13:i13,'MM/DD/YY HH24:MI:SS'),DESCRIPTION=:b14:i14,RESOLUTION=:b15:i15 WHERE OIR_NUMBER=:b16" ; static struct { unsigned int sq006N; unsigned char *sq006V[16]; unsigned int sq006L[16]; unsigned short sq006T[16]; unsigned short *sq006I[16]; } sq006 = {16}; static struct { unsigned int sq007N; unsigned char *sq007V[1]; unsigned int sq007L[1]; unsigned short sq007T[1]; unsigned short *sq007I[1]; } sq007 = {1}; static struct { unsigned int sq008N; unsigned char *sq008V[1]; unsigned int sq008L[1]; unsigned short sq008T[1]; unsigned short *sq008I[1]; } sq008 = {1}; static char sq009[31] = "SELECT MAX(OIR_NUMBER)FROM OIR" ; static struct { unsigned int sq010N; unsigned char *sq010V[1]; unsigned int sq010L[1]; unsigned short sq010T[1]; unsigned short *sq010I[1]; } sq010 = {1}; static struct { unsigned int sq011N; unsigned char *sq011V[1]; unsigned int sq011L[1]; unsigned short sq011T[1]; unsigned short *sq011I[1]; } sq011 = {1}; static char sq012[77] = "INSERT INTO OIR(OIR_NUMBER,OPEN_DATE,CHANGE_DATE)VALUES(:b1,SYSDATE,SYSDATE)" ; static struct { unsigned int sq013N; unsigned char *sq013V[1]; unsigned int sq013L[1]; unsigned short sq013T[1]; unsigned short *sq013I[1]; } sq013 = {1}; static struct { unsigned int sq014N; unsigned char *sq014V[1]; unsigned int sq014L[1]; unsigned short sq014T[1]; unsigned short *sq014I[1]; } sq014 = {1}; static struct { unsigned int sq015N; unsigned char *sq015V[1]; unsigned int sq015L[1]; unsigned short sq015T[1]; unsigned short *sq015I[1]; } sq015 = {1}; static char sq016[37] = "DELETE FROM OIR WHERE OIR_NUMBER=:b1" ; static struct { unsigned int sq017N; unsigned char *sq017V[1]; unsigned int sq017L[1]; unsigned short sq017T[1]; unsigned short *sq017I[1]; } sq017 = {1}; static struct { unsigned int sq018N; unsigned char *sq018V[1]; unsigned int sq018L[1]; unsigned short sq018T[1]; unsigned short *sq018I[1]; } sq018 = {1}; static int SQLTM[8]; static int sqlcun[4] = { 0,0,0,0}; static int sqlusi[1] = { 0}; static unsigned int sqlami = 0; static int SQLBT0 = 1; static int SQLBT1 = 2; static int SQLBT2 = 4; static int SQLBT3 = 9; static unsigned int sqlvsn = 10110; extern sqlab2(); extern sqlad2(); extern sqlbs2(); extern sqlcom(); extern sqlexe(); extern sqlfch(); extern sqllo2(); extern sqlopn(); extern sqlosq(); extern sqlrol(); extern sqlsca(); extern sqlscc(); extern sqlsch(); extern sqltfl(); extern sqlwnr(); int oconnect() { struct { unsigned short len; unsigned char arr[20]; } login; struct { unsigned short len; unsigned char arr[20]; } pw; char *oracle_error(); void rollback(); setenv("TWO_TASK", "t:codd"); strcpy((login.arr) , "oir" ); strcpy((pw.arr) , "oir" ); (login.len = strlen(login.arr)) ; (pw.len = strlen(pw.arr)) ; sqlsca(&sqlca); sq001.sq001V[0] = (unsigned char *)&login.len; sq001.sq001L[0] = (unsigned int)22; sq001.sq001T[0] = (unsigned short)9; sq001.sq001I[0] = (unsigned short *)0; sq001.sq001V[1] = (unsigned char *)&pw.len; sq001.sq001L[1] = (unsigned int)22; sq001.sq001T[1] = (unsigned short)9; sq001.sq001I[1] = (unsigned short *)0; sq001.sq001T[2] = (unsigned short)10; sq001.sq001T[3] = (unsigned short)10; SQLTM[0] = (int)0; SQLTM[1] = (int)10; sqllo2( &sq001.sq001N,sq001.sq001V,sq001.sq001L,sq001.sq001T, &sqlami, &SQLTM[0], &SQLTM[1], &sqlvsn); if (sqlca.sqlcode < 0) goto o_error; return 0; o_error: oracle_error(); rollback(); sqlca.sqlcode = 0; return 1; } char * oracle_error() { static char errorm[256]; sprintf(errorm, "%s (%d)", sqlca.sqlerrm.sqlerrmc, -sqlca.sqlcode); fprintf((&_iob[2]) ,"%s\n",errorm); return errorm; } extern int errno; hangup() { sqlsca(&sqlca); if ( !sqlusi[0] ) { sq002.sq002T[0] = (unsigned short)10; SQLTM[0] = (int)4; sqlbs2(&sq002.sq002N, sq002.sq002V, sq002.sq002L, sq002.sq002T, sq002.sq002I, &SQLTM[0], &sqlusi[0]); } sqlsch(&sqlusi[0]); SQLTM[0] = (int)1; sqlcom(&SQLTM[0]); sqlca.sqlcode = 0; return 0; } void rollback() { sqlsca(&sqlca); if ( !sqlusi[0] ) { sq003.sq003T[0] = (unsigned short)10; SQLTM[0] = (int)4; sqlbs2(&sq003.sq003N, sq003.sq003V, sq003.sq003L, sq003.sq003T, sq003.sq003I, &SQLTM[0], &sqlusi[0]); } sqlsch(&sqlusi[0]); SQLTM[0] = (int)0; sqlrol(&SQLTM[0]); } char * update_oir(oir,stat,sn,report,assign,caus,name,vers,corefile, vend,dev,call,ack,site,des,res) char *oir,*stat,*sn,*report,*assign,*caus,*name,*vers,*corefile, *vend,*dev,*call,*ack,*site,*des,*res; { struct { unsigned short len; unsigned char arr[10]; } oir_number; struct { unsigned short len; unsigned char arr[10]; } status; struct { unsigned short len; unsigned char arr[10]; } serial_num; struct { unsigned short len; unsigned char arr[30]; } report_by; struct { unsigned short len; unsigned char arr[30]; } assign_to; struct { unsigned short len; unsigned char arr[15]; } cause; struct { unsigned short len; unsigned char arr[15]; } os_name; struct { unsigned short len; unsigned char arr[15]; } os_vers; struct { unsigned short len; unsigned char arr[80]; } core; struct { unsigned short len; unsigned char arr[30]; } vendor; struct { unsigned short len; unsigned char arr[30]; } device; struct { unsigned short len; unsigned char arr[20]; } tim_of_call; struct { unsigned short len; unsigned char arr[20]; } tim_of_ack; struct { unsigned short len; unsigned char arr[20]; } tim_on_site; struct { unsigned short len; unsigned char arr[240]; } description; struct { unsigned short len; unsigned char arr[240]; } resolution; short oir_numberi, statusi, serial_numi, report_byi, assign_toi, causei, os_namei, os_versi, corei, vendori, devicei, tim_of_calli, tim_of_acki, tim_on_sitei, descriptioni, resolutioni; static char *value; char *oracle_error(); oir_numberi=statusi=serial_numi=report_byi=assign_toi=causei=os_namei= os_versi=corei=vendori=devicei=tim_of_calli=tim_of_acki=tim_on_sitei= descriptioni=resolutioni=0; strcpy((oir_number.arr) , oir); if (!(oir_number.len = strlen(oir_number.arr)) ) return value = "update_oir: halted: null oir number"; strcpy((status.arr) , stat); if (!(status.len = strlen(status.arr)) ) statusi = -1; strcpy((serial_num.arr) , sn); if (!(serial_num.len = strlen(serial_num.arr)) ) serial_numi = -1; strcpy((report_by.arr) , report); if (!(report_by.len = strlen(report_by.arr)) ) report_byi = -1; strcpy((assign_to.arr) , assign); if (!(assign_to.len = strlen(assign_to.arr)) ) assign_toi = -1; strcpy((cause.arr) , caus); if (!(cause.len = strlen(cause.arr)) ) causei = -1; strcpy((os_name.arr) , name); if (!(os_name.len = strlen(os_name.arr)) ) os_namei = -1; strcpy((os_vers.arr) , vers); if (!(os_vers.len = strlen(os_vers.arr)) ) os_versi = -1; strcpy((core.arr) , corefile); if (!(core.len = strlen(core.arr)) ) corei = -1; strcpy((vendor.arr) , vend); if (!(vendor.len = strlen(vendor.arr)) ) vendori = -1; strcpy((device.arr) , dev); if (!(device.len = strlen(device.arr)) ) devicei = -1; strcpy((tim_of_call.arr) , call); if (!(tim_of_call.len = strlen(tim_of_call.arr)) ) tim_of_calli = -1; strcpy((tim_of_ack.arr) , ack); if (!(tim_of_ack.len = strlen(tim_of_ack.arr)) ) tim_of_acki = -1; strcpy((tim_on_site.arr) , site); if (!(tim_on_site.len = strlen(tim_on_site.arr)) ) tim_on_sitei = -1; printf("Call: %s Ack: %s Site: %s\n",call,ack,site); strncpy((description.arr) , des, 240); (description.arr) [239] = '\0'; if (!(description.len = strlen(description.arr)) ) descriptioni = -1; strncpy((resolution.arr) , res, 240); (resolution.arr) [239] = '\0'; if (!(resolution.len = strlen(resolution.arr)) ) resolutioni = -1; sqlsca(&sqlca); if ( !sqlusi[0] ) { sq004.sq004T[0] = (unsigned short)10; SQLTM[0] = (int)4; sqlbs2(&sq004.sq004N, sq004.sq004V, sq004.sq004L, sq004.sq004T, sq004.sq004I, &SQLTM[0], &sqlusi[0]); } sqlsch(&sqlusi[0]); sqlscc(&sqlcun[0]); sqltfl(&SQLTM[0], &SQLBT0); if ( !SQLTM[0] ) { SQLTM[0] = (int)16384; sqlopn(&SQLTM[0], &SQLBT3, &sqlvsn); SQLTM[0] = (int)403; sqlosq(sq005, &SQLTM[0]); sq006.sq006V[0] = (unsigned char *)&status.len; sq006.sq006L[0] = (unsigned int)12; sq006.sq006T[0] = (unsigned short)9; sq006.sq006I[0] = (unsigned short *)&statusi; sq006.sq006V[1] = (unsigned char *)&serial_num.len; sq006.sq006L[1] = (unsigned int)12; sq006.sq006T[1] = (unsigned short)9; sq006.sq006I[1] = (unsigned short *)&serial_numi; sq006.sq006V[2] = (unsigned char *)&report_by.len; sq006.sq006L[2] = (unsigned int)32; sq006.sq006T[2] = (unsigned short)9; sq006.sq006I[2] = (unsigned short *)&report_byi; sq006.sq006V[3] = (unsigned char *)&assign_to.len; sq006.sq006L[3] = (unsigned int)32; sq006.sq006T[3] = (unsigned short)9; sq006.sq006I[3] = (unsigned short *)&assign_toi; sq006.sq006V[4] = (unsigned char *)&cause.len; sq006.sq006L[4] = (unsigned int)17; sq006.sq006T[4] = (unsigned short)9; sq006.sq006I[4] = (unsigned short *)&causei; sq006.sq006V[5] = (unsigned char *)&os_name.len; sq006.sq006L[5] = (unsigned int)17; sq006.sq006T[5] = (unsigned short)9; sq006.sq006I[5] = (unsigned short *)&os_namei; sq006.sq006V[6] = (unsigned char *)&os_vers.len; sq006.sq006L[6] = (unsigned int)17; sq006.sq006T[6] = (unsigned short)9; sq006.sq006I[6] = (unsigned short *)&os_versi; sq006.sq006V[7] = (unsigned char *)&core.len; sq006.sq006L[7] = (unsigned int)82; sq006.sq006T[7] = (unsigned short)9; sq006.sq006I[7] = (unsigned short *)&corei; sq006.sq006V[8] = (unsigned char *)&vendor.len; sq006.sq006L[8] = (unsigned int)32; sq006.sq006T[8] = (unsigned short)9; sq006.sq006I[8] = (unsigned short *)&vendori; sq006.sq006V[9] = (unsigned char *)&device.len; sq006.sq006L[9] = (unsigned int)32; sq006.sq006T[9] = (unsigned short)9; sq006.sq006I[9] = (unsigned short *)&devicei; sq006.sq006V[10] = (unsigned char *)&tim_of_call.len; sq006.sq006L[10] = (unsigned int)22; sq006.sq006T[10] = (unsigned short)9; sq006.sq006I[10] = (unsigned short *)&tim_of_calli; sq006.sq006V[11] = (unsigned char *)&tim_of_ack.len; sq006.sq006L[11] = (unsigned int)22; sq006.sq006T[11] = (unsigned short)9; sq006.sq006I[11] = (unsigned short *)&tim_of_acki; sq006.sq006V[12] = (unsigned char *)&tim_on_site.len; sq006.sq006L[12] = (unsigned int)22; sq006.sq006T[12] = (unsigned short)9; sq006.sq006I[12] = (unsigned short *)&tim_on_sitei; sq006.sq006V[13] = (unsigned char *)&description.len; sq006.sq006L[13] = (unsigned int)242; sq006.sq006T[13] = (unsigned short)9; sq006.sq006I[13] = (unsigned short *)&descriptioni; sq006.sq006V[14] = (unsigned char *)&resolution.len; sq006.sq006L[14] = (unsigned int)242; sq006.sq006T[14] = (unsigned short)9; sq006.sq006I[14] = (unsigned short *)&resolutioni; sq006.sq006V[15] = (unsigned char *)&oir_number.len; sq006.sq006L[15] = (unsigned int)12; sq006.sq006T[15] = (unsigned short)9; sq006.sq006I[15] = (unsigned short *)0; sqlab2(&sq006.sq006N, sq006.sq006V, sq006.sq006L, sq006.sq006T, sq006.sq006I); } SQLTM[0] = (int)1; sqlexe(&SQLTM[0]); sqlwnr(); if (sqlca.sqlcode < 0) goto o_err; sqlsca(&sqlca); if ( !sqlusi[0] ) { sq007.sq007T[0] = (unsigned short)10; SQLTM[0] = (int)4; sqlbs2(&sq007.sq007N, sq007.sq007V, sq007.sq007L, sq007.sq007T, sq007.sq007I, &SQLTM[0], &sqlusi[0]); } sqlsch(&sqlusi[0]); SQLTM[0] = (int)0; sqlcom(&SQLTM[0]); if (sqlca.sqlcode < 0) goto o_err; return (char *) 0; o_err: rollback(); return value = oracle_error(); } char * new_oir() { int oir_number; static char oir_str[10]; char *oracle_error(); sqlsca(&sqlca); if ( !sqlusi[0] ) { sq008.sq008T[0] = (unsigned short)10; SQLTM[0] = (int)4; sqlbs2(&sq008.sq008N, sq008.sq008V, sq008.sq008L, sq008.sq008T, sq008.sq008I, &SQLTM[0], &sqlusi[0]); } sqlsch(&sqlusi[0]); sqlscc(&sqlcun[1]); sqltfl(&SQLTM[0], &SQLBT0); if ( !SQLTM[0] ) { SQLTM[0] = (int)16384; sqlopn(&SQLTM[0], &SQLBT3, &sqlvsn); SQLTM[0] = (int)30; sqlosq(sq009, &SQLTM[0]); sq010.sq010V[0] = (unsigned char *)&oir_number; sq010.sq010L[0] = (unsigned int)4; sq010.sq010T[0] = (unsigned short)3; sq010.sq010I[0] = (unsigned short *)0; sqlad2(&sq010.sq010N, sq010.sq010V, sq010.sq010L, sq010.sq010T, sq010.sq010I); } SQLTM[0] = (int)1; sqlexe(&SQLTM[0]); SQLTM[0] = (int)1; SQLTM[1] = (int)0; sqlfch(&SQLTM[0], &SQLTM[1]); if (sqlca.sqlcode < 0) goto o_error; printf("current max oir # == %d.\n",oir_number); ++oir_number; printf("We'll insert oir# == %d.\n",oir_number); sqlsca(&sqlca); if ( !sqlusi[0] ) { sq011.sq011T[0] = (unsigned short)10; SQLTM[0] = (int)4; sqlbs2(&sq011.sq011N, sq011.sq011V, sq011.sq011L, sq011.sq011T, sq011.sq011I, &SQLTM[0], &sqlusi[0]); } sqlsch(&sqlusi[0]); sqlscc(&sqlcun[2]); sqltfl(&SQLTM[0], &SQLBT0); if ( !SQLTM[0] ) { SQLTM[0] = (int)16384; sqlopn(&SQLTM[0], &SQLBT3, &sqlvsn); SQLTM[0] = (int)76; sqlosq(sq012, &SQLTM[0]); sq013.sq013V[0] = (unsigned char *)&oir_number; sq013.sq013L[0] = (unsigned int)4; sq013.sq013T[0] = (unsigned short)3; sq013.sq013I[0] = (unsigned short *)0; sqlab2(&sq013.sq013N, sq013.sq013V, sq013.sq013L, sq013.sq013T, sq013.sq013I); } SQLTM[0] = (int)1; sqlexe(&SQLTM[0]); if (sqlca.sqlcode < 0) goto o_error; sqlsca(&sqlca); if ( !sqlusi[0] ) { sq014.sq014T[0] = (unsigned short)10; SQLTM[0] = (int)4; sqlbs2(&sq014.sq014N, sq014.sq014V, sq014.sq014L, sq014.sq014T, sq014.sq014I, &SQLTM[0], &sqlusi[0]); } sqlsch(&sqlusi[0]); SQLTM[0] = (int)0; sqlcom(&SQLTM[0]); if (sqlca.sqlcode < 0) goto o_error; sprintf(oir_str, "%d", oir_number); return oir_str; o_error: oracle_error(); rollback(); return (char *)0; } char * delete_oir(oir) char *oir; { static char errmsg[256]; struct { unsigned short len; unsigned char arr[10]; } oir_number; char *oracle_error(); strcpy((oir_number.arr) ,oir); if (!(oir_number.len = strlen(oir_number.arr)) ) { strcpy(errmsg,"NULL oir id"); return errmsg; } sqlsca(&sqlca); if ( !sqlusi[0] ) { sq015.sq015T[0] = (unsigned short)10; SQLTM[0] = (int)4; sqlbs2(&sq015.sq015N, sq015.sq015V, sq015.sq015L, sq015.sq015T, sq015.sq015I, &SQLTM[0], &sqlusi[0]); } sqlsch(&sqlusi[0]); sqlscc(&sqlcun[3]); sqltfl(&SQLTM[0], &SQLBT0); if ( !SQLTM[0] ) { SQLTM[0] = (int)16384; sqlopn(&SQLTM[0], &SQLBT3, &sqlvsn); SQLTM[0] = (int)36; sqlosq(sq016, &SQLTM[0]); sq017.sq017V[0] = (unsigned char *)&oir_number.len; sq017.sq017L[0] = (unsigned int)12; sq017.sq017T[0] = (unsigned short)9; sq017.sq017I[0] = (unsigned short *)0; sqlab2(&sq017.sq017N, sq017.sq017V, sq017.sq017L, sq017.sq017T, sq017.sq017I); } SQLTM[0] = (int)1; sqlexe(&SQLTM[0]); sqlwnr(); if (sqlca.sqlcode < 0) goto o_error; sqlsca(&sqlca); if ( !sqlusi[0] ) { sq018.sq018T[0] = (unsigned short)10; SQLTM[0] = (int)4; sqlbs2(&sq018.sq018N, sq018.sq018V, sq018.sq018L, sq018.sq018T, sq018.sq018I, &SQLTM[0], &sqlusi[0]); } sqlsch(&sqlusi[0]); SQLTM[0] = (int)0; sqlcom(&SQLTM[0]); if (sqlca.sqlcode < 0) goto o_error; return (char *)0; o_error: strcpy(errmsg,oracle_error()); rollback(); return errmsg; }