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