|
|
1.1 ! root 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.