Annotation of gcc/ns32k.bugs, revision 1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.