Annotation of gcc/ns32k.bugs, revision 1.1.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.