]>
Commit | Line | Data |
---|---|---|
a30ab391 DL |
1 | 1998-07-26 Dave Love <d.love@dl.ac.uk> |
2 | ||
3 | * BUGS, INSTALL, NEWS: Rebuilt. | |
4 | ||
99b712ff CB |
5 | Sat Jul 25 17:23:55 1998 Craig Burley <burley@gnu.org> |
6 | ||
7 | Fix 980615-0.f: | |
8 | * stc.c (ffestc_R1229_start): Set info to ANY as well. | |
9 | ||
90059ae1 CB |
10 | Tue Jul 21 04:33:37 1998 Craig Burley <burley@gnu.org> |
11 | ||
12 | * g77spec.c (lang_specific_driver): Return unmolested | |
13 | command line when --help seen. | |
14 | Comment out code that printed g77-specific --help info. | |
15 | ||
530f7010 CB |
16 | Sat Jul 18 19:16:48 1998 Craig Burley <burley@gnu.org> |
17 | ||
18 | * lang-options.h: Fix up doc strings. | |
19 | Remove the unimplemented -fdcp-intrinsics-* options. | |
20 | ||
21 | * str-1t.fin: Change mixed-case spelling of `GoTo' from | |
22 | `Goto'. | |
23 | ||
75750f9c CB |
24 | Thu Jul 16 13:26:36 1998 Craig Burley <burley@gnu.org> |
25 | ||
26 | * (ffecom_finish_symbol_transform_): Revert change | |
27 | of 1998-05-23, as it was too aggressive, in that it | |
28 | prevented transformation of (used) functions before | |
29 | primary code generation. | |
30 | ||
a1d80b3e DL |
31 | 1998-07-15 Dave Love <d.love@dl.ac.uk> |
32 | ||
33 | * intdoc.texi: Regenerated. | |
34 | ||
9a59ff4f CB |
35 | Mon Jul 13 18:45:06 1998 Craig Burley <burley@gnu.org> |
36 | ||
37 | * Make-lang.in (f77.rebuilt): Fix to depend on | |
38 | build-dir-based, not source-based, g77.info. | |
39 | ||
40 | * g77.texi: Merge docs with 0.5.24. | |
41 | * g77install.texi: Ditto. | |
42 | ||
4801aa8f CB |
43 | Mon Jul 13 18:02:29 1998 Craig Burley <burley@gnu.org> |
44 | ||
45 | Cleanups vis-a-vis g77-0.5.24: | |
46 | * g77spec.c (lang_specific_driver): Tabify source. | |
47 | * top.c (ffe_decode_option): Use fixed macro to set | |
48 | internal-checking flag. | |
49 | * top.h (ffe_set_is_do_internal_checks): Fix macro. | |
50 | ||
207ff633 CB |
51 | Mon Jul 13 17:33:44 1998 Craig Burley <burley@gnu.org> |
52 | ||
53 | Cleanups vis-a-vis system.h cutover and g77-0.5.24: | |
54 | * Makefile.in (fini.o): Define USE_HCONFIG macro | |
55 | so source code doesn't have to. | |
56 | * fini.c: Don't define USE_HCONFIG here, since | |
57 | source code usually shouldn't care about this. | |
58 | * ansify.c: Include stddef.h only if we have it. | |
59 | * intdoc.c: Ditto. | |
60 | * proj.h: Ditto. | |
61 | ||
30e5b40b NC |
62 | Mon Jul 13 17:30:29 1998 Nick Clifton <nickc@cygnus.com> |
63 | ||
64 | * lang-options.h: Format changed to work with --help support added | |
65 | to gcc/toplev.c | |
66 | ||
6bf71635 CB |
67 | Mon Jul 13 11:54:03 1998 Craig Burley <burley@gnu.org> |
68 | ||
69 | * com.c (ffecom_push_tempvar): Replace kludge that | |
70 | munged back-end globals directly with proper calls | |
71 | to push_topmost_sequence and pop_topmost_sequence. | |
72 | ||
e3fc7b68 DL |
73 | 1998-07-12 Dave Love <d.love@dl.ac.uk> |
74 | ||
75 | * version.c: Bump version. | |
76 | ||
4fe911f5 CB |
77 | Sat Jul 11 19:24:32 1998 Craig Burley <burley@gnu.org> |
78 | ||
79 | Fix 980616-0.f: | |
80 | * equiv.c (ffeequiv_offset_): Don't crash on various | |
81 | possible ANY operands. | |
82 | ||
c264f113 CB |
83 | Sat Jul 11 18:24:37 1998 Craig Burley <burley@gnu.org> |
84 | ||
85 | * com.c (ffecom_expr_) [FFEBLD_opCONTER]: Die if padding | |
86 | for constant is non-zero. | |
87 | ||
88 | * com.c (__eprintf): Delete this function, it is obsolete. | |
89 | ||
1cd97bb3 DL |
90 | 1998-07-09 Dave Love <d.love@dl.ac.uk> |
91 | ||
92 | * intdoc.in (HOSTNM_func, HOSTNM_subr): Update last change. | |
93 | ||
621bb5b1 CB |
94 | Thu Jul 9 00:45:59 1998 Craig Burley <burley@gnu.org> |
95 | ||
96 | Fix debugging of CHARACTER*(*), etc., which requires | |
97 | emitting debug info on types like `ftnlen': | |
98 | * com.c (ffecom_start_progunit_): Don't bother | |
99 | resetting "invented" flag for identifier. | |
100 | (ffecom_transform_equiv_): Don't bother zeroing | |
101 | "ignored" flag for decl. | |
102 | (pushdecl): No longer set "ignored", "used", or | |
103 | "suppressed debug" flags for decls having "invented" | |
104 | identifiers. | |
105 | ||
2cc6777c DL |
106 | 1998-07-06 Mike Stump <mrs@wrs.com> |
107 | ||
108 | * Make-lang.in (f77.stage?): Use mv -f instead of just mv so that | |
109 | we can move g77.c. | |
110 | ||
60afa297 DL |
111 | 1998-07-06 Dave Love <d.love@dl.ac.uk> |
112 | ||
113 | * intdoc.in (HOSTNM_func, HOSTNM_subr): Note possible need for | |
114 | -lsocket. | |
115 | ||
9e8e701d DL |
116 | 1998-07-05 Dave Love <d.love@dl.ac.uk> |
117 | ||
118 | * intdoc.in: Add entry for DATE_AND_TIME. | |
119 | ||
120 | * intrin.def: Add implementation for DATE_AND_TIME. Make second | |
121 | and third args of SYSTEM_CLOCK optional. | |
122 | ||
123 | * com.c (ffecom_expr_intrinsic_): New case for DATE_AND_TIME. | |
124 | ||
125 | * com-rt.def (FFECOM_gfrtSYSTEM_CLOCK): Call G77_system_clock_0, | |
126 | not system_clock_. | |
127 | (FFECOM_gfrtDATE_AND_TIME): New DEFGFRT. | |
128 | ||
f781186f CB |
129 | Wed Jul 1 11:19:13 1998 Craig Burley <burley@gnu.org> |
130 | ||
131 | Fix 980701-1.f (which was producing "unaligned trap" | |
132 | on an Alpha running GNU/Linux, as predicted): | |
133 | * equiv.c (ffeequiv_layout_local_): Don't bother | |
134 | coping with pre-padding of entire area while building | |
135 | it; do that instead after the building is done, and | |
136 | do it by modifying only the modulo field. This covers | |
137 | the case of alignment stringency being increased without | |
138 | lowering the starting offset, unlike the previous changes, | |
139 | and even more elegantly than those. | |
140 | ||
141 | * target.c (ffetarget_align): Make sure alignments | |
142 | are non-zero, just in case. | |
143 | ||
a6fa6420 CB |
144 | Mon Jun 29 09:47:33 1998 Craig Burley <burley@gnu.org> |
145 | ||
146 | Fix 980628-*.f: | |
147 | * bld.h: New `pad' field and accessor macros for | |
148 | ACCTER, ARRTER, and CONTER ops. | |
149 | * bld.c (ffebld_new_accter, ffebld_new_arrter, | |
150 | ffebld_new_conter_with_orig): Initialize `pad' field | |
151 | to zero. | |
152 | * com.c (ffecom_transform_common_): Include initial | |
153 | padding (aka modulo aka offset) in size calculation. | |
154 | Copy initial padding value into FFE initialization expression | |
155 | so the GBE transformation of that expression includes it. | |
156 | Make array low bound 0 instead of 1, for consistency. | |
157 | (ffecom_transform_equiv_): Include initial | |
158 | padding (aka modulo aka offset) in size calculation. | |
159 | Copy initial padding value into FFE initialization expression | |
160 | so the GBE transformation of that expression includes it. | |
161 | Make array low bound 0 instead of 1, for consistency. | |
162 | (ffecom_expr_, case FFEBLD_opACCTER): Delete unused `size' | |
163 | variable. | |
164 | Track destination offset separately, allowing for | |
165 | initial padding. | |
166 | Don't bother setting initial PURPOSE offset if zero. | |
167 | Include initial padding in size calculation. | |
168 | (ffecom_expr_, case FFEBLD_opARRTER): Allow for | |
169 | initial padding. | |
170 | Include initial padding in size calculation. | |
171 | Make array low bound 0 instead of 1, for consistency. | |
172 | (ffecom_finish_global_): Make array low bound 0 instead | |
173 | of 1, for consistency. | |
174 | (ffecom_notify_init_storage): Copy `pad' field from old | |
175 | ACCTER to new ARRTER. | |
176 | (ffecom_notify_init_symbol): Ditto. | |
177 | * data.c (ffedata_gather_): Initialize `pad' field in new | |
178 | ARRTER to 0. | |
179 | (ffedata_value_): Ditto. | |
180 | * equiv.c (ffeequiv_layout_local_): When lowering start | |
181 | of equiv area, extend lowering to maintain needed alignment. | |
182 | * target.c (ffetarget_align): Handle negative offset correctly. | |
183 | ||
184 | * global.c (ffeglobal_pad_common): Warn about non-zero | |
185 | padding only the first time its seen. | |
186 | If new padding larger than old, update old. | |
187 | (ffeglobal_save_common): Use correct type for size throughout. | |
188 | * global.h: Use correct type for size throughout. | |
189 | (ffeglobal_common_pad): New macro. | |
190 | (ffeglobal_pad): Delete this unused and broken macro. | |
191 | ||
973bd7a4 CB |
192 | Fri Jun 26 11:54:19 1998 Craig Burley <burley@gnu.org> |
193 | ||
194 | * g77spec.c (lang_specific_driver): Put `-lg2c' in | |
195 | front of any `-lm' that is seen. | |
196 | ||
2cc6777c DL |
197 | Mon Jun 22 23:12:05 1998 H.J. Lu (hjl@gnu.org) |
198 | ||
199 | * Make-lang.in (G77STAGESTUFF): Add g77.c. | |
200 | ||
08e901b9 CB |
201 | Mon Jun 15 23:39:24 1998 Craig Burley <burley@gnu.org> |
202 | ||
203 | * Make-lang.in (f/g77.info): Use -f when removing | |
204 | pre-existing Info files, if any. (This rm command | |
205 | can go away once makeinfo has been changed to delete | |
206 | .info-N files beyond the last one it creates.) | |
207 | ||
208 | * Make-lang.in ($(srcdir)/f/intdoc.texi): Compile | |
209 | using $(INCLUDES) macro to get the new hconfig.h | |
2cc6777c | 210 | and system.h headers. |
fd66d5a6 | 211 | |
8b45da67 CB |
212 | Mon Jun 15 22:21:57 1998 Craig Burley <burley@gnu.org> |
213 | ||
214 | Cutover to system.h: | |
215 | * Make-lang.in: | |
216 | * Makefile.in: | |
217 | * ansify.c: | |
218 | * bad.c: | |
219 | * bld.c: | |
220 | * com.c: | |
221 | * com.h: | |
222 | * expr.c: | |
223 | * fini.c: | |
224 | * g77spec.c: | |
225 | * implic.c: | |
226 | * intdoc.c: | |
227 | * intrin.c: | |
228 | * lex.c: | |
229 | * lex.h: | |
230 | * parse.c: | |
231 | * proj.c: | |
232 | * proj.h: | |
233 | * src.c: | |
234 | * src.h: | |
235 | * stb.c: | |
236 | * ste.c: | |
237 | * target.c: | |
238 | * top.c: | |
239 | * system.j: New file. | |
240 | ||
241 | Use toplev.h where appropriate: | |
242 | * Make-lang.in: | |
243 | * Makefile.in: | |
244 | * bad.c: | |
245 | * bld.c: | |
246 | * com.c: | |
247 | * lex.c: | |
248 | * ste.c: | |
249 | * top.c: | |
250 | * toplev.j: New file. | |
251 | ||
252 | Conditionalize all dumping/reporting routines so they don't | |
253 | get built for gcc/egcs: | |
254 | * bld.c: | |
255 | * bld.h: | |
256 | * com.c: | |
257 | * equiv.c: | |
258 | * equiv.h: | |
259 | * sta.c: | |
260 | * stt.c: | |
261 | * stt.h: | |
262 | * symbol.c: | |
263 | * symbol.h: | |
264 | ||
265 | Use hconfig.h instead of config.h where appropriate: | |
266 | * Makefile.in (proj-h.o): Compile with -DUSE_HCONFIG. | |
267 | * fini.c: Define USE_HCONFIG before including proj.h. | |
268 | ||
269 | * Makefile.in (deps-kinda): Redirect stderr to stdout, | |
270 | to eliminate diagnostics vis-a-vis g77spec.c. | |
271 | ||
272 | * Makefile.in: Regenerate dependencies via deps-kinda. | |
273 | ||
274 | * lex.c (ffelex_file_fixed, ffelex_file_free): Eliminate | |
275 | apparently spurious warnings about uninitialized variables | |
276 | `c', `column', and so on. | |
277 | ||
3f1e4292 CB |
278 | Sat Jun 13 03:13:18 1998 Craig Burley <burley@gnu.org> |
279 | ||
280 | * g77spec.c (lang_specific_driver): Print out egcs | |
281 | version info first, to be compatible with what some | |
282 | test facilities expect. | |
283 | ||
ab9e0ff9 DB |
284 | Wed Jun 10 13:17:32 1998 Dave Brolley <brolley@cygnus.com> |
285 | ||
286 | * top.h (ffe_decode_option): New argc/argv interface. | |
287 | * top.c (ffe_decode_option): New argc/argv interface. | |
288 | * parse.c (yyparse): New argc/argv interface for ffe_decode_option. | |
289 | * com.c (lang_decode_option): New argc/argv interface. | |
95a1b676 | 290 | |
a835e351 CB |
291 | Mon Jun 1 19:37:42 1998 Craig Burley <burley@gnu.org> |
292 | ||
293 | * com.c (ffecom_init_0): Fix setup of INTEGER(KIND=7) | |
294 | pointer type. | |
295 | * info.c (ffeinfo_type): Don't crash on null type. | |
296 | * expr.c (ffeexpr_fulfill_call_): Don't special-case | |
297 | %LOC(expr) or LOC(expr). | |
298 | Delete FFEGLOBAL_argsummaryPTR. | |
299 | * global.c, global.h: Delete FFEGLOBAL_argsummaryPTR. | |
300 | ||
95a1b676 CB |
301 | Thu May 28 21:32:18 1998 Craig Burley <burley@gnu.org> |
302 | ||
303 | Restore circa-0.5.22 capabilities of `g77' driver: | |
304 | * Make-lang.in (g77spec.o): Depend on f/version.h. | |
305 | (g77version.o): New rule to compile g77 version info. | |
306 | (g77$(exeext)): Depend on and link in g77version.o. | |
307 | * g77spec.c: Rewrite to be more like 0.5.22 version | |
308 | of g77.c, making filtering of command line smarter | |
309 | so mixed Fortran and C (etc.) can be compiled, verbose | |
310 | version info can be obtained, etc. | |
311 | * lang-specs.h (f77-version): New "language" to support | |
312 | "g77 -v" command under new gcc 2.8 regime. | |
313 | * lex.c (ffelex_file_fixed): If -fnull-version, just | |
314 | substitute a "source file" that prints out version info. | |
315 | * top.c, top.h: Support -fnull-version. | |
316 | ||
317 | * lang-specs.h: Use "%O" instead of OO macro to specify | |
318 | object extension. Remove old stringizing cruft. | |
319 | ||
320 | * Make-lang.in (g77.c, g77spec.o, g77.o, g77$(exeext), | |
321 | g77-cross$(exeext), f771, | |
322 | $(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi, | |
323 | $(srcdir)/f/intdoc.texi, | |
324 | f77.install-common, f77.install-info, f77.install-man, | |
325 | f77.uninstall, $(G77STAGESTUFF), f77.stage1, f77.stage2, | |
326 | f77.stage3, f77.stage4, f77.distdir): Don't do anything | |
327 | unless user specified "f77" or "F77" in $LANGUAGES either | |
328 | during configuration or explicitly. For convenience of | |
329 | various tests and to work around lack of the assignment | |
330 | "LANGUAGES=$(BOOT_LANGUAGES)" in the "make stage1" command | |
331 | of "make bootstrap" in gcc, use a touch file named "lang-f77" | |
332 | to communicate whether this is the case. | |
333 | ||
334 | * Make-lang.in (F77_FLAGS_TO_PASS): Delete this macro, | |
335 | replace with minimal expansion of its former self in | |
336 | each of the two instances where it was used. | |
337 | ||
338 | * Makefile.in (HOST_CC): Delete this definition. | |
339 | ||
340 | * com.c (index, rindex): Delete these declarations. | |
341 | ||
342 | * proj.h: (isascii): Delete this. | |
343 | ||
344 | * Make-lang.in (f77.install-common): Warn if `f77-install-ok' | |
345 | flag-file exists, since it no longer triggers any activity. | |
346 | ||
347 | Rename libf2c.a and f2c.h to libg2c.a and g2c.h, | |
348 | normalize and simplify g77/libg2c build process: | |
349 | * Make-lang.in: Remove all support for overwriting | |
350 | /usr/bin/f77 etc., or whatever the actual names are | |
351 | via $(prefix) and $(local_prefix). (g++ overwrites | |
352 | /usr/bin/c++, but then it's often the only C++ compiler | |
353 | on the system; f77 often exists on systems that are | |
354 | installing g77.) | |
355 | (f77.realclean): Remove obsolete target. | |
356 | (g77.c, g77$(exeext)): Minor changes to look more like g++'s | |
357 | stuff. | |
358 | (f771): Now built with srcdir=gcc/f, not srcdir=gcc, to be | |
359 | more like g++ and such. | |
360 | (f/Makefile): Removed, as g++ doesn't need this rule. | |
361 | (f77.install-common): No longer install f77, etc. | |
362 | (f77.install-man): No longer install f77.1. | |
363 | (f77.uninstall): No longer uninstall f77, f77.1, etc. | |
364 | (f77.stage1, f77.stage2, f77.stage3, f77.stage4): Do work | |
365 | only if "f77" appears in $(LANGUAGES). | |
366 | (Note: gcc's Makefile.in's bootstrap target should set | |
367 | LANGUAGES=$(BOOT_LANGUAGES) when making the stage1 target.) | |
368 | * Makefile.in: Update vis-a-vis gcc/cp/Makefile.in. | |
369 | (none): Remove. | |
370 | (g77-only): Relocate. | |
371 | (all.indirect, f771, *.o): Now assumes current directory | |
372 | is this dir (gcc/f), not the parent directory. | |
373 | (TAGS): Remove "echo 'parse.y,0' >> TAGS ;" line. | |
374 | * config-lang.in: Delete commented-out code. | |
375 | Fix stagestuff definition. Add more stuff to | |
376 | diff_excludes definition. Don't create any directories. | |
377 | Set outputs to f/Makefile, to get variable substition | |
378 | to happen (what does that really do, anyway?!). | |
379 | * g77spec.c: Rename libf2c to libg2c. | |
380 | ||
381 | * com.h: Remove all of the gcc back-end decls, | |
382 | since egcs should have all of them correct. | |
383 | ||
384 | * com.c: Include "proj.h" before anything else, | |
385 | as that's how things are supposed to work. | |
386 | * ste.c: Ditto. | |
387 | ||
388 | * bad.c: Include "flags.j" here, since some diagnostics | |
389 | check flag_pedantic_errors. | |
390 | ||
391 | * Makefile.in (f/*.o): Rebuild dependencies via | |
392 | deps-kinda. | |
393 | ||
394 | * output.j: New source file. | |
395 | * Make-lang.in (F77_SRCS): Update accordingly. | |
396 | * Makefile.in (OUTPUT_H): Ditto. | |
397 | (deps-kinda): Ditto. | |
398 | * com.c: Include "output.j" here. | |
399 | * lex.c: Ditto. | |
400 | ||
5a3321e1 CB |
401 | Mon May 25 03:34:42 1998 Craig Burley <burley@gnu.org> |
402 | ||
403 | * com.c (ffecom_expr_): Fix D**I and Z**I cases to | |
404 | not convert (DOUBLE PRECISION) D and (DOUBLE COMPLEX) Z | |
405 | to INTEGER. (This is dead code here anyway.) | |
406 | ||
6829256f CB |
407 | Sat May 23 06:32:52 1998 Craig Burley <burley@gnu.org> |
408 | ||
409 | * com.c (ffecom_finish_symbol_transform_): Don't transform | |
410 | statement (nested) functions, to avoid gcc compiling them | |
411 | and thus producing linker errors if they refer to undefined | |
a835e351 CB |
412 | external functions. But warn if they're unused and -Wunused. |
413 | * bad.def (FFEBAD_SFUNC_UNUSED): New diagnostic. | |
6829256f | 414 | |
2cc6777c DL |
415 | Wed May 20 12:12:55 1998 Craig Burley <burley@gnu.org> |
416 | ||
417 | * Version 0.5.23 released. | |
418 | ||
2e0773e8 CB |
419 | Tue May 19 14:52:41 1998 Craig Burley <burley@gnu.org> |
420 | ||
421 | * bad.def (FFEBAD_OPEN_UNSUPPORTED, FFEBAD_INQUIRE_UNSUPPORTED, | |
422 | FFEBAD_READ_UNSUPPORTED, FFEBAD_WRITE_UNSUPPORTED, | |
423 | FFEBAD_QUAD_UNSUPPORTED, FFEBAD_BLOCKDATA_STMT, | |
424 | FFEBAD_TRUNCATING_CHARACTER, FFEBAD_TRUNCATING_HOLLERITH, | |
425 | FFEBAD_TRUNCATING_NUMERIC, FFEBAD_TRUNCATING_TYPELESS, | |
426 | FFEBAD_TYPELESS_OVERFLOW): Change these from warnings | |
427 | to errors. | |
428 | ||
429 | Tue May 19 14:51:59 1998 Craig Burley <burley@gnu.org> | |
430 | ||
431 | * Make-lang.in (f77.install-info, f77.uninstall): | |
432 | Use install-info as appropriate. | |
433 | ||
434 | Tue May 19 12:56:54 1998 Craig Burley <burley@gnu.org> | |
435 | ||
436 | * com.c (ffecom_init_0): Rename xargc to f__xargc, | |
437 | in accord with same-dated change to f/runtime. | |
438 | ||
bfe12bab | 439 | Fri May 15 10:52:49 1998 Craig Burley <burley@gnu.org> |
ac549fc3 CB |
440 | |
441 | * com.c (ffecom_convert_narrow_, ffecom_convert_widen_): | |
442 | Be even more persnickety in checking for internal bugs. | |
443 | Also, if precision isn't changing, just return the expr. | |
ac549fc3 | 444 | |
bfe12bab | 445 | * expr.c (ffeexpr_token_number_): Call |
ac549fc3 CB |
446 | ffeexpr_make_float_const_ to make an integer. |
447 | (ffeexpr_make_float_const_): Handle making an integer. | |
448 | ||
449 | * intrin.c (ffeintrin_init_0): Distinguish between | |
450 | crashes on bad arg base and kind types. | |
451 | ||
bfe12bab CB |
452 | Thu May 14 13:30:59 1998 Craig Burley <burley@gnu.org> |
453 | ||
454 | * Make-lang.in (f/expr.c): Now depends on f/stamp-str. | |
455 | * expr.c: Use ffestrOther in place of ffeexprDotdot_. | |
ac549fc3 CB |
456 | * str-ot.fin: Add more keywords for expr.c. |
457 | ||
458 | * intdoc.c (dumpimp): Trivial fix. | |
459 | ||
bfe12bab | 460 | * com.c (ffecom_expr_): Add ltkt variable for clarity. |
ac549fc3 | 461 | |
5a3321e1 CB |
462 | Wed May 13 13:05:34 1998 Craig Burley <burley@gnu.org> |
463 | ||
464 | * Make-lang.in (G77STAGESTUFF): Add g77.o, g77spec.o, | |
465 | and g77version.o. | |
466 | (f77.clean): Add removal of g77.c, g77.o, g77spec.o, | |
467 | and g77version.o. | |
468 | (f77.distclean): Delete removal of g77.c. | |
469 | ||
2cc6777c DL |
470 | Thu Apr 30 18:59:43 1998 Jim Wilson <wilson@cygnus.com> |
471 | ||
472 | * Make-lang.in (g77.info, g77.dvi, BUGS, INSTALL, NEWS): Put -o | |
473 | option before input file. | |
474 | ||
f8676b5d CB |
475 | Tue Apr 28 09:23:10 1998 Craig Burley <burley@gnu.org> |
476 | ||
477 | Fix 980427-0.f: | |
478 | * global.c (ffeglobal_ref_progunit_): When transitioning | |
479 | from EXT to FUNC, discard hook, since the decl, if any, is | |
480 | probably wrong. | |
481 | ||
945beb7c CB |
482 | Sun Apr 26 09:05:50 1998 Craig Burley <burley@gnu.org> |
483 | ||
484 | * com.c (ffecom_char_enhance_arg_): Wrap the upper bound | |
485 | (the PARM_DECL specifying the length of the CHARACTER*(*) | |
486 | dummy arg) in a variable_size invocation, to prevent | |
487 | dwarf2out.c crashing when compiling code with -g. | |
488 | ||
489 | Sat Apr 18 05:03:21 1998 Craig Burley <burley@gnu.org> | |
490 | ||
491 | * com.c (ffecom_check_size_overflow_): Ignore overflow | |
492 | as well if dummy argument. | |
493 | ||
4a26588b CB |
494 | Fri Apr 17 17:18:04 1998 Craig Burley <burley@gnu.org> |
495 | ||
496 | * version.h: Get rid of the overly large headers | |
497 | here too, as done in version.c. | |
498 | ||
3cf0cea4 CB |
499 | Tue Apr 14 14:40:40 1998 Craig Burley <burley@gnu.org> |
500 | ||
501 | * com.c (ffecom_start_progunit_): Mark function decl | |
502 | as used, to avoid spurious warning (-Wunused) for ENTRY. | |
503 | ||
504 | Tue Apr 14 14:19:34 1998 Craig Burley <burley@gnu.org> | |
505 | ||
506 | * sta.c (ffesta_second_): Check for CASE DEFAULT | |
507 | as well as CASE, or it won't be recognized. | |
508 | ||
bfe12bab CB |
509 | Mon Mar 23 21:20:35 1998 Craig Burley <burley@gnu.org> |
510 | ||
511 | * version.c: Reduce to a one-line file, like | |
512 | gcc's version.c, since there's really no content | |
513 | there. | |
514 | ||
f861f674 CB |
515 | Mon Mar 23 11:58:43 1998 Craig Burley <burley@gnu.org> |
516 | ||
667332c2 CB |
517 | * bugs.texi: Various updates. |
518 | ||
f861f674 CB |
519 | * com.c (ffecom_tree_canonize_ptr_): Fix up spacing a bit. |
520 | ||
14a378ec CB |
521 | Mon Mar 16 21:20:35 1998 Craig Burley <burley@gnu.org> |
522 | ||
523 | * expr.c (ffeexpr_sym_impdoitem_): Don't blindly | |
524 | reset symbol info after calling ffesymbol_error, | |
525 | to avoid crash. | |
526 | ||
44d2eabc JL |
527 | Mon Mar 16 15:38:50 1998 Craig Burley <burley@gnu.org> |
528 | ||
529 | * Version 0.5.22 released. | |
530 | ||
531 | Mon Mar 16 14:36:02 1998 Craig Burley <burley@gnu.org> | |
532 | ||
533 | Make -g work better for ENTRY: | |
534 | * com.c (ffecom_start_progunit_): Master function | |
535 | for ENTRY-laden procedure is not really invented, | |
536 | so it can be debugged. | |
537 | (ffecom_do_entry_): Push/set/pop lineno for each | |
538 | entry point. | |
539 | ||
540 | Sun Mar 15 05:48:49 1998 Craig Burley <burley@gnu.org> | |
541 | ||
542 | * intrin.def: Fix spelling of mixed-case form | |
543 | of `CPU_Time' (was `Cpu_Time'). | |
544 | ||
2cc6777c DL |
545 | Thu Mar 12 13:50:21 1998 Craig Burley <burley@gnu.org> |
546 | ||
547 | * lang-options.h: Sort all -f*-intrinsics-* options, | |
548 | for consistency with other g77 versions. | |
549 | ||
44d2eabc JL |
550 | 1998-03-09 Dave Love <d.love@dl.ac.uk> |
551 | ||
552 | * Make-lang.in: Set CONFIG_SITE to a non-existent file since | |
553 | /dev/null loses with bash 2.0/autoconf 2.12. Put | |
554 | F77_FLAGS_TO_PASS before CC. | |
555 | ||
556 | Sun Mar 8 16:35:34 1998 Craig Burley <burley@gnu.org> | |
557 | ||
558 | * intrin.def: Use tabs instead of blanks more | |
559 | consistently (excepting DEFGEN section for now). | |
560 | ||
561 | Sat Feb 28 15:24:38 1998 Craig Burley <burley@gnu.org> | |
562 | ||
563 | * intrin.def: Make CPU_TIME's arg generic real to be just | |
564 | like SECOND_subr. | |
565 | ||
b50fa387 CB |
566 | Fri Feb 20 12:45:53 1998 Craig Burley <burley@gnu.org> |
567 | ||
568 | * expr.c (ffeexpr_token_arguments_): Make sure | |
569 | outer exprstack isn't null. | |
570 | ||
44d2eabc | 571 | 1998-02-16 Dave Love <d.love@dl.ac.uk> |
a52ad720 | 572 | |
44d2eabc | 573 | * Makefile.in (f/fini): Don't use -W -Wall with HOST_CC. |
30286a36 | 574 | |
2cc6777c DL |
575 | Fri Feb 13 00:14:56 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
576 | ||
577 | * com.c (type_for_mode): Add explicit braces to avoid ambiguous `else'. | |
578 | ||
579 | * expr.c (ffeexpr_type_combine): Likewise. | |
580 | (ffeexpr_reduce_): Likewise. | |
581 | (ffeexpr_declare_parenthesized_): Likewise. | |
582 | ||
583 | * src.c (ffesrc_strcmp_1ns2i): Likewise. | |
584 | (ffesrc_strcmp_2c): Likewise. | |
585 | (ffesrc_strncmp_2c): Likewise. | |
586 | ||
587 | * stb.c (ffestb_halt1_): Likewise. | |
588 | (ffestb_R90910_): Likewise. | |
589 | (ffestb_R9109_): Likewise. | |
590 | ||
591 | * stc.c (ffestc_R544_equiv_): Likewise. | |
592 | ||
593 | * std.c (ffestd_subr_copy_easy_): Likewise. | |
594 | (ffestd_R1001dump_): Likewise. | |
595 | (ffestd_R1001dump_1005_1_): Likewise. | |
596 | (ffestd_R1001dump_1005_2_): Likewise. | |
597 | (ffestd_R1001dump_1005_3_): Likewise. | |
598 | (ffestd_R1001dump_1005_4_): Likewise. | |
599 | (ffestd_R1001dump_1005_5_): Likewise. | |
600 | (ffestd_R1001dump_1010_2_): Likewise. | |
601 | ||
602 | * ste.c (ffeste_R840): Likewise. | |
603 | ||
604 | * sts.c (ffests_puttext): Likewise. | |
605 | ||
606 | * symbol.c (ffesymbol_check_token_): Likewise. | |
607 | ||
608 | * target.c (ffetarget_real1): Likewise. | |
609 | (ffetarget_real2): Likewise. | |
610 | ||
611 | Sun Jan 25 12:32:15 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | |
612 | ||
613 | * Make-lang.in (f77.stage1): Depend on stage1-start so parallel | |
614 | make works better. | |
615 | * (f77.stage2): Likewise for stage2-start. | |
616 | * (f77.stage3): Likewise for stage3-start. | |
617 | * (f77.stage4): Likewise for stage4-start. | |
618 | ||
575094a2 CB |
619 | Sun Jan 11 02:14:47 1998 Craig Burley <burley@gnu.org> |
620 | ||
621 | Support FORMAT(I<1+2>) (constant variable-FORMAT | |
622 | expressions): | |
623 | * bad.def (FFEBAD_FORMAT_VARIABLE): New diagnostic. | |
624 | * std.c (ffestd_R1001rtexpr_): New function. | |
625 | (ffestd_R1001dump_, ffestd_R1001dump_1005_1_, | |
626 | ffestd_R1001dump_1005_2_, ffestd_R1001dump_1005_3_, | |
627 | ffestd_R1001dump_1005_4_, ffestd_R1001dump_1005_5_, | |
628 | ffestd_R1001dump_1010_2_, ffestd_R1001dump_1010_3_, | |
629 | ffestd_R1001dump_1010_4_, ffestd_R1001dump_1010_5_): | |
630 | Use new function instead of ffestd_R1001error_. | |
631 | ||
632 | * stb.c (ffestb_R10014_, ffestb_R10016_, ffestb_R10018_, | |
633 | ffestb_R100110_): Restructure `for' loop for style. | |
634 | ||
44d2eabc JL |
635 | Fix 970626-2.f by not doing most back-end processing |
636 | when current_function_decl is an ERROR_MARK, and by | |
637 | making that the case when its type would be an ERROR_MARK: | |
638 | * com.c (ffecom_start_progunit_, finish_function, | |
639 | lang_printable_name, start_function, | |
640 | ffecom_finish_symbol_transform_): Test for ERROR_MARK. | |
641 | * std.c (ffestd_stmt_pass_): Don't do any downstream | |
642 | processing if ERROR_MARK. | |
643 | ||
644 | * Make-lang.in (f77.install-common): Don't install, and | |
645 | don't uninstall existing, Info files if f/g77.info | |
646 | doesn't exit. (This is a somewhat modified version | |
647 | of an egcs patch on 1998-01-07 12:05:51 by Bruno Haible | |
648 | <bruno@linuix.mathematik.uni-karlsruhe.de>.) | |
649 | ||
99ce4a11 CB |
650 | Fri Jan 9 19:09:07 1998 Craig Burley <burley@gnu.org> |
651 | ||
44d2eabc JL |
652 | Fix -fpedantic combined with `F()' invocation, |
653 | also -fugly-comma combined with `IARGC()' invocation: | |
654 | * bad.def (FFEBAD_NULL_ARGUMENT_W): New diagnostic. | |
655 | * expr.c (ffeexpr_finished_): Don't reject null expressions | |
656 | in the argument-expression context -- let outer context | |
657 | handle that. | |
658 | (ffeexpr_token_arguments_): Warn about null expressions | |
659 | here if -fpedantic (as appropriate). | |
660 | Obey -fugly-comma for only external-procedure invocations. | |
99ce4a11 CB |
661 | * intrin.c (ffeintrin_check_): No longer ignore explicit |
662 | omitted trailing args. | |
663 | ||
6d433196 CB |
664 | Tue Dec 23 14:58:04 1997 Craig Burley <burley@gnu.org> |
665 | ||
44d2eabc JL |
666 | * intrin.c (ffeintrin_fulfill_generic): Don't generate |
667 | FFEBAD_INTRINSIC_TYPE for CHARACTER*(*) intrinsic. | |
668 | ||
669 | * com.c (ffecom_gfrt_basictype): | |
670 | (ffecom_gfrt_kindtype): | |
671 | (ffecom_make_gfrt_): | |
672 | (FFECOM_rttypeVOIDSTAR_): New return type `void *', for | |
673 | the SIGNAL intrinsic. | |
674 | * com-rt.def (FFECOM_rttypeSIGNAL): Now returns `void *'. | |
675 | * intdoc.c: Replace `p' kind specifier with `7'. | |
676 | * intrin.c (ffeintrin_check_, ffeintrin_init_0): Replace | |
677 | `p' kind specifier with `7'. | |
678 | * intrin.def (FFEINTRIN_impLOC, FFEINTRIN_impSIGNAL_func, | |
679 | FFEINTRIN_impSIGNAL_subr): Replace `p' specifier with `7'. | |
680 | Also, SIGNAL now returns a `void *' status, not `int'. | |
681 | ||
86fc7a6c CB |
682 | Improve run-time diagnostic for "PRINT '(I1', 42": |
683 | * com.c (ffecom_char_args_x_): Renamed from ffecom_char_args_, | |
684 | which is now a macro (to avoid lots of changes to other code) | |
685 | with new arg, ffecom_char_args_with_null_ being another new | |
686 | macro to call same function with different value for new arg. | |
687 | This function now appends a null byte to opCONTER expression | |
688 | if the new arg is TRUE. | |
689 | (ffecom_arg_ptr_to_expr): Support NULL length pointer. | |
690 | * ste.c (ffeste_io_cilist_): | |
691 | (ffeste_io_icilist_): Pass NULL length ptr for | |
692 | FORMAT expression, so null byte gets appended where | |
693 | feasible. | |
694 | * target.c (ffetarget_character1): | |
695 | (ffetarget_concatenate_character1): | |
696 | (ffetarget_substr_character1): | |
697 | (ffetarget_convert_character1_character1): | |
698 | (ffetarget_convert_character1_hollerith): | |
699 | (ffetarget_convert_character1_integer4): | |
700 | (ffetarget_convert_character1_logical4): | |
701 | (ffetarget_convert_character1_typeless): | |
702 | (ffetarget_hollerith): Append extra phantom null byte as | |
703 | part of FFETARGET-NULL-BYTE kludge. | |
704 | ||
44d2eabc JL |
705 | * intrin.def (FFEINTRIN_impCPU_TIME): Point to |
706 | FFECOM_gfrtSECOND as primary run-time routine. | |
6d433196 CB |
707 | |
708 | Mon Dec 22 12:41:07 1997 Craig Burley <burley@gnu.org> | |
709 | ||
710 | * intrin.c (ffeintrin_init_0): Remove duplicate | |
711 | check for `!'. | |
712 | ||
713 | Sun Dec 14 02:49:58 1997 Craig Burley <burley@gnu.org> | |
714 | ||
715 | * intrin.c (ffeintrin_init_0): Fix up indentation a bit. | |
716 | Fix bug that prevented checking of arguments other | |
717 | than the first. | |
718 | ||
719 | * intdoc.c: Fix up indentation a bit. | |
720 | ||
44d2eabc JL |
721 | Tue Dec 9 16:20:57 1997 Richard Henderson <rth@cygnus.com> |
722 | ||
723 | * com.c (ffecom_type_vardesc_): Vardesc.dims is a `ftnlen*'. | |
724 | ||
6d433196 CB |
725 | Mon Dec 1 19:12:36 1997 Craig Burley <burley@gnu.org> |
726 | ||
727 | * intrin.c (ffeintrin_check_): Fix up indentation a bit more. | |
728 | ||
e2fa159e JL |
729 | Mon Dec 1 16:21:08 1997 Craig Burley <burley@gnu.org> |
730 | ||
731 | * com.c (ffecom_arglist_expr_): Crash if non-supplied | |
732 | optional arg isn't passed as an address. | |
733 | Pass null pointer explicitly, instead of via ffecom routine. | |
734 | If incoming argstring is NULL, substitute pointer to "0". | |
735 | Recognize '0' as ending the usual arg stuff, just like '\0'. | |
736 | ||
6d433196 CB |
737 | Sun Nov 30 22:22:22 1997 Craig Burley <burley@gnu.org> |
738 | ||
739 | * intdoc.c: Minor fix-ups. | |
740 | ||
741 | * intrin.c (ffeintrin_check_): Fix up indentation a bit. | |
742 | ||
44d2eabc JL |
743 | * intrin.def: Fix up spacing a bit. |
744 | ||
e2fa159e JL |
745 | 1997-11-17 Dave Love <d.love@dl.ac.uk> |
746 | ||
747 | * com.c (ffecom_arglist_expr_): Pass null pointers for optional | |
748 | args which aren't supplied. | |
6d433196 | 749 | |
44d2eabc JL |
750 | Sun Nov 16 21:45:43 1997 H.J. Lu (hjl@gnu.ai.mit.edu) |
751 | ||
752 | * Make-lang.in (f77.install-info): Depend on f77.info. | |
753 | ||
754 | 1997-11-06 Dave Love <d.love@dl.ac.uk> | |
755 | ||
756 | * intrin.def: Allow non-integer args for INT2 and INT8 (per | |
757 | documentation). | |
758 | ||
759 | Tue Oct 28 02:21:25 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
760 | ||
761 | * lang-options.h: Add -fgnu-intrinsics-* and | |
762 | -fbadu77-intrinsics-* options. | |
763 | ||
56a0044b JL |
764 | Sun Oct 26 02:36:21 1997 Craig Burley <burley@gnu.ai.mit.edu> |
765 | ||
766 | * com.c (lang_print_error_function): Fix to more | |
767 | reliably notice when the diagnosed region changes. | |
768 | ||
769 | Sat Oct 25 23:43:36 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
770 | ||
771 | Fix 950327-0.f: | |
772 | * sta.c, sta.h (ffesta_outpooldisp): New function. | |
773 | * std.c (ffestd_stmt_pass_): Don't kill NULL pool. | |
774 | (ffestd_R842): If pool already preserved, save NULL | |
775 | for pool, because it should be killed only once. | |
776 | ||
777 | * malloc.c [MALLOC_DEBUG]: Put initializer for `name' | |
778 | component in braces, to avoid compiler warning. | |
779 | ||
a2977d2d CB |
780 | Fri Oct 10 13:00:48 1997 Craig Burley <burley@gnu.ai.mit.edu> |
781 | ||
782 | * ste.c (ffeste_begin_iterdo_): Fix loop setup so iteration | |
783 | variable is modified only after the #iterations is calculated; | |
784 | otherwise if the iteration variable is aliased to any of the | |
785 | operands in the start, end, or increment expressions, the | |
786 | wrong #iterations might be calculated. | |
787 | ||
788 | * com.c (ffecom_save_tree): Fix indentation. | |
789 | ||
44d2eabc JL |
790 | 1997-10-05 Dave Love <d.love@dl.ac.uk> |
791 | ||
792 | * intrin.def: Make SECOND_subr's arg generic real for people | |
793 | porting from Cray and making everything double precision. | |
794 | ||
82d109f2 JL |
795 | Mon Sep 29 16:18:21 1997 Craig Burley <burley@gnu.ai.mit.edu> |
796 | ||
797 | * stu.c (ffestu_list_exec_transition_, | |
798 | ffestu_dummies_transition_): Specify `bool' type for | |
799 | `in_progress' variables. | |
800 | ||
801 | * com.h (assemble_string): Declare this routine (instead | |
802 | of #include'ing "output.h" from gcc) to eliminate warnings | |
803 | from lex.c. | |
804 | ||
805 | Fri Sep 19 01:12:27 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
806 | ||
807 | * expr.c (ffeexpr_reduced_eqop2_): | |
808 | (ffeexpr_reduced_relop2_): Minor fixes to diagnostic code. | |
809 | ||
810 | * fini.c (main): Change return type to `int'. | |
811 | ||
812 | Wed Sep 17 10:47:08 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
813 | ||
814 | * com-rt.def (FFECOM_gfrtDSIGN, FFECOM_gfrtISIGN, | |
815 | FFECOM_gfrtSIGN): Add second argument. | |
816 | ||
817 | * expr.c (ffeexpr_cb_comma_c_): Trivial fixes. | |
818 | ||
34b8e428 JL |
819 | Tue Sep 9 01:59:35 1997 Craig Burley <burley@gnu.ai.mit.edu> |
820 | ||
821 | * Version 0.5.21 released. | |
822 | ||
823 | Tue Sep 9 00:31:01 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
824 | ||
825 | * intdoc.c (dumpem): Put appropriate commentary in | |
826 | output file, so readers know it isn't source. | |
827 | ||
828 | Wed Aug 27 08:08:25 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
829 | ||
830 | * proj.h: Always #include "config.j" first, to pick up | |
831 | gcc's configuration. | |
832 | * com.c: Change bcopy() and bzero() calls to memcpy() | |
833 | and memset() calls, to make more of g77 ANSI C. | |
834 | ||
835 | 1997-08-26 Dave Love <d.love@dl.ac.uk> | |
836 | ||
837 | * Make-lang.in ($(srcdir)/f/runtime/configure, | |
838 | $(srcdir)/f/runtime/libU77/configure): Fix for when srcdir isn't | |
839 | relative. | |
840 | ||
795232f7 JL |
841 | Tue Aug 26 05:59:21 1997 Craig Burley <burley@gnu.ai.mit.edu> |
842 | ||
843 | * ansify.c (main): Make sure readers of stdout know | |
844 | it's derived from stdin; omit comment text; get source | |
845 | line numbers in future stderr output to be correct. | |
846 | ||
847 | Tue Aug 26 01:36:01 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
848 | ||
849 | Fix 970825-0.f: | |
850 | * stb.c (ffestb_R5284_): Allow OPEN_PAREN after closing | |
851 | SLASH as well as NAME. | |
852 | ||
853 | Mon Aug 25 23:48:17 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
854 | ||
855 | Changes to allow g77 docs to be built entirely from scratch | |
856 | using any ANSI C compiler, not requiring GNU C: | |
857 | * Make-lang.in ($(srcdir)/f/intdoc.texi): "Pipe" new | |
858 | location of intrinsic documentation data base, f/intdoc.in, | |
859 | through new `ansify' program to append `\n\' to quoted | |
860 | newlines, into f/intdoc.h0. Do appropriate cleanups. Explain. | |
861 | (f77.mostlyclean): Add f/ansify and f/intdoc.h0 to cleanups. | |
862 | * f/ansify.c: New program. | |
863 | * f/intdoc.c: Fix so it conforms to ANSI C. | |
864 | #include f/intdoc.h0 instead of f/intdoc.h. | |
865 | Avoid some warnings. | |
866 | * f/intdoc.h, f/intdoc.in: Rename the former to the latter; no | |
867 | changes made to the content in this patch! | |
868 | * f/intrin.h (ffeintrinFamily): Fix to conform to ANSI C. | |
869 | ||
870 | Sun Aug 24 06:52:48 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
871 | ||
872 | Fix up g77 compiler data base for libf2c routines: | |
873 | * com-rt.def (FFECOM_gfrtSIGNAL): Change return type to | |
874 | FTNINT to match actual code. | |
875 | ||
876 | * com.c (ffecomRttype_): Replace FFECOM_rttypeINT_ with | |
877 | FFECOM_rttypeFTNINT_. | |
878 | Add and fix up comments. | |
879 | (ffecom_make_gfrt_, ffecom_gfrt_basictype, | |
880 | ffecom_gfrt_kindtype): Replace FFECOM_rttypeINT_ with | |
881 | FFECOM_rttypeFTNINT_; add FFECOM_rttypeDOUBLEREAL_. | |
882 | ||
883 | Wed Aug 20 17:18:40 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
884 | ||
885 | * global.c (ffeglobal_ref_progunit_): It's okay to have | |
886 | a different CHARACTER*n length for a reference if the | |
887 | existing length is for another reference, not a definition. | |
888 | ||
889 | Mon Aug 18 14:27:18 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
890 | ||
891 | Fix 970814-0.f: | |
892 | * global.c (ffeglobal_new_progunit_): Distinguish | |
893 | between previously defined, versus inferred, filewide | |
894 | when it comes to diagnostics. | |
895 | ||
896 | Fix 970816-1.f: | |
897 | * global.c (ffeglobal_ref_progunit_): Change BDATA into EXT | |
898 | right at the beginning, so EXTERNAL FOO followed later | |
899 | by SUBROUTINE FOO is not diagnosed. | |
900 | ||
901 | Fix 970813-0.f: | |
902 | * com-rt.def (FFECOM_gfrtALARM): Returns `integer', not | |
903 | `void'. | |
904 | ||
905 | Sun Aug 17 03:32:44 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
906 | ||
907 | Fix up problems when virtual memory exhausted: | |
908 | * malloc.c (malloc_new_): Use gcc's xmalloc(), so we | |
909 | print a nicer message when malloc returns no memory. | |
910 | (malloc_resize_): Ditto for xrealloc(). | |
911 | ||
912 | * Make-lang.in, Makefile.in: Comment out lines containing | |
913 | just formfeeds. | |
914 | ||
915 | Sat Aug 16 19:41:33 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
916 | ||
917 | * com.c (ffecom_make_gfrt_): For rttypeREAL_F2C_, return | |
918 | double_type_node; for rttypeREAL_GNU_, return | |
919 | _real_type_node. | |
920 | ||
921 | 1997-08-13 Dave Love <d.love@dl.ac.uk> | |
922 | ||
923 | * config-lang.in (diff_excludes): Add some hints about known | |
924 | problematic platforms. | |
925 | ||
926 | 1997-08-13 Dave Love <d.love@dl.ac.uk> | |
927 | ||
928 | * intdoc.h: Document `alarm'. | |
929 | ||
5ff904cd JL |
930 | Mon Aug 11 21:19:22 1997 Craig Burley <burley@gnu.ai.mit.edu> |
931 | ||
932 | * Make-lang.in ($(RUNTIMESTAGESTUFF)): Add | |
933 | f/runtime/stamp-lib. | |
934 | ||
935 | Mon Aug 11 01:52:03 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
936 | ||
937 | * com.c (ffecom_build_complex_constant_): Go with the | |
938 | new build_complex() approach used in gcc-2.8. | |
939 | ||
940 | * com.c (ffecom_sym_transform_): Don't set | |
941 | DECL_IN_SYSTEM_HEADER for a tree node that isn't | |
942 | a VAR_DECL, which happens when var is in common! | |
943 | ||
944 | * com.c (ffecom_expr_intrinsic_) (case FFEINTRIN_impALARM): | |
945 | No need to test codegen_imp -- there's only one valid here. | |
946 | ||
947 | * intrin.def (FFEINTRIN_impALARM): Specify `Status' argument | |
948 | as write-only. | |
949 | ||
950 | Fri Aug 8 05:40:23 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
951 | ||
952 | Substantial changes to accommodate distinctions among | |
953 | run-time routines that support intrinsics, and between | |
954 | routines that compute and return the same type vs. those | |
955 | that compute one type and return another (or `void'): | |
956 | * com-rt.def: Specify new return type REAL_F2C_ instead | |
957 | of many DOUBLE_, COMPLEX_F2C_ instead of COMPLEX_, and | |
958 | so on. | |
959 | Clear up the *BES* routines "once and for all". | |
960 | * com.c: New return types. | |
961 | (ffecom_convert_narrow_, ffecom_convert_widen_): | |
962 | New functions that are "safe" variants of convert(), | |
963 | to catch errors that ffecom_expr_intrinsic_() now | |
964 | no longer catches. | |
965 | (ffecom_arglist_expr_): Ensure arguments are not | |
966 | converted to narrower types. | |
967 | (ffecom_call_): Ensure return value is not converted | |
968 | to a wider type. | |
969 | (ffecom_char_args_): Use new ffeintrin_gfrt_direct() | |
970 | routine. | |
971 | (ffecom_expr_intrinsic_): Simplify how run-time | |
972 | routine is selected (via `gfrt' only now; lose the | |
973 | redundant `ix' variable). | |
974 | Eliminate the `library' label; any code that doesn't | |
975 | return directly just `break's out now with `gfrt' | |
976 | set appropriately. | |
977 | Set `gfrt' to default choice initially, either a | |
978 | fast direct form or, if not available, a slower | |
979 | indirect-callable form. | |
980 | (ffecom_make_gfrt_): No longer need to do special | |
981 | check for complex; it's built into the new return-type | |
982 | regime. | |
983 | (ffecom_ptr_to_expr): Use new ffeintrin_gfrt_indirect() | |
984 | routine. | |
985 | * intrin.c, intrin.h: `gfrt' field replaced with three fields, | |
986 | so it is easier to provide faster direct-callable and | |
987 | GNU-convention indirect-callable routines in the future. | |
988 | DEFIMP macro adjusted accordingly, along with all its uses. | |
989 | (ffeintrin_gfrt_direct): New function. | |
990 | (ffeintrin_gfrt_indirect): Ditto. | |
991 | (ffeintrin_is_actualarg): If `-fno-f2c' is in effect, | |
992 | require a GNU-callable version of intrinsic instead of | |
993 | an f2c-callable version, so indirect calling is still checked. | |
994 | * intrin.def: Replace one GFRT field with the three new fields, | |
995 | as appropriate for each DEFIMP intrinsic. | |
996 | ||
997 | * com.c (ffecom_stabilize_aggregate_, | |
998 | ffecom_convert_to_complex_): Make these `static'. | |
999 | ||
1000 | Thu Aug 7 11:24:34 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1001 | ||
1002 | Provide means for front end to determine actual | |
1003 | "standard" return type for an intrinsic if it is | |
1004 | passed as an actual argument: | |
1005 | * com.h, com.c (ffecom_gfrt_basictype, | |
1006 | ffecom_gfrt_kindtype): New functions. | |
1007 | (ffecom_gfrt_kind_type_): Replaced with new function. | |
1008 | All callers updated. | |
1009 | (ffecom_make_gfrt_): No longer need do anything | |
1010 | with kind type. | |
1011 | ||
1012 | * intrin.c (ffeintrin_basictype, ffeintrin_kindtype): | |
1013 | Now returns correct type info for specific intrinsic | |
1014 | (based on type of run-time-library implementation). | |
1015 | ||
1016 | Wed Aug 6 23:08:46 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1017 | ||
1018 | * global.c (ffeglobal_ref_progunit_): Don't reset | |
1019 | number of arguments just due to new type info, | |
1020 | so useful warnings can be issued. | |
1021 | ||
1022 | 1997-08-06 Dave Love <d.love@dl.ac.uk> | |
1023 | ||
1024 | * intrin.def: Fix IDATE_vxt argument order. | |
1025 | * intdoc.h: Likewise. | |
1026 | ||
1027 | Thu Jul 31 22:22:03 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1028 | ||
1029 | * global.c (ffeglobal_proc_ref_arg): If REF/DESCR | |
1030 | disagreement, DESCR is CHARACTER, and types disagree, | |
1031 | pretend the argsummary agrees so the message ends up | |
1032 | being about type disagreement. | |
1033 | (ffeglobal_proc_def_arg): Ditto. | |
1034 | ||
1035 | * expr.c (ffeexpr_token_first_rhs_3_): Set info for LABTOK | |
1036 | to NONE of everything, to avoid misdiagnosing filewide | |
1037 | usage of alternate returns. | |
1038 | ||
1039 | Sun Jul 20 23:07:47 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1040 | ||
1041 | * com.c (ffecom_sym_transform_): If type gets set | |
1042 | to error_mark_node, just return that for transformed symbol. | |
1043 | (ffecom_member_phase2_): If type gets set to error_mark_node, | |
1044 | just return. | |
1045 | (ffecom_check_size_overflow_): Add `dummy' argument to | |
1046 | flag that type is for a dummy, update all callers. | |
1047 | ||
1048 | Sun Jul 13 17:40:53 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1049 | ||
1050 | Fix 970712-1.f: | |
1051 | * where.c (ffewhere_set_from_track): If start point | |
1052 | is too large, just use initial start point. 0.6 should | |
1053 | fix all this properly. | |
1054 | ||
1055 | Fix 970712-2.f: | |
1056 | * com.c (ffecom_sym_transform_): Preserve error_mark_node for type. | |
1057 | (ffecom_type_localvar_): Ditto. | |
1058 | (ffecom_sym_transform_): If type is error_mark_node, | |
1059 | don't error-check decl size, because back end responds by | |
1060 | setting that to an integer 0 instead of error_mark_node. | |
1061 | (ffecom_transform_common_): Same as earlier fix to _transform_ | |
1062 | in that size is checked by dividing BITS_PER_UNIT instead of | |
1063 | multiplying. | |
1064 | (ffecom_transform_equiv_): Ditto. | |
1065 | ||
1066 | Fix 970712-3.f: | |
1067 | * stb.c (ffestb_R10014_): Fix flaky fall-through in error | |
1068 | test for FFELEX_typeCONCAT by just replicating the code, | |
1069 | and do FFELEX_typeCOLONCOLON while at it. | |
1070 | ||
1071 | 1997-07-07 Dave Love <d.love@dl.ac.uk> | |
1072 | ||
1073 | * intdoc.h: Add various missing pieces; correct GMTIME, LTIME | |
1074 | result ordering. | |
1075 | ||
1076 | * intrin.def, com-rt.def: Add alarm. | |
1077 | ||
1078 | * com.c (ffecom_expr_intrinsic_): Add case for alarm. | |
1079 | ||
1080 | Thu Jun 26 04:19:40 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1081 | ||
1082 | Fix 970302-3.f: | |
1083 | * com.c (ffecom_sym_transform_): For sanity-check compare | |
1084 | of gbe size of local variable to g77 expectation, | |
1085 | use varasm.c/assemble_variable technique of dividing | |
1086 | BITS_PER_UNIT out of gbe info instead of multiplying | |
1087 | g77 info up, to avoid crash when size in bytes is very | |
1088 | large, and overflows an `int' or similar when multiplied. | |
1089 | ||
1090 | Fix 970626-2.f: | |
1091 | * com.c (ffecom_finish_symbol_transform_): Don't bother | |
1092 | transforming a dummy argument, to avoid a crash. | |
1093 | * ste.c (ffeste_R1227): Don't return a value if the | |
1094 | result decl, or its type, is error_mark_node. | |
1095 | ||
1096 | Fix 970626-4.f: | |
1097 | * lex.c (ffelex_splice_tokens): `-fdollar-ok' is | |
1098 | irrelevant to whether a DOLLAR token should be made | |
1099 | from an initial character of `$'. | |
1100 | ||
1101 | Fix 970626-6.f: | |
1102 | * stb.c (ffestb_do3_): DO iteration variable is an | |
1103 | lhs, not rhs, expression. | |
1104 | ||
1105 | Fix 970626-7.f and 970626-8.f: | |
1106 | * expr.c (ffeexpr_cb_comma_i_1_): Set IMPDO expression | |
1107 | to have clean info, because undefined rank, for example, | |
1108 | caused crash on mangled source on UltraSPARC but not | |
1109 | on Alpha for a series of weird reasons. | |
1110 | (ffeexpr_cb_close_paren_): If not CLOSE_PAREN, push | |
1111 | opANY expression onto stack instead of attempting | |
1112 | to mimic what program might have wanted. | |
1113 | (ffeexpr_cb_close_paren_): Don't wrap opPAREN around | |
1114 | opIMPDO, just warn that it's gratuitous. | |
1115 | * bad.def (FFEBAD_IMPDO_PAREN): New warning. | |
1116 | ||
1117 | Fix 970626-9.f: | |
1118 | * expr.c (ffeexpr_declare_parenthesized_): Must shut down | |
1119 | parsing in kindANY case, otherwise the parsing engine might | |
1120 | decide there's an ambiguity. | |
1121 | (ffeexpr_token_name_rhs_): Eliminate parentypeSUBROUTINE_ | |
1122 | case, so we crash right away if it comes through. | |
1123 | * st.c, st.h, sta.c, sta.h (ffest_shutdown, ffesta_shutdown): | |
1124 | New functions. | |
1125 | ||
1126 | Tue Jun 24 19:47:29 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1127 | ||
1128 | * com.c (ffecom_check_size_overflow_): New function | |
1129 | catches some cases of the size of a type getting | |
1130 | too large. varasm.c must catch the rest. | |
1131 | (ffecom_sym_transform_): Use new function. | |
1132 | (ffecom_type_localvar_): Ditto. | |
1133 | ||
1134 | Mon Jun 23 01:09:28 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1135 | ||
1136 | * global.c (ffeglobal_proc_def_arg): Fix comparison | |
1137 | of argno to #args. | |
1138 | (ffeglobal_proc_ref_arg): Ditto. | |
1139 | ||
1140 | * lang-options.h, top.c: Rename `-fdebug' to `-fxyzzy', | |
1141 | since it's an unsupported internals option and some | |
1142 | poor user might guess that it does something. | |
1143 | ||
1144 | * bad.def: Make a warning for each filewide diagnostic. | |
1145 | Put all filewides together. | |
1146 | * com.c (ffecom_sym_transform_): Don't substitute | |
1147 | known global tree for global entities when `-fno-globals'. | |
1148 | * global.c (ffeglobal_new_progunit_): Don't produce | |
1149 | fatal diagnostics about globals when `-fno-globals'. | |
1150 | Instead, produce equivalent warning when `-Wglobals'. | |
1151 | (ffeglobal_proc_ref_arg): Ditto. | |
1152 | (ffeglobal_proc_ref_nargs): Ditto. | |
1153 | (ffeglobal_ref_progunit_): Ditto. | |
1154 | * lang-options.h, top.c, top.h: New `-fno-globals' option. | |
1155 | ||
1156 | Sat Jun 21 12:32:54 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1157 | ||
1158 | * expr.c (ffeexpr_fulfill_call_): Set array variable | |
1159 | to avoid warning about uninitialized variable. | |
1160 | ||
1161 | * Make-lang.in: Get rid of any setting of HOST_* macros, | |
1162 | since these will break gcc's build! | |
1163 | * makefile: New file to make building derived files | |
1164 | easier. | |
1165 | ||
1166 | Thu Jun 19 18:19:28 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1167 | ||
1168 | * g77.c (main): Install Emilio Lopes' patch to support | |
1169 | Ratfor, and to fix the printing of the version string | |
1170 | to go to stderr, not stdout. | |
1171 | * lang-specs.h: Install Emilio Lopes' patch to support | |
1172 | Ratfor, and patch the result to support picking up | |
1173 | `*f771' from the `specs' file. | |
1174 | ||
1175 | Thu Jun 12 14:36:25 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1176 | ||
1177 | * storag.c (ffestorag_update_init, ffestorag_update_save): | |
1178 | Also update parent, in case equivalence processing | |
1179 | has already eliminated pointers to it via the | |
1180 | local equivalence info. | |
1181 | ||
1182 | Tue Jun 10 14:08:26 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1183 | ||
1184 | * intdoc.c: Add cross-reference to end of description | |
1185 | of any generic intrinsic pointing to other intrinsics | |
1186 | with the same name. | |
1187 | ||
1188 | Warn about explicit type declaration for intrinsic | |
1189 | that disagrees with invocation: | |
1190 | * expr.c (ffeexpr_paren_rhs_let_): Preserve type info | |
1191 | for intrinsic functions. | |
1192 | (ffeexpr_token_funsubstr_): Ditto. | |
1193 | * intrin.c (ffeintrin_fulfill_generic): Warn if type | |
1194 | info of fulfilled intrinsic invocation disagrees with | |
1195 | explicit type info given symbol. | |
1196 | (ffeintrin_fulfill_specific): Ditto. | |
1197 | * stc.c (ffestc_R1208_item): Preserve type info | |
1198 | for intrinsics. | |
1199 | (ffestc_R501_item): Ditto. | |
1200 | ||
1201 | Mon Jun 9 17:45:44 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1202 | ||
1203 | * com.c (ffecom_expr_intrinsic_): Fix several of the | |
1204 | libU77/libF77-unix handlers to properly convert their | |
1205 | arguments. | |
1206 | ||
1207 | * com-rt.def (FFECOM_gfrtFSTAT): Append missing "i" to | |
1208 | arg string. | |
1209 | ||
1210 | Fri Jun 6 14:37:30 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1211 | ||
1212 | * com.c (ffecom_expr_intrinsic_): Have a case statement | |
1213 | for every intrinsic implementation, so missing ones | |
1214 | are caught via gcc warnings. | |
1215 | Don't call ffeintrin_codegen_imp anymore. | |
1216 | * intrin.c (ffeintrin_fulfill_generic): Remove cg_imp | |
1217 | stuff from here. | |
1218 | (ffeintrin_codegen_imp): Delete this function. | |
1219 | * intrin.def, intrin.h: Remove DEFIMQ stuff from here | |
1220 | as well. | |
1221 | ||
1222 | Thu Jun 5 13:03:07 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1223 | ||
1224 | * top.c (ffe_decode_option): New -fbadu77-intrinsics-* | |
1225 | options. | |
1226 | * top.h: Ditto. | |
1227 | * intrin.h: New BADU77 family. | |
1228 | * intrin.c (ffeintrin_state_family): Ditto. | |
1229 | ||
1230 | Implement new scheme to track intrinsic names vs. forms: | |
1231 | * intrin.c (ffeintrin_fulfill_generic), | |
1232 | (ffeintrin_fulfill_specific), (ffeintrin_is_intrinsic), | |
1233 | intrin.def: The documented name is now either in the | |
1234 | generic info or, if no generic, in the specific info. | |
1235 | For a generic, the specific info contains merely the | |
1236 | distinguishing form (usually "function" or "subroutine"), | |
1237 | used for diagnostics about ambiguous references and | |
1238 | in the documentation. | |
1239 | ||
1240 | * intrin.def: Clean up formatting of DEFNAME block. | |
1241 | Convert many libU77 intrinsics into generics that | |
1242 | support both subroutine and function forms. | |
1243 | Put the function forms of side-effect routines into | |
1244 | the new BADU77 family. | |
1245 | Make MCLOCK and TIME return INTEGER*4 again, and add | |
1246 | INTEGER*8 equivalents called MCLOCK8 and TIME8. | |
1247 | Fix up more status return values to be written and | |
1248 | insist on them being I1 as well. | |
1249 | * com.c (ffecom_expr_intrinsic_): Lots of changes to | |
1250 | support new libU77 intrinsic interfaces. | |
1251 | ||
1252 | Mon Jun 2 00:37:53 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1253 | ||
1254 | * com.c (ffecom_init_0): Pointer type is now INTEGER(KIND=7), | |
1255 | not INTEGER(KIND=0), since we want to reserve KIND=0 for | |
1256 | future use. | |
1257 | ||
1258 | Thu May 29 14:30:33 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1259 | ||
1260 | Fix bugs preventing CTIME(I*4) from working correctly: | |
1261 | * com.c (ffecom_char_args_): For FUNCREF case, process | |
1262 | args to intrinsic just as they would be in | |
1263 | ffecom_expr_intrinsic_. | |
1264 | * com-rt.def (FFECOM_gfrtCTIME, FFECOM_gfrtTTYNAM): Fix | |
1265 | argument decls to specify `&'. | |
1266 | ||
1267 | Wed May 28 22:19:49 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1268 | ||
1269 | Fix gratuitous warnings exposed by dophot aka 970528-1: | |
1270 | * global.c (ffeglobal_proc_def_arg, ffeglobal_proc_ref_arg): | |
1271 | Support distinct function/subroutine arguments instead of | |
1272 | just procedures. | |
1273 | * global.h: Ditto. | |
1274 | * expr.c (ffeexpr_fulfill_call_): A SYMTER with kindNONE | |
1275 | also is a procedure (either function or subroutine). | |
1276 | ||
1277 | Mon May 26 20:25:31 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1278 | ||
1279 | * bad.def: Have several lexer diagnostics refer to | |
1280 | documentation for people who need more info on what Fortran | |
1281 | source code is supposed to look like. | |
1282 | ||
1283 | * expr.c (ffeexpr_reduced_bool1_), bad.def: New diagnostics | |
1284 | specific to .NOT. now mention only one operand instead | |
1285 | of two. | |
1286 | ||
1287 | * g77.c: Recognize -fsyntax-only, similar to -c etc. | |
1288 | (lookup_option): Fix bug that prevented non-`--' options | |
1289 | from being recognized. | |
1290 | ||
1291 | Sun May 25 04:29:04 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1292 | ||
1293 | * intrin.def (FFEINTRIN_impCTIME): Accept `I*' expression | |
1294 | for STime instead of requiring `I2'. | |
1295 | ||
1296 | Tue May 20 16:14:40 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1297 | ||
1298 | * symbol.c (ffesymbol_reference): All references to | |
1299 | standard intrinsics are considered explicit, so as | |
1300 | to avoid generating basically useless warnings. | |
1301 | * intrin.c, intrin.h (ffeintrin_is_standard): Returns TRUE | |
1302 | if intrinsic is standard. | |
1303 | ||
1304 | Sun May 18 21:14:59 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1305 | ||
1306 | * com-rt.def: Changed all external names of the | |
1307 | form `"\([a-z0-9]*\)_' to `"G77_\1_0"' so as to | |
1308 | allow any name valid as an intrinsic to be used | |
1309 | as such and as a user-defined external procedure | |
1310 | name or common block as well. | |
1311 | ||
1312 | Thu May 8 13:07:10 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1313 | ||
1314 | * expr.c (ffeexpr_cb_end_notloc_): For %VAL, %REF, and | |
1315 | %DESCR, copy arg info into new node. | |
1316 | ||
1317 | Mon May 5 14:42:17 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1318 | ||
1319 | From Uwe F. Mayer <mayer@math.Vanderbilt.Edu>: | |
1320 | * Make-lang.in (g77-cross): Fix typo in g77.c path. | |
1321 | ||
1322 | From Brian McIlwrath <bkm@star.rl.ac.uk>: | |
1323 | * lang-specs.h: Have g77 pick up options from a section | |
1324 | labeled `*f771' of the `specs' file. | |
1325 | ||
1326 | Sat May 3 02:46:08 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1327 | ||
1328 | * intrin.def (FFEINTRIN_defSIGNAL): Add optional `Status' | |
1329 | argument that com.c already expects (per Dave Love). | |
1330 | ||
1331 | More changes to support better tracking of (filewide) | |
1332 | globals, in particular, the arguments to procedures: | |
1333 | * bad.def (FFEBAD_FILEWIDE_NARGS, FFEBAD_FILEWIDE_NARGS_W, | |
1334 | FFEBAD_FILEWIDE_ARG, FFEBAD_FILEWIDE_ARG_W): New diagnostics. | |
1335 | * expr.c (ffebad_fulfill_call_): Provide info on each | |
1336 | argument to ffeglobal. | |
1337 | * global.c, global.h (ffeglobal_proc_def_arg, | |
1338 | ffeglobal_proc_def_nargs, ffeglobal_proc_ref_arg, | |
1339 | ffeglobal_proc_ref_args): New functions. | |
1340 | (ffeglobalArgSummary, ffeglobalArgInfo_): New types. | |
1341 | ||
1342 | Tue Apr 29 18:35:41 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1343 | ||
1344 | More changes to support better tracking of (filewide) | |
1345 | globals: | |
1346 | * expr.c (ffeexpr_fulfill_call_): New function. | |
1347 | (ffeexpr_token_name_lhs_): Call after building procedure | |
1348 | reference expression. Also leave info field for ANY-ized | |
1349 | expression alone. | |
1350 | (ffeexpr_token_arguments_): Ditto. | |
1351 | ||
1352 | Mon Apr 28 20:04:18 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1353 | ||
1354 | Changes to support better tracking of (filewide) | |
1355 | globals, mainly to avoid crashes due to inlining: | |
1356 | * bad.def: Go back to quoting intrinsic names, | |
1357 | (FFEBAD_FILEWIDE_DISAGREEMENT, FFEBAD_FILEWIDE_TIFF, | |
1358 | FFEBAD_FILEWIDE_TYPE_MISMATCH): New diagnostics. | |
1359 | (FFEBAD_INTRINSIC_EXPIMP, FFEBAD_INTRINSIC_GLOBAL): Reword | |
1360 | for clarity. | |
1361 | * com.c (ffecom_do_entry_, ffecom_start_progunit_, | |
1362 | ffecom_sym_transform_): Accommodate new FFEGLOBAL_typeEXT | |
1363 | possibility. | |
1364 | * expr.c (ffeexpr_sym_lhs_call_, ffeexpr_sym_lhs_extfunc_, | |
1365 | ffeexpr_sym_rhs_actualarg_, ffeexpr_declare_parenthesized_, | |
1366 | ffeexpr_paren_rhs_let_, ffeexpr_token_funsubstr_): | |
1367 | Fill in real kind info instead of leaving NONE where | |
1368 | appropriate. | |
1369 | Register references to intrinsics and globals with ffesymbol | |
1370 | using new ffesymbol_reference function instead of | |
1371 | ffesymbol_globalize. | |
1372 | * global.c (ffeglobal_type_string_): New array for | |
1373 | new diagnostics. | |
1374 | * global.h, global.c: | |
1375 | Replace ->init mechanism with ->tick mechanism. | |
1376 | Move other common-related members into a substructure of | |
1377 | a union, so the proc substructure can be introduced | |
1378 | to include members related to externals other than commons. | |
1379 | Don't complain about ANY-ized globals; ANY-ize globals | |
1380 | once they're complained about, in any case where code | |
1381 | generation could become a problem. | |
1382 | Handle global entries that have NONE type (seen as | |
1383 | intrinsics), EXT type (seen as EXTERNAL), and so on. | |
1384 | Keep track of kind and type of externals, both via | |
1385 | definition and via reference. | |
1386 | Diagnose disagreements about kind or type of externals | |
1387 | (such as functions). | |
1388 | (ffeglobal_ref_intrinsic, ffeglobal_ref_progunit_): New | |
1389 | functions. | |
1390 | * stc.c (ffestc_R1207_item, ffestc_R1208_item, | |
1391 | ffestc_R1219, ffestc_R1226): | |
1392 | Call ffesymbol_reference, not ffesymbol_globalize. | |
1393 | * stu.c (ffestu_sym_end_transition, | |
1394 | ffestu_sym_exec_transition): | |
1395 | Call ffesymbol_reference, not ffesymbol_globalize. | |
1396 | * symbol.c (ffesymbol_globalize): Removed... | |
1397 | (ffesymbol_reference): ...to this new function, | |
1398 | which more generally registers references to symbols, | |
1399 | globalizes globals, and calls on the ffeglobal module | |
1400 | to check globals filewide. | |
1401 | ||
1402 | * global.h, global.c: Rename some macros and functions | |
1403 | to more clearly distinguish common from other globals. | |
1404 | All callers changed. | |
1405 | ||
1406 | * com.c (ffecom_sym_transform_): Trees describing | |
1407 | filewide globals must be allocated on permanent obstack. | |
1408 | ||
1409 | * expr.c (ffeexpr_token_name_lhs_): Don't generate | |
1410 | gratuitous diagnostics for FFEINFO_whereANY case. | |
1411 | ||
1412 | Thu Apr 17 03:27:18 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1413 | ||
1414 | * global.c: Add support for flagging intrinsic/global | |
1415 | confusion via warnings. | |
1416 | * bad.def (FFEBAD_INTRINSIC_EXPIMP, | |
1417 | FFEBAD_INTRINSIC_GLOBAL): New diagnostics. | |
1418 | * expr.c (ffeexpr_token_funsubstr_): Ditto. | |
1419 | (ffeexpr_sym_lhs_call_): Ditto. | |
1420 | (ffeexpr_paren_rhs_let_): Ditto. | |
1421 | * stc.c (ffestc_R1208_item): Ditto. | |
1422 | ||
1423 | Wed Apr 16 22:40:56 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1424 | ||
1425 | * expr.c (ffeexpr_declare_parenthesized_): INCLUDE | |
1426 | context can't be an intrinsic invocation either. | |
1427 | ||
1428 | Fri Mar 28 10:43:28 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1429 | ||
1430 | * expr.c (ffeexpr_token_arguments_): Make sure top of | |
1431 | exprstack is operand before dereferencing operand field. | |
1432 | ||
1433 | * lex.c (ffelex_prepare_eos_): Fill up truncated | |
1434 | hollerith token, so crash on null ->text field doesn't | |
1435 | happen later. | |
1436 | ||
1437 | * stb.c (ffestb_R10014_): If NAMES isn't recognized (or | |
1438 | the recognized part is followed in the token by a | |
1439 | non-digit), don't try and collect digits, as there | |
1440 | might be more than FFEWHERE_indexMAX letters to skip | |
1441 | past to do so -- and the code is diagnosed anyway. | |
1442 | ||
1443 | Thu Mar 27 00:02:48 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1444 | ||
1445 | * com.c (ffecom_sym_transform_): Force local | |
1446 | adjustable array onto stack. | |
1447 | ||
1448 | * stc.c (ffestc_R547_item_object): Don't actually put | |
1449 | the symbol in COMMON if the symbol has already been | |
1450 | EQUIVALENCE'd to a different COMMON area. | |
1451 | ||
1452 | * equiv.c (ffeequiv_add): Don't actually do anything | |
1453 | if there's a disagreement over which COMMON area is | |
1454 | involved. | |
1455 | ||
1456 | Tue Mar 25 03:35:19 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1457 | ||
1458 | * com.c (ffecom_transform_common_): If no explicit init | |
1459 | of COMMON area, don't actually init it even though | |
1460 | storage area suggests it. | |
1461 | ||
1462 | Mon Mar 24 12:10:08 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1463 | ||
1464 | * lex.c (ffelex_image_char_): Avoid overflowing the | |
1465 | column counter itself, as well as the card image. | |
1466 | ||
1467 | * where.c (ffewhere_line_new): Cast ffelex_line_length() | |
1468 | to (size_t) so 255 doesn't overflow to 0! | |
1469 | ||
1470 | * stc.c (ffestc_labeldef_notloop_begin_): Don't gratuitously | |
1471 | terminate loop before processing statement, so block | |
1472 | doesn't disappear out from under EXIT/CYCLE processing. | |
1473 | (ffestc_labeldef_notloop_): Has old code from above | |
1474 | function, instead of just calling it. | |
1475 | ||
1476 | * expr.c (ffeexpr_cb_comma_i_4_): Don't skip over | |
1477 | arbitrary token (such as EOS). | |
1478 | ||
1479 | * com.c (ffecom_init_zero_): Handle RECORD_TYPE and | |
1480 | UNION_TYPE so -fno-zeros works with -femulated-complex. | |
1481 | ||
1482 | 1997-03-12 Dave Love <d.love@dl.ac.uk> | |
1483 | ||
1484 | * intrin.def: New intrinsics INT2, INT8, CPU_TIME. Fix AND, OR, | |
1485 | XOR. [Integrated by burley, AND/OR/XOR already fixed, INT8 | |
1486 | implementation changed/fixed.] | |
1487 | ||
1488 | Wed Mar 12 10:40:08 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1489 | ||
1490 | * Make-lang.in ($(srcdir)/f/intdoc.texi): Simplify rules | |
1491 | so building f/intdoc is not always necessary; remove | |
1492 | f/intdoc after running it if it is built. | |
1493 | ||
1494 | Tue Mar 11 23:42:00 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1495 | ||
1496 | * intrin.def (FFEINTRIN_impAND, FFEINTRIN_impOR, | |
1497 | FFEINTRIN_impXOR): Use the IAND, IOR, and IEOR implementations | |
1498 | of these, instead of crashing in ffecom_expr_intrinsic_ | |
1499 | or adding case labels there. | |
1500 | ||
1501 | Mon Mar 10 22:51:23 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1502 | ||
1503 | * intdoc.c: Fix so any C compiler can compile this. | |
1504 | ||
1505 | Fri Feb 28 13:16:50 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1506 | ||
1507 | * Version 0.5.20 released. | |
1508 | ||
1509 | Fri Feb 28 01:45:25 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1510 | ||
1511 | * Make-lang.in (RUNTIMESTAGESTUFF, LIBU77STAGESTUFF): | |
1512 | Move some files incorrectly in the former to the latter, | |
1513 | and add another file or two to the latter. | |
1514 | ||
1515 | New meanings for (KIND=n), and new denotations in the | |
1516 | little language describing intrinsics: | |
1517 | * com.c (ffecom_init_0): Assign new meanings. | |
1518 | * intdoc.c: Document new meanings. | |
1519 | Support the new denotations. | |
1520 | * intrin.c: Employ new meanings, mapping them to internal | |
1521 | values (which are the same as they ever were for now). | |
1522 | Support the new denotations. | |
1523 | * intrin.def: Switch DEFIMP table to the new denotations. | |
1524 | ||
1525 | * intrin.c (ffeintrin_check_): Fix bug that was leaving | |
1526 | LOC() and %LOC() returning INTEGER*4 on systems where | |
1527 | it should return INTEGER*8. | |
1528 | ||
1529 | * type.c: Canonicalize function definitions, for etags | |
1530 | and such. | |
1531 | ||
1532 | Wed Feb 26 20:43:03 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1533 | ||
1534 | * com.c (ffecom_init_0): Choose INTEGER(KIND=n) types, | |
1535 | where n is 2, 3, and 4, according to the new docs | |
1536 | instead of according to the old C correspondences | |
1537 | (which seem less useful at this point). | |
1538 | ||
1539 | * equiv.c (ffeequiv_destroy_): New function. | |
1540 | (ffeequiv_layout_local_): Use this new function | |
1541 | whenever the laying out of a local equivalence chain | |
1542 | is aborted for any reason. | |
1543 | Otherwise ensure that symbols no longer reference | |
1544 | the stale ffeequiv entries that result when they | |
1545 | are killed off in this procedure. | |
1546 | Also, the rooted symbol is one that has storage, | |
1547 | it really is irrelevant whether it has an equiv entry | |
1548 | at this point (though the code to remove the equiv | |
1549 | entry was put in at the end, just in case). | |
1550 | (ffeequiv_kill): When doing internal checks, make | |
1551 | sure the victim isn't named by any symbols it points | |
1552 | to. Not as complete a check as looking through the | |
1553 | entire symbol table (which does matter, since some | |
1554 | code in equiv.c used to remove symbols from the lists | |
1555 | for an ffeequiv victim but not remove that victim as the | |
1556 | symbol's equiv info), but this check did find some | |
1557 | real bugs in the code (that were fixed). | |
1558 | ||
1559 | Mon Feb 24 16:42:13 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1560 | ||
1561 | * com.c (ffecom_expr_intrinsic_): Fix a couple of | |
1562 | warnings about uninitialized variables. | |
1563 | * intrin.c (ffeintrin_check_): Ditto, but there were | |
1564 | a couple of _real_ uninitialized-variable _bugs_ here! | |
1565 | (ffeintrin_fulfill_specific): Ditto, no real bug here. | |
1566 | ||
1567 | Sun Feb 23 15:01:20 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1568 | ||
1569 | Clean up diagnostics (especially about intrinsics): | |
1570 | * bad.def (FFEBAD_UNIMPL_STMT): Remove. | |
1571 | (FFEBAD_INTRINSIC_*, FFEBAD_NEED_INTRINSIC): Clean these | |
1572 | up so they're friendlier. | |
1573 | (FFEBAD_INTRINSIC_CMPAMBIG): New. | |
1574 | * intrin.c (ffeintrin_fulfill_generic, | |
1575 | ffeintrin_fulfill_specific, ffeintrin_is_intrinsic): | |
1576 | Always choose | |
1577 | generic or specific name text (which is for doc purposes | |
1578 | anyway) over implementation name text (which is for | |
1579 | internal use). | |
1580 | * intrin.def: Use more descriptive name texts for generics | |
1581 | and specifics in cases where the names themselves are not | |
1582 | enough (e.g. IDATE, which has two forms). | |
1583 | ||
1584 | Fix some intrinsic mappings: | |
1585 | * intrin.def (FFEINTRIN_specIDINT, FFEINTRIN_specAND, | |
1586 | FFEINTRIN_specDFLOAT, FFEINTRIN_specDREAL, FFEINTRIN_specOR, | |
1587 | FFEINTRIN_specXOR): Now have their own implementations, | |
1588 | instead of borrowing from others. | |
1589 | (FFEINTRIN_specAJMAX0, FFEINTRIN_specAJMIN0, FFEINTRIN_specBJTEST, | |
1590 | FFEINTRIN_specDFLOTJ, FFEINTRIN_specFLOATJ, FFEINTRIN_specJIABS, | |
1591 | FFEINTRIN_specJIAND, FFEINTRIN_specJIBCLR, FFEINTRIN_specJIBITS, | |
1592 | FFEINTRIN_specJIBSET, FFEINTRIN_specJIDIM, FFEINTRIN_specJIDINT, | |
1593 | FFEINTRIN_specJIDNNT, FFEINTRIN_specJIEOR, FFEINTRIN_specJIFIX, | |
1594 | FFEINTRIN_specJINT, FFEINTRIN_specJIOR, FFEINTRIN_specJISHFT, | |
1595 | FFEINTRIN_specJISHFTC, FFEINTRIN_specJISIN, FFEINTRIN_specJMAX0, | |
1596 | FFEINTRIN_specJMAX1, FFEINTRIN_specJMIN0, FFEINTRIN_specJMIN1, | |
1597 | FFEINTRIN_specJMOD, FFEINTRIN_specJNINT, FFEINTRIN_specJNOT,): | |
1598 | Turn these implementations off, since it's not clear | |
1599 | just what types they expect in the context of portable Fortran. | |
1600 | (DFLOAT): Now in FVZ family, since f2c supports them | |
1601 | ||
1602 | Support intrinsic inquiry functions (BIT_SIZE, LEN): | |
1603 | * intrin.c: Allow `i' in <arg_extra>. | |
1604 | * intrin.def (FFEINTRIN_impBIT_SIZE, FFEINTRIN_impLEN): | |
1605 | Mark args with `i'. | |
1606 | ||
1607 | Sat Feb 22 13:34:09 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1608 | ||
1609 | Only warn, don't error, for reference to unimplemented | |
1610 | intrinsic: | |
1611 | * bad.def (FFEBAD_INTRINSIC_UNIMPLW): Warning version | |
1612 | of _UNIMPL. | |
1613 | * intrin.c (ffeintrin_is_intrinsic): Use new warning | |
1614 | version of _UNIMPL (FFEBAD_INTRINSIC_UNIMPLW). | |
1615 | ||
1616 | Complain about REAL(Z) and AIMAG(Z) (Z is DOUBLE COMPLEX): | |
1617 | * bad.def (FFEBAD_INTRINSIC_CMPAMBIG): New diagnostic. | |
1618 | * expr.c: Needed #include "intrin.h" anyway. | |
1619 | (ffeexpr_token_intrincheck_): New function handles delayed | |
1620 | diagnostic for "REAL(REAL(expr)" if next token isn't ")". | |
1621 | (ffeexpr_token_arguments_): Do most of the actual checking here. | |
1622 | * intrin.h, intrin.c (ffeintrin_fulfill_specific): New | |
1623 | argument, check_intrin, to tell caller that intrin is REAL(Z) | |
1624 | or AIMAG(Z). All callers updated, mostly to pass NULL in | |
1625 | for this. | |
1626 | (ffeintrin_check_): Also has new arg check_intrin for same | |
1627 | purpose. All callers updated the same way. | |
1628 | * intrin.def (FFEINTRIN_impAIMAG): Change return type | |
1629 | from "R0" to "RC", to accommodate f2c (and perhaps other | |
1630 | non-F90 F77 compilers). | |
1631 | * top.h, top.c: New option -fugly-complex. | |
1632 | ||
1633 | New GNU intrinsics REALPART, IMAGPART, and COMPLEX: | |
1634 | * com.c (ffecom_expr_intrinsic_): Implement impCOMPLEX | |
1635 | and impREALPART here. (specIMAGPART => specAIMAG.) | |
1636 | * intrin.def: Add the intrinsics here. | |
1637 | ||
1638 | Rename implementations of VXTIDATE and VXTTIME to IDATEVXT | |
1639 | and TIMEVXT, so they sort more consistently: | |
1640 | * com.c (ffecom_expr_intrinsic_): | |
1641 | * intrin.def: | |
1642 | ||
1643 | Delete intrinsic group `dcp', add `gnu', etc.: | |
1644 | * intrin.c (ffeintrin_state_family): FFEINTRIN_familyGNU | |
1645 | replaces FFEINTRIN_familyDCP, and gets state from `gnu' | |
1646 | group. | |
1647 | Get rid of FFEINTRIN_familyF2Z, nobody needs it. | |
1648 | Move FFEINTRIN_specDCMPLX from DCP family to FVZ family, | |
1649 | as f2c has it. | |
1650 | Move FFEINTRIN_specDFLOAT from F2C family to FVZ family. | |
1651 | (FFEINTRIN_specZABS, FFEINTRIN_specZCOS, FFEINTRIN_specZEXP, | |
1652 | FFEINTRIN_specZLOG, FFEINTRIN_specZSIN, FFEINTRIN_specZSQRT): | |
1653 | Move these from F2Z family to F2C family. | |
1654 | * intrin.h (FFEINTRIN_familyF2Z, FFEINTRIN_familyDCP): Remove. | |
1655 | (FFEINTRIN_familyGNU): Add. | |
1656 | * top.h, top.c: Replace `dcp' with `gnu'. | |
1657 | ||
1658 | * com.c (ffecom_expr_intrinsic_): Clean up by collecting | |
1659 | simple conversions into one nice, conceptual place. | |
1660 | Fix up some intrinsic subroutines (MVBITS, KILL, UMASK) to | |
1661 | properly push and pop call temps, to avoid wasting temp | |
1662 | registers. | |
1663 | ||
1664 | * g77.c (doit): Toon says variables should be defined | |
1665 | before being referenced. Spoilsport. | |
1666 | ||
1667 | * intrin.c (ffeintrin_check_): Now Dave's worried about | |
1668 | warnings about uninitialized variables. Okay, so for | |
1669 | basic return values 'g' and 's', they _were_ | |
1670 | uninitialized -- is determinism really _that_ useful? | |
1671 | ||
1672 | * intrin.def (FFEINTRIN_impFGETC): Fix STATUS argument | |
1673 | so that it is INTENT(OUT) instead of INTENT(IN). | |
1674 | ||
1675 | 1997-02-21 Dave Love <d.love@dl.ac.uk> | |
1676 | ||
1677 | * intrin.def, com.c: Support Sun-type `short' and `long' | |
1678 | intrinsics. Perhaps should also do Microcruft-style `int2'. | |
1679 | ||
1680 | Thu Feb 20 15:16:53 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1681 | ||
1682 | * com.c (ffecom_expr_intrinsic_): Clean up indentation. | |
1683 | Support SECONDSUBR intrinsic implementation. | |
1684 | Rename SECOND to SECONDFUNC for direct support via library. | |
1685 | ||
1686 | * g77.c: Fix to return proper status value to shell, | |
1687 | by obtaining it from processes it spawns. | |
1688 | ||
1689 | * intdoc.c: Fix minor typo. | |
1690 | ||
1691 | * intrin.def: Turn SECOND into generic that maps into | |
1692 | function and subroutine forms. | |
1693 | ||
1694 | * intrin.def: Make FLOAT and SNGL into specific intrinsics. | |
1695 | ||
1696 | * intrin.def, intrin.h: Change the way DEFGEN and DEFSPEC | |
1697 | macros work, to save on verbage. | |
1698 | ||
1699 | Mon Feb 17 02:08:04 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1700 | ||
1701 | New subsystem to automatically generate documentation | |
1702 | on intrinsics: | |
1703 | * Make-lang.in ($(srcdir)/f/g77.info, | |
1704 | $(srcdir)/f/g77.dvi): Move g77 doc rules around. | |
1705 | Add to g77 doc rules the new subsystem. | |
1706 | (f77.mostlyclean, f77.maintainer-clean): Also clean up | |
1707 | after new doc subsystem. | |
1708 | * intdoc.c, intdoc.h: New doc subsystem code. | |
1709 | * intrin.h [FFEINTRIN_DOC]: When 1, don't pull in | |
1710 | stuff not needed by doc subsystem. | |
1711 | ||
1712 | Improve on intrinsics mechanism to both be more | |
1713 | self-documenting and to catch more user errors: | |
1714 | * intrin.c (ffeintrin_check_): Recognize new arg-len | |
1715 | and arg-rank information, and check it. | |
1716 | Move goto and signal indicators to the basic type. | |
1717 | Permit reference to arbitrary argument number, not | |
1718 | just first argument (for BESJN and BESYN). | |
1719 | (ffeintrin_init_0): Check and accept new notations. | |
1720 | * intrin.c, intrin.def: Value in COL now identifies | |
1721 | arguments starting with number 0 being the first. | |
1722 | ||
1723 | Some minor intrinsics cleanups (resulting from doc work): | |
1724 | * com.c (ffecom_expr_intrinsic_): Implement FLUSH | |
1725 | directly once again, handle its optional argument, | |
1726 | so it need not be a generic (awkward to handle in docs). | |
1727 | * intrin.def (BESJ0, BESJ1, BESJN, BESY0, BESY1, BESYN, | |
1728 | CHDIR, CHMOD, CTIME, DBESJ0, DBESJ1, DBESJN, DBESY0, | |
1729 | DBESY1, DBESYN, DDIM, ETIME, FGETC, FNUM, FPUTC, FSTAT, | |
1730 | GERROR, GETCWD, GETGID, GETLOG, GETPID, GETUID, GMTIME, | |
1731 | HOSTNM, IDATE, IERRNO, IIDINT, IRAND, ISATTY, ITIME, JIDINT, | |
1732 | LNBLNK, LSTAT, LTIME, MCLOCK, PERROR, SRAND, SYMLNK, TTYNAM, | |
1733 | UMASK): Change capitalization of initcaps (official) name | |
1734 | to be consistent with Burley's somewhat arbitrary rules. | |
1735 | (BESJN, BESYN): These have return arguments of same type | |
1736 | as their _second_ argument. | |
1737 | (FLUSH): Now a specific, not generic, intrinsic, with one | |
1738 | optional argument. | |
1739 | (FLUSH1): Eliminated. | |
1740 | Add arg-len and arg-rank info to several intrinsics. | |
1741 | (ITIME): Change argument type from REAL to INTEGER. | |
1742 | ||
1743 | Tue Feb 11 14:04:42 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1744 | ||
1745 | * Make-lang.in (f771): Invocation of Makefile now done | |
1746 | with $(srcdir)=gcc to go along with $(VPATH)=gcc. | |
1747 | ($(srcdir)/f/runtime/configure, | |
1748 | $(srcdir)/f/runtime/libU77/configure): Break these out | |
1749 | so spurious triggers of this rule don't happen (as when | |
1750 | configure.in is more recent than libU77/configure). | |
1751 | (f77.rebuilt): Distinguish source versus build files, | |
1752 | so this target can be invoked from build directory and | |
1753 | still work. | |
1754 | * Makefile.in: This now expects $(srcdir) to be the gcc | |
1755 | source directory, not gcc/f, to agree with $(VPATH). | |
1756 | Accordingly, $(INCLUDES) has been fixed, various cruft | |
1757 | removed, the removal of f771 has been fixed to remove | |
1758 | the _real_ f771 (not the one in gcc's parent directory), | |
1759 | and so on. | |
1760 | ||
1761 | * lex.c: Part of ffelex_finish_statement_() now done | |
1762 | by new function ffelex_prepare_eos_(), so that, in one | |
1763 | popular case, the EOS can be prepared while the pointer | |
1764 | is at the end of the non-continued line instead of the | |
1765 | end of the line that marks no continuation. This improves | |
1766 | the appearance of diagnostics substantially. | |
1767 | ||
1768 | Mon Feb 10 12:44:06 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1769 | ||
1770 | * Make-lang.in: runtime Makefile's, and include/f2c.h, | |
1771 | also depend on f/runtime/configure and f/runtime/libU77/configure. | |
1772 | ||
1773 | Fix various libU77 routines: | |
1774 | * com-rt.def (FFECOM_gfrtCTIME, FFECOM_gfrtMCLOCK, | |
1775 | FFECOM_gfrtTIME): These now use INTEGER*8 for time values, | |
1776 | for compatibility with systems like Alpha. | |
1777 | (FFECOM_gfrtSYSTEM_CLOCK, FFECOM_gfrtTTYNAM): Delete incorrect | |
1778 | trailing underscore in routine names. | |
1779 | * intrin.c, intrin.def: Support INTEGER*8 return values and | |
1780 | arguments ('4'). Change FFEINTRIN_impCTIME, FFEINTRIN_impMCLOCK, | |
1781 | and FFEINTRIN_impTIME accordingly. | |
1782 | (ffeintrin_is_intrinsic): Don't give caller a clue about | |
1783 | form of intrinsic -- shouldn't be needed at this point. | |
1784 | ||
1785 | Cope with generic intrinsics that are subroutines and functions: | |
1786 | * com.c (ffecom_finish_symbol_transform_, ffecom_expr_transform_): | |
1787 | Don't transform an intrinsic that is not known to be a subroutine | |
1788 | or a function. (Maybe someday have to avoid transforming | |
1789 | any intrinsic with an undecided or unknown implementation.) | |
1790 | * expr.c (ffeexpr_declare_unadorned_, | |
1791 | ffeexpr_declare_parenthesized_): Ok to invoke generic | |
1792 | intrinsic that has at least one subroutine form as a | |
1793 | subroutine. | |
1794 | Ok to pass intrinsic as actual arg if it has a known specific | |
1795 | intrinsic form that is valid as actual arg. | |
1796 | (ffeexpr_declare_parenthesized_): An unknown kind of | |
1797 | intrinsic has a paren_type chosen based on context. | |
1798 | (ffeexpr_token_arguments_): Build funcref/subrref based | |
1799 | on context, not on kind of procedure being called. | |
1800 | * intrin.h, intrin.c (ffeintrin_is_intrinsic): Undo changes of | |
1801 | Tue Feb 4 23:12:04 1997 by me, change all callers to leave | |
1802 | intrinsics as FFEINFO_kindNONE at this point. (Some callers | |
1803 | also had unused variables deleted as a result.) | |
1804 | ||
1805 | Enable all intrinsic groups (especially f90 and vxt): | |
1806 | * target.h (FFETARGET_defaultSTATE_DCP, FFETARGET_defaultSTATE_F2C, | |
1807 | FFETARGET_defaultSTATE_F90, FFETARGET_defaultSTATE_MIL, | |
1808 | FFETARGET_defaultSTATE_UNIX, FFETARGET_defaultSTATE_VXT): | |
1809 | Delete these macros, let top.c set them directly. | |
1810 | * top.c (ffeintrinsic_state_dcp_, ffe_intrinsic_state_f2c_, | |
1811 | ffe_intrinsic_state_f90_, ffe_intrinsic_state_mil_, | |
1812 | ffe_intrinsic_state_unix_, ffe_intrinsic_state_vxt_): | |
1813 | Enable all these directly. | |
1814 | ||
1815 | Sat Feb 8 03:21:50 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1816 | ||
1817 | * g77.c: Incorporate recent changes to ../gcc.c. | |
1818 | For version magic (e.g. `g77 -v'), instead of compiling | |
1819 | /dev/null, write, compile, run, and then delete a small | |
1820 | program that prints the version numbers of the three | |
1821 | components of libf2c (libF77, libI77, and libU77), | |
1822 | so we get this info with bug reports. | |
1823 | Also, this change reduces the chances of accidentally | |
1824 | linking to an old (complex-alias-problem) libf2c. | |
1825 | Fix `-L' so the argument is expected in `-Larg'. | |
1826 | ||
1827 | * com.h (FFECOM_f2cLONGINT): For INTEGER*8 support in f2c.h, | |
1828 | dynamically determine proper type here, instead of | |
1829 | assuming `long long int' is correct. | |
1830 | ||
1831 | Tue Feb 4 23:12:04 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1832 | ||
1833 | Add libU77 library from Dave Love <d.love@dl.ac.uk>: | |
1834 | * Make-lang.in (f77-runtime): Depend on new Makefile. | |
1835 | (f/runtime/libU77/Makefile): New rule. | |
1836 | Also configure libU77. | |
1837 | ($(srcdir)/f/runtime/configure: Use Makefile.in, | |
1838 | so configuration doesn't have to have happened. | |
1839 | (f77.mostlyclean, f77.clean, f77.distclean, | |
1840 | f77.maintainer-clean): Some fixups here, but more work | |
1841 | needed. | |
1842 | (RUNTIMESTAGESTUFF): Add libU77's config.status. | |
1843 | (LIBU77STAGESTUFF, f77.stage1, f77.stage2, f77.stage3, | |
1844 | f77.stage4): New macro, appropriate uses added. | |
1845 | * com-rt.def: Add libU77 procedures. | |
1846 | * com.c (ffecom_f2c_ptr_to_integer_type_node, | |
1847 | ffecom_f2c_ptr_to_real_type_node): New type nodes. | |
1848 | (FFECOM_rttypeCHARACTER_): New type of run-time function. | |
1849 | (ffecom_char_args_): Handle CHARACTER*n intrinsics | |
1850 | where n != 1 here, instead of in ffecom_expr_intrinsic_. | |
1851 | (ffecom_expr_intrinsic_): New code to handle new | |
1852 | intrinsics. | |
1853 | In particular, change how FFEINTRIN_impFLUSH is handled. | |
1854 | (ffecom_make_gfrt_): Handle new type of run-time function. | |
1855 | (ffecom_init_0): Initialize new type nodes. | |
1856 | * config-lang.in: New libU77 directory. | |
1857 | * intrin.h, intrin.c (ffeintrin_is_intrinsic): Handle | |
1858 | potential generic for subroutine _and_ function | |
1859 | specifics via two new arguments. All callers changed. | |
1860 | Properly ignore deleted/disabled intrinsics in resolving | |
1861 | generics. | |
1862 | (ffeintrin_check_, ffeintrin_init_0): Handle CHARACTER intrinsics of (*) | |
1863 | length. | |
1864 | * intrin.def: Permission granted by FSF to place this in | |
1865 | public domain, which will allow it to serve as source | |
1866 | for both g77 program and its documentation. | |
1867 | Add libU77 intrinsics. | |
1868 | (FLUSH): Now a generic, not specific, intrinsic. | |
1869 | (DEFIMP): Now support return modifier for CHARACTER intrinsics. | |
1870 | ||
1871 | * com-rt.def (FFECOM_gfrtDIM, FFECOM_gfrtERF, | |
1872 | FFECOM_gfrtERFC, FFECOM_gfrtEXP, FFECOM_gfrtSIGN, | |
1873 | FFECOM_gfrtSIN, FFECOM_gfrtSINH, FFECOM_gfrtTAN, | |
1874 | FFECOM_gfrtTANH, FFECOM_gfrtPOW_RI): Change "&r" to "&f". | |
1875 | ||
1876 | Sat Feb 1 12:15:09 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1877 | ||
1878 | * Version 0.5.19.1 released. | |
1879 | ||
1880 | * com.c (ffecom_expr_, ffecom_expr_intrinsic_, | |
1881 | ffecom_tree_divide_): FFECOM_gfrtPOW_ZI, | |
1882 | FFECOM_gfrtCONJG, FFECOM_gfrtDCONJG, | |
1883 | FFECOM_gfrtCCOS, FFECOM_gfrtCDCOS, | |
1884 | FFECOM_gfrtCLOG, FFECOM_gfrtCDLOG, | |
1885 | FFECOM_gfrtCSIN, FFECOM_gfrtCDSIN, | |
1886 | FFECOM_gfrtCSQRT, FFECOM_gfrtCDSQRT, | |
1887 | FFECOM_gfrtDIV_CC, FFECOM_gfrtDIV_ZZ: These all require | |
1888 | result to _not_ overlap one or more inputs. | |
1889 | ||
1890 | Sat Feb 1 00:25:55 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1891 | ||
1892 | * com.c (ffecom_init_0): Do internal checks only if | |
1893 | -fset-g77-defaults not specified. | |
1894 | ||
1895 | Fix %LOC(), LOC() to return sufficiently wide type: | |
1896 | * com.h, com.c (ffecom_pointer_kind_, ffecom_label_kind_, | |
1897 | ffecom_pointer_kind(), ffecom_label_kind()): New globals | |
1898 | and accessor macros hold kind for integer pointers on target | |
1899 | machine. | |
1900 | (ffecom_init_0): Determine narrowest INTEGER type that | |
1901 | can hold a pointer (usually INTEGER*4 or INTEGER*8), | |
1902 | store it in ffecom_pointer_kind_, etc. | |
1903 | * expr.c (ffeexpr_cb_end_loc_): Use right type for %LOC(). | |
1904 | * intrin.c (ffeintrin_check_, ffeintrin_init_0): Support | |
1905 | new 'p' kind for type of intrinsic. | |
1906 | * intrin.def (FFEINTRIN_impLOC): Returns "Ip" instead of "I1", | |
1907 | so LOC() type is correct for target machine. | |
1908 | ||
1909 | Support -fugly-assign: | |
1910 | * lang-options.h, top.h, top.c (ffe_decode_option): | |
1911 | Accept -fugly-assign and -fno-ugly-assign. | |
1912 | * com.c (ffecom_expr_): Handle -fugly-assign. | |
1913 | * expr.c (ffeexpr_finished_): Check right type for ASSIGN | |
1914 | contexts. | |
1915 | ||
1916 | Fri Jan 31 14:30:00 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1917 | ||
1918 | Remove last vestiges of -fvxt-not-f90: | |
1919 | * stb.c (ffestb_R10012_, ffestb_R10014_, ffestb_V0201_): | |
1920 | top.c, top.h: | |
1921 | ||
1922 | Fri Jan 31 02:13:54 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1923 | ||
1924 | * top.c (ffe_decode_option): Warn if -fugly is specified, | |
1925 | it'll go away soon. | |
1926 | ||
1927 | * symbol.h: No need to #include "bad.h". | |
1928 | ||
1929 | Reorganize features from -fvxt-not-f90 to -fvxt: | |
1930 | * lang-options.h, top.h, top.c: | |
1931 | Accept -fvxt and -fno-vxt, but not -fvxt-not-f90 or -ff90-not-vxt. | |
1932 | Warn if the latter two are used. | |
1933 | * expr.c (ffeexpr_nil_rhs_): Double-quote means octal constant. | |
1934 | (ffeexpr_token_rhs_): Double-quote means octal constant. | |
1935 | * target.h (FFETARGET_defaultIS_VXT_NOT_90): Delete macro | |
1936 | definition, no longer needed. | |
1937 | ||
1938 | Make some -ff90 features the default: | |
1939 | * data.c (ffedata_value): DATA implies SAVE. | |
1940 | * src.h (ffesrc_is_name_noninit): Underscores always okay. | |
1941 | ||
1942 | Fix up some more #error directives by quoting their text: | |
1943 | * bld.c (ffebld_constant_is_zero): | |
1944 | * target.h: | |
1945 | ||
1946 | Sat Jan 18 18:22:09 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1947 | ||
1948 | * g77.c (lookup_option, main): Recognize `-Xlinker', | |
1949 | `-Wl,', `-l', `-L', `--library-directory', `-o', | |
1950 | `--output'. | |
1951 | (lookup_option): Don't depend on SWITCH_TAKES_ARG | |
1952 | being correct, it might or might not have `-x' in | |
1953 | it depending on host. | |
1954 | Return NULL argument if it would be an empty string. | |
1955 | (main): If no input files (by gcc.c's definition) | |
1956 | but `-o' or `--output' specified, produce diagnostic | |
1957 | to avoid overwriting output via gcc. | |
1958 | Recognize C++ `+e' options. | |
1959 | Treat -L as another non-magical option (like -B). | |
1960 | Don't append_arg `-x' twice. | |
1961 | ||
1962 | Fri Jan 10 23:36:00 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1963 | ||
1964 | * top.c [BUILT_FOR_270] (ffe_decode_option): Make | |
1965 | -fargument-noalias-global the default. | |
1966 | ||
1967 | Fri Jan 10 07:42:27 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1968 | ||
1969 | Enable inlining of previously-compiled program units: | |
1970 | * com.c (ffecom_do_entry_, ffecom_start_progunit_): | |
1971 | Register new public function in ffeglobal database. | |
1972 | (ffecom_sym_transform_): Any GLOBAL or potentially GLOBAL | |
1973 | symbol should be looked up in ffeglobal database and | |
1974 | that tree node used, if found. That way, gcc knows | |
1975 | the references are to those earlier definitions, so it | |
1976 | can emit shorter branches/calls, inline, etc. | |
1977 | (ffecom_transform_common_): Minor change for clarity. | |
1978 | * expr.c (ffeexpr_sym-lhs_call_, ffeexpr_sym_lhs_extfunc_, | |
1979 | ffeexpr_sym_rhs_actualarg_, ffeexpr_paren_rhs_let_, | |
1980 | ffeexpr_token_funsubstr_): Globalize symbol as needed. | |
1981 | * global.c (ffeglobal_promoted): New function to look up | |
1982 | existing local symbol in ffeglobal database. | |
1983 | * global.h: Declare new function. | |
1984 | * name.h (ffename_token): New macro, plus alphabetize. | |
1985 | * stc.c (ffestc_R1207_item): Globalize EXTERNAL symbol. | |
1986 | * stu.c (ffestu_sym_end_transition, ffestu_sym_exec_transition): | |
1987 | Globalize symbol as needed. | |
1988 | * symbol.h, symbol.c (ffesymbol_globalize): New function. | |
1989 | ||
1990 | Thu Jan 9 14:20:00 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1991 | ||
1992 | * ste.c (ffeste_R809): Produce a diagnostic for SELECT CASE | |
1993 | on CHARACTER type, instead of crashing. | |
1994 | ||
1995 | Thu Jan 9 00:52:45 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
1996 | ||
1997 | * stc.c (ffestc_order_entry_, ffestc_order_format_, | |
1998 | ffestc_R1226): Allow ENTRY and FORMAT before IMPLICIT | |
1999 | NONE, by having them transition only to state 1 instead | |
2000 | of state 2 (which is disallowed by IMPLICIT NONE). | |
2001 | ||
2002 | Mon Jan 6 22:44:53 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
2003 | ||
2004 | Fix AXP bug found by Rick Niles (961201-1.f): | |
2005 | * com.c (ffecom_init_0): Undo my 1996-05-14 change, as | |
2006 | it is incorrect and prevented easily finding this bug. | |
2007 | * target.h [__alpha__] (ffetargetReal1, ffetargetReal2): | |
2008 | Use int instead of long. | |
2009 | (ffetarget_cvt_r1_to_rv_, ffetarget_cvt_rv_to_r1_, | |
2010 | ffetarget_cvt_r2_to_rv_, ffetarget_cvt_rv_to_r2_): | |
2011 | New functions that intercede for callers of | |
2012 | REAL_VALUE_(TO|UNTO)_TARGET_(SINGLE|DOUBLE). | |
2013 | All callers changed, and damaging casts to (long *) removed. | |
2014 | ||
2015 | Sun Jan 5 03:26:11 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
2016 | ||
2017 | * Make-lang.in (g77, g77-cross): Depend on both g77.c and | |
2018 | zzz.c, in $(srcdir)/f/. | |
2019 | ||
2020 | Better design for -fugly-assumed: | |
2021 | * stc.c (ffestc_R501_item, ffestc_R524_item, | |
2022 | ffestc_R547_item_object): Pass new is_ugly_assumed flag. | |
2023 | * stt.c, stt.h (ffestt_dimlist_as_expr, | |
2024 | ffestt_dimlist_type): New is_ugly_assumed flag now | |
2025 | controls whether "1" is treated as "*". | |
2026 | Don't treat "2-1" or other collapsed constants as "*". | |
2027 | ||
2028 | Sat Jan 4 15:26:22 1997 Craig Burley <burley@gnu.ai.mit.edu> | |
2029 | ||
2030 | * stb.c (ffestb_R10012_): Don't confirm on FORMAT(A,) | |
2031 | or even FORMAT(A,,B), as R1229 only warns about the | |
2032 | former currently, and this seems reasonable. | |
2033 | ||
2034 | Improvements to diagnostics: | |
2035 | * sta.c (ffesta_second_): Don't add any ffestb parsers | |
2036 | unless they're specifically called for. | |
2037 | Set up ffesta_tokens[0] before calling ffestc_exec_transition, | |
2038 | else stale info might get used. | |
2039 | (ffesta_save_): Do a better job picking which parser to run | |
2040 | after running all parsers with no confirmed possibles. | |
2041 | (FFESTA_maxPOSSIBLES_): Decrease from 100 now that so few | |
2042 | possibles are ever on the list at a given time. | |
2043 | (struct _ffesta_possible): Add named attribute. | |
2044 | (ffesta_add_possible_exec_, ffesta_add_possible_nonexec_): | |
2045 | Make these into macros that call a single function that now | |
2046 | sets the named attribute. | |
2047 | (ffesta_add_possible_unnamed_exec_, | |
2048 | ffeseta_add_possible_unnamed_nonexec_): New macros. | |
2049 | (ffesta_second_): Designate unnamed possibles as | |
2050 | appropriate. | |
2051 | * stb.c (ffestb_R1229, ffestb_R12291_): Use more general | |
2052 | diagnostic, so things like "POINTER (FOO, BAR)" are | |
2053 | diagnosed as unrecognized statements, not invalid statement | |
2054 | functions. | |
2055 | * stb.h, stb.c (ffestb_unimplemented): Remove function. | |
2056 | ||
2057 | 1996-12-30 Dave Love <d.love@dl.ac.uk> | |
2058 | ||
2059 | * com.c: #include libU77/config.h | |
2060 | (ffecom_f2c_ptr_to_integer_type_node, | |
2061 | ffecom_f2c_ptr_to_integer_type_node): New variables. | |
2062 | (ffecom_init_0): Use them. | |
2063 | (ffecom_expr_intrinsic_): Many news cases for libU77 intrinsics. | |
2064 | ||
2065 | * com-rt.def: New definitions for libU77. | |
2066 | * intrin.def: Likewise. Also correct ftell arg spec. | |
2067 | ||
2068 | * Makefile.in (f/runtime/libU77/config.h): New target for com.c | |
2069 | dependency. | |
2070 | * Make-lang.in (f771): Depend on f/runtime/Makefile for the above. | |
2071 | ||
2072 | Sat Dec 28 12:28:29 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2073 | ||
2074 | * stt.c (ffestt_dimlist_type): Treat ([...,]1) in dimlist | |
2075 | as ([...,]*) if -fugly-assumed, so assumed-size array | |
2076 | detected early enough. | |
2077 | ||
2078 | Thu Dec 19 14:01:57 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2079 | ||
2080 | * target.h (FFETARGET_REAL_VALUE_FROM_INT_): Conditionalize | |
2081 | definition on BUILT_FOR_280, not BUILT_WITH_280, since | |
2082 | the name of the macro was (properly) changed since 0.5.19. | |
2083 | ||
2084 | Fix warnings/errors resulting from ffetargetOffset becoming | |
2085 | `long long int' instead of `unsigned long' as of 0.5.19, | |
2086 | while ffebitCount remains `unsigned long': | |
2087 | * bld.c (ffebld_constantarray_dump): Avoid warnings by | |
2088 | using loop var of appropriate type, and using casts. | |
2089 | * com.c (ffecom_expr_): Use right type for loop var. | |
2090 | (ffecom_sym_transform_, ffecom_transform_equiv_): | |
2091 | Cast to right type in assertions. | |
2092 | * data.c (ffedata_gather_, ffedata_value_): Cast to right | |
2093 | type in assertions and comparisons. | |
2094 | ||
2095 | Wed Dec 18 12:07:11 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2096 | ||
2097 | Patch from Alexandre Oliva <oliva@dcc.unicamp.br>: | |
2098 | * Makefile.in (all.indirect): Don't pass -bbigtoc option | |
2099 | to GNU ld. | |
2100 | ||
2101 | Cope with new versions of gcc: | |
2102 | * com.h (BUILT_FOR_280): New macro. | |
2103 | * com.c (ffecom_ptr_to_expr): Conditionalize test of | |
2104 | OFFSET_REF. | |
2105 | (ffecom_build_complex_constant_): Conditionalize calling | |
2106 | sequence for build_complex. | |
2107 | ||
2108 | Sat Dec 7 07:15:17 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2109 | ||
2110 | * Version 0.5.19 released. | |
2111 | ||
2112 | Fri Dec 6 12:23:55 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2113 | ||
2114 | * g77.c: Default to assuming "f77" is in $LANGUAGES, since | |
2115 | the LANGUAGE_F77 macro isn't defined by anyone anymore (but | |
2116 | might as well leave the no-f77 code in just in case). | |
2117 | * Make-lang.in (g77, g77-cross): Don't define LANGUAGE_F77 | |
2118 | anymore. | |
2119 | ||
2120 | 1996-12-06 Dave Love <d.love@dl.ac.uk> | |
2121 | ||
2122 | * Make-lang.in (g77, g77-cross): Revert to building `g77' or not | |
2123 | conditional on `f77' in LANGUAGES. | |
2124 | ||
2125 | Wed Dec 4 13:08:44 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2126 | ||
2127 | * Make-lang.in (g77, g77-cross): No libs or lib dependencies | |
2128 | in case where "f77" is not in $LANGUAGES. | |
2129 | ||
2130 | * lex.c (ffelex_image_char_, ffelex_file_fixed, | |
2131 | ffelex_file_free): Fixes to properly handle lines with | |
2132 | null character, and too-long lines as well. | |
2133 | ||
2134 | * lex.c: Call ffebad_start_msg_lex instead of | |
2135 | ffebad_start_msg throughout. | |
2136 | ||
2137 | Sun Dec 1 21:19:55 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2138 | ||
2139 | Fix-up for 1996-11-25 changes: | |
2140 | * com.c (ffecom_member_phase2_): Subtract out 0 offset for | |
2141 | elegance and consistency with EQUIVALENCE aggregates. | |
2142 | (ffecom_sym_transform_): Ditto for LOCAL/COMMON, and | |
2143 | ensure we get the same parent storage area. | |
2144 | * data.c (ffedata_gather_, ffedata_value_): Subtract out | |
2145 | aggregate offset. | |
2146 | ||
2147 | Wed Nov 27 13:55:57 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2148 | ||
2149 | * proj.h: Quote the text of the #error message, to avoid | |
2150 | strange-looking diagnostics from non-gcc ANSI compilers. | |
2151 | ||
2152 | * top.c: Make -fno-debug-kludge the default. | |
2153 | ||
2154 | Mon Nov 25 20:13:45 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2155 | ||
2156 | Provide more info on EQUIVALENCE mismatches: | |
2157 | * bad.def (FFEBAD_EQUIV_MISMATCH): More detailed message. | |
2158 | * equiv.c (ffeequiv_layout_local_, ffeequiv_layout_cblock): | |
2159 | More details for FFEBAD_EQUIV_MISMATCH. | |
2160 | ||
2161 | Fix problem with EQUIVALENCE handling: | |
2162 | * equiv.c (ffeequiv_layout_local_): Redesign algorithm -- | |
2163 | old one was broken, resulting in rejection of good code. | |
2164 | (ffeequiv_offset_): Add argument, change callers. | |
2165 | Clean up the code, fix up the (probably unused) negative-value | |
2166 | case for SYMTER. | |
2167 | * com.c (ffecom_sym_transform_): For local EQUIVALENCE | |
2168 | member, subtract out aggregate offset (which is <= 0). | |
2169 | ||
2170 | Thu Nov 21 12:44:56 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2171 | ||
2172 | Change type of ffetargetOffset from `unsigned long' to `long long': | |
2173 | * bld.c (ffebld_constantarray_dump): Change printf formats. | |
2174 | * storag.c (ffestorag_dump): Ditto. | |
2175 | * symbol.c (ffesymbol_report): Ditto. | |
2176 | * target.h (ffetargetOffset_f): Ditto and change type itself. | |
2177 | ||
2178 | Handle situation where list of languages does not include f77: | |
2179 | * Make-lang.in: Define LANGUAGE_F77 to 1 only if `f77' is in | |
2180 | the $LANGUAGES macro for the build. | |
2181 | * g77.c: Compile to a (nearly) no-op program if LANGUAGE_F77 | |
2182 | is not defined to 1. | |
2183 | ||
2184 | Fixes to delay confirmation of READ, WRITE, and GOTO statements | |
2185 | so the corresponding assignments to same-named CHAR*(*) arrays | |
2186 | work: | |
2187 | * stb.c (ffestb_R90915_, ffestb_91014_): New functions. | |
2188 | (ffestb_goto3_, ffestb_goto5_): Move confirmation from 3 to 5 | |
2189 | for the OPEN_PAREN case. | |
2190 | (ffestb_R9091_, ffestb_R9094_, ffestb_R90913_, ffestb_R90914_, | |
2191 | ffestb_R91012_, ffestb_R91013_): Use new functions, and confirm | |
2192 | except for the OPEN_PAREN case. | |
2193 | ||
2194 | Fixes to not confirm declarations with an open paren where | |
2195 | an equal sign or other assignment-like token might be, so the | |
2196 | corresponding assignments to same-named CHAR*(*) arrays work: | |
2197 | (ffestb_decl_entsp_5_): Move assertion so we crash on that first, | |
2198 | if it turns out to be wrong, before the less-debuggable crash | |
2199 | on mistaken confirmation. | |
2200 | (ffestb_decl_entsp_6_, ffestb_decl_entsp_7_, ffestb_decl_entsp_8_): | |
2201 | Include OPEN_PAREN in list of assignment-only tokens. | |
2202 | ||
2203 | Fix more diagnosed-crash bugs: | |
2204 | * stu.c (ffestu_sym_end_transition): ANY-ize an adjustable array | |
2205 | with bad dimension expressions even if still stateUNCERTAIN. | |
2206 | (ffestu_symter_end_transition_, ffestu_symter_exec_transition_): | |
2207 | Return TRUE for opANY as well. | |
2208 | For code elegance, move opSYMTER case into first switch. | |
2209 | ||
2210 | 1996-11-17 Dave Love <d.love@dl.ac.uk> | |
2211 | ||
2212 | * lex.c: Fix last change. | |
2213 | ||
2214 | 1996-11-14 Dave Love <d.love@dl.ac.uk> | |
2215 | ||
2216 | * Make-lang.in, config-lang.in: Remove the (broken) libU77 stuff, | |
2217 | pending 0.5.20. | |
2218 | ||
2219 | Thu Nov 14 15:40:59 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2220 | ||
2221 | * bad.def (FFEBAD_UNIMPL_STMT): Explain that invalid | |
2222 | intrinsic references can trigger this message, too. | |
2223 | ||
2224 | 1996-11-12 Dave Love <d.love@dl.ac.uk> | |
2225 | ||
2226 | * lex.c: Declare dwarfout routines. | |
2227 | ||
2228 | * config-lang.in: Sink grep o/p. | |
2229 | ||
2230 | Mon Nov 11 14:21:13 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2231 | ||
2232 | * g77.c (main): Might as well print version number | |
2233 | for --verbose as well. | |
2234 | ||
2235 | Thu Nov 7 18:41:41 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2236 | ||
2237 | * expr.c, lang-options.h, target.h, top.c, top.h: Split out | |
2238 | remaining -fugly stuff into -fugly-logint and -fugly-comma, | |
2239 | leaving -fugly as simply a `macro' that expands into other | |
2240 | options, and eliminate defaults for some of the ugly stuff | |
2241 | in target.h. | |
2242 | ||
2243 | * Make-lang.in (gcc-cross): Compile zzz.c, not version.o (!), | |
2244 | in to get version info for this target. | |
2245 | ||
2246 | * config-lang.in: Test for GBE patch application based | |
2247 | on whether 2.6.x or 2.7.x GBE is detected. | |
2248 | ||
2249 | Wed Nov 6 14:19:45 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2250 | ||
2251 | * Make-lang.in (g77): Compile zzz.c in to get version info. | |
2252 | * g77.c: Add support for --help and --version. | |
2253 | ||
2254 | * g77.c (lookup_option): Short-circuit long-winded tests | |
2255 | when second char is not hyphen, just to save a spot of time. | |
2256 | ||
2257 | Sat Nov 2 13:50:31 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2258 | ||
2259 | * intrin.def: Add FTELL and FSEEK intrinsics, plus new | |
2260 | `g' codes for alternate-return (GOTO) arguments. | |
2261 | * intrin.c (ffeintrin_check_): Support `g' codes. | |
2262 | * com-rt.def: Add ftell_() and fseek_() to database. | |
2263 | * com.c (ffecom_expr_intrinsic_): Ditto. Also, let each | |
2264 | subroutine intrinsic decide for itself what to do with | |
2265 | tree_type, the default being NULL_TREE once again (so | |
2266 | ffecom_call_ doesn't think it's supposed to cast the | |
2267 | function call to the type in the fall-through case). | |
2268 | ||
2269 | * ste.c (ffeste_R909_finish): Don't special-case list-directed | |
2270 | I/O, now that libf2c can return non-zero status codes. | |
2271 | (ffeste_R910_finish): Ditto. | |
2272 | (ffeste_io_call_): Simplify logic. | |
2273 | (ffeste_io_impdo_): | |
2274 | (ffeste_subr_beru_): | |
2275 | (ffeste_R904): | |
2276 | (ffeste_R907): | |
2277 | (ffeste_R909_start): | |
2278 | (ffeste_R909_item): | |
2279 | (ffeste_R909_finish): | |
2280 | (ffeste_R910_start): | |
2281 | (ffeste_R910_item): | |
2282 | (ffeste_R910_finish): | |
2283 | (ffeste_R911_start): | |
2284 | (ffeste_R923A): Ditto all the above. | |
2285 | ||
2286 | Thu Oct 31 20:56:28 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2287 | ||
2288 | * config-lang.in, Make-lang.in: Rename flag file | |
2289 | build-u77 to build-libu77, for consistency with | |
2290 | install-libf2c and such. | |
2291 | ||
2292 | * config-lang.in: Don't complain about failure to patch | |
2293 | if pre-2.7.0 gcc is involved (since our patch for that | |
2294 | doesn't add support for tooning). | |
2295 | ||
2296 | Sat Oct 26 05:56:51 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2297 | ||
2298 | * bad.def (FFEBAD_TYPELESS_TOO_LARGE): Remove this | |
2299 | unused and redundant diagnostic. | |
2300 | ||
2301 | Sat Oct 26 00:45:42 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2302 | ||
2303 | * target.c (ffetarget_integerhex): Fix dumb bug. | |
2304 | ||
2305 | 1996-10-20 Dave Love <d.love@dl.ac.uk> | |
2306 | ||
2307 | * gbe/2.7.2.1.diff: New file. | |
2308 | ||
2309 | * Makefile.in (F771_LDFLAGS): Add -bbigtoc for AIX4.1 up, suggested by | |
2310 | endo@material.tohoku.ac.jp [among others!]. | |
2311 | ||
2312 | Sat Oct 19 03:11:14 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2313 | ||
2314 | * bad.def, bld.c, bld.h, expr.c, lang-options.h, target.c, | |
2315 | target.h, top.c, top.h (ffebld_constant_new_integerbinary, | |
2316 | ffebld_constant_new_integerhex, ffebld_constant_new_integeroctal, | |
2317 | ffeexpr_token_name_apos_name_, ffetarget_integerbinary, | |
2318 | ffetarget_integerhex, ffetarget_integeroctal): Support | |
2319 | new -fno-typeless-boz option with new functions, mods to | |
2320 | existing octal-handling functions, new macros, new error | |
2321 | messages, and so on. | |
2322 | ||
2323 | * com.c, lang-options.h, top.c, top.h (ffecom_notify_primary_entry): | |
2324 | Print program unit name on stderr if -fno-silent (new option). | |
2325 | ||
2326 | * lang-options.h, top.c, top.h, stt.c (ffestt_dimlist_as_expr): | |
2327 | Treat ([...,]1) in dimlist as ([...,]*) if -fugly-assumed | |
2328 | (new option). | |
2329 | ||
2330 | * lang-options.h: Comment out options duplicated in gcc/toplev.c, | |
2331 | because, somehow, having them commented in and building on my | |
2332 | DEC Alpha results in a cc1 that always segfaults, and gdb that | |
2333 | also segfaults whenever it debugs it up to init_lex() calling | |
2334 | xmalloc() or so. | |
2335 | ||
2336 | Thu Oct 17 00:39:27 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2337 | ||
2338 | * stb.c (ffestb_R10013_): Don't change meaning of .sign until | |
2339 | after previous meaning/value used to set sign of value | |
2340 | (960507-1.f). | |
2341 | ||
2342 | Sun Oct 13 22:15:23 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2343 | ||
2344 | * top.c (ffe_decode_option): Don't set back-end flags | |
2345 | that are nonexistent prior to gcc 2.7.0. | |
2346 | ||
2347 | Sun Oct 13 12:48:45 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2348 | ||
2349 | * com.c (convert): Don't convert emulated complex expr to | |
2350 | real (via REALPART_EXPR) if the target type is (emulated) | |
2351 | complex. | |
2352 | ||
2353 | Wed Oct 2 21:57:12 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2354 | ||
2355 | * com.c (ffecom_debug_kludge_): Set DECL_IN_SYSTEM_HEADER so | |
2356 | -Wunused doesn't complain about these manufactured decls. | |
2357 | (ffecom_expr_): Ditto, for original (non-ASSIGN'ed) variable. | |
2358 | (ffecom_transform_equiv_): Clear DECL_IGNORED_P for aggregate | |
2359 | area so it shows up as a debug-accessible symbol. | |
2360 | (pushdecl): Default for "invented" identifiers (a g77-specific | |
2361 | concept for now) is that they are artificial, in system header, | |
2362 | ignored for debugging purposes, used, and (for types) suppressed. | |
2363 | This ought to be overkill. | |
2364 | ||
2365 | Fri Sep 27 23:13:07 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2366 | ||
2367 | * ste.c (ffeste_begin_iterdo_, ffeste_end_iterdo_): Support | |
2368 | one-trip DO loops (F66-style). | |
2369 | * lang-options.h, top.c, top.h (-fonetrip): New option. | |
2370 | ||
2371 | Thu Sep 26 00:18:40 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2372 | ||
2373 | * com.c (ffecom_debug_kludge_): New function. | |
2374 | (ffecom_sym_transform_): Use new function for COMMON and EQUIVALENCE | |
2375 | members. | |
2376 | ||
2377 | * lang-options.h, top.c, top.h (-fno-debug-kludge): | |
2378 | New option. | |
2379 | ||
2380 | 1996-09-24 Dave Love <d.love@dl.ac.uk> | |
2381 | ||
2382 | * Make-lang.in (include/f2c.h): | |
2383 | Remove dependencies on xmake_file and tmake_file. | |
2384 | They expand inconsistently in 2.8 c.f. 2.7; $(GCC_PARTS) depends on | |
2385 | them anyhow. | |
2386 | ||
2387 | 1996-09-22 Dave Love <d.love@dl.ac.uk> | |
2388 | ||
2389 | * config-lang.in: Add --enable-libu77 option handling. | |
2390 | ||
2391 | * Make-lang.in: | |
2392 | Conditionally add --enable-libu77 when running runtime configure. | |
2393 | Define LIBU77STAGESTUFF and use it in relevant rules. | |
2394 | ||
2395 | 1996-08-21 Dave Love <d.love@dl.ac.uk> | |
2396 | ||
2397 | * Make-lang.in (f77-runtime): | |
2398 | `stmp-hdrs' should have been `stmp-headers'. | |
2399 | ||
2400 | 1996-08-20 Dave Love <d.love@dl.ac.uk> | |
2401 | ||
2402 | * Make-lang.in (f77-runtime): | |
2403 | Depend on stmp-hdrs, not stmp-int-hdrs, since libF77 | |
2404 | needs float.h. | |
2405 | ||
2406 | Sat Jun 22 18:17:11 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2407 | ||
2408 | * com.c (ffecom_tree_divide_): Fix RECORD_TYPE case to | |
2409 | look at type of first field, properly, to determine | |
2410 | whether to call c_div or z_div. | |
2411 | ||
2412 | Tue Jun 4 04:27:18 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2413 | ||
2414 | * com.c (ffecom_build_complex_constant_): Explicitly specify | |
2415 | TREE_PURPOSE. | |
2416 | (ffecom_expr_): Fix thinko. | |
2417 | (ffecom_2): For COMPLEX_EXPR, explicitly specify TREE_PURPOSE. | |
2418 | ||
2419 | Mon May 27 16:23:43 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2420 | ||
2421 | Changes to optionally avoid gcc's back-end complex support: | |
2422 | * com.c (ffecom_stabilize_aggregate_): New function. | |
2423 | (ffecom_convert_to_complex_): New function. | |
2424 | (ffecom_make_complex_type_): New function. | |
2425 | (ffecom_build_complex_constant_): New function. | |
2426 | (ffecom_expr_): For opCONVERT of non-COMPLEX to COMPLEX, | |
2427 | don't bother explicitly converting to the subtype first, | |
2428 | because gcc does that anyway, and more code would have | |
2429 | to be added to find the subtype for the emulated-complex | |
2430 | case. | |
2431 | (ffecom_f2c_make_type_): Use ffecom_make_complex_type_ | |
2432 | instead of make_node etc. to make a complex type. | |
2433 | (ffecom_1, ffecom_2): Translate operations on COMPLEX operands | |
2434 | to appropriate operations when emulating complex. | |
2435 | (ffecom_constantunion): Use ffecom_build_complex_constant_ | |
2436 | instead of build_complex to build a complex constant. | |
2437 | (ffecom_init_0): Change point at which types are laid out | |
2438 | for improved consistency. | |
2439 | Use ffecom_make_complex_type_ instead of make_node etc. | |
2440 | to make a complex type. | |
2441 | Always calculate storage sizes from TYPE_SIZE, never TYPE_PRECISION. | |
2442 | (convert): Use e, not expr, since we've copied into that anyway. | |
2443 | For RECORD_TYPE cases, do emulated-complex conversions. | |
2444 | (ffecom_f2c_set_lio_code_): Always calculate storage sizes | |
2445 | from TYPE_SIZE, never TYPE_PRECISION. | |
2446 | (ffecom_tree_divide_): Allow RECORD_TYPE to also be handled | |
2447 | by run-time library. | |
2448 | (ffecom_expr_intrinsic_): Handle possible RECORD_TYPE as argument | |
2449 | to AIMAG intrinsic. | |
2450 | ||
2451 | * top.h, top.c, lang-options.h: Support new -f(no-)emulate-complex option. | |
2452 | ||
2453 | * com.c (ffecom_sym_transform_): Clarify and fix typos in comments. | |
2454 | ||
2455 | Mon May 20 02:06:27 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2456 | ||
2457 | * target.h: Use new REAL_VALUE_UNTO_TARGET_* macros instead | |
2458 | of REAL_VALUE_FROM_TARGET_DOUBLE and _SINGLE. | |
2459 | Explicitly use long instead of HOST_WIDE_INT for emulation | |
2460 | of ffetargetReal1 and ffetargetReal2. | |
2461 | ||
2462 | 1996-05-20 Dave Love <d.love@dl.ac.uk> | |
2463 | ||
2464 | * config-lang.in: | |
2465 | Test for patch being applied with flag_move_all_movables in toplev.c. | |
2466 | ||
2467 | * install.texi (Patching GNU Fortran): | |
2468 | Mention overriding X_CFLAGS rather than | |
2469 | editing proj.h on SunOS4. | |
2470 | ||
2471 | * Make-lang.in (F77_FLAGS_TO_PASS): | |
2472 | Add X_CFLAGS (convenient for SunOS4 kluge, in | |
2473 | particular). | |
2474 | (f77.{,mostly,dist}clean): Reorder things, in particular not to delete | |
2475 | Makefiles too early. | |
2476 | ||
2477 | * g77.c (DEFAULT_SWITCH_TAKES_ARG): Define a la gcc.c in the | |
2478 | current GCC snapshot. | |
2479 | ||
2480 | Tue May 14 00:24:07 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2481 | ||
2482 | Changes for DEC Alpha AXP support: | |
2483 | * com.c (ffecom_init_0): REAL_ARITHMETIC means internal | |
2484 | REAL/DOUBLE PRECISION might well have a different size | |
2485 | than the compiled type, so don't crash if this is the | |
2486 | case. | |
2487 | * target.h: Use `int' for ffetargetInteger1, | |
2488 | ffetargetLogical1, and magical tests. Set _f format | |
2489 | strings accordingly. | |
2490 | ||
2491 | Tue Apr 16 14:08:28 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2492 | ||
2493 | * top.c (ffe_decode_option): -Wall no longer implies | |
2494 | -Wsurprising. | |
2495 | ||
2496 | Sat Apr 13 14:50:06 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2497 | ||
2498 | * com.c (ffecom_char_args_): If item is error_mark_node, | |
2499 | set *length that way, too. | |
2500 | ||
2501 | * com.c (ffecom_expr_power_integer_): If either operand | |
2502 | is error_mark_node, return that. | |
2503 | ||
2504 | * com.c (ffecom_intrinsic_len_): If item is error_mark_node, | |
2505 | return that for length. | |
2506 | ||
2507 | * expr.c (ffeexpr_declare_unadorned_, | |
2508 | ffeexpr_declare_parenthesized_): Instead of crashing | |
2509 | on unexpected contexts, produce a diagnostic. | |
2510 | ||
2511 | * intrin.c (ffeintrin_check_), intrin.def (impSIGNAL): | |
2512 | Allow procedure as second arg to SIGNAL intrinsic. | |
2513 | ||
2514 | * stu.c (ffestu_symter_end_transition_): New function. | |
2515 | (ffestu_symter_exec_transition_): Return bool arg. | |
2516 | Always transition symbol (don't inhibit when !whereNONE). | |
2517 | (ffestu_sym_end_transition): If DUMMY/LOCAL arg has any | |
2518 | opANY exprs in its dimlist, diagnose it so it doesn't | |
2519 | make it through to later stages that try to deal with | |
2520 | dimlist stuff. | |
2521 | (ffestu_sym_exec_transition): If sym has any opANY exprs | |
2522 | in its dimlist, diagnose it so it becomes opANY itself. | |
2523 | ||
2524 | * symbol.c (ffesymbol_error): If token arg is NULL, | |
2525 | just ANY-ize the symbol -- don't produce diagnostic. | |
2526 | ||
2527 | Mon Apr 1 10:14:02 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2528 | ||
2529 | * Version 0.5.18 released. | |
2530 | ||
2531 | Mon Mar 25 20:52:24 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2532 | ||
2533 | * com.c (ffecom_expr_power_integer_): Don't generate code | |
2534 | that compares COMPLEX (or, as it happens, REAL) via "LT_EXPR", | |
2535 | since the back end crashes on that. (This code would never | |
2536 | be executed anyway, but the test that avoids it has now been | |
2537 | translated to control whether the code gets generated at all.) | |
2538 | Fixes 960323-3.f. | |
2539 | ||
2540 | * com.c (ffecom_type_localvar_): Handle variable-sized | |
2541 | dimension bounds expressions here, so they get calculated | |
2542 | and saved on procedure entry. Fixes 960323-4.f. | |
2543 | ||
2544 | * com.c (ffecom_notify_init_symbol): Symbol has no init | |
2545 | info at all if only zeros have been used to initialize it. | |
2546 | Fixes 960324-0.f. | |
2547 | ||
2548 | * expr.c, expr.h (ffeexpr_type_combine): Renamed from | |
2549 | ffeexpr_type_combine_ and now a public procedure; last arg now | |
2550 | a token, instead of an internal structure used to extract a token. | |
2551 | Now allows the outputs to be aliased with the inputs. | |
2552 | Now allows a NULL token to mean "don't report error". | |
2553 | (ffeexpr_reduced_bool2_, ffeexpr_reduced_eqop2_, | |
2554 | ffeexpr_reduced_math2_, ffeexpr_reduced_power_, | |
2555 | ffeexpr_reduced_relop2_): Handle new calling sequence for | |
2556 | ffeexpr_type_combine. | |
2557 | * (ffeexpr_convert): Don't put an opCONVERT node | |
2558 | in just because the size is unknown; all downstream code | |
2559 | should be able to deal without it being there anyway, and | |
2560 | getting rid of it allows new intrinsic code to more easily | |
2561 | combine types and such without generating bad code. | |
2562 | * info.c, info.h (ffeinfo_kindtype_max): Rewrite to do | |
2563 | proper comparison of size of types, not just comparison | |
2564 | of their internal kind numbers (so I2.eq.I1 doesn't promote | |
2565 | I1 to I2, rather the other way around). | |
2566 | * intrin.c (ffeintrin_check_): Combine types of arguments | |
2567 | in COL a la expression handling, for greater flexibility | |
2568 | and permissiveness (though, someday, -fpedantic should | |
2569 | report use of this kind of thing). | |
2570 | Make sure Hollerith/typeless where CHARACTER expected is | |
2571 | rejected. This all fixes 960323-2.f. | |
2572 | ||
2573 | * ste.c (ffeste_begin_iterdo_): Fix some more type conversions | |
2574 | so INTEGER*2-laden DO loops don't crash at compile time on | |
2575 | certain machines. Believed to fix 960323-1.f. | |
2576 | ||
2577 | * stu.c (ffestu_sym_end_transition): Certainly reject | |
2578 | whereDUMMY not in any dummy list, whether stateUNCERTAIN | |
2579 | or stateUNDERSTOOD. Fixes 960323-0.f. | |
2580 | ||
2581 | Tue Mar 19 13:12:40 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2582 | ||
2583 | * data.c (ffedata_value): Fix crash on opANY, and simplify | |
2584 | the code at the same time. | |
2585 | ||
2586 | * Make-lang.in (f77-runtime): Also depends on lib[FI]77/Makefile... | |
2587 | (include/f2c.h...): ...which in turn depend on */Makefile.in. | |
2588 | (f77.rebuilt): Rebuild runtime stuff too. | |
2589 | ||
2590 | * intrin.c (ffeintrin_check_): Accommodate TYPELESS/HOLLERITH | |
2591 | types, convert args as necessary, etc. | |
2592 | ||
2593 | * expr.c (ffeexpr_convert): Fix test for TYPELESS/HOLLERITH | |
2594 | to obey the docs; crash if no source token when error. | |
2595 | (ffeexpr_collapse_convert): Crash if no token when error. | |
2596 | ||
2597 | Mon Mar 18 15:51:30 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2598 | ||
2599 | * com.c (ffecom_init_zero_): Renamed from | |
2600 | ffecom_init_local_zero_; now handles top-level | |
2601 | (COMMON) initializations too. | |
2602 | ||
2603 | * bld.c (ffebld_constant_is_zero): | |
2604 | * com.c (ffecom_symbol_transform_, ffecom_sym_transform_assign_, | |
2605 | ffecom_transform_common_, ffecom_transform_equiv_): | |
2606 | * data.c: | |
2607 | * equiv.c: | |
2608 | * equiv.h: | |
2609 | * lang-options.h: | |
2610 | * stc.c: | |
2611 | * storag.c: | |
2612 | * storag.h: | |
2613 | * symbol.c: | |
2614 | * symbol.h: | |
2615 | * target.c: | |
2616 | * target.h: | |
2617 | * top.c: | |
2618 | * top.h: All of this is mostly housekeeping-type changes | |
2619 | to support -f(no-)zeros, i.e. not always stuff zero | |
2620 | values into the initializer fields of symbol/storage objects, | |
2621 | but still track that they have been given initial values. | |
2622 | ||
2623 | * bad.def: Fix wording for DATA-related diagnostics. | |
2624 | ||
2625 | * com.c (ffecom_sym_transform_assign_): Don't check | |
2626 | any EQUIVALENCE stuff for local ASSIGN, the check was | |
2627 | bad (crashing), and it's not necessary, anyway. | |
2628 | ||
2629 | * com.c (ffecom_expr_intrinsic_): For MAX and MIN, | |
2630 | ignore null arguments as far arg[123], and fix handling | |
2631 | of ANY arguments. (New intrinsic support now allows | |
2632 | spurious trailing null arguments.) | |
2633 | ||
2634 | * com.c (ffecom_init_0): Add HOLLERITH (unsigned) | |
2635 | equivalents for INTEGER*2, *4, and *8, so shift intrinsics | |
2636 | and other things that need unsigned versions of signed | |
2637 | types work. | |
2638 | ||
2639 | Sat Mar 16 12:11:40 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2640 | ||
2641 | * storag.c (ffestorag_exec_layout): Treat adjustable | |
2642 | local array like dummy -- don't create storage object. | |
2643 | * com.c (ffecom_sym_transform_): Allow for NULL storage | |
2644 | object in LOCAL case (adjustable array). | |
2645 | ||
2646 | Fri Mar 15 13:09:41 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2647 | ||
2648 | * com.c (ffecom_sym_transform_): Allow local symbols | |
2649 | with nonconstant sizes (adjustable local arrays). | |
2650 | (ffecom_type_localvar_): Allow dimensions with nonconstant | |
2651 | component (adjustable local arrays). | |
2652 | * expr.c: Various minor changes to handle adjustable | |
2653 | local arrays (a new case of stateUNCERTAIN). | |
2654 | * stu.c (ffestu_sym_end_transition, | |
2655 | ffestu_sym_exec_transition): Ditto. | |
2656 | * symbol.def: Update docs to reflect these changes. | |
2657 | ||
2658 | * com.c (ffecom_expr_): Reduce space/time needed for | |
2659 | opACCTER case by handling it here instead of converting | |
2660 | it to opARRTER earlier on. | |
2661 | (ffecom_notify_init_storage): Don't convert ACCTER to ARRTER. | |
2662 | (ffecom_notify_init_symbol): Ditto. | |
2663 | ||
2664 | * com.c (ffecom_init_0): Crash and burn if any of the types' | |
2665 | sizes, according to the GBE, disagrees with the sizes of | |
2666 | the FFE's internal implementation. This might catch | |
2667 | Alpha/SGI bugs earlier. | |
2668 | ||
2669 | Fri Mar 15 01:09:41 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2670 | ||
2671 | * com-rt.def, com.c, com.h: Changes for rewrite of intrinsic | |
2672 | handling. | |
2673 | * com.c (ffecom_arglist_expr_): New function. | |
2674 | (ffecom_widest_expr_type_): New function. | |
2675 | (ffecom_expr_intrinsic_): Reorganize, some rewriting. | |
2676 | (ffecom_f2c_make_type_): Layout complex types. | |
2677 | (ffecom_gfrt_args_): New function. | |
2678 | (ffecom_list_expr): Trivial change for consistency. | |
2679 | ||
2680 | * expr.c (ffeexpr_token_name_rhs_): Go back to getting | |
2681 | type from specific, not implementation, info. | |
2682 | (ffeexpr_token_funsubstr_): Set intrinsic implementation too! | |
2683 | * intrin.c: Major rewrite of most portions. | |
2684 | * intrin.def: Major rearchitecting of tables. | |
2685 | * intrin.h (ffeintrin_basictype, ffeintrin_kindtype): | |
2686 | Now (once again) take ffeintrinSpec as arg, not ffeintrinImp; | |
2687 | for now, these return NONE, since they're not really needed | |
2688 | and adding the necessary info to the tables is not trivial. | |
2689 | (ffeintrin_codegen_imp): New function. | |
2690 | * stc.c (ffestc_R1208_item): Change way ffeintrin funcs called, | |
2691 | back to original per above; but comment out the code anyway. | |
2692 | ||
2693 | * intrin.c (ffe_init_0): Do internal checks only if | |
2694 | -fset-g77-defaults not specified. | |
2695 | ||
2696 | * lang-options.h: Add -fset-g77-defaults option. | |
2697 | * lang-specs.h: Always pass -fset-g77-defaults. | |
2698 | * top.c, top.h: New option. | |
2699 | ||
2700 | Sat Mar 9 17:49:50 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2701 | ||
2702 | * Make-lang.in (stmp-int-hdrs): Use --no-validate when | |
2703 | generating the f77.rebuilt files (BUGS, INSTALL, NEWS) | |
2704 | so cross-references can work properly in g77.info | |
2705 | without a lot of hassle. Users can probably deal with | |
2706 | the way they end up looking in the f77.rebuilt files. | |
2707 | ||
2708 | * bld.c (ffebld_constant_new_integer4_val): INTEGER*8 | |
2709 | support -- new function. | |
2710 | (ffebld_constant_new_logical4_val): New function. | |
2711 | * com.c (ffecom_f2c_longint_type_node): New type. | |
2712 | (FFECOM_rttypeLONGINT_): New return type code. | |
2713 | (ffecom_expr_): Add code to invoke pow_qq instead | |
2714 | of pow_ii for INTEGER4 (INTEGER*8) case. | |
2715 | If ffecom_expr_power_integer_ returns NULL_TREE, just do | |
2716 | the usual work. | |
2717 | (ffecom_make_gfrt_): Handle new type. | |
2718 | (ffecom_expr_power_integer_): Let caller do the work if in | |
2719 | dummy-transforming case, since | |
2720 | caller now knows about INTEGER*8 and such, by returning | |
2721 | NULL_TREE. | |
2722 | * expr.c (ffeexpr_reduced_power_): Complain about non-INTEGER | |
2723 | raised to INTEGER4 (INTEGER*8) power. | |
2724 | ||
2725 | * target.c (ffetarget_power_integerdefault_integerdefault): | |
2726 | Fix any**negative. | |
2727 | * com.c (ffecom_expr_power_integer_): Fix (-1)**(-8) and similar | |
2728 | to ABS() the integral result if the exponent is negative | |
2729 | and even. | |
2730 | ||
2731 | * ste.c (ffeste_begin_iterdo_): Clean up a type ref. | |
2732 | Always convert iteration count to _default_ INTEGER. | |
2733 | ||
2734 | * sta.c (ffesta_second_): Add BYTE and WORD type/stmts; | |
2735 | changes by Scott Snyder <snyder@d0sgif.fnal.gov>. | |
2736 | * stb.c (ffestb_decl_recursive): Ditto. | |
2737 | (ffestb_decl_recursive): Ditto. | |
2738 | (ffestb_decl_entsp_2_): Ditto. | |
2739 | (ffestb_decl_entsp_3_): Ditto. | |
2740 | (ffestb_decl_funcname_2_): Ditto. | |
2741 | (ffestb_decl_R539): Ditto. | |
2742 | (ffestb_decl_R5395_): Ditto. | |
2743 | * stc.c (ffestc_establish_declstmt_): Ditto. | |
2744 | * std.c (ffestd_R539item): Ditto. | |
2745 | (ffestd_R1219): Ditto. | |
2746 | * stp.h: Ditto. | |
2747 | * str-1t.fin: Ditto. | |
2748 | * str-2t.fin: Ditto. | |
2749 | ||
2750 | * expr.c (ffeexpr_finished_): For DO loops, allow | |
2751 | any INTEGER type; convert LOGICAL (assuming -fugly) | |
2752 | to corresponding INTEGER type instead of always default | |
2753 | INTEGER; let later phases do conversion of DO start, | |
2754 | end, incr vars for implied-DO; change checks for non-integral | |
2755 | DO vars to be -Wsurprising warnings. | |
2756 | * ste.c (ffeste_io_impdo_): Convert start, end, and incr | |
2757 | to type of DO variable. | |
2758 | ||
2759 | * com.c (ffecom_init_0): Add new types for [IL][234], | |
2760 | much of which was done by Scott Snyder <snyder@d0sgif.fnal.gov>. | |
2761 | * target.c: Ditto. | |
2762 | * target.h: Ditto. | |
2763 | ||
2764 | Wed Mar 6 14:08:45 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2765 | ||
2766 | * top.c (ffe_init_gbe_): Make -frerun-loop-opt the default. | |
2767 | ||
2768 | Mon Mar 4 12:27:00 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2769 | ||
2770 | * expr.c (ffeexpr_exprstack_push_unary_): Really warn only | |
2771 | about two successive _arithmetic_ operators. | |
2772 | ||
2773 | * stc.c (ffestc_R522item_object): Allow SAVE of (understood) | |
2774 | local entity. | |
2775 | ||
2776 | * top.c (ffe_decode_option): New -f(no-)second-underscore options. | |
2777 | * top.h: New options. | |
2778 | * com.c (ffecom_get_external_identifier_, ffecom_get_identifier_): | |
2779 | New options. | |
2780 | ||
2781 | * Make-lang.in (f77.maintainer-clean): Clean f/BUGS, f/INSTALL, | |
2782 | f/NEWS. | |
2783 | ($(srcdir)/f/BUGS, $(srcdir)/f/INSTALL, $(srcdir)/f/NEWS): | |
2784 | New rules. | |
2785 | ($(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi): Depend on | |
2786 | f/bugs.texi and f/news.texi. | |
2787 | (f77.install-man): Install f77 man pages (if enabled). | |
2788 | (f77.uninstall): Uninstall info docs, f77 man pages (if enabled). | |
2789 | ||
2790 | * top.c (ffe_init_gbe_): New function. | |
2791 | (ffe_decode_option, ffe_file): Call ffe_init_gbe_ to | |
2792 | set defaults for gcc options. | |
2793 | ||
2794 | Sat Jan 20 13:57:19 1996 Craig Burley <burley@gnu.ai.mit.edu> | |
2795 | ||
2796 | * com.c (ffecom_get_identifier_): Eliminate needless | |
2797 | comparison of results of strchr. | |
2798 | ||
2799 | Tue Dec 26 11:41:56 1995 Craig Burley <burley@gnu.ai.mit.edu> | |
2800 | ||
2801 | * Make-lang.in: Add rules for new files g77.texi, g77.info, | |
2802 | and g77.dvi. | |
2803 | Reorganize the *clean rules to more closely parallel gcc's. | |
2804 | ||
2805 | * config-lang.in: Exclude g77.info from diffs. | |
2806 | ||
2807 | Sun Dec 10 02:29:13 1995 Craig Burley <burley@gnu.ai.mit.edu> | |
2808 | ||
2809 | * expr.c (ffeexpr_declare_unadorned_, | |
2810 | ffeexpr_declare_parenthesized_): Break out handling of | |
2811 | contextDATAIMPDO[INDEX,CTRL] so it's independent of symbol state. | |
2812 | Don't exec-transition these here (let ffeexpr_sym_impdoitem_ | |
2813 | handle that when appropriate). Don't "declare" them twice. | |
2814 | ||
2815 | Tue Dec 5 06:48:26 1995 Craig Burley <burley@gnu.ai.mit.edu> | |
2816 | ||
2817 | * stc.c (ffestc_promote_sfdummy_): Allow whereNONE parent | |
2818 | symbol, since it is not necessarily known whether it will | |
2819 | become LOCAL or DUMMY. | |
2820 | ||
2821 | Mon Dec 4 03:46:55 1995 Craig Burley <burley@gnu.ai.mit.edu> | |
2822 | ||
2823 | * lex.c (ffelex_display_token, ffelex_type_string_): Resurrect | |
2824 | these from their old versions and update them for possible invocation | |
2825 | from debugger. | |
2826 | * lex.h (ffelex_display_token): Declare this in case anyone | |
2827 | else wants to call it. | |
2828 | ||
2829 | * lex.c (ffelex_total_tokens_): Have this reflect actual allocated | |
2830 | tokens, no longer include outstanding "uses" of tokens. | |
2831 | ||
2832 | * malloc.c, malloc.h (MALLOC_DEBUG): New macro to control | |
2833 | checking of whether callers follow rules, now defaults to 0 | |
2834 | for "no checking" to improve compile times. | |
2835 | ||
2836 | * malloc.c (malloc_pool_kill): Fix bug that could prevent | |
2837 | subpool from actually being killed (wasn't setting its use | |
2838 | count to 1). | |
2839 | ||
2840 | * proj.h, *.c (dmpout): Replace all occurrences of `stdout' | |
2841 | and some of `stderr' with `dmpout', so where to dump debugging | |
2842 | output can be easily controlled during build; add default | |
2843 | for `dmpout' of `stderr' to proj.h. | |
2844 | ||
2845 | Sun Dec 3 00:56:29 1995 Craig Burley <burley@gnu.ai.mit.edu> | |
2846 | ||
2847 | * com.c (ffecom_return_expr): Eliminate attempt at warning | |
2848 | about unset return values, since the back end does this better, | |
2849 | with better wording, and is not triggered by clearly working | |
2850 | (but spaghetti) code as easily as this test. | |
2851 | ||
2852 | Sat Dec 2 08:28:56 1995 Craig Burley <burley@gnu.ai.mit.edu> | |
2853 | ||
2854 | * target.c (ffetarget_power_*_integerdefault): Raising 0 to | |
2855 | integer constant power should not be an error condition; | |
2856 | if so, other code should catch 0 to any power, etc. | |
2857 | ||
2858 | * bad.def (FFEBAD_BAD_POWER): 0**integer now a warning instead | |
2859 | of an error. | |
2860 | ||
2861 | Fri Dec 1 00:12:03 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
2862 | ||
2863 | * bad.def: Clarify diagnostic regarding complex constant elements. | |
2864 | * expr.c (ffeexpr_cb_comma_c_): Capitalize real/imaginary | |
2865 | for clarified diagnostic. | |
2866 | ||
2867 | * com.c (ffecom_close_include_): Close the file! | |
2868 | ||
2869 | * lex.c (ffelex_file_fixed): Update line info if the line | |
2870 | has any content, not just if it finishes a previous line | |
2871 | or has a label. | |
2872 | (ffelex_file_free): Clarify switch statement code. | |
2873 | ||
2874 | Sat Nov 18 19:37:22 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
2875 | ||
2876 | * Version 0.5.17 released. | |
2877 | ||
2878 | Fri Nov 17 14:27:24 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
2879 | ||
2880 | * Make-lang.in: Fix typo in comment. | |
2881 | ||
2882 | * Makefile.in (f/fini.o, f/proj-h.o): Don't use `$<' since | |
2883 | not all makes support it (e.g. NeXT make), use explicit | |
2884 | source name instead (with $(srcdir) and munging). | |
2885 | (ASSERT_H): assert.h lives in source dir, not build dir. | |
2886 | ||
2887 | Thu Nov 16 12:47:50 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
2888 | ||
2889 | * com.c (ffecom_init_0): Fix dumb bug in code to produce | |
2890 | warning message about non-32-bit-systems. | |
2891 | ||
2892 | * stc.c (ffestc_R501_item): Parenthesize test to make | |
2893 | warning go away (and perhaps fix bug). | |
2894 | ||
2895 | Thu Nov 16 03:43:33 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
2896 | ||
2897 | * g77.c: Upgrade to 2.7.0's gcc.c. | |
2898 | Fix -v to pass a temp name instead of "/dev/null" for "-o". | |
2899 | ||
2900 | Fri Nov 10 19:16:05 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
2901 | ||
2902 | * ste.c (ffeste_begin_iterdo_): Add Toon's change to | |
2903 | make loops faster on some machines (implement termination | |
2904 | condition as "--i >= 0" instead of "i-- > 0"). | |
2905 | ||
2906 | Thu Nov 2 03:58:17 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
2907 | ||
2908 | * Make-lang.in: Remove unnecessary $(exeext) a la cp/Make-lang.in. | |
2909 | ||
2910 | * com.c (ffecom_expr_): Restore old strategy for assignp variant | |
2911 | of opSYMTER case...always return the ASSIGN version of var. | |
2912 | That way, `-O -Wuninitialized' will catch "I=3;GOTO I;END" | |
2913 | (though the diagnostic will refer to `__g77_ASSIGN_i'). | |
2914 | ||
2915 | * com.c (ffecom_expr_power_integer_): For constant rhs case, | |
2916 | wrap every new eval of lhs in save_expr() so it is clear to | |
2917 | back end that MULT_EXPR(lhs,lhs) has identical operands, | |
2918 | otherwise for an rhs like 32767 it generates around 65K pseudo | |
38e01259 | 2919 | registers, with which stupid_life_analysis cannot cope |
5ff904cd JL |
2920 | (due to reg_renumber in regs.h being `short *' instead of |
2921 | `int *'). | |
2922 | ||
2923 | * com.c (ffecom_expr_): Speed up implementation of LOGICAL | |
2924 | versions of opNOT, opAND, opOR, opXOR/opNEQV, and opEQV by | |
2925 | assuming the values actually are kosher LOGICAL bit patterns. | |
2926 | Also simplify code that implements some of the INTEGER versions | |
2927 | of these. | |
2928 | ||
2929 | * com.c (skip_redundant_dir_prefix, read_name_map, | |
2930 | ffecom_open_include_, signed_type, unsigned_type): Fold in | |
2931 | changes to cccp.c made from 2.7.0 through ss-950826. | |
2932 | ||
2933 | * equiv.c (ffeequiv_layout_local_): Kill the equiv list | |
2934 | if no syms in list. | |
2935 | ||
2936 | * expr.c (ffeexpr_reduced_eqop2_): Issue specific diagnostic | |
2937 | regarding usage of .EQV./.NEQV. in preference to .EQ./.NE.. | |
2938 | ||
2939 | * intrin.c: Add ERF and ERFC as generic intrinsics. | |
2940 | intrin.def: Same. | |
2941 | ||
2942 | * sta.c (ffesta_save_, ffesta_second_): Whoever calls | |
2943 | ffestd_exec_begin must also set ffesta_seen_first_exec = TRUE, | |
2944 | and anytime stc sees an exec transition, it must do both. | |
2945 | stc.c (ffestc_eof): Same. | |
2946 | ||
2947 | * stc.c (ffestc_promote_sfdummy_): If failed implicit typing | |
2948 | or CHARACTER*(*) arg, after calling ffesymbol_error, don't | |
2949 | reset info to ENTITY/DUMMY, because ffecom_sym_transform_ | |
2950 | doesn't expect such a thing with ANY/ANY type. | |
2951 | ||
2952 | * target.h (*logical*): Change some of these so they parallel | |
2953 | changes in com.c, e.g. for _eqv_, use (l)==(r) instead of | |
2954 | !!(l)==!!(r), to get a more faithful result. | |
2955 | ||
2956 | Fri Oct 27 07:06:59 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
2957 | ||
2958 | * com.c (ffecom_sym_transform_): Simplify code for local | |
2959 | EQUIVALENCE case. | |
2960 | ||
2961 | * expr.c (ffeexpr_exprstack_push_unary_): Warn about two | |
2962 | successive operators. | |
2963 | (ffeexpr_exprstack_push_binary_): Warn about "surprising" | |
2964 | operator precedence, as in "-2**2". | |
2965 | ||
2966 | * lang-options.h: Add -W(no-)surprising options. | |
2967 | ||
2968 | * parse.c (yyparse): Don't reset -fpedantic if not -pedantic. | |
2969 | ||
2970 | * top.c (ffe_decode_option): Support new -Wsurprising option. | |
2971 | * top.h: Ditto. | |
2972 | ||
2973 | Mon Oct 23 09:14:15 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
2974 | ||
2975 | * com.c (ffecom_finish_symbol_transform_): Don't transform | |
2976 | NONE/NONE (CHARACTER*(*)) vars, as these don't mean anything | |
2977 | in debugging terms, and can't be turned into anything | |
2978 | in the back end (so ffecom_sym_transform_ crashes on them). | |
2979 | ||
2980 | * com.c (ffecom_expr_): Change strategy for assignp variant | |
2981 | of opSYMTER case...always return the original var unless | |
2982 | it is not wide enough. | |
2983 | ||
2984 | * ste.c (ffeste_io_cilist_): Clarify diagnostic for ASSIGN | |
2985 | involving too-narrow variable. This shouldn't happen, though. | |
2986 | (ffeste_io_icilist_): Ditto. | |
2987 | (ffeste_R838): Ditto. | |
2988 | (ffeste_R839): Ditto. | |
2989 | ||
2990 | Thu Oct 19 03:21:20 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
2991 | ||
2992 | * com.c (ffecom_sym_transform_assign_): Set TREE_STATIC | |
2993 | using the same decision-making process as used for their twin | |
2994 | variables, so ASSIGN can last across RETURN/CALL as appropriate. | |
2995 | ||
2996 | Fri Sep 22 20:21:18 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
2997 | ||
2998 | * Makefile.in: fini is a host program, so it needs a host-compiled | |
2999 | version of proj.o, named proj-h.o. f/fini, f/fini.o, and | |
3000 | f/proj-h.o targets updated accordingly. | |
3001 | ||
3002 | * com.c (__eprintf): New function. | |
3003 | ||
3004 | Wed Sep 20 02:26:36 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3005 | ||
3006 | * lang-options.h: Add omitted -funix-intrinsics-* options. | |
3007 | ||
3008 | * malloc.c (malloc_find_inpool_): Check for infinite | |
3009 | loop, crash if detected (user reports encountering | |
3010 | them in some large programs, this might help track | |
3011 | down the bugs). | |
3012 | ||
3013 | Thu Sep 7 13:00:32 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3014 | ||
3015 | * com.c (lang_print_error_function): Don't dereference null | |
3016 | pointer when outside any program unit. | |
3017 | (ffecom_let_char_, ffecom_arg_ptr_to_expr): If catlist | |
3018 | item or length ever error_mark_node, don't continue processing, | |
3019 | since back-end functions like build_pointer_type crash on | |
3020 | error_mark_node's (due to pushing bad obstacks, etc.). | |
3021 | ||
3022 | Wed Aug 30 15:58:35 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3023 | ||
3024 | * Version 0.5.16 released. | |
3025 | ||
3026 | Mon Aug 28 12:24:20 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3027 | ||
3028 | * bad.c (ffebad_finish): Fix botched message when no places | |
3029 | are printed (due to unknown line info, etc.). | |
3030 | ||
3031 | * std.c (ffestd_subr_labels_): Do a better job finding | |
3032 | line info in the case of typeANY and diagnostics. | |
3033 | ||
3034 | Fri Aug 25 15:19:29 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3035 | ||
3036 | * com.c (DECL_ARTIFICIAL): Surround all references to this | |
3037 | macro with #if !BUILT_FOR_270 and #endif. | |
3038 | (init_lex): Surround print_error_function decl with | |
3039 | #if !BUILT_FOR_270 and #endif. | |
3040 | (lang_init): Call new ffelex_hash_kludge function to solve | |
3041 | problem with preprocessed files that have INCLUDE statements. | |
3042 | ||
3043 | * lex.c (ffelex_getc_): New function. | |
3044 | (ffelex_cfelex_): Use ffelex_getc_ instead of getc in any | |
3045 | paths of code that can be affected by ffelex_hash_kludge. | |
3046 | Don't make an EOF token for unrecognized token; set token | |
3047 | to NULL instead, to avoid problems when not initialized. | |
3048 | (ffelex_hash_): Use ffelex_getc_ instead of getc in any | |
3049 | paths of code that can be affected by ffelex_hash_kludge. | |
3050 | Test token returned by ffelex_cfelex_ for NULL, meaning | |
3051 | unrecognized token. | |
3052 | Get rid of useless used_up variable. | |
3053 | Don't do ffewhere stuff or kill any tokens if in | |
3054 | ffelex_hash_kludge. | |
3055 | (ffelex_file_fixed, ffelex_file_free): Use ffelex_getc_ | |
3056 | instead of getc in any paths of code that can be affected | |
3057 | by ffelex_hash_kludge. | |
3058 | (ffelex_hash_kludge): New function. | |
3059 | ||
3060 | * lex.h (ffelex_hash_kludge): New function. | |
3061 | ||
3062 | Wed Aug 23 15:17:40 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3063 | ||
3064 | * com.c: Implement -f(no-)underscoring options by always | |
3065 | compiling in code to do it, and having that code inhibit | |
3066 | itself when -fno-underscoring is in effect. This option | |
3067 | overrides -f(no-)f2c for this purpose; -f(no-)f2c returns | |
3068 | to it's <=0.5.15 behavior of affecting only how code | |
3069 | is generated, not how/whether names are mangled. | |
3070 | ||
3071 | * target.h: Redo specification of appending underscores so | |
3072 | the macros are named "_default" instead of "_is" and the | |
3073 | two-underscore macro defaults to 1. | |
3074 | ||
3075 | * top.c, top.h (underscoring): Add appropriate stuff | |
3076 | for the -f(no-)underscoring options. | |
3077 | ||
3078 | Tue Aug 22 10:25:01 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3079 | ||
3080 | * bad.c (ffebad_finish): Call report_error_function (in toplev.c) | |
3081 | to better identify location of problem. | |
3082 | Say "(continued):" instead of "(continued:)" for consistency. | |
3083 | ||
3084 | * com.c (ffecom_gen_sfuncdef_): Set and reset new | |
3085 | ffecom_nested_entry_ variable to hold ffesymbol being compiled. | |
3086 | (lang_print_error_function): New function from toplev.c. | |
3087 | Use ffecom_nested_entry_ to help determine which name | |
3088 | and kind-string to print. | |
3089 | (ffecom_expr_intrinsic_): Handle EXIT and FLUSH invocations | |
3090 | with different calling sequences than library functions. | |
3091 | Have SIGNAL and SYSTEM push and pop calltemps, and convert | |
3092 | their return values to the destination type (just in case). | |
3093 | (FFECOM_rttypeINT_): New return type for `int', in case | |
3094 | gcc/f/runtime/libF77/system_.c(system_) is really supposed | |
3095 | to return `int' instead of `ftnint'. | |
3096 | ||
3097 | * com.h (report_error_function): Declare this. | |
3098 | ||
3099 | * equiv.c (ffeequiv_layout_local_): Don't forget to consider | |
3100 | root variable itself as possible "first rooted variable", | |
3101 | else might never set symbol and then crash later. | |
3102 | ||
3103 | * intrin.c (ffeintrin_check_exit_): Change to allow no args | |
3104 | and rename to ffeintrin_check_int_1_o_ for `optional'. | |
3105 | #define ffeintrin_check_exit_ and _flush_ to this new | |
3106 | function, so intrin.def can refer to the appropriate names. | |
3107 | ||
3108 | * intrin.def (FFEINTRIN_impFLUSH): Validate using | |
3109 | ffeintrin_check_flush_ so passing an INTEGER arg is allowed. | |
3110 | ||
3111 | * lex.c (ffelex_file_push_, ffelex_file_pop_): New functions | |
3112 | to manage input_file_stack in gbe. | |
3113 | (ffelex_hash_): Call new functions (instead of doing code). | |
3114 | (ffelex_include_): Call new functions to update stack for | |
3115 | INCLUDE (_hash_ handles cpp output of #include). | |
3116 | ||
3117 | Mon Aug 21 08:09:04 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3118 | ||
3119 | * Makefile.in: Put `-W' in front of every `-Wall', since | |
3120 | 2.7.0 requires that to engage `-Wunused' for parameters. | |
3121 | ||
3122 | * com.c: Mark all parameters as artificial, so | |
3123 | `-W -Wunused' doesn't complain about unused ones (since | |
3124 | there's no way right not to individually specify attributes | |
3125 | like `unused'). | |
3126 | ||
3127 | * proj.h: Don't #define UNUSED if already defined, regardless | |
3128 | of host compiler. | |
3129 | ||
3130 | Sun Aug 20 16:03:56 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3131 | ||
3132 | * gbe/2.7.0.diff: Regenerate. | |
3133 | ||
3134 | * lang-options.h, lang-specs.h: If not __STDC__ (ANSI C), | |
3135 | avoid doing anything, especially the stringizing in -specs.h. | |
3136 | ||
3137 | Thu Aug 17 03:36:12 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3138 | ||
3139 | * lang-specs.h: Remove useless optional settings of -traditional, | |
3140 | since -traditional is always set anyway. | |
3141 | ||
3142 | Wed Aug 16 16:56:46 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3143 | ||
3144 | * Make-lang.in (F2C_INSTALL_FLAG, F2CLIBOK): More | |
3145 | control over whether to install f2c-related stuff. | |
3146 | (install-f2c-*): New targets to install f2c-related | |
3147 | stuff in system, not just gcc, directories. | |
3148 | ||
3149 | * com.c: Change calls to ffecom_get_invented_identifier | |
3150 | to use generally more predictable names. | |
3151 | Change calls to build_range_type to ensure consistency | |
3152 | of types of operands. | |
3153 | (ffecom_get_external_identifier_): Change to accept | |
3154 | symbol info, not just text, so it can use f2c flag for | |
3155 | symbol to decide whether to append underscore(s). | |
3156 | (ffecom_get_identifier_): Don't change names if f2c flag | |
3157 | off for compilation. | |
3158 | (ffecom_type_permanent_copy_): Use same type for new max as | |
3159 | used for min. | |
3160 | (ffecom_notify_init_storage): Offline fixups for stand-alone. | |
3161 | ||
3162 | * data.c (ffedata_gather): Explicitly test for common block, | |
3163 | since it's no longer always the case that a local EQUIVALENCE | |
3164 | group has no symbol ptr (it now can, if a user-predictable | |
3165 | "rooted" symbol has been identified). | |
3166 | ||
3167 | * equiv.c: Add some debugging stuff. | |
3168 | (ffeequiv_layout_local_): Set symbol ptr with user-predictable | |
3169 | "rooted" symbol, for giving the invented aggregate a | |
3170 | predictable name. | |
3171 | ||
3172 | * g77.c (append_arg): Allow for 20 extra args instead of 10. | |
3173 | (main): For version-only case, add `-fnull-version' and, unless | |
3174 | explicitly omitted, `-lf2c -lm'. | |
3175 | ||
3176 | * lang-options.h: New "-fnull-version" option. | |
3177 | ||
3178 | * lang-specs.h: Support ".fpp" suffix for preprocessed source | |
3179 | (useful for OS/2, MS-DOS, other case-insensitive systems). | |
3180 | ||
3181 | * stc.c (ffestc_R544_equiv_): Swap way lists are merged so this | |
3182 | is consistent with the order in which lists are built, making | |
3183 | user predictability of invented aggregate name much higher. | |
3184 | ||
3185 | * storag.c, storag.h (FFESTORAG_typeDUMMY): Delete this enum. | |
3186 | ||
3187 | * top.c: Accept, but otherwise ignore, `-fnull-version'. | |
3188 | ||
3189 | Tue Aug 15 07:01:07 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3190 | ||
3191 | * DOC, INSTALL, PROJECTS: Extensive improvements to documentation. | |
3192 | ||
3193 | Sun Aug 13 01:55:18 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3194 | ||
3195 | * INSTALL (f77-install-ok): Document the use of this file. | |
3196 | ||
3197 | * Make-lang.in (F77_INSTALL_FLAG): New flag to control | |
3198 | whether to install an `f77' command (based on whether | |
3199 | a file named `f77-install-ok' exists in the source or | |
3200 | build directory) to replace the broken attempt to use | |
3201 | comment lines to avoid installing `f77' (broken in the | |
3202 | sense that it prevented installation of `g77'). | |
3203 | ||
3204 | Mon Aug 7 06:14:26 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3205 | ||
3206 | * DOC: Add new sections for g77 & gcc compiler options, | |
3207 | source code form, and types, sizes and precisions. | |
3208 | Remove lots of old "delta-version" info, or at least | |
3209 | summarize it. | |
3210 | ||
3211 | * INSTALL: Add info here that used to be in DOC. | |
3212 | Other changes. | |
3213 | ||
3214 | * g77.c (lookup_option, main): Check for --print-* options, | |
3215 | so we avoid adding version-determining stuff. | |
3216 | ||
3217 | Wed Jul 26 15:51:03 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3218 | ||
3219 | * Make-lang.in, Makefile.in (input.j, INPUT_H): New file. | |
3220 | Update dependencies accordingly. | |
3221 | ||
3222 | * bad.c (ffebad_here): Okay to use unknown line/col. | |
3223 | ||
3224 | * compilers.h (@f77-cpp-input): Remove -P option now that | |
3225 | # directives are handled by f771. Update other options | |
3226 | to be more consistent with @c in gcc/gcc.c. Don't run f771 | |
3227 | if -E specified, etc., a la @c. | |
3228 | (@f77): Don't run f771 if -E specified, etc., a la @c. | |
3229 | ||
3230 | * config-lang.in: Avoid use of word "guaranteed". | |
3231 | ||
3232 | * input.j: New file to wrap around gcc/input.h. | |
3233 | ||
3234 | * lex.j: Add support for parsing # directives output by cpp. | |
3235 | (ffelex_cfebackslash_): New function. | |
3236 | (ffelex_cfelex_): New function. | |
3237 | (ffelex_get_directive_line_): New function. | |
3238 | (ffelex_hash_): New function. | |
3239 | (ffelex_include_): Change to not use ffewhere_file_(begin|end). | |
3240 | Also fix bug in pointing to next line (for diagnostics, &c) | |
3241 | following successful INCLUDE. | |
3242 | (ffelex_next_line_): New function that does chunk of code | |
3243 | seen in several places elsewhere in the lexers. | |
3244 | (ffelex_file_fixed): Delay finishing statement until source | |
3245 | line is registered with ffewhere, so INCLUDE processing | |
3246 | picks up the info correctly. | |
3247 | Okay to kill or use unknown line/col objects now. | |
3248 | Handle HASH (#) lines. | |
3249 | Reorder tests for insubstantial lines to put most frequent | |
3250 | occurrences at top, for possible minor speedup. | |
3251 | Some general consolidation of code. | |
3252 | (ffelex_file_free): Handle HASH (#) lines. | |
3253 | Okay to kill or use unknown line/col objects now. | |
3254 | Some general consolidation of code. | |
3255 | (ffelex_init_1): Detect HASH (#) lines. | |
3256 | (ffelex_set_expecting_hollerith): Okay to kill or use unknown | |
3257 | line/col objects now. | |
3258 | ||
3259 | * lex.h (FFELEX_typeHASH): New enum. | |
3260 | ||
3261 | * options-lang.h (-fident, -fno-ident): New options. | |
3262 | ||
3263 | * stw.c (ffestw_update): Okay to kill unknown line/col objects | |
3264 | now. | |
3265 | ||
3266 | * target.h (FFETARGET_okREALQUAD, FFETARGET_okCOMPLEXDOUBLE, | |
3267 | FFETARGET_okCOMPLEXQUAD): #define these appropriately. | |
3268 | ||
3269 | * top.c: Include flag.j wrapper, not flags.h directly. | |
3270 | (ffe_is_ident_): New flag. | |
3271 | (ffe_decode_option): Handle -fident and -fno-ident. | |
3272 | (ffe_file): Replace obsolete ffewhere_file_(begin|end) with | |
3273 | ffewhere_file_set. | |
3274 | ||
3275 | * top.h (ffe_is_ident_, ffe_is_ident, ffe_set_is_ident): | |
3276 | New flag and access functions. | |
3277 | ||
3278 | * where.c, where.h: Remove all tracking of parent file. | |
3279 | (ffewhere_file_begin, ffewhere_file_end): Delete these. | |
3280 | (ffewhere_line_use): Make it work with unknown line object. | |
3281 | ||
3282 | Mon Jul 17 03:04:09 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3283 | ||
3284 | * com.c (ffecom_sym_transform_): Set DECL_IN_SYSTEM_HEADER | |
3285 | flag for any local vars used as stmtfunc dummies or DATA | |
3286 | implied-DO iter vars, so no -Wunused warnings are produced | |
3287 | for them (a la f2c). | |
3288 | (ffecom_init_0): Do "extern int xargc;" for IARGC() intrinsic. | |
3289 | Warn if target machine not 32 bits, since g77 isn't yet | |
3290 | working on them at all well. | |
3291 | ||
3292 | * expr.c (ffeexpr_sym_lhs_call_, ffeexpr_sym_lhs_data_, | |
3293 | ffeexpr_sym_lhs_extfunc_, ffeexpr_sym_rhs_actualarg_, | |
3294 | ffeexpr_sym_rhs_let_, ffeexpr_paren_rhs_let_): Don't | |
3295 | gratuitously set attr bits that don't apply just | |
3296 | to avoid null set meaning error; instead, use explicit | |
3297 | error flag, and allow null attr set, to | |
3298 | fix certain bugs discovered by looking at this code. | |
3299 | ||
3300 | * g77.c: Major changes to improve support for gcc long options, | |
3301 | to make `g77 -v' report more useful info, and so on. | |
3302 | ||
3303 | Mon Jul 3 14:49:16 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3304 | ||
3305 | * DOC, com.c, intrin.h, intrin.c, intrin.def, target.h, top.c, | |
3306 | top.h: Add new `unix' group of intrinsics, which includes the | |
3307 | newly added ERF, ERFC, EXIT, plus even newer ABORT, DERF, DERFC, | |
3308 | FLUSH, GETARG, GETENV, SIGNAL, and SYSTEM. | |
3309 | ||
3310 | Tue Jun 27 23:01:05 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3311 | ||
3312 | * bld.c, bld.h (ffebld_constant_pool, | |
3313 | ffebld_constant_character_pool): Use a single macro (the | |
3314 | former) to access the pool for allocating constants, instead | |
3315 | of latter in public and FFEBLD_CONSTANT_POOL_ internally | |
3316 | in bld.c (which was the only one that was correct before | |
3317 | these changes). Add verification of integrity of certain | |
3318 | heap-allocated areas. | |
3319 | ||
3320 | * com.c (ffecom_overlap_, ffecom_args_overlap_, | |
3321 | ffecom_tree_canonize_ptr_, ffecom_tree_canonize_ref_): New | |
3322 | functions to optimize calling COMPLEX and, someday, CHARACTER | |
3323 | functions requiring additional argument to be passed. | |
3324 | (ffecom_call_, ffecom_call_binop_, ffecom_expr_, | |
3325 | ffecom_expr_intrinsic_): Change calling | |
3326 | sequences to include more info on possible destination. | |
3327 | (ffecom_expr_intrinsic_): Add ERF(), ERFC(), and EXIT() | |
3328 | intrinsic code. | |
3329 | (ffecom_sym_transform_): For assumed-size arrays, set high | |
3330 | bound to highest possible value instead of low bound, to | |
3331 | improve validity of overlap checking. | |
3332 | (duplicate_decls): If olddecl and newdecl are the same, | |
3333 | don't do any munging, just return affirmative. | |
3334 | ||
3335 | * expr.c: Change ffecom_constant_character_pool() to | |
3336 | ffecom_constant_pool(). | |
3337 | ||
3338 | * info.c (ffeinfo_new): Compile this version if not being | |
3339 | compiled by GNU C. | |
3340 | ||
3341 | * info.h (ffeinfo_new): Don't define macro if not being | |
3342 | compiled by GNU C. | |
3343 | ||
3344 | * intrin.c, intrin.def: Add ERF(), ERFC(), and EXIT() intrinsics. | |
3345 | (ffeintrin_check_exit_): New for EXIT() subroutine intrinsic. | |
3346 | ||
3347 | * malloc.c, malloc.h (malloc_verify_*): New functions to verify | |
3348 | integrity of heap-storage areas. | |
3349 | ||
3350 | * stc.c (ffestc_R834, ffestc_R835): Handle possibility that | |
3351 | an enclosing DO won't have a construct name even when the | |
3352 | CYCLE/EXIT does (i.e. without dereferencing NULL). | |
3353 | ||
3354 | * target.c, target.h (ffetarget_verify_character1): New function | |
3355 | to verify integrity of heap storage used to hold character constant. | |
3356 | ||
3357 | Thu Jun 22 15:36:39 1995 Howard Gordon (flash@super.org) | |
3358 | ||
3359 | * stp.h (ffestpVxtcodeIx): Fix typo in typedef for this. | |
3360 | ||
3361 | Mon May 29 15:22:31 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3362 | ||
3363 | * *: Make all sorts of changes to accommodate upcoming gcc-2.7.0. | |
3364 | I didn't keep track of them, nor just when I made them, nor | |
3365 | when I (much later, probably in early August 1995) modified | |
3366 | them so they could properly handle both 2.7.0 and 2.6.x. | |
3367 | ||
3368 | * com.c (ffecom_expr_power_integer_): Don't expand_start_stmt_expr | |
3369 | if transforming dummy args, because the back end cannot handle | |
3370 | that (it's rejected by the gcc front end), just generate | |
3371 | call to run-time library. | |
3372 | Back out changes in 0.5.15 because more temporaries might be | |
3373 | needed anyway (for COMPLEX**INTEGER). | |
3374 | (ffecom_push_tempvar): Remove inhibitor. | |
3375 | Around start_decl and finish_decl (in particular, arround | |
3376 | expand_decl, which is called by them), push NULL_TREE into | |
3377 | sequence_rtl_expr, an external published by gcc/function.c. | |
3378 | This makes sure the temporary is truly in the function's | |
3379 | context, not the inner context of a statement-valued expression. | |
3380 | (I think the back end is inconsistent here, but am not | |
3381 | interested in convincing the gbe maintainers about this now.) | |
3382 | (pushdecl): Make sure that when pushing PARM_DECLs, nothing | |
3383 | other than them are pushed, as happened for 0.5.15 and which, | |
3384 | if done for other reasons not fixed here, might well indicate | |
3385 | some other problem -- so crash if it happens. | |
3386 | ||
3387 | * equiv.c (ffeequiv_layout_local_): If the local equiv group | |
3388 | has a non-nil COMMON field, it should mean that an error has | |
3389 | occurred and been reported, so just trash the local equiv | |
3390 | group and do nothing. | |
3391 | ||
3392 | * stc.c (ffestc_promote_sfdummy_): Set sfdummy arg state to | |
3393 | UNDERSTOOD so above checking for duplicate args actually | |
3394 | works, and so we don't crash later in pushdecl. | |
3395 | ||
3396 | * ste.c (ffeste_R1001): Set initial value only for VAR_DECLs, | |
3397 | not for, e.g., LABEL_DECLs, which the FORMAT label can be | |
3398 | if it was previously treated as an executable label. | |
3399 | ||
3400 | Sat May 20 01:53:53 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3401 | ||
3402 | * com.c (ffecom_sym_transform_): For adjustable arrays, | |
3403 | pass high bound through variable_size in case its primaries | |
3404 | are changed (dumb0.f, and this might also improve | |
3405 | performance so it approaches f2c|gcc). | |
3406 | ||
3407 | Fri May 19 11:00:36 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3408 | ||
3409 | * Version 0.5.15 released. | |
3410 | ||
3411 | * com.c (ffecom_expr_power_integer_): Push temp vars | |
3412 | before expanding a statement expression, since that seems | |
3413 | to cause temp vars to be "forgotten" after the end of the | |
3414 | expansion in the back end. Disallow more temp-var | |
3415 | pushing during such an expansion, just in case. | |
3416 | (ffecom_push_tempvar): Crash if a new variable needs to be | |
3417 | pushed but cannot be at this point (should never happen). | |
3418 | ||
3419 | Wed May 17 12:26:16 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3420 | ||
3421 | * expr.c (ffeexpr_collapse_convert): Add code to convert | |
3422 | LOGICAL to CHARACTER. Reject conversion of REAL or COMPLEX | |
3423 | to CHARACTER entirely, as it cannot be supported with all | |
3424 | configurations. | |
3425 | ||
3426 | * target.h, target.c (ffetarget_convert_character1_logical1): | |
3427 | New function. | |
3428 | ||
3429 | Sun May 14 00:00:09 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3430 | ||
3431 | * com.c (ffecom_do_entry_, ffecom_gen_sfuncdef_, | |
3432 | ffecom_start_progunit_, ffecom_sym_transform_, | |
3433 | ffecom_init_0, start_function): Changes to have REAL | |
3434 | external functions return same type as DOUBLE PRECISION | |
3435 | external functions when -ff2c is in force; while at it, | |
3436 | some code cleanups done. | |
3437 | ||
3438 | * stc.c (ffestc_R547_item_object): Disallow array declarator | |
3439 | if one already exists for symbol. | |
3440 | ||
3441 | * ste.c (ffeste_R1227): Convert result variable to type | |
3442 | of function result as seen by back end (e.g. for when REAL | |
3443 | external function actually returns result as double). | |
3444 | ||
3445 | * target.h (FFETARGET_defaultFIXED_LINE_LENGTH): New | |
3446 | macro for default for -ffixed-line-length-N option. | |
3447 | ||
3448 | * top.c (ffe_fixed_line_length_): Initialize this to new | |
3449 | target.h macro instead of constant 72. | |
3450 | ||
3451 | Tue May 9 01:20:03 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3452 | ||
3453 | * lex.c (ffelex_send_token_): If sending CHARACTER token with | |
3454 | null text field, put a single '\0' in it and set length/size | |
3455 | fields to 0 (to fix 950508-0.f). | |
3456 | (ffelex_image_char_): When setting ffelex_bad_line_ to TRUE, | |
3457 | always "close" card image by appending a null char and setting | |
3458 | ffelex_card_length_. As part of this, append useful text | |
3459 | to identify the two kinds of problems that involve this. | |
3460 | (ffelex_file_fixed): Reset ffelex_bad_line_ to FALSE after | |
3461 | seeing a line with invalid first character (fixes 950508-1.f). | |
3462 | If final nontab column is zero, assume tab seen in line. | |
3463 | (ffelex_card_image_): Always make this array 8 characters | |
3464 | longer than reflected by ffelex_card_size_. | |
3465 | (ffelex_init_1): Get final nontab column info from top instead | |
3466 | of assuming 72. | |
3467 | ||
3468 | * options-lang.h: Add -ffixed-line-length- prefix. | |
3469 | ||
3470 | * top.h: Add ffe_fixed_line_length() and _set_ version, plus | |
3471 | corresponding extern. | |
3472 | ||
3473 | * top.c: Handle -ffixed-line-length- option prefix. | |
3474 | ||
3475 | Fri Apr 28 05:40:25 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3476 | ||
3477 | * Version 0.5.14 released. | |
3478 | ||
3479 | * Make-lang.in: Add assert.j. | |
3480 | ||
3481 | * Makefile.in: Add assert.j. | |
3482 | ||
3483 | * assert.j: New file. | |
3484 | ||
3485 | Thu Apr 27 16:24:22 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3486 | ||
3487 | * bad.h (ffebad_severity): New function. | |
3488 | ||
3489 | * bad.c (ffebad_severity): New function. | |
3490 | ||
3491 | * bad.def (FFEBAD_OPEN_INCLUDE): Change severity from SEVERE | |
3492 | to FATAL, since processing continues, and that seems fine. | |
3493 | ||
3494 | * com.c: Add facility to handle -I. | |
3495 | (ffecom_file, ffecom_close_include, ffecom_open_include, | |
3496 | ffecom_decode_include_option): New global functions for -I. | |
3497 | (ffecom_file_, ffecom_initialize_char_syntax_, | |
3498 | ffecom_close_include_, ffecom_decode_include_option_, | |
3499 | ffecom_open_include_, append_include_chain, open_include_file, | |
3500 | print_containing_files, read_filename_string, file_name_map, | |
3501 | savestring): New internal functions for -I. | |
3502 | ||
3503 | * compilers.h: Pass -I flag(s) to f771 (via "%{I*}"). | |
3504 | ||
3505 | * lex.c (ffelex_include_): Call ffecom_close_include | |
3506 | to close include file, for its tracking needs for -I, | |
3507 | instead of using fclose. | |
3508 | ||
3509 | * options-lang.h: Add -I prefix. | |
3510 | ||
3511 | * parse.c (yyparse): Call ffecom_file for main input file, | |
3512 | so -I handling works (diagnostics). | |
3513 | ||
3514 | * std.c (ffestd_S3P4): Have ffecom_open_include handle | |
3515 | opening and diagnosing errors with INCLUDE files. | |
3516 | ||
3517 | * ste.c (ffeste_begin_iterdo_): Use correct algorithm for | |
3518 | calculating # of iterations -- mathematically similar but | |
3519 | computationally different algorithm was not handling cases | |
3520 | like "DO I=6,5,2" correctly, because (5-6)/2+1 => 1, not 0. | |
3521 | ||
3522 | * top.c (ffe_decode_option): Allow -I, restructure a bit | |
3523 | for clarity and, maybe, speed. | |
3524 | ||
3525 | Mon Apr 17 13:31:11 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3526 | ||
3527 | * g77.c: Remove -lc, turns out not all systems has it, but | |
3528 | leave other changes in for clarity of code. | |
3529 | ||
3530 | Sun Apr 16 21:50:33 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3531 | ||
3532 | * com.c (ffecom_expr_): Implement ARRAY_EXPR as INDIRECT_REF | |
3533 | of appropriate PLUS_EXPRs of ptr_to_expr of array, to see | |
3534 | if this generates better code. (Conditional on | |
3535 | FFECOM_FASTER_ARRAY_REFS.) | |
3536 | ||
3537 | Sun Apr 16 00:22:48 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3538 | ||
3539 | * Make-lang.in (F77_SRCS): Remove g77.c, since it doesn't | |
3540 | contribute to building f771. | |
3541 | ||
3542 | * Makefile.in (dircheck): Remove/replace with f/Makefile, because | |
3543 | phony targets that are referenced in other real targets get run | |
3544 | when those targets are specified, which is a waste of time (e.g. | |
3545 | when rebuilding and only g77.c has changed, f771 was being linked | |
3546 | anyway). | |
3547 | ||
3548 | * g77.c: Include -lc between -lf2c and -lm throughout. | |
3549 | ||
3550 | * implic.c (ffeimplic_establish_symbol): If -Wimplicit, warn if | |
3551 | implicit type given to symbol. | |
3552 | ||
3553 | * lex.c (ffelex_include_): Don't gratuitously increment line | |
3554 | number here. | |
3555 | ||
3556 | * top.h, top.c (ffe_is_warn_implicit_): New global variable and | |
3557 | related access macros. | |
3558 | (ffe_decode_option): Handle -W options, including -Wall and | |
3559 | -Wimplicit. | |
3560 | ||
3561 | * where.c (ffewhere_line_new): Don't muck with root line (was | |
3562 | crashing on null input since lexer changes over the past week | |
3563 | or so). | |
3564 | ||
3565 | Thu Apr 13 16:48:30 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3566 | ||
3567 | * com.c (ffecom_init_0): Register built-in functions for cos, | |
3568 | sin, and sqrt. | |
3569 | (ffecom_tree_fun_type_double): New variable. | |
3570 | (ffecom_expr_intrinsic_): Update f2c input and output files | |
3571 | to latest version of f2c (no important g77-related changes | |
3572 | noted, just bug fixes to f2c and such). | |
3573 | (builtin_function): New function from c-decl.c. | |
3574 | ||
3575 | * com-rt.def: Refer to built-in functions for cos, sin, and sqrt. | |
3576 | ||
3577 | Thu Apr 13 10:25:09 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3578 | ||
3579 | * com.c (ffecom_expr_intrinsic_): Convert 0. to appropriate | |
3580 | type to keep DCMPLX(I) from crashing the compiler. | |
3581 | (ffecom_expr_): Don't convert result from ffecom_tree_divide_. | |
3582 | (ffecom_tree_divide_): Add tree_type argument, have all callers | |
3583 | pass one, and don't convert right-hand operand to it (this is | |
3584 | to make this new function work as much like the old in-line | |
3585 | code used in ffecom_expr_ as possible). | |
3586 | ||
3587 | * lex.c: Maintain lineno and input_filename the way the gcc | |
3588 | lexer does. | |
3589 | ||
3590 | * std.c (ffestd_exec_end): Save and restore lineno and | |
3591 | input_filename around the second pass, which sets them | |
3592 | appropriately for each saved statement. | |
3593 | ||
3594 | Wed Apr 12 09:44:45 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3595 | ||
3596 | * com.c (ffecom_expr_power_integer_): New function. | |
3597 | (ffecom_expr_): Call new function for power op with integer second | |
3598 | argument, for generating better code. Also replace divide | |
3599 | code with call to new ffecom_tree_divide_ function. | |
3600 | Canonicalize calls to ffecom_truth_value(_invert). | |
3601 | (ffecom_tree_divide_): New function. | |
3602 | ||
3603 | Wed Apr 5 14:15:44 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3604 | ||
3605 | * lex.c: Change to allocate text for tokens only when actually | |
3606 | needed, which should speed compilation up somewhat. | |
3607 | Change to allow INCLUDE at any point where a statement | |
3608 | can end, i.e. in ffelex_finish_statement_ or when a SEMICOLON | |
3609 | token is sent. | |
3610 | Remove some old, obsolete code. | |
3611 | Clean up layout of entire file to improve formatting, | |
3612 | readability, etc. | |
3613 | (ffelex_set_expecting_hollerith): Remove include argument. | |
3614 | ||
3615 | Fri Mar 31 23:19:08 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3616 | ||
3617 | * bad.h, bad.c (ffebad_start_msg, ffebad_start_msg_lex): | |
3618 | New functions to generate arbitrary messages. | |
3619 | (FFEBAD_severityPEDANTIC): New severity, to correspond | |
3620 | to toplev's pedwarn() function. | |
3621 | ||
3622 | * lex.c (ffelex_backslash_): New function to implement | |
3623 | backslash processing. | |
3624 | (ffelex_file_fixed, ffelex_file_free): Implement new | |
3625 | backslash processing. | |
3626 | ||
3627 | * std.c (ffestd_R1001dump_): Don't assume CHARACTER and | |
3628 | HOLLERITH tokens stop at '\0' characters, now that backslash | |
3629 | processing is supported -- use their advertised lengths instead, | |
3630 | and double up the '\002' character for libf2c. | |
3631 | ||
3632 | Mon Mar 27 17:10:33 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3633 | ||
3634 | * com.c (ffecom_init_local_zero_): Implement -finit-local-zero. | |
3635 | (ffecom_sym_transform_): Same. | |
3636 | (ffecom_transform_equiv_): Same. | |
3637 | ||
3638 | * options-lang.h: Add -f(no-)(init-local-zero,backslash,ugly-init). | |
3639 | ||
3640 | * stb.c (ffestb_V020): Reject "TYPEblah(...", which might be | |
3641 | an array assignment. | |
3642 | ||
3643 | * target.h, top.h, top.c: Implement -finit-local-zero. | |
3644 | ||
3645 | Fri Mar 24 19:56:22 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3646 | ||
3647 | * Make-lang.in, Makefile.in: Remove conf-proj(.in) and | |
3648 | proj.h(.in) rules, plus related config.log, config.cache, | |
3649 | and config.status stuff. | |
3650 | ||
3651 | * com.c (ffecom_init_0): Change messages when atof(), bsearch(), | |
3652 | or strtoul() do not work as expected in the start-up test. | |
3653 | ||
3654 | * conf-proj, conf-proj.in: Delete. | |
3655 | ||
3656 | * lex.c (ffelex_file_fixed): Allow f2c's '&' in column 1 | |
3657 | to mean continuation line. | |
3658 | ||
3659 | * options-lang.h: New file, #include'd by ../toplev.c. | |
3660 | ||
3661 | * proj.h.in: Rename back to proj.h. | |
3662 | ||
3663 | * proj.h (LAME_ASSERT): Remove. | |
3664 | (LAME_STDIO): Remove. | |
3665 | (NO_STDDEF): Remove. | |
3666 | (NO_STDLIB): Remove. | |
3667 | (NO_BSEARCH): Remove auto detection, rename to !FFEPROJ_BSEARCH. | |
3668 | (NO_STRTOUL): Remove auto detection, rename to !FFEPROJ_STRTOUL. | |
3669 | (USE_HOST_LIMITS): Remove (maybe still needed by stand-alone?). | |
3670 | (STR, STRX): Do only ANSI C definitions. | |
3671 | ||
3672 | Mon Mar 13 10:46:13 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3673 | ||
3674 | * BUGS: Add item about g77 requiring gcc to compile it. | |
3675 | ||
3676 | * NEWS: New file listing user-visible changes in the release. | |
3677 | ||
3678 | * PROJECTS: Update to include a new item or two, and modify | |
3679 | or delete items that are addressed in this or previous releases. | |
3680 | ||
3681 | * bad.c (ffebad_finish): Don't crash if missing string &c, | |
3682 | just substitute obviously distressed string "[REPORT BUG!!]" | |
3683 | for cases where the message/caller are fudgy. | |
3684 | ||
3685 | * bad.def: Clean up error messages in a major way, add new ones | |
3686 | for use by changes in target.c. | |
3687 | ||
3688 | * com.c (ffecom_expr_): Handle opANY in opCONVERT. | |
3689 | (ffecom_let_char_): Disregard destinations with ERROR_MARK. | |
3690 | (ffecom_1, ffecom_1_fn, ffecom_2, ffecom_2s, ffecom_3, | |
3691 | ffecom_3s, &c): Check all inputs for error_mark_node. | |
3692 | (ffecom_start_progunit_): Don't transform all symbols | |
3693 | in BLOCK DATA, since it never executes, and it is silly | |
3694 | to, e.g., generate all the structures for NAMELIST. | |
3695 | (ffecom_char_length_expr_): Rename to ffecom_intrinsic_len_. | |
3696 | (ffecom_intrinsic_ichar_): New function to handle ICHAR of | |
3697 | arbitrary expression with possible 0-length operands. | |
3698 | (ffecom_expr_intrinsic_): Use ffecom_intrinsic_char_. | |
3699 | For MVBITS, set tree_type to void_type_node. | |
3700 | (ffecom_start_progunit_): Name master function for entry points | |
3701 | after primary entry point so users can easily guess it while | |
3702 | debugging. | |
3703 | (ffecom_arg_ptr_to_expr): Change treatment of Hollerith, | |
3704 | Typeless, and %DESCR. | |
3705 | (ffecom_expr_): Change treatment of Hollerith. | |
3706 | ||
3707 | * data.c (ffedata_gather_): Handle opANY in opCONVERT. | |
3708 | ||
3709 | * expr.c (ffeexpr_token_apostrophe_): Issue FFEBAD_NULL_CHAR_CONST | |
3710 | warning as necessary. | |
3711 | (ffeexpr_token_name_rhs_): Set context for args to intrinsic | |
3712 | so that assignment-like concatenation is allowed for ICHAR(), | |
3713 | IACHAR(), and LEN() intrinsics. | |
3714 | (ffeexpr_reduced_*_): Say "an array" instead of "an entity" in | |
3715 | diagnostics, since it's more informative. | |
3716 | (ffeexpr_finished_): For many contexts, check for null expression | |
3717 | and array before trying to do a conversion, to avoid redundant | |
3718 | diagnostics. | |
3719 | ||
3720 | * g77.1: Fix typo for preprocessed suffix (.F, not .f). | |
3721 | ||
3722 | * global.c (ffeglobal_init_common): Warn if initializing | |
3723 | blank common. | |
3724 | (ffeglobal_pad_common): Enable code to warn if initial | |
3725 | padding needed. | |
3726 | (ffeglobal_size_common): Complain if enlarging already- | |
3727 | initialized common, since it won't work right anyway. | |
3728 | ||
3729 | * intrin.c: Add IMAG() intrinsic. | |
3730 | (ffeintrin_check_loc_): Allow opSUBSTR in LOC(). | |
3731 | ||
3732 | * intrin.def: Add IMAG() intrinsic. | |
3733 | ||
3734 | * lex.c: Don't report FFEBAD_NULL_CHAR_CONST errors. | |
3735 | ||
3736 | * sta.c, sta.h, stb.c: Changes to clean up error messages (see | |
3737 | bad.def). | |
3738 | ||
3739 | * stb.c (ffestb_R100113_): Issue FFEBAD_NULL_CHAR_CONST | |
3740 | warning as necessary. | |
3741 | ||
3742 | * stc.c (ffestc_shriek_do_): Don't try to reference doref_line | |
3743 | stuff in ANY case, since it won't be valid. | |
3744 | (ffestc_R1227): Allow RETURN in main program unit, with | |
3745 | appropriate warnings/errors. | |
3746 | (ffestc_subr_format_): Array of any type is a CHAREXPR (F77 C5). | |
3747 | ||
3748 | * ste.c (ffeste_begin_doiter_): Couple of fixes to accurately | |
3749 | determine if loop never executes. | |
3750 | ||
3751 | * target.c (ffetarget_convert_*_hollerith_): Append spaces, | |
3752 | not zeros, to follow F77 Appendix C, and to warn when | |
3753 | truncation of non-blanks done. | |
3754 | (ffetarget_convert_*_typeless): Rewrite to do typeless | |
3755 | conversions properly, and warn when truncation done. | |
3756 | (ffetarget_print_binary, ffetarget_print_octal, | |
3757 | ffetarget_print_hex): Rewrite to use new implementation of | |
3758 | typeless. | |
3759 | (ffetarget_typeless_*): Rewrite to use new implementation | |
3760 | of typeless, and to warn about overflow. | |
3761 | ||
3762 | * target.h (ffetargetTypeless): New implementation of | |
3763 | this type. | |
3764 | ||
3765 | * type.h, type.c (ffetype_size_typeless): Remove (incorrect) | |
3766 | implementation of this function and its extern. | |
3767 | ||
3768 | Sun Mar 5 18:46:42 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3769 | ||
3770 | * BUGS: Clarify that constant handling would also fix lack of | |
3771 | adequate IEEE-754/854 support to some degree, and typeless | |
3772 | and non-decimal constants. | |
3773 | ||
3774 | * com.c (ffecom_type_permanent_copy_): Comment out to avoid | |
3775 | warnings. | |
3776 | (duplicate_decls): New function a la gcc/c-decl.c. | |
3777 | (pushdecl): Use duplicate_decls to decide whether to return | |
3778 | existing decl or new one, instead of always returning existing | |
3779 | decl. | |
3780 | (ffecom_expr_): opPERCENT_LOC now supports CHARACTER arguments. | |
3781 | (ffecom_init_0): Give f2c I/O code 0 for basictypeANY/kindtypeANY. | |
3782 | (ffecom_sym_transform_): For adjustable arrays, pass low bound | |
3783 | through variable_size in case its primaries are changed (950302-1.f). | |
3784 | ||
3785 | * com.h: More decls that belong in tree.h &c. | |
3786 | ||
3787 | * data.c (ffedata_eval_integer1_): Fix opPAREN case to not | |
3788 | treat value of expression as an error code. | |
3789 | ||
3790 | * expr.c (ffeexpr_finished_): Allow opSUBSTR in contextLOC case. | |
3791 | ||
3792 | * proj.c: Add "const" as appropriate. | |
3793 | ||
3794 | Mon Feb 27 10:04:03 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3795 | ||
3796 | * bad.def (FFEBAD_BAD_SUBSTR): Fix bad grammar in message. | |
3797 | ||
3798 | Fri Feb 24 16:21:31 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3799 | ||
3800 | * Version 0.5.13 released. | |
3801 | ||
3802 | * INSTALL: Warn that f/zzz.o will compare differently between | |
3803 | stages, since it puts the __TIME__ macro into a string. | |
3804 | ||
3805 | * com.c (ffecom_sym_transform_): Transform kindFUNCTION/whereDUMMY | |
3806 | to pointer-to-function, not function. | |
3807 | (ffecom_expr_): Use ffecom_arg_ptr_to_expr instead of | |
3808 | ffecom_char_args_ to handle comparison between CHARACTER | |
3809 | types, so either operand can be a CONCATENATE. | |
3810 | (ffecom_transform_common_): Set size of initialized common area | |
3811 | to global (largest-known) size, even though size of init might | |
3812 | be smaller. | |
3813 | ||
3814 | * equiv.c (ffeequiv_offset_): Check symbol info for ANY. | |
3815 | ||
3816 | * expr.c (ffeexpr_find_close_paren_, ffeexpr_nil_*): New functions | |
3817 | to handle following the contour of a rejected expression, so | |
3818 | statements like "PRINT(I,I,I)=0" don't cause the PRINT statement | |
3819 | code to get the second passed back to it as if there was a | |
3820 | missing close-paren before it, the comma causing the PRINT code | |
3821 | to confirm the statement, resulting in an ambiguity vis-a-vis | |
3822 | the let statement code. | |
3823 | Use the new ffecom_find_close_paren_ handler when an expected | |
3824 | close-paren is missing. | |
3825 | (ffeexpr_isdigits_): New function, use in all places that | |
3826 | currently use isdigit in repetitive code. | |
3827 | (ffeexpr_collapse_symter): Collapse to ANY if init-expr is ANY, | |
3828 | so as to avoid having symbol get "transformed" if used to | |
3829 | dimension an array. | |
3830 | (ffeexpr_token_real_, ffeexpr_token_number_real_): Don't issue | |
3831 | diagnostic about exponent, since it'll be passed along the | |
3832 | handler path, resulting in a diagnostic anyway. | |
3833 | (ffeexpr_token_apos_char_): Use consistent handler path | |
3834 | regardless of whether diagnostics inhibited. | |
3835 | (ffeexpr_token_name_apos_name_): Skip past closing quote/apos | |
3836 | even if not a match or other diagnostic issued. | |
3837 | (ffeexpr_sym_impdoitem_): Exec-transition local SEEN symbol. | |
3838 | ||
3839 | * lex.c (ffelex_image_char_): Set ffelex_saw_tab_ if TAB | |
3840 | seen, not if anything other than TAB seen! | |
3841 | ||
3842 | * stc.c (ffestc_R537_item): If source is ANY but dest isn't, | |
3843 | set dest symbol's init expr to ANY. | |
3844 | (ffestc_R501_attrib, ffestc_R522, ffestc_R522start): Complain | |
3845 | about conflict between "SAVE" by itself and other uses of | |
3846 | SAVE only in pedantic mode. | |
3847 | ||
3848 | * ste.c (ffeste_R1212): Fix loop over labels to always | |
3849 | increment caseno, to avoid pushcase returning 2 for duplicate | |
3850 | values when one of the labels is invalid. | |
3851 | ||
3852 | Thu Feb 23 12:42:04 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3853 | ||
3854 | * Version 0.5.12 released. | |
3855 | ||
3856 | * Make-lang.in (f77.install-common): Add "else true;" before outer | |
3857 | "fi" per Makefile.in patch. | |
3858 | ||
3859 | * Makefile.in (dircheck): Add "else true;" before "fi" per | |
3860 | patch from chs1pm@surrey.ac.uk. | |
3861 | ||
3862 | * com.c (ffecom_push_tempvar): If type desired is ERROR_MARK, | |
3863 | return error_mark_node, to avoid crash that results from | |
3864 | making a VAR_DECL with error_mark_node as its type. | |
3865 | ||
3866 | * ste.c (ffeste_begin_iterdo_): Convert itercount to INTEGER | |
3867 | anytime calculation of number of iterations ends up with type | |
3868 | other than INTEGER (e.g. DOUBLE PRECISION, REAL). | |
3869 | ||
3870 | Thu Feb 23 02:48:38 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3871 | ||
3872 | * Version 0.5.11 released. | |
3873 | ||
3874 | * DOC: Explain -fugly-args. | |
3875 | ||
3876 | * bad.def (FFEBAD_ACTUALARG): Explain -fugly-args and how to | |
3877 | rewrite code to not require it. | |
3878 | ||
3879 | * com.c (ffecom_vardesc_): Handle negative type code, just in | |
3880 | case. | |
3881 | (ffecom_arg_ptr_to_expr): Let ffecom_expr handle hollerith | |
3882 | and typeless constants (move code to ffecom_constantunion). | |
3883 | (ffecom_constantunion): Handle hollerith and typeless constants. | |
3884 | ||
3885 | * expr.c (ffecom_finished_): Check -fugly-args in actual-arg | |
3886 | context where hollerith/typeless provided. | |
3887 | ||
3888 | * intrin.def (FFEINTRIN_genDFLOAT): Add FFEINTRIN_specDFLOAT. | |
3889 | (FFEINTRIN_specDFLOAT): Add as f2c intrinsic. | |
3890 | ||
3891 | * target.h (ffetarget_convert_real[12]_integer, | |
3892 | ffetarget_convert_complex[12]_integer): Pass -1 for high integer | |
3893 | value if low part is negative. | |
3894 | (FFETARGET_defaultIS_UGLY_ARGS): New macro. | |
3895 | ||
3896 | * top.c (ffe_is_ugly_args_): New variable. | |
3897 | (ffe_decode_option): Handle -fugly-args and -fno-ugly-args. | |
3898 | ||
3899 | * top.h (ffe_is_ugly_args_, ffe_is_ugly_args(), | |
3900 | ffe_set_is_ugly_args()): New variable and macros. | |
3901 | ||
3902 | Thu Feb 23 02:48:38 1995 Pedro A M Vazquez (vazquez@iqm.unicamp.br) | |
3903 | ||
3904 | * g77.c (sys_errlist): Use const for __FreeBSD__ systems | |
3905 | as well. | |
3906 | ||
3907 | Wed Feb 22 13:33:43 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3908 | ||
3909 | * Version 0.5.10 released. | |
3910 | ||
3911 | * CREDITS: Add Rick Niles. | |
3912 | ||
3913 | * INSTALL: Note how to get around lack of makeinfo. | |
3914 | ||
3915 | * Make-lang.in (f/proj.h): Remove # comment. | |
3916 | ||
3917 | * Makefile.in (f/proj.h): Remove # comment. | |
3918 | ||
3919 | * com.c (ffecom_expr_): Simplify opFUNCREF/opSUBRREF conversion. | |
3920 | (ffecom_sym_transform_): For whereGLOBAL and whereDUMMY | |
3921 | kindFUNCTION, use ffecom_tree_fun_type[][] only for non-constant | |
3922 | (non-statement-function) f2c functions. | |
3923 | (ffecom_init_0): ffecom_tree_fun_type[][] and _ptr_to_*_* are | |
3924 | really f2c-interface arrays, so use base type void for COMPLEX | |
3925 | (like CHARACTER). | |
3926 | ||
3927 | Tue Feb 21 19:01:18 1995 Dave Love <d.love@dl.ac.uk> | |
3928 | ||
3929 | * Make-lang.in (f77.install-common): Expurgate the test for and | |
3930 | possible installation of f2c in line with elsewhere. Seems to have | |
3931 | been missing a semicolon anyhow! | |
3932 | ||
3933 | Tue Feb 21 11:45:25 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
3934 | ||
3935 | * Version 0.5.9 released. | |
3936 | ||
3937 | * Make-lang.in (f/proj.h): touch file to register update, | |
3938 | because the previous commands won't necessarily modify it. | |
3939 | ||
3940 | * Makefile.in (f/proj.h): touch file to register update, | |
3941 | because the previous commands won't necessarily modify it. | |
3942 | ||
3943 | * Makefile.in (f/str-*.h, f/str-*.j): Explicitly specify | |
3944 | output file names, so these targets go in build, not source, | |
3945 | directory. | |
3946 | ||
3947 | * bits.c, bits.h: Switch to valid ANSI C replacement for | |
3948 | ARRAY_ZERO. | |
3949 | ||
3950 | * com.c (ffecom_expr_): Add assignp arg to support ASSIGN better. | |
3951 | If assignp is TRUE, use different tree for FFEBLD_opSYMTER case. | |
3952 | (ffecom_sym_transform_assign_): New function. | |
3953 | (ffecom_expr_assign): New function. | |
3954 | (ffecom_expr_assign_w): New function. | |
3955 | ||
3956 | * com.c (ffecom_f2c_make_type_): Do make_signed_type instead | |
3957 | of make_unsigned_type throughout. | |
3958 | ||
3959 | * com.c (ffecom_finish_symbol_transform_): Expand scope of | |
3960 | commented-out code to probably produce faster compiler code. | |
3961 | ||
3962 | * com.c (ffecom_gen_sfuncdef_): Push/pop calltemps so | |
3963 | COMPLEX works right. | |
3964 | Remove obsolete comment. | |
3965 | ||
3966 | * com.c (ffecom_start_progunit_): If non-multi alt-entry | |
3967 | COMPLEX function, primary (static) entry point returns result | |
3968 | directory, not via extra arg -- to agree with ffecom_return_expr | |
3969 | and others. | |
3970 | Pretransform all symbols so statement functions are defined | |
3971 | before any code emitted. | |
3972 | ||
3973 | * com.c (ffecom_finish_progunit): Don't posttransform all | |
3974 | symbols here -- pretransform them instead. | |
3975 | ||
3976 | * com.c (ffecom_init_0): Don't warn about possible ASSIGN | |
3977 | crash, as this shouldn't happen now. | |
3978 | ||
3979 | * com.c (ffecom_push_tempvar): Fix to handle temp vars | |
3980 | pushed while context is a statement (nested) function, and | |
3981 | add appropriate commentary. | |
3982 | ||
3983 | * com.c (ffecom_return_expr): Check TREE_USED to determine | |
3984 | where return value is unset. | |
3985 | ||
3986 | * com.h (struct _ffecom_symbol_): Add note about length_tree | |
3987 | now being used to keep tree for ASSIGN version of symbol. | |
3988 | ||
3989 | * com.h (ffecom_expr_assign, ffecom_expr_assign_rw): New decls. | |
3990 | (error): Add this prototype for back-end function. | |
3991 | ||
3992 | * fini.c (main): Grab input, output, and include names | |
3993 | directly off the command line instead of making the latter | |
3994 | two out of the first. | |
3995 | ||
3996 | * lex.c: Improve tab handling for both fixed and free source | |
3997 | forms, and ignore carriage-returns on input, while generally | |
3998 | improving the code. ffelex_handle_tab_ has been renamed and | |
3999 | reinvented as ffelex_image_char_, among other things. | |
4000 | ||
4001 | * malloc.c, malloc.h: Switch to valid ANSI C replacement for | |
4002 | ARRAY_ZERO, and kill the full number of bytes in pools and | |
4003 | areas. | |
4004 | ||
4005 | * proj.h.in (ARRAY_ZERO, ARRAY_ZERO_SIZE): Remove. | |
4006 | ||
4007 | * ste.c (ffeste_io_cilist_, ffeste_io_icilist_, ffeste_R838, | |
4008 | ffeste_R839): Issue diagnostic if a too-narrow variable used in an | |
4009 | ASSIGN context despite changes to this code and code in com.c. | |
4010 | ||
4011 | * where.c, where.h: Switch to valid ANSI C replacement for | |
4012 | ARRAY_ZERO. | |
4013 | ||
4014 | Fri Feb 17 03:35:19 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4015 | ||
4016 | * Version 0.5.8 released. | |
4017 | ||
4018 | * INSTALL: In quick-build case, list g77 target first so g77 | |
4019 | gets installed. Also, explain that gcc gets built and installed | |
4020 | as well, even though this isn't really what we want (and maybe | |
4021 | we'll find a way around this someday). | |
4022 | ||
4023 | Fri Feb 17 02:35:41 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4024 | ||
4025 | * Version 0.5.7 released. | |
4026 | ||
4027 | * Makefile.in (CONFIG_H, HCONFIG_H, TCONFIG_H, TM_H): Remove | |
4028 | ../ prefix in front of .h files, since they're in the cd. | |
4029 | ||
4030 | Fri Feb 17 01:50:48 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4031 | ||
4032 | * Version 0.5.6 released. | |
4033 | ||
4034 | Thu Feb 16 20:26:54 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4035 | ||
4036 | * ../README.g77: Remove description of g77 as "not-yet-published". | |
4037 | ||
4038 | * CREDITS: More changes. | |
4039 | ||
4040 | * Make-lang.in (G77STAGESTUFF): Remove cktyps stuff. | |
4041 | ||
4042 | * Makefile.in (CONFIG_H, HCONFIG_H, TCONFIG_H, TM_H): Don't | |
4043 | prefix gcc dir with $(srcdir) since these don't live there, | |
4044 | they are created in the build dir by gcc's configure. Add | |
4045 | a note explaining what these macros are about. | |
4046 | Update dependencies via deps-kinda. | |
4047 | ||
4048 | * README.NEXTSTEP: Credit Toon, and per his request, add his | |
4049 | email address. | |
4050 | ||
4051 | * com.h (FFECOM_DETERMINE_TYPES): #include "config.j". | |
4052 | ||
4053 | * config.j, convert.j, flags.j, hconfig.j, rtl.j, tconfig.j, | |
4054 | tm.j, tree.j: Don't #include if already done. | |
4055 | ||
4056 | * convert.j: #include "tree.j" first, as convert.h clearly depends | |
4057 | on trees being defined. | |
4058 | ||
4059 | * rtl.j: #include "config.j" first, since there's some stuff | |
4060 | in rtl.h that assumes it has been #included. | |
4061 | ||
4062 | * tree.j: #include "config.j" first, or real.h makes inconsistent | |
4063 | decision about return type of ereal_atof, leading to bugs, and | |
4064 | because tree.h/real.h assume config.h already included. | |
4065 | ||
4066 | Wed Feb 15 14:40:20 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4067 | ||
4068 | * Version 0.5.5 released. | |
4069 | ||
4070 | * Copyright notices updated to be FSF-style. | |
4071 | ||
4072 | * INSTALL: Some more clarification regarding building just f77. | |
4073 | ||
4074 | * Make-lang.in (F77_SRCS): Update wrt changing some .h to .j. | |
4075 | (install-libf77): Fix typo in new parenthetical note. | |
4076 | ||
4077 | * Makefile.in (f/*.o): Update. | |
4078 | (CONFIG_H, CONVERT_H, FLAGS_H, GLIMITS_H, HCONFIG_H, RTL_H, | |
4079 | TCONFIG_H, TM_H, TREE_H): Update/new symbols. | |
4080 | (deps-kinda): More fixes wrt changing some .h to .j. | |
4081 | Document and explain this rule a bit better. | |
4082 | Accommodate changes in output of gcc -MM. | |
4083 | ||
4084 | * *.h, *.c: Change #include's so proj.h not assumed to #include | |
4085 | malloc.h or config.h (now config.j), and so new .j files are | |
4086 | used instead of old .h ones. | |
4087 | ||
4088 | * com.c (ffecom_init_0): Use FLOAT_TYPE_SIZE for f2c's | |
4089 | TYLONG/TYLOGICAL type codes, to get g77 working on Alpha. | |
4090 | ||
4091 | * com.h: Make all f2c-related integral types "int", not "long | |
4092 | int". | |
4093 | ||
4094 | * config.j, convert.j, flags.j, glimits.j, hconfig.j, rtl.j, | |
4095 | tconfig.j, tm.j, tree.j: New files wrapping around gbe | |
4096 | .h files. | |
4097 | ||
4098 | * config.h, convert.h, flags.h, glimits.h, hconfig.h, rtl.h, | |
4099 | tconfig.h, tm.h, tree.h: Deleted so new .j files | |
4100 | can #include the gbe files directly, instead of using "../", | |
4101 | and thus do better with various kinds of builds. | |
4102 | ||
4103 | * proj.h: Delete unused NO_STDDEF and related stuff. | |
4104 | ||
4105 | Tue Feb 14 08:28:08 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4106 | ||
4107 | * BUGS: Remove item #12, cross-compiling & autoconf scripts | |
4108 | reportedly expected to work properly (according to d.love). | |
4109 | ||
4110 | * INSTALL: Add explanation of d.love's patch to config-lang.in. | |
4111 | Add explanation of how to install just g77 when gcc already installed. | |
4112 | Add note about usability of "-Wall". Add note about bug- | |
4113 | reporting. | |
4114 | ||
4115 | * Make-lang.in ($(srcdir)/f/conf-proj): Add comment about why | |
4116 | conf-proj.out. | |
4117 | (install-libf77): Echo parenthetical note to user about how to do | |
4118 | just the (aborted) libf2c installation. | |
4119 | (deps-kinda): Update to work with new configuration/build stuff. | |
4120 | ||
4121 | * bad.c (ffebad_finish): Put capitalized "warning:" &c message | |
4122 | as prefix on any diagnostic without pointers into source. | |
4123 | ||
4124 | * bad.def (FFEBAD_TOO_BIG_INIT): Add this warning message. | |
4125 | ||
4126 | * config-lang.in: Add Dave Love's patch to catch case where | |
4127 | back-end patches not applied and abort configuration. | |
4128 | ||
4129 | * data.c (ffedata_gather_, ffedata_value_): Warn when about | |
4130 | to initialize a large aggregate area, due to design flaw resulting | |
4131 | in too much time/space used to handle such cases. | |
4132 | Use COMMON area name, and first notice of symbol, for multiple- | |
4133 | initialization diagnostic, instead of member symbol and unknown | |
4134 | location. | |
4135 | (FFEDATA_sizeTOO_BIG_INIT_): New macro per above. | |
4136 | ||
4137 | Mon Feb 13 13:54:26 1995 Dave Love <d.love@dl.ac.uk> | |
4138 | ||
4139 | * Make-lang.in (F77_SRCS): Use $(srcdir)/f/proj.h.in, not | |
4140 | $(srcdir)/f/proj.h for build outside srcdir. | |
4141 | ||
4142 | Sun Feb 12 13:37:11 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4143 | ||
4144 | * ../README.g77: Clarify procedures for unpacking, add asterisks | |
4145 | to mark important things the user must do. | |
4146 | ||
4147 | * Fix dates in/add dates to ../README.g77, BUGS, CREDITS, DOC, | |
4148 | INSTALL, PROJECTS, README. | |
4149 | ||
4150 | Sun Feb 12 00:26:10 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4151 | ||
4152 | * Version 0.5.4 released. | |
4153 | ||
4154 | * Make-lang.in (f/proj.h): Reproduce this rule here from | |
4155 | Makefile.in. | |
4156 | ($(srcdir)/f/conf-proj): Put autoconf's stdout in temp file | |
4157 | conf-proj.out, then mv to conf-proj only if successful, so | |
4158 | conf-proj not touched if autoconf not installed. | |
4159 | ||
4160 | * Makefile.in ($(srcdir)/conf-proj): See Make-lang.in's similar | |
4161 | rule. | |
4162 | ||
4163 | Sat Feb 11 20:56:02 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4164 | ||
4165 | * BUGS: Clarify some bugs. | |
4166 | ||
4167 | * DOC: Many improvements and fixes. | |
4168 | ||
4169 | * README: Move bulk of text, edited, to ../README.g77, and | |
4170 | replace with pointer to that file. | |
4171 | ||
4172 | * com.c (ffecom_init_0): Comment out warning about sizeof(ftnlen) | |
4173 | as per ste.c change. Add text about ASSIGN to help user understand | |
4174 | what is being warned about. | |
4175 | ||
4176 | * conf-proj.in: Fix typos in comments. | |
4177 | ||
4178 | * proj.h.in: Add ARRAY_ZERO_SIZE to parallel malloc.h's version, | |
4179 | in case it proves to be needed. | |
4180 | ||
4181 | * ste.c: Comment out assertions requiring sizeof(ftnlen) >= | |
4182 | sizeof(char *), in the hopes that overflow will never happen. | |
4183 | (ffeste_R838): Change assertion to fatal() with at least | |
4184 | partially helpful message. | |
4185 | ||
4186 | Sat Feb 11 12:38:00 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4187 | ||
4188 | * com.c (ffecom_vardesc_): Crash if typecode is -1. | |
4189 | ||
4190 | * ste.c (ffeste_io_dolio_): Crash if typecode is -1. | |
4191 | ||
4192 | Sat Feb 11 09:51:57 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4193 | ||
4194 | * ste.c: In I/O code tests for item arrayness, sort of revert | |
4195 | to much earlier code that tests original exp, but also check | |
4196 | in newer way just in case. Newer way alone treated FOO(1:40) | |
4197 | as an array, not sure why older way alone didn't work, but I | |
4198 | think maybe it was when diagnosed code was involved, and | |
4199 | since there are now checks for error_mark_node, maybe the old | |
4200 | way alone would work. But better to be safe; both original | |
4201 | ffebld exp _and_ the transformed tree must indicate an array | |
4202 | for the size-determination code to be used, else just 1/2 elements | |
4203 | assumed. And this text is for EMACS: (foo at bar). | |
4204 | ||
4205 | Fri Feb 10 11:05:50 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4206 | ||
4207 | * ste.c: In many cases, surround statement-expansion code | |
4208 | with ffecom_push_calltemps () and ffecom_pop_calltemps () | |
4209 | so COMPLEX-returning functions can have temporaries pushed | |
4210 | in "auto-pop" mode and have them auto-popped at the end of | |
4211 | the statement. | |
4212 | ||
4213 | Wed Feb 8 14:35:10 1995 Dave Love <d.love@dl.ac.uk> | |
4214 | ||
4215 | * runtime/f2c.h.in (ftnlen, ftnint): Make same size as integer. | |
4216 | ||
4217 | * runtime/libI77/err.c (f_init): Thinko in MISSING_FILE_ELEMS | |
4218 | conditional. | |
4219 | * runtime/libI77/wrtfmt.c (mv_cur): Likewise. | |
4220 | * runtime/libI77/wsfe.c (x_putc): Likewise. | |
4221 | ||
4222 | * runtime/libF77/signal_.c (signal_): Return 0 (this is a | |
4223 | subroutine). | |
4224 | ||
4225 | * Makefile.in (f/proj.h): Depend on com.h. | |
4226 | * Make-lang.in (include/f2c.h): Likewise (and proj.h). | |
4227 | (install-libf77): Also install f2c.h. | |
4228 | ||
4229 | * runtime/libI77/Makefile.in (*.o): Add f2c.h dependency. | |
4230 | * runtime/libF77/Makefile.in: Likewise. | |
4231 | ||
4232 | Wed Feb 8 13:56:47 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4233 | ||
4234 | * stc.c (ffestc_R501_item): Don't reset kind/where to NONE when | |
4235 | setting basictype/kindtype info for symbol, or especially | |
4236 | its function/result twin, because kind/where might not be NONE. | |
4237 | ||
4238 | Tue Feb 7 14:47:26 1995 Dave Love <d.love@dl.ac.uk> | |
4239 | ||
4240 | * Make-lang.in (include/f2c.h:): Set shell variable src more | |
4241 | robustly (independent of whether srcdir is relative or absolute). | |
4242 | * Makefile.in (f/proj.h:): Likewise. | |
4243 | ||
4244 | * conf-proj.in: Check need for LAME_ASSERT. Fix indentation in | |
4245 | check for LAME_STDIO (cosmetic only with ANSI C). | |
4246 | ||
4247 | * com.h: Extra ...SIZE stuff taken from com.c. | |
4248 | ||
4249 | * com.c (FFECOM_DETERMINE_TYPES): Define before including com.h. | |
4250 | (BITS_PER_WORD etc.) Remove and use conditional definitions to com.h. | |
4251 | ||
4252 | * runtime/configure.in: #define FFECOM_DETERMINE_TYPES for com.h in | |
4253 | f2c type determination. | |
4254 | ||
4255 | * tm.h: Remove (at least pro tem) because of relative path and use | |
4256 | top-level one. | |
4257 | ||
4258 | * Make-lang.in (include/f2c.h:): Set shell variable src more | |
4259 | robustly (independent of whether srcdir is relative or absolute). | |
4260 | * Makefile.in (f/proj.h:): Likewise. | |
4261 | ||
4262 | Mon Feb 6 19:58:32 1995 Dave Love <d.love@dl.ac.uk> | |
4263 | ||
4264 | * g77.c (append_arg): Use K&R declaration for, e.g. SunOS4 build. | |
4265 | ||
4266 | Fri Feb 3 20:33:14 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4267 | ||
4268 | * g77.c (main): Treat -l like filename in terms of -x handling. | |
4269 | Rewrite arglist mechanism for ease of maintenance. | |
4270 | Make sure every -lf2c is followed by -lm and vice versa. | |
4271 | ||
4272 | * Make-lang.in: Put complete list of sources in F77_SRCS def | |
4273 | so changing a .h file, for example, causes rebuild. | |
4274 | ||
4275 | * Makefile.in: Change test for nextstep to m68k-next-nextstep* so | |
4276 | all versions of nextstep on m68k get the necessary flag. | |
4277 | ||
4278 | Fri Feb 3 19:10:32 1995 Dave Love <d.love@dl.ac.uk> | |
4279 | ||
4280 | * INSTALL: Note about possible conflict with existing libf2c.a and | |
4281 | f2c.h. | |
4282 | ||
4283 | * Make-lang.in (f77.distclean): Tidy and move deletion of | |
4284 | f/config.cache to mostlyclean. | |
4285 | (install-libf77): Test for $(libdir)/libf2c.* and barf if found | |
4286 | unless F2CLIBOK defined. | |
4287 | ||
4288 | * runtime/Makefile.in (all): Change path to include directory (and | |
4289 | elsewhere). | |
4290 | (INCLUDES): Remove (unused/misleading). | |
4291 | (distclean): Include f2c.h. | |
4292 | (clean): Include config.cache. | |
4293 | ||
4294 | * runtime/libF77/Makefile.in (.SUFFIXES): Correct typo. | |
4295 | (ALL_CFLAGS) Fix up include search path to find f2c.h in top level | |
4296 | includes always. | |
4297 | (all): Depend on f2c.h. | |
4298 | * runtime/libI77/Makefile.in (.SUFFIXES): Likewise. | |
4299 | ||
4300 | Thu Feb 2 17:17:06 1995 Dave Love <d.love@dl.ac.uk> | |
4301 | ||
4302 | * INSTALL: Note about --srcdir and GNU make. | |
4303 | ||
4304 | * runtime/f2c.h.in (Pad_UDread, ALWAYS_FLUSH): Reomve the #defines | |
4305 | per below. | |
4306 | ||
4307 | * runtime/configure.in (Pad_UDread, ALWAYS_FLUSH): Define these | |
4308 | here, not in f2c.h as they'r eonly relevant for building. | |
4309 | * runtime/configure: Regenerated. | |
4310 | ||
4311 | * config-lang.in: Warn about using GNU make outside source tree | |
4312 | since I can't get Irix5 or SunOS4 makes to work in this case. | |
4313 | ||
4314 | * Makefile.in (VPATH): Don't set it here. | |
4315 | (srcdir): Make it the normal `.' (overridden) at top level. | |
4316 | (all.indirect): New dependency `dircheck'. | |
4317 | (f771): Likewise | |
4318 | (dircheck): New target for foolproofing. | |
4319 | (f/proj.h:): Change finding source. | |
4320 | (CONFIG_H): Don't use this as the relative path in the include loses | |
4321 | f builddir != srcdir. | |
4322 | ||
4323 | * config.h: Remove per CONFIG_H change above. | |
4324 | ||
4325 | * Make-lang.in (F77_FLAGS_TO_PASS): Remove GCC_FOR_TARGET. | |
4326 | (f771:): Pass VPATH, srcdir to sub-make. | |
4327 | (f/Makefile:): New target. | |
4328 | (stmp-int-hdrs): new variable for cheating build. | |
4329 | (f77-runtime:): Alter GCC_FOR_TARGET treatment. | |
4330 | (include/f2c.h f/runtime/Makefile:) Likewise. | |
4331 | (f77-runtime-unsafe:): New (cheating) target. | |
4332 | ||
4333 | Thu Feb 2 12:09:51 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4334 | ||
4335 | * BUGS: Update regarding losing EQUIVALENCE members in -g, and | |
4336 | regarding RS/6000 problems in the back end. | |
4337 | ||
4338 | * CREDITS: Make some changes as requested. | |
4339 | ||
4340 | * com.c (ffecom_member_trunk_): Remove unused static variable. | |
4341 | (ffecom_finish_symbol_transform_): Improve comments. | |
4342 | (ffecom_let_char_): Fix size of temp address-type var. | |
4343 | (ffecom_member_phase2_): Try fixing problem fixed by change | |
4344 | to ffecom_transform_equiv_ (f_m_p2_ function currently not used). | |
4345 | (ffecom_transform_equiv_): Remove def of unused static variable. | |
4346 | Comment-out use of ffecom_member_phase2_, until problems with | |
4347 | back end fixed. | |
4348 | (ffecom_push_tempvar): Fix assertion to not crash okay code. | |
4349 | ||
4350 | * com.h: Remove old, commented-out code. | |
4351 | Add prototype for warning() in back end. | |
4352 | ||
4353 | * ste.c (ffeste_io_dofio_, ffeste_io_dolio_, ffeste_io_douio_, | |
4354 | ffeste_io_icilist_): Check correct type of variable for arrayness. | |
4355 | ||
4356 | Sun Jan 29 14:41:42 1995 Dave Love <d.love@dl.ac.uk> | |
4357 | ||
4358 | * BUGS: Remove references to my configure bugs; add another. | |
4359 | ||
4360 | * runtime/Makefile.in (AR_FLAGS): Provide default value. | |
4361 | ||
4362 | * runtime/f2c.h.in (integer, logical): Take typedefs from | |
4363 | F2C_INTEGER configuration parameter again. | |
4364 | (NON_UNIX_STDIO): don't define it. | |
4365 | ||
4366 | * runtime/configure.in: Bring type checks for f2c.h in line with | |
4367 | com.h. | |
4368 | (MISSING_FILE_ELEMS): New variable to determine whether the relevant | |
4369 | elements of the FILE struct exist, independent of NON_UNIX_STDIO. | |
4370 | * runtime/libI77/{err,wrtfmt,wsfe}.c (MISSING_FILE_ELEMS): Use new | |
4371 | parameter. | |
4372 | ||
4373 | * config-lang.in: Comment out more of f2c rules (c.f. Make-lang.in). | |
4374 | (This stuff is relevant iff you gave configure --enable-f2c.) | |
4375 | Create f/runtime directory tree iff not building in source | |
4376 | directory. | |
4377 | ||
4378 | * Makefile.in (srcdir): Append slash so we get the right value when | |
4379 | not building in the source directory. This is a consequence of not | |
4380 | building the `f' sources in `f'. | |
4381 | (VPATH): Override configure's value for reasons above. | |
4382 | (f/proj.h f/conf-proj): New rules to build proj.h by | |
4383 | autoconfiguration. | |
4384 | ||
4385 | * proj.h: Rename to proj.h.in for autoconfiguration. | |
4386 | * proj.h.in: New as above. | |
4387 | * conf-proj conf-proj.in: New files for autoconfiguration. | |
4388 | ||
4389 | * Make-lang.in (include/f2c.h f/runtime/Makefile:): Change the order | |
4390 | of setting the sh variables so that the right GCC_FOR_TARGET is | |
4391 | used. | |
4392 | (f77.*clean:) Add products of new configuration files and make sure | |
4393 | all the *clean targets do something (unlike the ones in | |
4394 | cp/Make-lange.in). | |
4395 | ||
4396 | * com.h (FFECOM_f2cINTEGER, FFECOM_f2cLOGICAL): Define as long or | |
4397 | int appropriately to ensure sizeof(real) == sizeof(integer). | |
4398 | ||
4399 | * PROJECTS: Library section. | |
4400 | ||
4401 | * runtime/libI77/endfile.c: Don't #include sys/types.h conditional | |
4402 | on NON_UNIX_STDIO since rawio.h needs size_t. | |
4403 | * runtime/libI77/uio.c: #include <sys/types.h> for size_t if not | |
4404 | KR_headers. | |
4405 | ||
4406 | Wed Jan 25 03:31:51 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4407 | ||
4408 | * Version 0.5.3 released. | |
4409 | ||
4410 | * INSTALL: Revise. | |
4411 | ||
4412 | * Make-lang.in: Comment out rules for building f2c itself (f/f2c/). | |
4413 | ||
4414 | * README: Revise. | |
4415 | ||
4416 | * com.c (ffecom_init_0): Warn if ftnlen or INTEGER not big enough | |
4417 | to hold a char *. | |
4418 | ||
4419 | * gbe/2.6.2.diff: Update. | |
4420 | ||
4421 | Mon Jan 23 17:10:49 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4422 | ||
4423 | * TODO: Remove. | |
4424 | BUGS: New file. | |
4425 | PROJECTS: New file. | |
4426 | CREDITS: New file. | |
4427 | ||
4428 | * cktyps*: Remove. | |
4429 | Make-lang.in: Remove cktyps stuff. | |
4430 | Makefile.in: Remove cktyps stuff. | |
4431 | ||
4432 | * DOC: Add info on changes for 0.5.3. | |
4433 | ||
4434 | * bad.c: Put "warning:" &c on diagnostic messages. | |
4435 | Don't output informational messages if warnings disabled. | |
4436 | ||
4437 | Thu Jan 19 12:38:13 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4438 | ||
4439 | * g77.c: Avoid putting out useless "-xnone -xf77" pairs so | |
4440 | larger command lines can be accommodated. | |
4441 | Recognize both `-xlang' and `-x lang'. | |
4442 | Recognize `-xnone' and `-x none' to mean what it does, instead | |
4443 | of treating "none" as any other language. | |
4444 | Some minor, slight improvements in the way args are handled | |
4445 | (hopefully for clearer, more maintainable code), including | |
4446 | consistency checks on arg count just in case. | |
4447 | ||
4448 | Wed Jan 18 16:41:57 1995 Craig Burley (burley@gnu.ai.mit.edu) | |
4449 | ||
4450 | * DOC: Explain -fautomatic better. | |
4451 | ||
4452 | * INSTALL: Describe libf2c.a better. | |
4453 | ||
4454 | * Make-lang.in, Makefile.in: Build f771 &c with gcc/ as cd instead | |
4455 | of gcc/f/ so debugging info is better (source file tracking). | |
4456 | Add new source file type.c. | |
4457 | ||
4458 | * Makefile.in: For nextstep3, link f771 with -segaddr __DATA | |
4459 | 6000000. Fix typo. Change deps-kinda target to handle building | |
4460 | from gcc/. Update dependencies. | |
4461 | ||
4462 | * bld-op.def, bld.h, bld.c: Remove opBACKEND and all related | |
4463 | stuff. | |
4464 | Remove consistency tests that cause compiler warnings. | |
4465 | ||
4466 | * cktyps.c: Remove all typing checking. | |
4467 | ||
4468 | * com-rt.def: Change all rttypeFLOAT_ intrinsics to rttypeDOUBLE_, | |
4469 | to precisely match how they're declared in libf2c. | |
4470 | ||
4471 | * com.h, com.c: Revise to more elegantly track related stuff | |
4472 | in the version of f2c.h used to build libf2c. | |
4473 | ||
4474 | * com.c: Increase FFECOM_sizeMAXSTACKITEM, and if 0 or undefined | |
4475 | when checked to determine where to put entity, treat as infinite. | |
4476 | Rewrite temporary mechanism to be based on trees instead of | |
4477 | ffeinfo stuff, and make it much simpler. Change interface | |
4478 | accordingly. | |
4479 | Fixes to better track types of things, make appropriate | |
4480 | conversions, etc. E.g. when making an arg for a libf2c | |
4481 | function, make sure it's of the right type (such as ftnlen). | |
4482 | Delete opBACKEND transformation code. | |
4483 | (ffecom_init_0): Smoother initialization of types, especially | |
4484 | paying attention to using consistent rules for making INTEGER, | |
4485 | REAL, DOUBLE PRECISION, etc., and for deciding their "*N" | |
4486 | and kind values that will work across all g77 platforms. | |
4487 | No longer require per-target configuration info in target.h | |
4488 | or config/*/*; use new type module to store size, alignment. | |
4489 | (ffecom_member_phase2): Declare COMMON/EQUIVALENCE group members | |
4490 | so debugger sees them. | |
4491 | (ffecom_finish_progunit): Transform all symbols in program unit, | |
4492 | so -g will show they all exist. | |
4493 | ||
4494 | * expr.c (ffeexpr_collapse_substr): Handle strange substring | |
4495 | range values. | |
4496 | ||
4497 | * info.h, info.c: Provide connection to new type module. | |
4498 | Remove tests that yield compiler warnings. | |
4499 | ||
4500 | * intrin.c (ffeintrin_is_intrinsic): Properly handle deleted | |
4501 | intrinsic. | |
4502 | ||
4503 | * lex.c (ffelex_file_fixed): Remove redundant/buggy code. | |
4504 | ||
4505 | * stc.c (ffestc_kindtype_kind_, ffestc_kindtype_star_): Replace | |
4506 | boring switch stmt with simple call to new type module. This | |
4507 | sort of thing is a reason to get up in the morning. | |
4508 | ||
4509 | * ste.c: Update to handle new interface for | |
4510 | ffecom_push/pop_tempvar. | |
4511 | Fixes to better track types of things. | |
4512 | Fixes to not crash for certain diagnosed constructs. | |
4513 | (ffeste_begin_iterdo_): Check only constants for overflow to avoid | |
4514 | spurious diagnostics. | |
4515 | Don't convert larger integer (say, INTEGER*8) to canonical integer | |
4516 | for iteration count. | |
4517 | ||
4518 | * stw.h: Track DO iteration count temporary variable. | |
4519 | ||
4520 | * symbol.c: Remove consistency tests that cause compiler warnings. | |
4521 | ||
4522 | * target.c (ffetarget_aggregate_info): Replace big switch with | |
4523 | little call to new type module. | |
4524 | (ffetarget_layout): Remove consistency tests that cause | |
4525 | compiler warnings. | |
4526 | (ffetarget_convert_character1_typeless): Pick up length of | |
4527 | typeless type from new type module. | |
4528 | ||
4529 | * target.h: Crash build if target float bit pattern cannot be | |
4530 | precisely determined. | |
4531 | Remove all the type cruft now determined by ffecom_init_0 | |
4532 | at invocation time and maintained in new type module. | |
4533 | Put casts on second arg of all REAL_VALUE_TO_TARGET_DOUBLE | |
4534 | uses so compiler warnings avoided (requires target float bit | |
4535 | pattern to be precisely determined, hence code to crash build). | |
4536 | ||
4537 | * top.c: Add inits/terminates for new type module. | |
4538 | ||
4539 | * type.h, type.c: New module. | |
4540 | ||
4541 | * gbe/2.6.2.diff: Remove all patches to files in gcc/config/ | |
4542 | directory and its subdirectories. | |
4543 | ||
4544 | Mon Jan 9 19:23:25 1995 Dave Love <d.love@dl.ac.uk> | |
4545 | ||
4546 | * com.h (FFECOM_F2C_INTEGER_TYPE_NODE): Define and use instead of | |
4547 | long_integer_type_node where appropriate. | |
4548 | ||
4549 | Tue Jan 3 14:56:18 1995 Dave Love <d.love@dl.ac.uk> | |
4550 | ||
4551 | * com.h: Make ffecom_f2c_logical_type_node long, consistent with | |
4552 | integer. | |
4553 | ||
4554 | Fri Dec 2 20:07:37 1994 Dave Love <d.love@dl.ac.uk> | |
4555 | ||
4556 | * config-lang.in (stagestuff): Add f2c conditionally. | |
4557 | * Make-lang.in: Add f2c and related targets. | |
4558 | * f2c: Add the directory. | |
4559 | ||
4560 | Fri Nov 25 22:17:26 1994 Dave Love <d.love@dl.ac.uk> | |
4561 | ||
4562 | * Makefile.in (FLAGS_TO_PASS): pass $(CROSS) | |
4563 | * Make-lang.in: more changes to runtime targets | |
4564 | ||
4565 | Thu Nov 24 18:03:21 1994 Dave Love <d.love@dl.ac.uk> | |
4566 | ||
4567 | * Makefile.in (FLAGS_TO_PASS): define for sub-makes | |
4568 | ||
4569 | * g77.c (main): change f77-cpp-output to f77-cpp-input (.F files) | |
4570 | ||
4571 | Wed Nov 23 15:22:53 1994 Dave Love <d.love@dl.ac.uk> | |
4572 | ||
4573 | * bad.c (ffebad_finish): kluge to fool emacs19 into finding errors: | |
4574 | add trailing space to <file>:<line>: | |
4575 | ||
4576 | Tue Nov 22 11:30:50 1994 Dave Love <d.love@dl.ac.uk> | |
4577 | ||
4578 | * runtime/libF77/signal_.c (RETSIGTYPE): added | |
4579 | ||
4580 | Mon Nov 21 13:04:13 1994 Dave Love <d.love@dl.ac.uk> | |
4581 | ||
4582 | * Makefile.in (compiler): add runtime | |
4583 | ||
4584 | * config-lang.in (stagestuff): add libf2c.a to stagestuff | |
4585 | ||
4586 | * Make-lang.in: | |
4587 | G77STAGESTUFF <- MORESTAGESTUFF | |
4588 | f77-runtime: new target, plus supporting ones | |
4589 | ||
4590 | * runtime: add the directory, containing libI77, libF77 and autoconf | |
4591 | stuff | |
4592 | ||
4593 | * g++.1: remove | |
4594 | ||
4595 | * g77.1: minor fixes | |
4596 | ||
4597 | Thu Nov 17 15:18:05 1994 Craig Burley (burley@gnu.ai.mit.edu) | |
4598 | ||
4599 | * Version 0.5.2 released. | |
4600 | ||
4601 | * bad.def: Modify wording of FFEBAD_UNIMPL_STMT to indicate | |
4602 | that it covers a wide array of possible problems (that, someday, | |
4603 | should be handled via separate diagnostics). | |
4604 | ||
4605 | * lex.c: Allow $ in identifiers if -fdollar-ok. | |
4606 | * top.c: Support -fdollar-ok. | |
4607 | * top.h: Support -fdollar-ok. | |
4608 | * target.h: Support -fdollar-ok. | |
4609 | * DOC: Describe -fdollar-ok. | |
4610 | ||
4611 | * std.c (ffestd_R1229_finish): Fix bug so stand-alone build works. | |
4612 | * ste.c (ffeste_R819A): Fix bug so stand-alone build works. | |
4613 | ||
4614 | * Make: Improvements for stand-alone build. | |
4615 | ||
4616 | * Makefile.in: Fix copyright text at top of file. | |
4617 | ||
4618 | * LINK, SRCS, UNLINK: Removed. Not particularly useful now that | |
4619 | g77 sources live in their own subdirectory. | |
4620 | ||
4621 | * g77.c (main): Cast arg to bzero to avoid warning. (This is | |
4622 | identical to Kenner's fix to cp/g++.c.) | |
4623 | ||
4624 | * gbe/: New subdirectory, to contain .diff files for various | |
4625 | versions of the GNU CC back end. | |
4626 | ||
4627 | * gbe/README: New file. | |
4628 | * gbe/2.6.2.diff: New file. | |
4629 | ||
4630 | Tue Nov 8 10:23:10 1994 Dave Love <d.love@dl.ac.uk> | |
4631 | ||
4632 | * Make-lang.in: don't install as f77 as well as g77 to avoid | |
4633 | confusion with system's compiler (especially while testing) | |
4634 | ||
4635 | * g77.c (main): use -lf2c and -lm; fix sense of test for .f/.F files | |
4636 | ||
4637 | Fri Oct 28 09:45:00 1994 Craig Burley (burley@gnu.ai.mit.edu) | |
4638 | ||
4639 | * Version 0.5.1 released. | |
4640 | ||
4641 | * gcc.c: Invoke f771 instead of f-771. | |
4642 | ||
4643 | Fri Oct 28 02:00:44 1994 Craig Burley (burley@gnu.ai.mit.edu) | |
4644 | ||
4645 | * Version 0.5.0 released. | |
4646 | ||
4647 | Fri Oct 14 15:03:35 1994 Craig Burley (burley@gnu.ai.mit.edu) | |
4648 | ||
4649 | * Makefile.in: Handle the Fortran-77 front-end in a subdirectory. | |
4650 | * f-*: Move Fortran-77 front-end to f/*. |