|
|
1.1 ! root 1: BABYL OPTIONS: ! 2: Version: 5 ! 3: Labels: ! 4: Note: This is the header of an rmail file. ! 5: Note: If you are seeing it in rmail, ! 6: Note: it means the file has no messages in it. ! 7: ! 8: 1, forwarded,, ! 9: Return-Path: <[email protected]> ! 10: Received: from prep.ai.mit.edu by life.ai.mit.edu; Sat, 9 Jul 88 16:55:47 EDT ! 11: Received: from rome.ics.uci.edu by prep.ai.mit.edu; Sat, 9 Jul 88 15:31:05 EST ! 12: Received: from ics.uci.edu by ROME.ICS.UCI.EDU id aa29221; 9 Jul 88 13:40 PDT ! 13: Received: from ics.uci.edu by ICS.UCI.EDU id aa26668; 9 Jul 88 13:41 PDT ! 14: To: bug-gcc <@beanie.ics.uci.edu:[email protected]> ! 15: Subject: gcc 1.24 generates bad code with -O option ! 16: Date: Sat, 09 Jul 88 13:41:10 -0700 ! 17: From: GNU C Compiler <[email protected]> ! 18: Message-Id: <[email protected]> ! 19: ! 20: *** EOOH *** ! 21: Return-Path: <[email protected]> ! 22: To: bug-gcc <@beanie.ics.uci.edu:[email protected]> ! 23: Subject: gcc 1.24 generates bad code with -O option ! 24: Date: Sat, 09 Jul 88 13:41:10 -0700 ! 25: From: GNU C Compiler <[email protected]> ! 26: ! 27: Bug Report for GCC: ! 28: ------------------- ! 29: Problem : Gcc 1.24 generates code that overwrites a register used in a ! 30: subsequent instruction. (this was a *hard* bug to track down!!). This ! 31: error results in a core dump when the program is executed. Compiling ! 32: *without* -O results in a working program. ! 33: ! 34: 1.) Version : gcc 1.24 ! 35: ----------- ! 36: ! 37: 2.) Input Program : (* the offending line has been commented below, ! 38: along with the corresponding incorrect assembly output *) ! 39: ----------------- ! 40: #undef EXT ! 41: #define EXT extern ! 42: #define TRUE 1 ! 43: #define FALSE 0 ! 44: #define bool char ! 45: #undef INIT ! 46: #define INIT(x) ! 47: #undef DOINIT ! 48: ! 49: typedef struct string STR; ! 50: ! 51: struct string { ! 52: char * str_ptr; /* pointer to malloced string */ ! 53: double str_nval; /* numeric value, if any */ ! 54: int str_len; /* allocated size */ ! 55: int str_cur; /* length of str_ptr as a C string */ ! 56: union { ! 57: STR *str_next; /* while free, link to next free str */ ! 58: } str_link; ! 59: char str_pok; /* state of str_ptr */ ! 60: char str_nok; /* state of str_nval */ ! 61: char str_rare; /* used by search strings */ ! 62: char str_prev; /* also used by search strings */ ! 63: }; ! 64: EXT STR str_no; ! 65: ! 66: ! 67: char *str_2ptr(); ! 68: double str_2num(); ! 69: #define str_gnum(str) (Str = (str), (Str->str_nok ? Str->str_nval : str_2num(Str))) ! 70: EXT STR *Str; ! 71: ! 72: void do_sprintf(); ! 73: EXT char buf[1024]; ! 74: ! 75: void ! 76: do_sprintf(str,len,sarg) ! 77: register STR *str; ! 78: register int len; ! 79: register STR **sarg; ! 80: { ! 81: register char *s; ! 82: register char *t; ! 83: bool dolong; ! 84: char ch; ! 85: static STR *sargnull = &str_no; ! 86: ! 87: str_set(str,""); ! 88: len--; /* don't count pattern string */ ! 89: sarg++; ! 90: for (s = str_get(*(sarg++)); *s; len--) { ! 91: if (len <= 0 || !*sarg) { ! 92: sarg = &sargnull; ! 93: len = 0; ! 94: } ! 95: dolong = FALSE; ! 96: for (t = s; *t && *t != '%'; t++) ; ! 97: if (!*t) ! 98: break; /* not enough % patterns, oh well */ ! 99: for (t++; *sarg && *t && t != s; t++) { ! 100: switch (*t) { ! 101: case '\0': ! 102: t--; ! 103: break; ! 104: case '%': ! 105: ch = *(++t); ! 106: *t = '\0'; ! 107: sprintf(buf,s); ! 108: s = t; ! 109: *(t--) = ch; ! 110: break; ! 111: case 'l': ! 112: dolong = TRUE; ! 113: break; ! 114: case 'D': case 'X': case 'O': ! 115: dolong = TRUE; ! 116: /* FALL THROUGH */ ! 117: case 'd': case 'x': case 'o': case 'c': case 'u': ! 118: ch = *(++t); ! 119: *t = '\0'; ! 120: if (dolong) ! 121: sprintf(buf,s,(long)str_gnum(*(sarg++))); ! 122: else ! 123: sprintf(buf,s,(int)str_gnum(*(sarg++))); ! 124: s = t; ! 125: *(t--) = ch; ! 126: break; ! 127: case 'E': case 'e': case 'f': case 'G': case 'g': ! 128: ch = *(++t); ! 129: *t = '\0'; ! 130: ! 131: /* the following is the line that gcc messes up on....: */ ! 132: ! 133: sprintf(buf,s,(Str = (*(sarg++)), (Str->str_nok ? Str->str_nval : str_2num(Str)))); ! 134: ! 135: /* here is the incorrect assembly code ! 136: ! 137: movd 0(r5),_Str ! 138: addqd 4,r5 ! 139: movd _Str,r0 ! 140: cmpqb 0,25(r0) ! 141: beq L38 ! 142: movd 4(r0),r0 -- notice how the r0 register is overwritten and then ! 143: movd 8(r0),r1 -- reused!! ! 144: br L39 ! 145: L38: ! 146: movd _Str,tos ! 147: bsr _str_2num ! 148: adjspb -4 ! 149: movl f0,tos ! 150: movd tos,r0 ! 151: movd tos,r1 ! 152: L39: ! 153: movd r1,tos ! 154: movd r0,tos ! 155: movd r4,tos ! 156: addr _buf,tos ! 157: bsr _sprintf ! 158: movd r3,r4 ! 159: movb r6,0(r4) ! 160: addqd -1,r3 ! 161: adjspb -16 ! 162: br L14 ! 163: */ ! 164: s = t; ! 165: *(t--) = ch; ! 166: break; ! 167: case 's': ! 168: ch = *(++t); ! 169: *t = '\0'; ! 170: if (strEQ(s,"%s")) { /* some printfs fail on >128 chars */ ! 171: *buf = '\0'; ! 172: str_scat(str,*(sarg++)); /* so handle simple case */ ! 173: } ! 174: else ! 175: sprintf(buf,s,str_get(*(sarg++))); ! 176: s = t; ! 177: *(t--) = ch; ! 178: break; ! 179: } ! 180: } ! 181: str_cat(str,buf); ! 182: } ! 183: if (*s) ! 184: str_cat(str,s); ! 185: ! 186: } ! 187: ! 188: 3.) Command Used : gcc -O ! 189: ---------------- ! 190: ! 191: 4.) Files used : ! 192: -------------- ! 193: tm.h -> tm-sequent.h ! 194: md -> ns32k.md ! 195: ! 196: 5.) Machine(s) used : ! 197: ------------------- ! 198: Sequent Balance 8000 DYNIX (TM)V2.1.1 (BSD 4.2) ! 199: ! 200: ! 201: ! 202: 1, forwarded,, ! 203: Return-Path: <[email protected]> ! 204: Received: from prep.ai.mit.edu by life.ai.mit.edu; Fri, 8 Jul 88 21:39:24 EDT ! 205: Received: from rome.ics.uci.edu by prep.ai.mit.edu; Thu, 7 Jul 88 17:49:39 EST ! 206: Received: from ics.uci.edu by ROME.ICS.UCI.EDU id aa16847; 7 Jul 88 15:56 PDT ! 207: Received: from ics.uci.edu by ICS.UCI.EDU id aa06078; 7 Jul 88 15:55 PDT ! 208: To: bug-gcc <@beanie.ics.uci.edu:[email protected]> ! 209: Subject: bug with gcc 1.24 -O ! 210: Date: Thu, 07 Jul 88 15:55:35 -0700 ! 211: From: GNU C Compiler <[email protected]> ! 212: Message-Id: <[email protected]> ! 213: ! 214: *** EOOH *** ! 215: Return-Path: <[email protected]> ! 216: To: bug-gcc <@beanie.ics.uci.edu:[email protected]> ! 217: Subject: bug with gcc 1.24 -O ! 218: Date: Thu, 07 Jul 88 15:55:35 -0700 ! 219: From: GNU C Compiler <[email protected]> ! 220: ! 221: ! 222: Bug Report for GCC: ! 223: ------------------- ! 224: Problem : compiling with -O gives fatal signal. ! 225: ! 226: 1.) Version : gcc 1.24 ! 227: ----------- ! 228: ! 229: 2.) Input Program : (sorry about the size, I couldn't reduce it without ! 230: ----------------- the problem disappearing!) ! 231: ! 232: extern struct _iobuf { ! 233: int _cnt; ! 234: char *_ptr; ! 235: char *_base; ! 236: int _bufsiz; ! 237: short _flag; ! 238: char _file; ! 239: } _iob[20 ]; ! 240: typedef char schar; ! 241: typedef long integer; ! 242: typedef char boolean; ! 243: typedef float glueratio; ! 244: typedef double real; ! 245: typedef struct _iobuf *alphafile, *bytefile, *wordfile, *file_ptr; ! 246: typedef char *ccharpointer; ! 247: extern integer ztoint(); ! 248: char zinputln(); ! 249: # 5 "texd.h" ! 250: typedef unsigned char ASCIIcode ; ! 251: typedef unsigned char eightbits ; ! 252: typedef integer poolpointer ; ! 253: typedef integer strnumber ; ! 254: typedef integer scaled ; ! 255: typedef integer nonnegativeinteger ; ! 256: typedef schar smallnumber ; ! 257: typedef unsigned char quarterword ; ! 258: typedef unsigned short halfword ; ! 259: typedef schar twochoices ; ! 260: typedef schar fourchoices ; ! 261: # 1 "memory.h" ! 262: typedef union { ! 263: struct { ! 264: halfword RH, LH; ! 265: } v; ! 266: struct { ! 267: halfword junk_space; ! 268: quarterword B0, B1; ! 269: } u; ! 270: } twohalves; ! 271: typedef struct { ! 272: struct { ! 273: quarterword B0; ! 274: quarterword B1; ! 275: } u; ! 276: quarterword b2; ! 277: quarterword b3; ! 278: } fourquarters; ! 279: typedef union { ! 280: integer cint; ! 281: glueratio gr; ! 282: twohalves hh; ! 283: fourquarters qqqq; ! 284: } memoryword; ! 285: # 38 "texd.h" ! 286: typedef schar glueord ; ! 287: typedef struct { ! 288: short modefield ; ! 289: halfword headfield, tailfield ; ! 290: integer pgfield, auxfield, mlfield ; ! 291: } liststaterecord ; ! 292: typedef schar groupcode ; ! 293: typedef struct { ! 294: quarterword statefield, indexfield ; ! 295: halfword startfield, locfield, limitfield, namefield ; ! 296: } instaterecord ; ! 297: typedef integer internalfontnumber ; ! 298: typedef integer dviindex ; ! 299: typedef integer triepointer ; ! 300: typedef short hyphpointer ; ! 301: extern integer bad ; ! 302: extern ASCIIcode xord[128] ; ! 303: extern char xchr[256] ; ! 304: extern char nameoffile[1024 + 1], realnameoffile[1024 + 1] ; ! 305: extern integer namelength ; ! 306: extern ASCIIcode buffer[2000 + 1] ; ! 307: extern integer first ; ! 308: extern integer last ; ! 309: extern integer maxbufstack ; ! 310: extern ASCIIcode strpool[32000L + 1] ; ! 311: extern poolpointer strstart[3000 + 1] ; ! 312: extern poolpointer poolptr ; ! 313: extern strnumber strptr ; ! 314: extern poolpointer initpoolptr ; ! 315: extern strnumber initstrptr ; ! 316: extern alphafile logfile ; ! 317: extern schar selector ; ! 318: extern schar dig[23] ; ! 319: extern integer tally ; ! 320: extern integer termoffset ; ! 321: extern integer fileoffset ; ! 322: extern ASCIIcode trickbuf[64 + 1] ; ! 323: extern integer trickcount ; ! 324: extern integer firstcount ; ! 325: extern schar interaction ; ! 326: extern boolean deletionsallowed ; ! 327: extern schar history ; ! 328: extern schar errorcount ; ! 329: extern strnumber helpline[6] ; ! 330: extern schar helpptr ; ! 331: extern boolean useerrhelp ; ! 332: extern integer interrupt ; ! 333: extern boolean OKtointerrupt ; ! 334: extern boolean aritherror ; ! 335: extern scaled remainder ; ! 336: extern halfword tempptr ; ! 337: extern memoryword ! 338: zzzaa[2999L - 0 + 1] ; ! 339: extern halfword lomemmax ; ! 340: extern halfword himemmin ; ! 341: extern integer varused, dynused ; ! 342: extern halfword avail ; ! 343: extern halfword memend ; ! 344: extern halfword rover ; ! 345: # 111 "texd.h" ! 346: extern integer fontinshortdisplay ; ! 347: extern integer depththreshold ; ! 348: extern integer breadthmax ; ! 349: extern liststaterecord nest[40 + 1] ; ! 350: extern integer nestptr ; ! 351: extern integer maxneststack ; ! 352: extern liststaterecord curlist ; ! 353: extern short shownmode ; ! 354: extern schar oldsetting ; ! 355: extern memoryword zeqtb[5977] ; ! 356: extern quarterword ! 357: zzzad[710] ; ! 358: extern twohalves ! 359: zzzae[3267] ; ! 360: extern halfword hashused ; ! 361: extern boolean nonewcontrolsequence ; ! 362: extern integer cscount ; ! 363: extern memoryword savestack[600 + 1] ; ! 364: extern integer saveptr ; ! 365: extern integer maxsavestack ; ! 366: extern quarterword curlevel ; ! 367: extern groupcode curgroup ; ! 368: extern integer curboundary ; ! 369: extern integer magset ; ! 370: extern eightbits curcmd ; ! 371: extern halfword curchr ; ! 372: extern halfword curcs ; ! 373: extern halfword curtok ; ! 374: extern instaterecord inputstack[200 + 1] ; ! 375: extern integer inputptr ; ! 376: extern integer maxinstack ; ! 377: extern instaterecord curinput ; ! 378: extern integer inopen ; ! 379: extern alphafile inputfile[6 + 1] ; ! 380: extern integer line ; ! 381: extern integer linestack[6 + 1] ; ! 382: extern schar scannerstatus ; ! 383: extern halfword warningindex ; ! 384: extern halfword defref ; ! 385: extern halfword paramstack[60 + 1] ; ! 386: extern integer paramptr ; ! 387: extern integer maxparamstack ; ! 388: extern integer alignstate ; ! 389: extern integer baseptr ; ! 390: extern halfword parloc ; ! 391: extern halfword partoken ; ! 392: extern boolean forceeof ; ! 393: extern halfword curmark[5] ; ! 394: extern schar longstate ; ! 395: extern halfword pstack[9] ; ! 396: extern integer curval ; ! 397: extern schar curvallevel ; ! 398: extern smallnumber radix ; ! 399: extern glueord curorder ; ! 400: extern alphafile readfile[16] ; ! 401: extern schar readopen[17] ; ! 402: extern halfword condptr ; ! 403: extern schar iflimit ; ! 404: extern smallnumber curif ; ! 405: extern integer ifline ; ! 406: extern integer skipline ; ! 407: extern strnumber curname ; ! 408: extern strnumber curarea ; ! 409: extern strnumber curext ; ! 410: extern poolpointer areadelimiter ; ! 411: extern poolpointer extdelimiter ; ! 412: extern ccharpointer TEXformatdefault ; ! 413: extern boolean nameinprogress ; ! 414: extern strnumber jobname ; ! 415: extern bytefile dvifile ; ! 416: extern strnumber outputfilename ; ! 417: extern strnumber logname ; ! 418: extern bytefile tfmfile ; ! 419: extern memoryword fontinfo[20000L + 1] ; ! 420: extern integer fmemptr ; ! 421: extern internalfontnumber fontptr ; ! 422: extern fourquarters fontcheck[75 + 1] ; ! 423: extern scaled fontsize[75 + 1] ; ! 424: extern scaled fontdsize[75 + 1] ; ! 425: extern halfword fontparams[75 + 1] ; ! 426: extern strnumber fontname[75 + 1] ; ! 427: extern strnumber fontarea[75 + 1] ; ! 428: extern eightbits fontbc[75 + 1] ; ! 429: extern eightbits fontec[75 + 1] ; ! 430: extern halfword fontglue[75 + 1] ; ! 431: extern boolean fontused[75 + 1] ; ! 432: extern integer hyphenchar[75 + 1] ; ! 433: extern integer skewchar[75 + 1] ; ! 434: extern integer charbase[75 + 1] ; ! 435: extern integer widthbase[75 + 1] ; ! 436: extern integer heightbase[75 + 1] ; ! 437: extern integer depthbase[75 + 1] ; ! 438: extern integer italicbase[75 + 1] ; ! 439: extern integer ligkernbase[75 + 1] ; ! 440: extern integer kernbase[75 + 1] ; ! 441: extern integer extenbase[75 + 1] ; ! 442: extern integer parambase[75 + 1] ; ! 443: extern fourquarters nullcharacter ; ! 444: extern integer totalpages ; ! 445: extern scaled maxv ; ! 446: extern scaled maxh ; ! 447: extern integer maxpush ; ! 448: extern integer lastbop ; ! 449: extern integer deadcycles ; ! 450: extern boolean doingleaders ; ! 451: extern quarterword c, f ; ! 452: extern scaled ruleht, ruledp, rulewd ; ! 453: extern halfword g ; ! 454: extern integer lq, lr ; ! 455: extern eightbits dvibuf[16384 + 1] ; ! 456: extern dviindex halfbuf ; ! 457: extern dviindex dvilimit ; ! 458: extern dviindex dviptr ; ! 459: extern integer dvioffset ; ! 460: extern integer dvigone ; ! 461: extern halfword downptr, rightptr ; ! 462: extern scaled dvih, dviv ; ! 463: extern scaled curh, curv ; ! 464: extern internalfontnumber dvif ; ! 465: extern integer curs ; ! 466: extern scaled totalstretch[4], totalshrink[4] ; ! 467: extern halfword adjusttail ; ! 468: extern integer packbeginline ; ! 469: extern twohalves emptyfield ; ! 470: extern fourquarters nulldelimiter ; ! 471: extern halfword curmlist ; ! 472: extern smallnumber curstyle ; ! 473: extern smallnumber cursize ; ! 474: extern scaled curmu ; ! 475: extern boolean mlistpenalties ; ! 476: extern internalfontnumber curf ; ! 477: extern quarterword curc ; ! 478: extern fourquarters curi ; ! 479: extern integer magicoffset ; ! 480: extern halfword curalign ; ! 481: extern halfword curspan ; ! 482: extern halfword curloop ; ! 483: extern halfword alignptr ; ! 484: extern halfword curhead, curtail ; ! 485: extern halfword justbox ; ! 486: extern halfword passive ; ! 487: extern halfword printednode ; ! 488: extern halfword passnumber ; ! 489: extern scaled activewidth[7] ; ! 490: extern scaled curactivewidth[7] ; ! 491: extern scaled background[7] ; ! 492: extern scaled breakwidth[7] ; ! 493: extern boolean noshrinkerroryet ; ! 494: extern halfword curp ; ! 495: extern boolean secondpass ; ! 496: extern integer threshold ; ! 497: extern scaled minimaldemerits[4] ; ! 498: extern scaled minimumdemerits ; ! 499: extern halfword bestplace[4] ; ! 500: extern halfword bestplline[4] ; ! 501: extern scaled discwidth ; ! 502: extern halfword easyline ; ! 503: extern halfword lastspecialline ; ! 504: extern scaled firstwidth ; ! 505: extern scaled secondwidth ; ! 506: extern scaled firstindent ; ! 507: extern scaled secondindent ; ! 508: extern halfword bestbet ; ! 509: extern integer fewestdemerits ; ! 510: extern halfword bestline ; ! 511: extern integer actuallooseness ; ! 512: extern integer linediff ; ! 513: extern halfword hc[66] ; ! 514: extern smallnumber hn ; ! 515: extern halfword ha, hb ; ! 516: extern internalfontnumber hf ; ! 517: extern ASCIIcode hu[64] ; ! 518: extern integer hyfchar ; ! 519: extern schar hyf[65] ; ! 520: extern smallnumber hyphenpassed ; ! 521: extern twohalves trie[8000 + 1] ; ! 522: extern smallnumber hyfdistance[256] ; ! 523: extern smallnumber hyfnum[256] ; ! 524: extern quarterword hyfnext[256] ; ! 525: extern strnumber hyphword[308] ; ! 526: extern halfword hyphlist[308] ; ! 527: extern hyphpointer hyphcount ; ! 528: extern quarterword trieopptr ; ! 529: extern triepointer triemax ; ! 530: extern scaled bestheightplusdepth ; ! 531: extern halfword pagetail ; ! 532: extern schar pagecontents ; ! 533: extern scaled pagemaxdepth ; ! 534: extern halfword bestpagebreak ; ! 535: extern integer leastpagecost ; ! 536: extern scaled bestsize ; ! 537: extern scaled pagesofar[8] ; ! 538: extern halfword lastglue ; ! 539: extern integer lastpenalty ; ! 540: extern scaled lastkern ; ! 541: extern integer insertpenalties ; ! 542: extern boolean outputactive ; ! 543: extern halfword curbox ; ! 544: extern halfword aftertoken ; ! 545: extern boolean longhelpseen ; ! 546: extern strnumber formatident ; ! 547: extern wordfile fmtfile ; ! 548: extern integer readyalready ; ! 549: extern alphafile writefile[16] ; ! 550: extern boolean writeopen[18] ; ! 551: extern halfword writeloc ; ! 552: extern poolpointer editnamestart ; ! 553: extern integer editnamelength, editline, tfmtemp ; ! 554: internalfontnumber zreadfontinfo ( u , nom , aire , s ) ! 555: halfword u ; ! 556: strnumber nom , aire ; ! 557: scaled s ; ! 558: { register internalfontnumber Result; ! 559: register memoryword *eqtb=zeqtb; ! 560: register integer k ; ! 561: boolean fileopened ; ! 562: register halfword lf, lh, bc, ec, nw, nh, nd, ni, nl, nk, ne, np ; ! 563: register internalfontnumber f ; ! 564: register internalfontnumber g ; ! 565: register eightbits a, b, c, d ; ! 566: fourquarters qw ; ! 567: register scaled sw ; ! 568: register scaled z ; ! 569: register integer alpha ; ! 570: register schar beta ; ! 571: g = 0 ; ! 572: fileopened = 0 ; ! 573: zpackfilename((strnumber)( nom ),(strnumber)( aire ),(strnumber)( 664 )) ; ! 574: if ( ! Openin(&( tfmfile ), 3 ) ) ! 575: ; ! 576: fileopened = 1 ; ! 577: { ! 578: { ! 579: lf = tfmtemp ; ! 580: if ( lf > 127 ) ; ! 581: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 582: lf = lf * 256 + tfmtemp ; ! 583: } ! 584: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 585: { ! 586: lh = tfmtemp ; ! 587: if ( lh > 127 ) ! 588: ; ! 589: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 590: lh = lh * 256 + tfmtemp ; ! 591: } ! 592: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 593: { ! 594: bc = tfmtemp ; ! 595: if ( bc > 127 ); ! 596: ! 597: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 598: bc = bc * 256 + tfmtemp ; ! 599: } ! 600: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 601: { ! 602: ec = tfmtemp ; ! 603: if ( ec > 127 ); ! 604: ! 605: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 606: ec = ec * 256 + tfmtemp ; ! 607: } ! 608: if ( ( bc > ec + 1 ) || ( ec > 255 ) ); ! 609: ! 610: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 611: { ! 612: nw = tfmtemp ; ! 613: if ( nw > 127 ); ! 614: ! 615: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 616: nw = nw * 256 + tfmtemp ; ! 617: } ! 618: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 619: { ! 620: nh = tfmtemp ; ! 621: if ( nh > 127 ); ! 622: ! 623: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 624: nh = nh * 256 + tfmtemp ; ! 625: } ! 626: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 627: { ! 628: nd = tfmtemp ; ! 629: if ( nd > 127 ) ! 630: ; ! 631: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 632: nd = nd * 256 + tfmtemp ; ! 633: } ! 634: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 635: { ! 636: ni = tfmtemp ; ! 637: if ( ni > 127 ) ! 638: ; ! 639: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 640: ni = ni * 256 + tfmtemp ; ! 641: } ! 642: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 643: { ! 644: nl = tfmtemp ; ! 645: if ( nl > 127 ) ! 646: ; ! 647: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 648: nl = nl * 256 + tfmtemp ; ! 649: } ! 650: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 651: { ! 652: nk = tfmtemp ; ! 653: if ( nk > 127 ) ! 654: ; ! 655: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 656: nk = nk * 256 + tfmtemp ; ! 657: } ! 658: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 659: { ! 660: ne = tfmtemp ; ! 661: if ( ne > 127 ) ! 662: ; ! 663: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 664: ne = ne * 256 + tfmtemp ; ! 665: } ! 666: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 667: { ! 668: np = tfmtemp ; ! 669: if ( np > 127 ) ! 670: ; ! 671: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 672: np = np * 256 + tfmtemp ; ! 673: } ! 674: if ( lf != 6 + lh + ( ec - bc + 1 ) + nw + nh + nd + ni + nl + nk + ne + ! 675: np ) ! 676: ; ! 677: } ! 678: ! 679: lf = lf - 6 - lh ; ! 680: if ( np < 7 ) ! 681: lf = lf + 7 - np ; ! 682: if ( ( fontptr == 75 ) || ( fmemptr + lf > 20000L ) ) ! 683: { ! 684: { ! 685: if ( interaction == 3 ) ! 686: wakeupterminal () ; ! 687: zprintnl((strnumber)( 133 )) ; ! 688: zprint((integer)( 655 )) ; ! 689: } ! 690: zsprintcs((halfword)( u )) ; ! 691: zprintchar((ASCIIcode)( 61 )) ; ! 692: zprintfilename((integer)( nom ),(integer)( aire ),(integer)( 206 )) ; ! 693: if ( s >= 0 ) ! 694: { ! 695: zprint((integer)( 598 )) ; ! 696: zprintscaled((scaled)( s )) ; ! 697: zprint((integer)( 262 )) ; ! 698: } ! 699: else if ( s != -1000 ) ! 700: { ! 701: zprint((integer)( 656 )) ; ! 702: zprintint((integer)( - (integer) s )) ; ! 703: } ! 704: zprint((integer)( 665 )) ; ! 705: { ! 706: helpptr = 4 ; ! 707: helpline [ 3 ] = 666 ; ! 708: helpline [ 2 ] = 667 ; ! 709: helpline [ 1 ] = 668 ; ! 710: helpline [ 0 ] = 669 ; ! 711: } ! 712: error () ; ! 713: } ! 714: f = fontptr + 1 ; ! 715: charbase [ f ] = fmemptr - bc ; ! 716: widthbase [ f ] = charbase [ f ] + ec + 1 ; ! 717: heightbase [ f ] = widthbase [ f ] + nw ; ! 718: depthbase [ f ] = heightbase [ f ] + nh ; ! 719: italicbase [ f ] = depthbase [ f ] + nd ; ! 720: ligkernbase [ f ] = italicbase [ f ] + ni ; ! 721: kernbase [ f ] = ligkernbase [ f ] + nl ; ! 722: extenbase [ f ] = kernbase [ f ] + nk ; ! 723: parambase [ f ] = extenbase [ f ] + ne ; ! 724: { ! 725: if ( lh < 2 ) ! 726: ; ! 727: { ! 728: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 729: a = tfmtemp ; ! 730: qw .u.B0 = a ; ! 731: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 732: b = tfmtemp ; ! 733: qw .u.B1 = b ; ! 734: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 735: c = tfmtemp ; ! 736: qw .b2 = c ; ! 737: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 738: d = tfmtemp ; ! 739: qw .b3 = d ; ! 740: fontcheck [ f ] = qw ; ! 741: } ! 742: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 743: { ! 744: z = tfmtemp ; ! 745: if ( z > 127 ) ! 746: ; ! 747: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 748: z = z * 256 + tfmtemp ; ! 749: } ! 750: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 751: z = z * 256 + tfmtemp ; ! 752: tfmtemp = (--( tfmfile )->_cnt>=0? *( tfmfile )->_ptr++&0377:_filbuf( tfmfile )) ; ! 753: z = ( z * 16 ) + ( tfmtemp / 16 ) ; ! 754: if ( z < 65536L ) ! 755: ; ! 756: fontdsize [ f ] = z ; ! 757: if ( s != -1000 ) ! 758: if ( s >= 0 ) ! 759: z = s ; ! 760: else z = zxnoverd((scaled)( z ),(integer)( - (integer) s ),(integer)( 1000 )) ; ! 761: fontsize [ f ] = z ; ! 762: } ! 763: } ! 764: 3.) Command Used : gcc ! 765: ---------------- ! 766: ! 767: 4.) Files used : ! 768: -------------- ! 769: tm.h -> tm-sequent.h ! 770: md -> ns32k.md ! 771: ! 772: 5.) Machine(s) used : ! 773: ------------------- ! 774: Sequent Balance 8000 DYNIX (TM)V2.1.1 (BSD 4.2) ! 775: ! 776: 6.) Incorrect behaviour : ! 777: ----------------------- ! 778: ! 779: Compiler dies someplace during the compilation process. ! 780: ! 781: 7.) Compiler diagnostics : ! 782: ------------------------ ! 783: ! 784: /usr/local/lib/gcc-cpp -v -undef -D__GNU__ -D__GNUC__ -Dns32000 -Dsequent -Dunix -D__OPTIMIZE__ tex-bug.1.24.c /tmp/cc006049.cpp ! 785: GNU CPP version 1.24 ! 786: /usr/local/lib/gcc-cc1 /tmp/cc006049.cpp -quiet -dumpbase tex-bug.1.24.c -O -version -o /tmp/cc006049.s ! 787: gcc: Program cc1 got fatal signal 4. ! 788: gcc version 1.24 ! 789: ! 790:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.