1: /*
   2:  * Copyright (c) 1980 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  */
   6: 
   7: #ifndef lint
   8: static char sccsid[] = "@(#)error.c	5.1 (Berkeley) 6/7/85";
   9: #endif not lint
  10: 
  11: /*
  12:  * error.c
  13:  *
  14:  * Error handling routines for f77 compiler pass 1, 4.2 BSD.
  15:  *
  16:  * University of Utah CS Dept modification history:
  17:  *
  18:  * Revision 1.2  84/08/20  17:57:20  donn
  19:  * Added strategic colons to the format strings in execerr() and dclerr().
  20:  *
  21:  */
  22: 
  23: #include "defs.h"
  24: 
  25: 
  26: warn1(s,t)
  27: char *s, *t;
  28: {
  29: char buff[100];
  30: sprintf(buff, s, t);
  31: warn(buff);
  32: }
  33: 
  34: 
  35: warn(s)
  36: char *s;
  37: {
  38: if(nowarnflag)
  39:     return;
  40: fprintf(diagfile, "Warning on line %d of %s: %s\n", lineno, infname, s);
  41: ++nwarn;
  42: }
  43: 
  44: 
  45: errstr(s, t)
  46: char *s, *t;
  47: {
  48: char buff[100];
  49: sprintf(buff, s, t);
  50: err(buff);
  51: }
  52: 
  53: 
  54: errnm(fmt, l, s)
  55: char *fmt;
  56: int l;
  57: register char *s;
  58: {
  59:   char buff[VL+1];
  60:   register int i;
  61: 
  62:   i = 0;
  63:   while (i < l)
  64:     {
  65:       buff[i] = s[i];
  66:       i++;
  67:     }
  68:   buff[i] = '\0';
  69: 
  70:   errstr(fmt, buff);
  71: }
  72: 
  73: warnnm(fmt, l, s)
  74: char *fmt;
  75: int l;
  76: register char *s;
  77: {
  78:   char buff[VL+1];
  79:   register int i;
  80: 
  81:   i = 0;
  82:   while (i < l)
  83:     {
  84:       buff[i] = s[i];
  85:       i++;
  86:     }
  87:   buff[i] = '\0';
  88: 
  89:   warn1(fmt, buff);
  90: }
  91: 
  92: erri(s,t)
  93: char *s;
  94: int t;
  95: {
  96: char buff[100];
  97: sprintf(buff, s, t);
  98: err(buff);
  99: }
 100: 
 101: 
 102: err(s)
 103: char *s;
 104: {
 105: fprintf(diagfile, "Error on line %d of %s: %s\n", lineno, infname, s);
 106: ++nerr;
 107: optoff();
 108: }
 109: 
 110: 
 111: yyerror(s)
 112: char *s;
 113: { err(s); }
 114: 
 115: 
 116: 
 117: dclerr(s, v)
 118: char *s;
 119: Namep v;
 120: {
 121: char buff[100];
 122: 
 123: if(v)
 124:     {
 125:     sprintf(buff, "Declaration error for %s: %s", varstr(VL, v->varname), s);
 126:     err(buff);
 127:     }
 128: else
 129:     errstr("Declaration error: %s", s);
 130: }
 131: 
 132: 
 133: 
 134: execerr(s, n)
 135: char *s, *n;
 136: {
 137: char buf1[100], buf2[100];
 138: 
 139: sprintf(buf1, "Execution error: %s", s);
 140: sprintf(buf2, buf1, n);
 141: err(buf2);
 142: }
 143: 
 144: 
 145: fatal(t)
 146: char *t;
 147: {
 148: fprintf(diagfile, "Compiler error line %d of %s: %s\n", lineno, infname, t);
 149: if (debugflag[8])
 150:     showbuffer();
 151: if (debugflag[0])
 152:     abort();
 153: done(3);
 154: exit(3);
 155: }
 156: 
 157: 
 158: 
 159: 
 160: fatalstr(t,s)
 161: char *t, *s;
 162: {
 163: char buff[100];
 164: sprintf(buff, t, s);
 165: fatal(buff);
 166: }
 167: 
 168: 
 169: 
 170: fatali(t,d)
 171: char *t;
 172: int d;
 173: {
 174: char buff[100];
 175: sprintf(buff, t, d);
 176: fatal(buff);
 177: }
 178: 
 179: 
 180: 
 181: badthing(thing, r, t)
 182: char *thing, *r;
 183: int t;
 184: {
 185: char buff[50];
 186: sprintf(buff, "Impossible %s %d in routine %s", thing, t, r);
 187: fatal(buff);
 188: }
 189: 
 190: 
 191: 
 192: badop(r, t)
 193: char *r;
 194: int t;
 195: {
 196: badthing("opcode", r, t);
 197: }
 198: 
 199: 
 200: 
 201: badtag(r, t)
 202: char *r;
 203: int t;
 204: {
 205: badthing("tag", r, t);
 206: }
 207: 
 208: 
 209: 
 210: 
 211: 
 212: badstg(r, t)
 213: char *r;
 214: int t;
 215: {
 216: badthing("storage class", r, t);
 217: }
 218: 
 219: 
 220: 
 221: 
 222: badtype(r, t)
 223: char *r;
 224: int t;
 225: {
 226: badthing("type", r, t);
 227: }
 228: 
 229: 
 230: many(s, c)
 231: char *s, c;
 232: {
 233: char buff[25];
 234: 
 235: sprintf(buff, "Too many %s.  Try the -N%c option", s, c);
 236: fatal(buff);
 237: }
 238: 
 239: 
 240: err66(s)
 241: char *s;
 242: {
 243: errstr("Fortran 77 feature used: %s", s);
 244: }
 245: 
 246: 
 247: 
 248: errext(s)
 249: char *s;
 250: {
 251: errstr("F77 compiler extension used: %s", s);
 252: }

Defined functions

err defined in line 102; used 150 times
err66 defined in line 240; used 1 times
errext defined in line 248; never used
errnm defined in line 54; used 7 times
warnnm defined in line 73; used 3 times
yyerror defined in line 111; never used

Defined variables

sccsid defined in line 8; never used
Last modified: 1985-06-08
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1644
Valid CSS Valid XHTML 1.0 Strict