data.c, [...]: Fix comment typos.
[gcc.git] / gcc / fortran / ChangeLog
1 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
2
3 * data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
4 trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
5 trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
6 Follow spelling conventions.
7
8 2005-01-22 Bud Davis <bdavis9659@comcast.net>
9
10 PR fortran/19313
11 * trans-io.c (gfc_trans_inquire): Added code to support
12 pad.
13
14 2005-01-22 Steven G. Kargl <kargls@comcast.net>
15
16 * intrinsic.c (make_alias): Add standard argument.
17 (add_functions): Update make_alias calls.
18
19 2005-01-22 Paul Brook <paul@codesourcery.com>
20
21 * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
22
23 2005-01-22 Paul Brook <paul@codesourcery.com>
24
25 * gfortran.h (gfc_check_access): Add prototype.
26 * match.c (gfc_match_namelist): Remove TODO.
27 * module.c (check_access): Rename ...
28 (gfc_check_access): ... to this. Boolify. Update callers.
29 * resolve.c (resolve_symbol): Check for private objects in public
30 namelists.
31
32 2005-01-22 Paul Brook <paul@codesourcery.com>
33
34 * primary.c (gfc_match_rvalue): Only apply implicit type if variable
35 does not have an explicit type.
36 (gfc_match_variable): Resolve implicit derived types in all cases.
37 Resolve contained function types from their own namespace, not the
38 parent.
39 * resolve.c (resolve_contained_fntype): Remove duplicate sym->result
40 checking. Resolve from the contained namespace, not the parent.
41
42 2005-01-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
43
44 PR fortran/19543
45 * trans-const.c (gfc_conv_constant_to_tree): Give logical
46 constants the correct type.
47
48 PR fortran/19194
49 * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
50 length parameters.
51 (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
52 pointer fields.
53
54 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
55
56 * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
57 gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
58 match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
59 scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
60 trans-io.c, trans-stmt.c, trans.c: Update copyright.
61
62 2005-01-17 Ira Rosen <irar@il.ibm.com>
63
64 * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
65
66 2005-01-16 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
67
68 PR fortran/19182
69 * error.c (error_char): Line-buffer errors / warnings.
70
71 2005-01-16 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
72
73 * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
74 unsigned issue. Use build_int_cst instead of converting
75 integer_zero_node. Remove unnecessary conversion.
76
77 * trans-types.c (gfc_get_character_type_len): : Use
78 gfc_charlen_type_node as basic type for the range field.
79
80 * trans-intrinsic.c (build_fixbound_expr,
81 gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
82 gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
83 gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
84 of converting 'integer_zero_node' or 'integer_one_node'
85 respectively.
86 (gfc_conv_intrinsic_ishftc): Same, but store in local variable to
87 evade re-building.
88 (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
89 gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
90 'build_int_cst' instead of converting 'integer_zero_node' or
91 'integer_one_node' respectively.
92
93 * trans-intrinsic.c (gfc_conv_intrinsic_index,
94 gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
95 'gfc'-prefix from local variable, remove dead code, use correct
96 type when inserting argument.
97
98 * trans-intrinsic.c, trans-types.c: Update copyright years.
99
100 2005-01-16 Steven G. Kargl <kargls@comcast.net>
101
102 PR 19168
103 * resolve.c (check_case_overlap): Typo in comment.
104 (validate_case_label_expr): Fix up kinds of case values
105 (resolve_select): Properly handle kind mismatches.
106
107 2004-01-16 Paul Brook <paul@codesourcery.com>
108
109 PR fortran/17675
110 * trans-common.c (translate_common): Remove duplicate function call.
111 (finish_equivalences): Preserve alignment when biasing offsets.
112
113 2005-01-15 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de
114
115 * primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
116 ASCII-like character encoding.
117
118 2005-01-14 Steven G. Kargl <kargls@comcast.net>
119
120 * resolve.c (compare_case): Cleanup.
121
122 2005-01-14 Steven G. Kargl <kargls@comcast.net>
123
124 * resolve.c (compare_case): Give arguments correct type.
125
126 2005-01-13 Kazu Hirata <kazu@cs.umass.edu>
127
128 * iresolve.c, trans-common.c, trans-types.c: Fix comment
129 typos.
130
131 2005-01-09 Paul Brook <paul@codesourcery.com>
132
133 PR fortran/17675
134 * trans-common.c (current_common, current_offset): Remove.
135 (create_common): Add head argument.
136 (align_segment): New function.
137 (apply_segment_offset): New function.
138 (translate_common): Merge code from new_segment. Handle alignment.
139 (new_segment): Remove.
140 (finish_equivalences): Ensure proper alignment.
141
142 2005-01-08 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
143
144 * trans-const.c: Don't include unused math.h.
145
146 * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
147 gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
148 gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
149 trailing whitespace.
150 (prepare_arg_info): Fix formatting, indenting and remove trailing
151 whitespace.
152 (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
153 trailing whitespace.
154
155 * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
156 gfc_constant_result, gfc_range_check, gfc_arith_power,
157 eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
158 gfc_real2complex, gfc_complex2int, gfc_complex2real,
159 gfc_complex2complex): Fix whitespace issues.
160 * check.c (must_be, type_check, numeric_check, int_or_real_check,
161 logical_array_check, array_check, scalar_check, nonoptional_check,
162 variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
163 gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
164 gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
165 gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
166 gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
167 gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
168 gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
169 gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
170 gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
171 gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
172 gfc_check_lbound, gfc_check_logical, min_max_args,
173 gfc_check_min_max_integer, gfc_check_min_max_real,
174 gfc_check_min_max_double, gfc_check_matmul,
175 gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
176 gfc_check_pack, gfc_check_precision, gfc_check_radix,
177 gfc_check_range, gfc_check_real, gfc_check_repeat,
178 gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
179 gfc_check_set_exponent): Fix formatting issues.
180 (gfc_check_size, gfc_check_sign): Alphabetize function order,
181 remove whitespace-only line.
182 (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
183 gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
184 gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
185 gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
186 gfc_check_random_number, gfc_check_random_seed,
187 gfc_check_second_sub, gfc_check_system_clock,
188 gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
189 gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
190 gfc_check_unlink_sub): Fix formatting issues.
191
192 2005-01-08 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
193
194 * gfortran.h: Remove outdated comment. Don't include stdio.h
195 explicitly.
196
197 2005-01-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
198
199 * gfortranspec.c (lang_specific_driver): Change year to 2005 in
200 output of 'gfortran --version'.
201
202 2005-01-03 Steven G. Kargl <kargls@comcast.net>
203
204 * arith.c: Add system.h; remove string.h
205 * decl.c: Ditto
206 * matchexp.c: Ditto
207 * parse.c: Ditto
208 * resolve.c: Ditto
209 * st.c: Ditto
210 * check.c: Remove stdlib.h and stdarg.h
211 * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
212 * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
213 * f95-lang.c: Add system.h; remove stdio.h
214 * interface.c: Add system.h; remove stdlib.h and string.h
215 * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
216 * io.c: Remove string.h
217 * simplify.c: Ditto
218 * match.c: Remove stdarg.h and string.h
219 * misc.c: Update copyright; add system.h; remove stdlib.h,
220 string.h, and sys/stat.h
221 * module.c: Add system.h; remove string.h, stdio.h, errno.h,
222 unistd.h, and time.h
223 * option.c: Remove string.h and stdlib.h
224 * primary.c: Ditto
225 * scanner.c: Update copyright; add system.h; remove stdlib.h,
226 stdio.h, string.h, and strings.h
227 * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
228 * trans-array.c: Remove stdio.h and gmp.h
229 * trans-const.c: Ditto
230 * trans-expr.c: Ditto
231 * trans-io.c: Ditto
232 * trans-stmt.c: Ditto
233 * trans.c: Ditto
234 * trans-intrinsic.c: Remove stdio.h and string.h
235
236 2004-12-29 Steven G. Kargl <kargls@comcast.net>
237
238 * gfortran.h (gfc_case): fix typo in comment.
239
240 2004-12-27 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
241
242 * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
243 logical shift. Call fold. Remove 0-bit shift shortcut.
244 (gfc_conv_intrinsic_ishftc): Convert first argument to at least
245 4 bytes bits. Convert 2nd and 3rd argument to 4 bytes. Convert
246 result if width(arg 1) < 4 bytes. Call fold.
247
248 PR fortran/19032
249 * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
250 in front of function to match the standard. Correct handling
251 of MODULO.
252
253 2004-12-27 Andrew Pinski <pinskia@physics.uc.edu>
254
255 * trans-expr.c (gfc_conv_cst_int_power): Only check for
256 flag_unsafe_math_optimizations if we have a float type.
257
258 2004-12-23 Steven G. Kargl <kargls@comcast.net>
259
260 * gfortran.texi: Fix typo.
261
262 2004-12-16 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
263
264 * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
265 comment typo.
266
267 2004-12-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
268
269 PR fortran/18993
270 * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
271 (gfc_match_nullify): Make sure that ')' is in front of the end of
272 statement.
273
274 * scanner.c (skip_fixed_comments): Fix typo in comment preceding
275 function.
276
277 2004-12-14 Richard Henderson <rth@redhat.com>
278
279 * gfortran.h (gfc_expr.function.name): Make const.
280 (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
281 (gfc_get_string): Update prototype.
282 * iresolve.c: Include tree.h.
283 (string_node, HASH_SIZE, string_head, hash): Remove.
284 (gfc_get_string): Use vsnprintf, get_identifier.
285 (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
286 * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
287 (gfc_done_1): Don't call gfc_iresolve_done_1.
288 * module.c (mio_allocated_string): Take and return const char *,
289 instead of modifying char**.
290 (mio_expr): Update to match.
291 * resolve.c (pure_function): Constify name argument.
292 (resolve_function): Constify name.
293 * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
294
295 2004-12-12 Richard Henderson <rth@redhat.com>
296
297 * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
298 gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
299 gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
300 gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
301 gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
302 gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
303 gfc_resolve_unpack: Use PREFIX.
304
305 2004-12-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
306
307 PR fortran/18869
308 * match.c (gfc_match_common): Skip whitespace.
309
310 2004-12-12 Steven G. Kargl <kargls@comcast.net>
311
312 PR fortran/16581
313 * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
314 gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
315 integer kind check; Issue error for -std=f95 when needed.
316 * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
317 GFC_STD_F95.
318 * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
319 Promote arguments to same kind.
320
321 2004-12-12 Steven G. Kargl <kargls@comcast.net>
322 Paul Brook <paul@codesourcery.com>
323
324 PR fortran/16222
325 * resolve.c (gfc_resolve_iterator_expr): New function.
326 (gfc_resolve_iterator): Use it. Add real_ok argument. Convert
327 start, end and stride to correct type.
328 (resolve_code): Pass extra argument.
329 * array.c (resolve_array_list): Pass extra argument.
330 * gfortran.h (gfc_resolve): Add prototype.
331 * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
332 Handle real type iterators.
333
334 2004-12-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
335
336 PR fortran/17175
337 * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
338 same kind as C's 'int'.
339 (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
340
341 2004-12-08 Richard Henderson <rth@redhat.com>
342
343 * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
344 to the output expression.
345 * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
346 warning conversion.
347 (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
348 to index kind.
349
350 2004-12-08 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
351
352 PR fortran/18826
353 * resolve.c (resolve_code): Impose correct restrictions on
354 assigned variable.
355
356 * decl.c (gfc_match_end): Use locus of END when eos is an error.
357
358 2004-12-02 Steven G. Kargl <kargls@comcast.net>
359 Paul Brook <paul@codesourcery.com>
360
361 * check.c (gfc_check_flush, gfc_check_fnum): New functions.
362 (gfc_check_fstat, gfc_check_fstat_sub): New functions.
363 (gfc_check_stat, gfc_check_stat_sub): New functions.
364 * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
365 * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
366 fstat, and stat to intrinsics symbol tables.
367 * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
368 (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
369 * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
370 (gfc_resolve_stat, gfc_resolve_flush): New functions.
371 (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
372 * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
373
374 2004-12-02 Steven G. Kargl <kargls@comcast.net>
375
376 * intrinsic.c: Fix and add comments, fix function declarations
377 (OPTIONAL,REQUIRED): New symbols
378 (add_functions,add_subroutines): Use symbols
379 (gmp.h): Remove unused include
380
381 2004-11-25 Joseph S. Myers <joseph@codesourcery.com>
382
383 * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
384 in diagnostics.
385
386 2004-11-24 Steven Bosscher <stevenb@suse.de>
387
388 * options.c (gfc_post_options): Don't clear flag_inline_functions.
389
390 2004-11-20 Steven G. Kargl <kargls@comcast.net>
391
392 * check.c (gfc_check_getcwd_sub): Fix seg fault.
393
394 * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
395 gfc_check_unlink,gfc_check_unlink_sub): New functions
396 * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
397 * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
398 exit to intrinsics symbol tables.
399 * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
400 gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
401 gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
402 gfc_resolve_unlink_sub): Add and sort prototypes.
403 * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
404 gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
405 * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
406
407 2004-11-16 Paul Brook <paul@codesourcery.com>
408
409 PR fortran/13010
410 * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
411 (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
412 * trans-types.c (gfc_get_dtype): Accept array type rather than element
413 type.
414 (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
415 (gfc_get_array_type_bounds): Ditto.
416 (gfc_get_derived_type): Recurse into derived type pointers.
417 * trans-types.h (gfc_get_dtype): Add prototype.
418 * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
419
420 2004-11-15 Paul Brook <paul@codesourcery.com>
421
422 * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
423
424 2004-11-10 Paul Brook <paul@codesourcery.com>
425
426 PR fortran/18375
427 * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
428 * trans-io.c (transfer_array_component): Ditto.
429
430 2004-11-10 Paul Brook <paul@codesourcery.com>
431
432 * invoke.texi: Fix typo.
433
434 2004-11-08 Kazu Hirata <kazu@cs.umass.edu>
435
436 * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
437 gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
438 module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
439 trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
440 trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
441
442 2004-11-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
443
444 PR fortran/18023
445 * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
446
447 2004-11-06 Kazu Hirata <kazu@cs.umass.edu>
448
449 * gfortranspec.c: Replace GNU CC with GCC.
450
451 2004-11-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
452
453 * gfortranspec.c (lang_specific_driver): Change year to 2004.
454
455 2004-11-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
456
457 PR fortran/18111
458 * trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
459 hidden parameters.
460
461 2004-11-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
462
463 PR fortran/15164
464 * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
465 module procedures as if they were module variables.
466
467 2004-11-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
468
469 PR fortran/17535
470 PR fortran/17583
471 PR fortran/17713
472 * module.c (write_symbol1): Set module_name for dummy arguments.
473
474 2004-11-02 Paul Brook <paul@codesourcery.com>
475
476 * intrinsic.c (check_intrinsic_standard): Include error locus.
477 Remove VLA.
478 (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
479 locus to check_intrinsic_standard.
480
481 2004-10-31 Janne Blomqvist <jblomqvi@cc.hut.fi>
482
483 PR fortran/17590
484 * gfortran.h: Change GFC_STD_* flags to more appropriate
485 ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
486 gfc_option_t): Add field for warning about use of nonstandard
487 intrinsics.
488 * intrinsic.c (add_sym): Add parameter for standard version, check
489 this against current standard.
490 (add_sym_0): Pass standard parameter to add_sym.
491 (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
492 (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
493 (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
494 (make_generic): Add parameter for standard, check this
495 against currently selected standard.
496 (add_functions, add_subroutines): Add parameter to tell which
497 standard an intrinsic belongs to.
498 (check_intrinsic_standard): New function.
499 (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
500 (gfc_intrinsic_sub_interface): Ditto.
501 * lang.opt: Add Wnonstd-intrinsics option.
502 * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
503 init new warning.
504 (set_Wall): Add warning about nonstd intrinsics.
505 (gfc_handle_option): Change to use new GFC_STD_* flags,
506 handle new warning.
507 * invoke.texi: Update manual to include -Wnonstd-intrinsics.
508
509 2004-10-30 Andrew Pinski <pinskia@physics.uc.edu>
510
511 * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
512
513 2004-10-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
514
515 * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
516
517 2004-10-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
518
519 * trans.c (gfc_trans_code): Set global locus after recursing. Fix
520 comment typo.
521
522 2004-10-30 Canqun Yang <canqun@nudt.edu.cn>
523
524 * check.c (gfc_check_rand): Allow missing optional argument.
525 (gfc_check_irand): Ditto.
526 * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
527
528 2004-10-28 Scott Robert Ladd <scott.ladd@coyotegulch.com>
529
530 PR fortran/13490, PR fortran/17912
531 * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
532 * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
533 * gcc/fortran/arith.c: Added support for an "asymmetric integer"
534 warning when compiling with pedantic.
535 * gcc/fortran/arith.c: Set minimum integer values to reflect
536 realities of two's complement signed integers. Added
537 pedantic minimum.
538
539 2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
540
541 * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
542 (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
543 link it in.
544
545 2004-10-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
546
547 * trans-decl.c (generate_local_decl): Simplify logic, fix comment
548 typo.
549 (gfc_generate_function_code): Fix formatting issue.
550
551 2004-10-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
552
553 * module.c: Fix formatting issues.
554
555 2004-10-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
556
557 * module.c (mio_interface_rest): Set where member of interface
558 while loading.
559
560 2004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
561
562 PR fortran/17901
563 * options.c (gfc_handle_option): Add break after handing the
564 J/M option.
565
566 2004-10-08 Tobias Schlueter <tobias.shclueter@physik.uni-muenchen.de>
567
568 * arith.c: Fix formatting issues.
569
570 2004-10-07 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
571
572 PR fortran/17676
573 * resolve.c (resolve_operator): Use correct operator name in message.
574
575 2004-10-07 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
576
577 * primary.c (match_boz_constant): Allow kind parameter suffixes.
578 Move standard warning further to the front.
579
580 2004-10-07 Kazu Hirata <kazu@cs.umass.edu>
581
582 * trans-stmt.c: Fix a comment typo.
583
584 2004-10-07 Paul Brook <paul@codesourcery.com>
585
586 PR fortran/17678
587 * trans-array.c (gfc_trans_deferred_array): Leave use associated
588 variables alone.
589
590 2004-10-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
591
592 PR fortran/17568
593 * simplify.c (twos_complement): New function.
594 (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
595
596 * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
597
598 2004-10-06 Paul Brook <paul@codesourcery.com>
599
600 * trans-stmt.c (gfc_trans_simple_do): New function.
601 (gfc_trans_do): Use it. Evaluate iteration bounds before entering
602 loop. Update comments.
603
604 2004-10-04 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
605
606 PR fortran/17283
607 * iresolve.c (gfc_resolve_pack): Choose function depending if mask
608 is scalar.
609
610 PR fortran/17631
611 * intrinsic.c (add_sym_5): Remove.
612 (add_subroutines): Add resolution function for MVBITS.
613 * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
614 MVBITS
615 * iresolve.c (gfc_resolve_mvbits): New function.
616 (gfc_resolve_random_number): Remove empty line at end of function.
617
618 * trans-const.c (gfc_build_cstring_const): New function.
619 (gfc_init_cst): Use new function.
620 * trans-const.h (gfc_build_cstring_const): Add prototype.
621 * trans-io.c (set_string, set_error_locus): Use new function.
622 * trans-stmt.c (gfc_trans_goto): Use new function.
623
624 PR fortran/17708
625 * parse.c (accept_statement): Don't treat END DO like END IF and
626 END SELECT.
627 (parse_do_block): Generate possible END DO label inside END DO
628 block.
629
630 PR fortran/17776
631 * check.c (gfc_check_system_sub): New function.
632 * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
633 * intrinsic.c (add_functions): Add 'system'.
634 (add_subroutines): Add 'system'.
635 * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
636 Move prototypes to other suborutines.
637 (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
638 Add prototype.
639 (gfc_resolve_system_clock): Fix formatting of prototype.
640 * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
641 functions.
642 * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
643 GFC_ISYM_SYSTEM.
644
645 2004-10-04 Erik Schnetter <schnetter@aei.mpg.de>
646
647 * scanner.c (preprocessor_line): Accept preprocessor lines without
648 file names. Check file names for closing quotes. Handle escaped
649 quotes in file names.
650
651 2004-10-04 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
652 Paul Brook <paul@codesourcery.com>
653
654 * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
655 Use gfc_get_expr_charlen.
656 * trans-expr.c (gfc_get_expr_charlen): New function.
657 * trans.h (gfc_get_expr_charlen): Add prototype.
658
659 2004-10-04 Kazu Hirata <kazu@cs.umass.edu>
660
661 * trans-intrinsic.c: Fix a comment typo.
662
663 2004-10-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
664
665 * simplify.c (range_check): Remove blank line at beginning of function.
666 (gfc_simplify_dint): Same at end of function.
667 (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
668 (gfc_simplify_bound): Fix indentation.
669 (gfc_simplify_log10): Simplify calculation.
670 (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
671 of function.
672 (gfc_simplify_nearest): Same at end of function.
673 (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
674 function.
675 (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
676 gfc_simplify_spacing): Simplify calulations.
677
678 2004-10-03 Feng Wang <fengwang@nudt.edu.cn>
679
680 * trans-intrinsic.c: Fix comments on spacing and rrspacing
681 (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
682
683 2004-10-01 Jan Hubicka <jh@suse.cz>
684
685 * f95-lang.c (gfc_expand_function): Update call of
686 tree_rest_of_compilation.
687 * trans-decl.c (gfc_generate_constructors): Likewise.
688
689 2004-09-26 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
690
691 * trans-intrinsic.c: Comment fixes.
692
693 2004-09-25 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
694
695 * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
696
697 2004-09-24 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
698
699 * trans-types.c (gfc_return_by_reference): Remove superfluous
700 assertion.
701
702 * intrinsic.h (gfc_resolve_getcwd): Update prototype.
703 * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
704
705 PR fortran/17615
706 * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
707 function to determine return type.
708
709 2004-09-20 Jan Hubicka <jh@suse.cz>
710
711 * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
712 tree.
713 (gfc_generate_function_code): Likewise.
714
715 2004-09-20 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
716
717 PR fortran/15957
718 * simplify.c (gfc_simplify_reshape): Set shape of return value
719 correctly.
720
721 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
722 Zack Weinberg <zack@codesourcery.com>
723
724 * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
725 enumeration constants.
726
727 2004-09-17 Paul Brook <paul@codesourcery.com>
728
729 * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
730 (gfc_linebuf_header_size): Define.
731 * scanner.c (load_file): Use it.
732
733 2004-09-16 Kazu Hirata <kazu@cs.umass.edu>
734
735 * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
736 interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
737 resolve.c, scanner.c, trans-array.c, trans-array.h,
738 trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
739 trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
740 trans.h: Fix comment typos. Follow spelling conventions.
741
742 2004-09-16 Victor Leikehman <lei@il.ibm.com>
743
744 PR/15364
745 * trans-io.c (transfer_array_component): New function.
746 (transfer_expr): For array fields, call transfer_array_component.
747
748 2004-09-16 Kazu Hirata <kazu@cs.umass.edu>
749
750 * gfortran.texi: Fix a typo.
751
752 2004-09-15 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
753
754 * parse.c (eof_buf): Rename eof to eof_buf.
755 (unexpected_eof): Same.
756 (gfc_parse_file): Same.
757
758 2004-09-15 Steven G. Kargl <kargls@comcast.net>
759
760 * check.c (gfc_check_getcwd_sub): New function.
761 * gfortran.h (GFC_ISYM_GETCWD): New symbol.
762 * intrinsic.c (add_functions): Add function definition;
763 Use symbol.
764 * intrinsic.c (add_subroutines): Add subroutine definitions.
765 * intrinsic.h: Add prototypes.
766 * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
767 New functions.
768 * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
769
770 2004-09-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
771
772 PR fortran/16485
773 * module.c (write_symbol): Don't fill in module name here.
774 (write_symbol0): Fill in here instead.
775
776 2004-09-14 Kazu Hirata <kazu@cs.umass.edu>
777
778 * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
779 trans-array.c, trans-common.c, trans-expr.c,
780 trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
781 comment typos. Follow spelling conventions.
782
783 2004-09-09 Paul Brook <paul@codesourcery.com>
784
785 * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
786
787 2004-09-08 Paul Brook <paul@codesourcery.com>
788
789 * array.c: Don't include assert.h.
790 * data.c: Don't include assert.h. Replace assert and abort with
791 gcc_assert and gcc_unreachable.
792 * dependency.c: Ditto.
793 * f95-lang.c: Ditto.
794 * iresolve.c: Ditto.
795 * resolve.c: Ditto.
796 * simplify.c: Ditto.
797 * symbol.c: Ditto.
798 * trans-array.c: Ditto.
799 * trans-common.c: Ditto.
800 * trans-const.c: Ditto.
801 * trans-decl.c: Ditto.
802 * trans-expr.c: Ditto.
803 * trans-intrinsic.c: Ditto.
804 * trans-io.c: Ditto.
805 * trans-stmt.c: Ditto.
806 * trans-types.c: Ditto.
807 * trans.c: Ditto.
808
809 2004-09-07 Per Bothner <per@bothner.com>
810 Paul Brook <paul@codesourcery.com>
811
812 * error.c (show_locus): Handle mapped locations.
813 * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
814 * gfortran.h: Include input.h.
815 (struct gfc_linebuf): Use source_location.
816 * scanner.c (get_file): Initialize linemap.
817 (preprocessor_line): Pass extra argument to get_file.
818 (load_file): Ditto. Setup linemap.
819 (gfc_new_file): Handle mapped locations.
820 * trans-common.c (build_field, build_equiv_decl, build_common_decl):
821 Set decl source locations.
822 (gfc_trans_common): Set blank common block location.
823 * trans-decl.c (gfc_set_decl_location): New function.
824 (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
825 (trans_function_start): Move call to gfc_set_backend_locus..
826 (build_function_decl): ... to here.
827 (build_entry_thunks): Set and restore the backend locus.
828 (gfc_generate_constructors): Remove excess arguments to
829 init_function_start.
830 (gfc_generate_block_data): Add comments. Set the decl locus.
831 * trans-io.c (set_error_locus): Handle mapped locations.
832 * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
833 (gfc_trans_code): Use SET_EXPR_LOCATION.
834 (gfc_generate_code): Override the location of the new symbol.
835 * trans.h (gfc_set_decl_location): Add prototype.
836
837 2004-08-31 Paul Brook <paul@codesourcery.com>
838
839 * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
840
841 2004-09-01 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
842
843 PR fortran/15327
844 * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
845 strings.
846
847 2004-09-01 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
848
849 PR fortran/16400
850 PR fortran/16404
851 (port from g95)
852 * resolve.c (resolve_transfer): New function.
853 (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
854
855 2004-08-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
856
857 PR fortran/16579
858 * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
859 unsigned char.
860
861 2004-08-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
862
863 * CONTRIB, NEWS, README, TODO: Remove obsolete files.
864
865 2004-08-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
866
867 PR fortran/17244
868 * trans-types.c (gfc_return_by_reference): Remove TODO error,
869 add comment pointing out possible issue WRT compatibility with g77.
870
871 2004-08-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
872
873 * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
874 all occurences of 'gfc_strlen_type_node' by
875 'gfc_charlen_type_node'.
876 * trans-types.h: Same. Also update comment accordingly.
877
878 2004-08-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
879
880 * primary.c: Update copyright boilerplate to say GCC.
881 * f95-lang.c: Change initial comment to say gfortran.
882
883 2004-08-31 Paul Brook <paul@codesourcery.com>
884
885 * trans-types.h: Add comments.
886 (intmax_type_node, string_type_node, const_string_type_node): Remove.
887
888 2004-08-30 Richard Henderson <rth@redhat.com>
889
890 * Make-lang.in (fortran/f95-lang.o): Update dependencies.
891 (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
892 * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
893 c_long, c_long_long.
894 (gfc_logical_info): Add c_bool.
895 (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
896 * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
897 rather than gfc_int[48]_type_node for allocate choice.
898 * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
899 local copies of some kind type nodes.
900 (gfc_build_builtin_function_decls): Likewise.
901 * trans-expr.c (gfc_conv_power_op): Likewise.
902 * trans-intrinsic.c (gfc_conv_intrinsic_index,
903 gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
904 gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
905 * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
906 gfc_trans_character_select, gfc_trans_allocate): Likewise.
907 * trans-io.c (gfc_pint4_type_node): Move into ...
908 (gfc_build_io_library_fndecls): ... here. Cache local copies of
909 some kind type nodes.
910 * trans-types.c (gfc_type_nodes): Remove.
911 (gfc_character1_type_node, gfc_strlen_type_node): New.
912 (gfc_integer_types, gfc_logical_types): New.
913 (gfc_real_types, gfc_complex_types): New.
914 (gfc_init_kinds): Fill in real mode_precision.
915 (gfc_build_int_type, gfc_build_real_type): New.
916 (gfc_build_complex_type, gfc_build_logical_type): New.
917 (c_size_t_size): New.
918 (gfc_init_types): Loop over kinds.
919 (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
920 (gfc_get_complex_type, gfc_get_logical_type): Likewise.
921 (gfc_get_character_type_len): Likewise.
922 (gfc_type_for_size): Loop over kinds; use a reduced set of
923 unsigned type nodes.
924 (gfc_type_for_mode): Loop over kinds.
925 (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
926 (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
927 * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
928 F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
929 F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
930 F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
931 F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
932 F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
933 gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
934 gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
935 gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
936 gfc_complex8_type_node, gfc_complex16_type_node,
937 gfc_logical1_type_node, gfc_logical2_type_node,
938 gfc_logical4_type_node, gfc_logical8_type_node,
939 gfc_logical16_type_node, gfc_strlen_kind): Remove.
940 (gfc_character1_type_node): Turn in to a variable.
941 (gfc_strlen_type_node): Likewise.
942
943 2004-08-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
944
945 * gfortran.h (gfc_namespace): Add new field is_block_data.
946 * parse.c (accept_statement): Remove special handling for BLOCK DATA.
947 (parse_block_data): Record BLOCK DATA name, set is_block_data field.
948 * trans.c (gfc_generate_code): Handle BLOCK DATA units.
949 * trans.h (gfc_generate_block_data): Add prototype.
950 * trans-decl.c (gfc_generate_block_data): New function.
951
952 2004-08-29 Richard Henderson <rth@redhat.com>
953
954 * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
955 * trans-types.c (gfc_init_kinds): Reject integer kinds larger
956 than two HOST_WIDE_INT.
957
958 2004-08-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
959
960 PR fortran/13910
961 * decl.c (free_variable, free_value, gfc_free_data, var_list,
962 var_element, top_var_list, match_data_constant, top_val_list,
963 gfc_match_data): Move here from match.c.
964 (match_old_style_init): New function.
965 (variable_decl): Match old-style initialization.
966 * expr.c (gfc_get_variable_expr): New function.
967 * gfortran.h (gfc_get_variable_expr): Add prototype.
968 * gfortran.texi: Start documentation for supported extensions.
969 * match.c: Remove the functions moved to decl.c.
970 * match.h (gfc_match_data): Move prototype to under decl.c.
971 * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
972 comments.
973
974 2004-08-29 Steven G. Kargl <kargls@comcast.net>
975 Paul Brook <paul@codesourcery.com>
976
977 * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
978 * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
979 (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
980 (build_builtin_fntypes): New function.
981 (gfc_init_builtin_functions): Use it.
982 * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
983 and GFC_ISYM_ERF{,C}.
984 (gfc_c_int_kind): Declare.
985 * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
986 * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
987 gfc_resolve_g77_math1): Add prototypes.
988 * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
989 * mathbuiltins.def: Add comment. Change third argument. Use
990 DEFINE_MATH_BUILTIN_C. Add bessel and error functions.
991 * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
992 (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
993 * trans-types.c (gfc_c_int_kind): Declare.
994 (gfc_init_kinds): Set it.
995
996 2004-08-29 Steven G. Kargl <kargls@comcast.net>
997 Paul Brook <paul@codesourcery.com>
998
999 * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
1000 (gfc_check_f, gfc_simplify_f): Add f0.
1001 * intrinsic.c (do_check): Call f0. Flatten.
1002 (add_sym_0): Fix prototype. Set f0.
1003 (add_functions): Add getgid, getgid and getuid.
1004 (resolve_intrinsic): Remove obsolete comment.
1005 (do_simplify): Call f0.
1006 * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
1007 gfc_resolve_getuid): Add prototypes.
1008 * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
1009 gfc_resolve_getuid): New functions.
1010 * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
1011 GFC_ISYM_GET?ID.
1012
1013 2004-08-28 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1014
1015 * error.c (gfc_error_init_1): Remove blank line in front of
1016 function body. Add missing blank.
1017 (gfc_buffer_error, error_char, error_string): Remove blank line in
1018 front of function body.
1019 (show_locus): Add comma in comment.
1020 (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
1021 gfc_push_error, gfc_pop_error): Remove blank line in front of
1022 function body.
1023 (gfc_get_errors): Typo fix in comment in front of function. Remove
1024 blank line in front of function body.
1025
1026 2004-08-27 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1027
1028 * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
1029 variable declaration of same name.
1030 * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
1031 intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
1032 resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
1033 Replace all calls to gfc_default_*_kind with variable accesses.
1034 * trans-types.c: Same as above.
1035 (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
1036 static qualifier. Replace all occurences.
1037 (gfc_default_*_kind): Remove functions.
1038
1039 2004-08-26 Richard Henderson <rth@redhat.com>
1040
1041 * arith.c: Include system.h, not real system headers.
1042 (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
1043 DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
1044 GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
1045 GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
1046 (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
1047 gfc_index_integer_kind, gfc_default_integer_kind,
1048 gfc_default_real_kind,gfc_default_double_kind,
1049 gfc_default_character_kind, gfc_default_logical_kind,
1050 gfc_default_complex_kind, validate_integer, validate_real,
1051 validate_logical, validate_character,
1052 gfc_validate_kind): Move to trans-types.c.
1053 (gfc_set_model_kind): Use gfc_validate_kind.
1054 (gfc_set_model): Just copy the current precision to default.
1055 (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
1056 * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
1057 * gfortran.h: Update file commentary.
1058 * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
1059 (gfc_default_integer_kind_1, gfc_default_real_kind_1,
1060 gfc_default_double_kind_1, gfc_default_character_kind_1,
1061 gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
1062 (gfc_init_kinds): New.
1063 (gfc_init_types): Don't set gfc_index_integer_kind here.
1064 * trans-types.h (gfc_init_kinds): Declare.
1065 * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
1066
1067 2004-08-26 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1068
1069 * check.c (gfc_check_atan2): New function.
1070 * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
1071 * intrinsic.h (gfc_check_atan2): Add prototype.
1072
1073 2004-08-25 Richard Henderson <rth@redhat.com>
1074
1075 * arith.c (gfc_validate_kind): Add may_fail argument; abort if
1076 false and we don't validate the kind.
1077 (gfc_check_integer_range, gfc_check_real_range): Update to match.
1078 * check.c (kind_check): Likewise.
1079 * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
1080 (match_char_spec, match_logical_spec): Likewise.
1081 * gfortran.h (gfc_validate_kind): Likewise.
1082 * options.c (gfc_handle_option): Likewise.
1083 * primary.c (match_integer_constant, match_real_constant,
1084 match_string_constant, match_logical_constant,
1085 match_const_complex_part): Likewise.
1086 * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
1087 gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
1088 gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
1089 gfc_simplify_maxexponent, gfc_simplify_minexponent,
1090 gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
1091 gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
1092 gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
1093 gfc_simplify_tiny): Likewise.
1094 * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
1095 gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
1096 prepare_arg_info): Likewise.
1097
1098 2004-08-25 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1099
1100 * expr.c (gfc_check_assign): Add comment. Add new warning.
1101 * trans-expr.c (gfc_conv_function_call): Correctly dereference
1102 result of pointer valued function when not in pointer assignment.
1103
1104 2004-08-25 Paul Brook <paul@codesourcery.com>
1105
1106 * config-lang.in: Remove dead commented line.
1107 * module.c: Replace g95 with gfortran in comment.
1108
1109 2004-08-25 Paul Brook <paul@codesourcery.com>
1110
1111 PR fortran/17190
1112 * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
1113
1114 2004-08-25 Paul Brook <paul@codesourcery.com>
1115
1116 PR fortran/17144
1117 * trans-array.c (gfc_trans_allocate_temp_array): Remove
1118 string_length argument.
1119 (gfc_trans_array_ctor_element): New function.
1120 (gfc_trans_array_constructor_subarray): Use it.
1121 (gfc_trans_array_constructor_value): Ditto. Handle constant
1122 character arrays.
1123 (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
1124 (gfc_trans_array_constructor): Use them.
1125 (gfc_add_loop_ss_code): Update to new gfc_ss layout.
1126 (gfc_conv_ss_descriptor): Remember section string length.
1127 (gfc_conv_scalarized_array_ref): Ditto. Remove dead code.
1128 (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
1129 (gfc_conv_expr_descriptor): Ditto.
1130 (gfc_conv_loop_setup): Ditto. Spelling fixes.
1131 * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
1132 * trans-const.c (gfc_conv_constant): Update to new gfc_ss layout.
1133 * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
1134 (gfc_conv_variable): Set string_length from section.
1135 (gfc_conv_function_call): Remove extra argument.
1136 (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
1137 * trans-types.c (gfc_get_character_type_len): New function.
1138 (gfc_get_character_type): Use it.
1139 (gfc_get_dtype): Return zero for internal types.
1140 * trans-types.h (gfc_get_character_type_len): Add prototype.
1141 * trans.h (struct gfc_ss): Move string_length out of union.
1142
1143 2004-08-25 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1144
1145 * trans.h (build2_v, build3_v): New macros.
1146 (build_v): Remove.
1147 * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
1148 build.
1149 * trans-array.c (gfc_conv_descriptor_data,
1150 gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
1151 gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
1152 gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
1153 gfc_trans_allocate_temp_array,
1154 gfc_trans_array_constructor_subarray,
1155 gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
1156 gfc_trans_array_bound_check, gfc_conv_array_index_offset,
1157 gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
1158 gfc_conv_array_ref, gfc_trans_preloop_setup,
1159 gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
1160 gfc_conv_loop_setup, gfc_array_init_size,
1161 gfc_conv_array_initializer, gfc_trans_array_bounds,
1162 gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
1163 gfc_conv_expr_descriptor, gfc_conv_array_parameter,
1164 gfc_trans_deferred_array): Use buildN and buildN_v macros instead
1165 of build and build_v as appropriate.
1166 * trans-common.c (create_common): Same.
1167 * trans-decl.c (gfc_trans_auto_character_variable,
1168 gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
1169 * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
1170 gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
1171 gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
1172 gfc_conv_expr_op, gfc_conv_function_call,
1173 gfc_trans_structure_assign): Same.
1174 * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
1175 gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
1176 gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
1177 gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
1178 gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
1179 gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
1180 gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
1181 gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
1182 gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
1183 gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
1184 gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
1185 gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
1186 gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
1187 gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
1188 gfc_conv_intrinsic_iargc): Same.
1189 * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
1190 set_flag, add_case, io_result, transfer_namelist_element,
1191 transfer_expr): Same.
1192 * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
1193 gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
1194 gfc_trans_integer_select, gfc_trans_logical_select,
1195 gfc_trans_character_select, gfc_trans_forall_loop,
1196 gfc_trans_nested_forall_loop, gfc_do_allocate,
1197 generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
1198 compute_inner_temp_size, compute_overall_iter_number,
1199 allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
1200 gfc_trans_forall_1, gfc_evaluate_where_mask,
1201 gfc_trans_where_assign, gfc_trans_allocate): Same.
1202 * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
1203 * trans.c (gfc_add_modify_expr, gfc_finish_block,
1204 gfc_build_array_ref, gfc_build_function_call,
1205 gfc_trans_runtime_check): Same.
1206
1207 2004-08-25 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1208
1209 * trans-const.c (gfc_conv_mpz_to_tree): Change call to
1210 build_int_cst to build_int_cst_wide in accordance to Nathan's
1211 previous patch.
1212
1213 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
1214
1215 * trans-array.c (gfc_trans_array_constructor_value): Adjust
1216 build_int_cst calls.
1217 * trans-const.c (gfc_build_string_const, gfc_init_constants,
1218 gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
1219 * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
1220 gfc_trans_entry_master_switch): Likewise.
1221 * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
1222 gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
1223 * trans-io.c (add_case, set_error_locus,
1224 transfer_namelist_element, transfer_expr): Likewise.
1225 * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
1226 gfc_trans_stop, gfc_trans_character_select): Likewise.
1227 * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
1228 * trans.c (gfc_trans_runtime_check): Likewise.
1229
1230 2004-08-24 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1231
1232 * trans-decl.c, trans-types.c: Add and remove blank lines as
1233 required.
1234
1235 2004-08-24 Richard Henderson <rth@redhat.com>
1236
1237 * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
1238
1239 2004-08-24 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1240
1241 * resolve.c (merge_argument_lists): Revert unintentionally
1242 committed change.
1243
1244 2004-08-24 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1245
1246 * trans-decl.c (build_function_decl): Fix spelling in comment.
1247 (build_entry_thunks): Remove code with no function.
1248 (gfc_build_intrinsic_function_decls): Remove empty line.
1249
1250 * resolve.c (resolve_entries): Fix a bunch of comment typos.
1251
1252 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
1253
1254 * f95-lang.c (gfc_init_decl_processing): Adjust
1255 build_common_tree_nodes call.
1256
1257 2004-08-24 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1258
1259 * trans-types.c: Spelling and formatting fixes.
1260
1261 2004-08-23 Richard Henderson <rth@redhat.com>
1262
1263 * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
1264 of going through an intermediate string. Fix 32/64 int/long bug.
1265
1266 2004-08-23 Eric Christopher <echristo@redhat.com>
1267
1268 * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
1269 usage. Use build_vector_type_for_mode for vector types.
1270
1271 2004-08-22 Richard Henderson <rth@redhat.com>
1272
1273 PR 13465
1274 * data.c (find_con_by_offset): Search ordered list; handle
1275 elements with repeat counts.
1276 (gfc_assign_data_value_range): New.
1277 * gfortran.h (struct gfc_data_value): Make repeat unsigned.
1278 (gfc_assign_data_value_range): Declare.
1279 * match.c (top_val_list): Extract repeat count into a temporary.
1280 * resolve.c (values): Make left unsigned.
1281 (next_data_value): Don't decrement left.
1282 (check_data_variable): Use gfc_assign_data_value_range.
1283
1284 2004-08-22 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1285
1286 * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
1287
1288 2004-08-22 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1289
1290 * check.c (gfc_check_reduction): Rename to ...
1291 (check_reduction): ... this. Make static. Don't check type of
1292 first argument.
1293 (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
1294 * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
1295 SUM to use new check functions.
1296 (check_specific): Change logic to call new functions.
1297 * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
1298 Add prototypes.
1299 (gfc_check_reduction): Remove prototype.
1300
1301 2004-08-20 Paul Brook <paul@codesourcery.com>
1302 Canqun Yang <canqun@nudt.edu.cn>
1303
1304 PR fortran/17077
1305 * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
1306 for automatic arrays.
1307 * trans-types.c (gfc_get_nodesc_array_type): Add comment.
1308
1309 2004-08-19 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1310 (Port from g95)
1311
1312 PR fortran/17074
1313 * match.c (match_simple_forall, match_simple_where): Forward-declare.
1314 (gfc_match_if): Order statement list alphabetically, add WHERE and
1315 FORALL, remove double PAUSE.
1316 (gfc_match_simple_where, match_forall_header,
1317 gfc_match_simple_forall): New functions.
1318 (gfc_match_forall): Use match_forall_header.
1319
1320 2004-08-19 Paul Brook <paul@codesourcery.com>
1321
1322 PR fortran/17091
1323 * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
1324 * symbol.c (gfc_clear_attr): Use memset.
1325
1326 2004-08-19 Paul Brook <paul@codesourcery.com>
1327
1328 PR fortran/14976
1329 PR fortran/16228
1330 * data.c (assign_substring_data_value): Remove.
1331 (create_character_intializer): New function.
1332 (gfc_assign_data_value): Track the typespec for the current
1333 subobject. Use create_character_intializer.
1334
1335 2004-08-19 Erik Schnetter <schnetter@aei.mpg.de>
1336
1337 PR fortran/16946
1338 * check.c (gfc_check_reduction): New function.
1339 (gfc_check_minval_maxval): Removed.
1340 (gfc_check_product): Removed.
1341 (gfc_check_sum): Removed.
1342 * intrinsic.h: Add/remove declarations for these.
1343 * gfortran.h: Add field f3red to union gfc_check_f.
1344 * intrinsic.c (add_sym_3red): New function.
1345 (add_functions): Register maxval, minval, product, and sum intrinsics
1346 through add_sym_3red.
1347 (check_specific): Handle f3red union field.
1348 * iresolve.c: Whitespace change.
1349
1350 2004-08-18 Paul Brook <paul@codesourcery.com>
1351
1352 * trans-types.c (gfc_sym_type): Use pointer types for optional args.
1353
1354 2004-08-18 Victor Leikehman <lei@il.ibm.com>
1355
1356 PR fortran/13278
1357 * trans-io.c (transfer_namelist_element): New. Recursively handle
1358 derived-type variables. Pass string lengths.
1359 (build_dt): Code moved to build_namelist, with some
1360 changes and additions.
1361 (gfc_build_io_library_fndecls): Declare the fifth
1362 argument in st_set_nml_var_char -- string_length.
1363
1364 2004-08-17 Paul Brook <paul@codesourcery.com>
1365 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1366
1367 PR fortran/13082
1368 * decl.c (get_proc_name): Update mystery comment.
1369 (gfc_match_entry): Check for errors earlier. Add entry point to list.
1370 * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
1371 * gfortran.h (symbol_attribute): Add entry_master. Document entry.
1372 (struct gfc_entry_list): Define.
1373 (gfc_get_entry_list): Define.
1374 (struct gfc_namespace): Add refs and entries.
1375 (enum gfc_exec_op): Add EXEC_ENTRY.
1376 (struct gfc_code): Add ext.entry.
1377 * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
1378 (mio_symbol_attribute): Don't save/reture addr->entry.
1379 (mio_namespace_ref): Refcount namespaces.
1380 * parse.c (accept_statement): Handle ST_ENTRY.
1381 (gfc_fixup_sibling_symbols): Mark symbol as referenced.
1382 (parse_contained): Fixup sibling references to entry points
1383 after parsing the procedure body.
1384 * resolve.c (resolve_contained_fntype): New function.
1385 (merge_argument_lists, resolve_entries): New functions.
1386 (resolve_contained_functions): Use them.
1387 (resolve_code): Handle EXEC_ENTRY.
1388 (gfc_resolve): Call resolve_entries.
1389 * st.c (gfc_free_statement): Handle EXEC_ENTRY.
1390 * symbol.c (gfc_get_namespace): Refcount namespaces.
1391 (gfc_free_namespace): Ditto.
1392 * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
1393 optional when multiple entry points are present.
1394 * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
1395 (gfc_get_extern_function_decl): Add assertion. Fix coment.
1396 (create_function_arglist, trans_function_start, build_entry_thunks):
1397 New functions.
1398 (gfc_build_function_decl): Rename ...
1399 (build_function_decl): ... to this.
1400 (gfc_create_function_decl): New function.
1401 (gfc_generate_contained_functions): Use it.
1402 (gfc_trans_entry_master_switch): New function.
1403 (gfc_generate_function_code): Use new functions.
1404 * trans-stmt.c (gfc_trans_entry): New function.
1405 * trans-stmt.h (gfc_trans_entry): Add prototype.
1406 * trans-types.c (gfc_get_function_type): Add entry point argument.
1407 * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
1408 (gfc_generate_module_code): Call gfc_create_function_decl.
1409 * trans.h (gfc_build_function_decl): Remove.
1410 (gfc_create_function_decl): Add prototype.
1411
1412 2004-08-15 Andrew Pinski <apinski@apple.com>
1413
1414 PR fortran/17030
1415 * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
1416 for cabs{,f} and copysign{,f}.
1417 * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
1418 (gfor_fndecl_math_cabs): Delete.
1419 (gfor_fndecl_math_sign4): Delete.
1420 (gfor_fndecl_math_sign8): Delete.
1421 (gfc_build_intrinsic_function_decls): Remove the
1422 initializing of cabs{,f} and copysign{,f} functions.
1423 * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
1424 instead of the functions definitions.
1425 (gfc_conv_intrinsic_sign): Likewise.
1426 * trans.h (gfor_fndecl_math_cabsf): Delete.
1427 (gfor_fndecl_math_cabs): Delete.
1428 (gfor_fndecl_math_sign4): Delete.
1429 (gfor_fndecl_math_sign8): Delete.
1430
1431 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
1432
1433 * trans-array.c (gfc_trans_array_constructor_value): Use
1434 build_int_cst.
1435 * trans-const.c (gfc_build_string_const,
1436 gfc_init_constants, gfc_conv_mpz_to_tree,
1437 gfc_conv_constant_to_tree): Likewise.
1438 * trans-decl.c (gfc_get_symbol_decl): Likewise.
1439 * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
1440 gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
1441 * trans-io.c (add_case, set_error_locus, build_dt,
1442 transfer_expr): Likewise.
1443 * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
1444 gfc_trans_stop, gfc_trans_character_select): Likewise.
1445 * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
1446 * trans.c (gfc_trans_runtime_check): Likewise.
1447
1448 2004-08-14 Paul Brook <paul@codesourcery.com>
1449
1450 * trans-decl.c (gfc_build_function_decl): Remove dead code.
1451
1452 2004-08-14 Paul Brook <paul@codesourcery.com>
1453
1454 * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
1455
1456 2004-08-13 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1457
1458 * gfortran.h: Add comments.
1459 * parse.c (parse_contained): Fix comment typo.
1460 * resolve.c (was_declared): Ditto.
1461 * symbol.c: Ditto.
1462
1463 2004-08-11 Paul Brook <paul@codeourcery.com>
1464
1465 PR fortran/16917
1466 * intrinsic.c (add_functions): Add dfloat as an alias for dble.
1467
1468 2004-08-10 Richard Henderson <rth@redhat.com>
1469
1470 * f95-lang.c (gfc_init_builtin_functions): Remove
1471 __builtin_stack_alloc, add __builtin_alloca.
1472 * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
1473 * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
1474
1475 2004-08-10 Paul Brook <paul@codesourcery.com>
1476
1477 * trans-io.c (transfer_expr): Handle pointters.
1478
1479 2004-08-10 Paul Brook <paul@codesourcery.com>
1480
1481 PR fortran/16919
1482 * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
1483 (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
1484 (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
1485 Handle GFC_SS_COMPONENT.
1486 (gfc_conv_ss_startstride): Ditto. Set ss->shape.
1487 (gfc_conv_loop_setup): Tweak commends. Remove dead code.
1488 Use ss->shape.
1489 (gfc_conv_array_initializer): Call specific initializer routines.
1490 * trans-expr.c (gfc_trans_structure_assign): New function.
1491 (gfc_trans_subarray_assign): New function.
1492 (gfc_trans_subcomponent_assign): New fucntion
1493 (gfc_conv_structure): Use them.
1494 * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
1495 (gfc_ss): Add shape.
1496
1497 2004-08-08 Victor Leikehman <lei@il.ibm.com>
1498
1499 * simplify.c (gfc_simplify_shape): Bugfix.
1500 * expr.c (gfc_copy_shape_excluding): New function.
1501 * gfortran.h (gfc_get_shape): Bugfix.
1502 (gfc_copy_shape_excluding): Added declaration.
1503 * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
1504 gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
1505 gfc_resolve_ubound, gfc_resolve_transpose): Added compile
1506 time resolution of shape.
1507
1508 2004-08-06 Janne Blomqvist <jblomqvi@cc.hut.fi>
1509
1510 * intrinsic.c (add_subroutines): Add getenv and
1511 get_environment_variable. (add_sym_5s): New function.
1512 * intrinsic.h (gfc_resolve_get_environment_variable): Add
1513 prototype.
1514 * iresolve.c (gfc_resolve_get_environment_variable): New
1515 function.
1516
1517 2004-08-06 Feng Wang <fengwang@nudt.edu.cn>
1518
1519 * f95-lang.c (gfc_init_builtin_functions): Fix the number of
1520 __builtin_pow[f] arguments.
1521
1522 2004-08-06 Steven G. Kargl <kargls@comcast.net>
1523
1524 * arith.c: Add #define for model numbers. Remove global GMP variables.
1525 (natural_logarithm,common_logarithm,exponential,sine,
1526 cosine,arctangent,hypercos,hypersine ): Remove.
1527 (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
1528 (arctangent2,gfc_arith_init_1,gfc_arith_done_1
1529 gfc_check_real_range, gfc_constant_result, gfc_range_check,
1530 gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
1531 gfc_arith_divide,complex_reciprocal,complex_pow_ui,
1532 gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
1533 gfc_convert_complex,gfc_int2real,gfc_int2complex,
1534 gfc_real2int,gfc_real2real,gfc_real2complex,
1535 gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
1536 to MPFR, use new functions.
1537 * arith.h: Remove extern global variables.
1538 (natural_logarithm,common_logarithm,exponential, sine, cosine,
1539 arctangent,hypercos,hypersine): Remove prototypes.
1540 (arctangent2): Update prototype from GMP to MPFR.
1541 (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
1542 * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
1543 * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
1544 * gfortran.h (GFC_REAL_BITS): Remove.
1545 (arith): Add ARITH_NAN.
1546 Include mpfr.h. Define GFC_RND_MODE.
1547 Rename GCC_GFORTRAN_H GFC_GFC_H.
1548 (gfc_expr): Convert GMP to MPFR.
1549 * module.c: Add arith.h, correct type in comment.
1550 (mio_gmp_real): Convert GMP to MPFR.
1551 (mio_expr): Use gfc_set_model_kind().
1552 * primary.c: Update copyright date with 2004.
1553 (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
1554 * simplify.c: Remove global GMP variables
1555 (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
1556 gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
1557 gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
1558 gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
1559 gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
1560 gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
1561 gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
1562 gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
1563 gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
1564 gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
1565 gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
1566 gfc_simplify_rrspacing,gfc_simplify_scale,
1567 gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
1568 gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
1569 gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
1570 gfc_simplify_init_1,gfc_simplify_done_1): Convert GMP to MPFR.
1571 Use new functions.
1572 * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
1573 gfc_conv_mpf_to_tree. Convert it to use MPFR
1574 (gfc_conv_constant_to_tree): Use it.
1575 * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
1576 * trans-intrinsic.c: Add arith.h, remove gmp.h
1577 (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
1578
1579 2004-08-06 Victor Leikehman <lei@il.ibm.com>
1580 Paul Brook <paul@codesourcery.com>
1581
1582 * trans-array.c (gfc_trans_allocate_array_storage,
1583 gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
1584 gfc_conv_loop_setup): For functions, if the shape of the result
1585 is not known in compile-time, generate an empty array descriptor for
1586 the result and let the callee to allocate the memory.
1587 (gfc_trans_dummy_array_bias): Do nothing for pointers.
1588 (gfc_conv_expr_descriptor): Use function return values directly.
1589 * trans-expr.c (gfc_conv_function_call): Always add byref call
1590 insn to pre chain.
1591 (gfc_trans_pointer_assignment): Add comments.
1592 (gfc_trans_arrayfunc_assign): Don't chain on expression.
1593
1594 2004-08-01 Roger Sayle <roger@eyesopen.com>
1595
1596 * options.c (gfc_init_options): Don't warn about the use GNU
1597 extensions by default.
1598 (gfc_post_options): Warn about GNU extensions with -pedantic.
1599 (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
1600
1601 2004-07-30 Richard Henderson <rth@redhat.com>
1602
1603 * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
1604 for TREE_CONSTANTs.
1605
1606 2004-07-25 Richard Henderson <rth@redhat.com>
1607
1608 * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
1609 and DECL_IGNORED_P on RESULT_DECL.
1610 (gfc_generate_constructors): Likewise.
1611
1612 2004-07-18 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1613
1614 PR fortran/16465
1615 * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
1616 options.
1617 (ffixed-line-length-80, ffixed-line-length-132): Remove.
1618 * options.c (gfc_handle_options): Deal with changed options.
1619 * scanner.c (load_line): Change second arg to 'char **',
1620 allocate if pointing to NULL. Keep track of buffer's length.
1621 Adapt buffer size to overlong lines. Pad lines to full length
1622 in fixed form.
1623 (load_file): Adapt to new interface of load_line.
1624
1625 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
1626
1627 * trans.h (builtin_function): Declare.
1628
1629 2004-07-16 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1630
1631 PR fortran/16404
1632 (parts ported from g95)
1633 * parse.h (gfc_state_data): New field do_variable.
1634 (gfc_check_do_variable): Add prototype.
1635 * parse.c (push_state): Initialize field 'do_variable'.
1636 (gfc_check_do_variable): New function.
1637 (parse_do_block): Remember do iterator variable.
1638 (parse_file): Initialize field 'do_variable'.
1639 * match.c (gfc_match_assignment, gfc_match_do,
1640 gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
1641 Add previously missing checks.
1642 (gfc_match_return): Reformat error message.
1643 * io.c (match_out_tag): New function.
1644 (match_open_element, match_close_element,
1645 match_file_element, match_dt_element): Call match_out_tag
1646 instead of match_vtag where appropriate.
1647 (match_io_iterator, match_io_element): Add missing check.
1648 (match_io): Reformat error message.
1649 (match_inquire_element): Call match_out_tag where appropriate.
1650
1651 * parse.c (gfc_check_do_variable): Fix error locus.
1652
1653 2004-07-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1654
1655 PR fortran/15129
1656 * trans-decl.c (gfc_build_function_decl): Create a new chardecl
1657 for every assumed length character dummy argument.
1658
1659 PR fortran/15140
1660 * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
1661
1662 PR fortran/13792
1663 * simplify.c (gfc_simplify_bound): Copy the bound expression.
1664
1665 2004-07-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1666
1667 PR fortran/15324
1668 * trans-array.c gfc_trans_g77_array,
1669 gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
1670 for assumed length characters.
1671 (gfc_conv_expr_descriptor): Set se->string_length if dealing
1672 with a character expression.
1673 (gfc_cvonv_array_parameter): Pass string length when passing
1674 character array according to g77 conventions.
1675
1676 2004-07-12 Paul Brook <paul@codesourcery.com>
1677
1678 * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
1679 * trans-array.c (gfc_trans_auto_array_allocation): Remove
1680 initialization code.
1681 * trans-common.c (create_common): Use gfc_conv_initializer.
1682 * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
1683 * trans-expr.c (gfc_conv_initializer): New function.
1684 (gfc_conv_structure): Use it.
1685 * trans.h (gfc_conv_initializer): Add prototype.
1686
1687 2004-07-11 Paul Brook <paul@codesourcery.com>
1688
1689 PR fortran/15986
1690 * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
1691 variables.
1692 (parse_contained): Mark contained symbols as referenced.
1693
1694 2004-07-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1695
1696 PR fortran/16455
1697 * module.c (gfc_dump_module, gfc_use_module): Print locus
1698 when opening of module file fails.
1699
1700 PR fortran/16404
1701 * io.c (match_io): Flag 'WRITE(...), ...' as extension.
1702
1703 PR fortran/16404
1704 * match.c (gfc_match_program): A program name is obligatory.
1705 (gfc_match_return): RETURN in main program is an extension.
1706 (gfc_match_block_data): A space is required before a block data
1707 name.
1708
1709 PR fortran/16433
1710 * primary.c (match_boz_constant): Call gfc_notify_std only if
1711 we actually have a non-standard boz-literal-constant.
1712
1713 PR fortran/15754
1714 * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
1715 warning if assigning NULL().
1716
1717 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
1718
1719 * f95-lang.c (set_block): Remove.
1720 (gfc_clear_binding_stack): New.
1721 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
1722 (struct binding_level): Remove block_created_by_back_end.
1723 (clear_binding_level): Likewise.
1724 (poplevel): Don't handle block_created_by_back_end.
1725
1726 2004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1727
1728 * trans-decl.c (gfc_create_module_variable): Nothing to do if
1729 symbol is in common, because we ...
1730 (gfc_generate_module_vars): Call gfc_trans_common.
1731
1732 2004-07-10 Paul Brook <paul@codesourcery.com>
1733
1734 * trans-array.c (gfc_build_null_descriptor): New function.
1735 (gfc_trans_static_array_pointer): Use it.
1736 * trans-array.h (gfc_build_null_descriptor): Add prototype.
1737 * trans-expr.c (gfc_conv_structure): Handle array pointers.
1738
1739 2004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1740
1741 PR fortran/16336
1742 * decl.c (gfc_match_save): Use-associated common block
1743 doesn't collide.
1744 * gfortran.h (gfc_common_head): Add new field 'name'.
1745 Fix typo in comment after #endif.
1746 * match.c (gfc_get_common): Add new argument from_common,
1747 mangle name if flag is set, fill in new field in structure
1748 gfc_common_head.
1749 (match_common): Set new arg in call to gfc_get_common,
1750 use-associated common block doesn't collide.
1751 * match.h (gfc_get_common): Adapt prototype.
1752 * module.c (load_commons): Set new arg in call to
1753 gfc_get_common.
1754 * symbol.c (free_common_tree): New function.
1755 (gfc_free_namespace): Call new function.
1756 * trans-common.c (several functions): Remove argument
1757 'name', use name from gfc_common_head instead.
1758
1759 2004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1760
1761 * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
1762 and RHS match. Return early if the RHS is NULL().
1763
1764 PR fortran/16336
1765 * match.c (match_common): Fix error reporting for used common.
1766
1767 PR fortran/15969
1768 * trans-expr.c (gfc_conv_structure): Handle initialization
1769 of scalar pointer components.
1770
1771 * parse.c (decode_statement): Fix matching of BLOCK DATA.
1772
1773 * trans-decl.c (generate_local_decl): Remove workaround obsoleted
1774 by fix for PR 15481.
1775
1776 2004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1777
1778 * trans-common.c: Fix whitespace issues, make variable names
1779 more readable.
1780 (create_common): Additionally, make loop logic more obvious.
1781
1782 2004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1783 Paul Brook <paul@codesourcery.com>
1784
1785 PR fortran/13415
1786 * trans-common.c (calculate_length): Remove ...
1787 (get_segment_info): Merge into here. Save field type.
1788 (build_field): Use saved type.
1789 (create_common, new_condition, new_segment, finish_equivalences):
1790 Use new get_segment_info.
1791 * trans-types.c: Update comment.
1792
1793 2004-07-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1794
1795 PR fortran/14077
1796 * moduele.c (mio_symbol): Don't I/O initial values unless
1797 symbol is a parameter.
1798
1799 2004-07-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1800
1801 PR fortran/13201
1802 * resolve.c (resolve_symbol): Verify that the shape of a
1803 parameter array is not only explicit, but also constant.
1804 * array.c (gfc_is_compile_time_shape): New function.
1805 * gfortran.h (gfc_is_compile_time_shape): Add prototype.
1806
1807 2004-07-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1808
1809 PR fortran/15481
1810 PR fortran/13372
1811 PR fortran/13575
1812 PR fortran/15978
1813 * module.c (write_symbol, write_symtree): Remove workaround.
1814 * primary.c (match_actual_arglist): Enhance comment.
1815 (gfc_match_rvalue): Handle function call with first argument
1816 a keyword argument correctly.
1817 * resolve.c (resolve_symbol): Change call to
1818 gfc_set_default_type to issue error if no implicit type
1819 can be found.
1820 * trans-decl.c (gfc_create_module_variable): Remove workaround.
1821
1822 2004-07-08 Paul Brook <paul@codesourcery.com>
1823
1824 * intrinsic.c (add_sym_4s): New function.
1825 (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
1826
1827 2004-07-04 Janne Blomqvist <jblomqvi@cc.hut.fi>
1828 Paul Brook <paul@codesourcery.com>
1829
1830 PR fortran/15280
1831 PR fortran/15665
1832 * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
1833 GFC_ISYM_COMMAND_ARGUMENT_COUNT.
1834 * intrinsic.c (add_functions): Identify iargc. Add
1835 command_argument_count.
1836 (add_subroutines): Resolve getarg. Add get_command and
1837 get_command_argument.
1838 * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
1839 gfc_resolve_get_command_argument): Add prototypes.
1840 * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
1841 gfc_resolve_get_command_argument): New functions.
1842 * trans-decl.c (gfor_fndecl_iargc): New variable.
1843 (gfc_build_intrinsic_function_decls): Set it.
1844 * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
1845 (gfc_conv_intrinsic_function): Use it.
1846 * trans.h (gfor_fndecl_iargc): Declare.
1847
1848 2004-07-04 Matthias Klose <doko@debian.org>
1849
1850 * Make-lang.in: Generate and install gfortran man page.
1851 * invoke.texi: Remove extra '@c man end'.
1852
1853 2004-07-04 Richard Henderson <rth@redhat.com>
1854
1855 * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
1856
1857 2004-07-04 Paul Brook <paul@codesourcery.com>
1858
1859 * decl.c (gfc_match_implicit_range): Don't use typespec.
1860 (gfc_match_implicit): Handle character selectors.
1861 * gfortran.h (gfc_set_implicit): Remove prototype.
1862 (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
1863 * parse.c (accept_statement): Don't call gfc_set_implicit.
1864 * symbol.c (new_ts): Remove.
1865 (gfc_set_implicit_none): Use same loop bounds as other functions.
1866 (gfc_set_implicit): Remove.
1867 (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
1868 (gfc_merge_new_implicit): Combine with gfc_set_implicit.
1869
1870 2004-06-30 Richard Henderson <rth@redhat.com>
1871
1872 * match.c (var_element): Remove unused variable.
1873
1874 * trans-decl.c (gfc_generate_function_code): Don't set
1875 x_whole_function_mode_p.
1876 (gfc_generate_constructors): Likewise.
1877
1878 2004-06-30 Richard Henderson <rth@redhat.com>
1879
1880 * trans-decl.c (gfc_generate_function_code): Don't set
1881 immediate_size_expand.
1882 (gfc_generate_constructors): Likewise.
1883
1884 2004-06-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1885
1886 PR fortran/16161
1887 * decl.c (gfc_match_type_spec): Rename second argument to
1888 'implicit_flag', reverse meaning. Don't match_char_spec if
1889 'implicit_flag' is set. Rename to ...
1890 (match_type_spec): ... this.
1891 (gfc_match_implicit_none, match_implicit_range): Move here
1892 from match.c.
1893 (gfc_match_implicit): Move here from match.c, try to
1894 match_char_len if match_implicit_range doesn't succeed for
1895 CHARACTER implicits. Call renamed fucntion match_type_spec.
1896 (gfc_match_data_decl, match_prefix): Call renamed function
1897 match_type_spec.
1898 * match.c (gfc_match_implicit_none, match_implicit_range,
1899 gfc_match_implicit): Move to decl.c.
1900 * match.h (gfc_match_implicit_none, gfc_match_implicit):
1901 Move protoypes to section 'decl.c'.
1902 (gfc_match_type_spec): Remove prototype.
1903
1904 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1905
1906 * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
1907 copyright years.
1908
1909 2004-06-29 Steven Bosscher <stevenb@suse.de>
1910
1911 Make sure types in assignments are compatible. Mostly mechanical.
1912 * trans-const.h (gfc_index_one_node): New define.
1913 * trans-array.c (gfc_trans_allocate_array_storage,
1914 gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
1915 gfc_trans_array_constructor_value, gfc_trans_array_constructor,
1916 gfc_conv_array_ubound, gfc_conv_array_ref,
1917 gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
1918 gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
1919 gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
1920 gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
1921 types in assignments, conversions and conditionals for expressions.
1922 * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
1923 gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
1924 gfc_conv_function_call, gfc_trans_pointer_assignment,
1925 gfc_trans_scalar_assign): Likewise.
1926 * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
1927 gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
1928 gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
1929 gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
1930 gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
1931 gfc_conv_allocated, gfc_conv_associated,
1932 gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
1933 * trans-io.c (set_string): Likewise.
1934 * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
1935 gfc_do_allocate, generate_loop_for_temp_to_lhs,
1936 generate_loop_for_rhs_to_temp, compute_inner_temp_size,
1937 compute_overall_iter_number, gfc_trans_assign_need_temp,
1938 gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
1939 gfc_evaluate_where_mask, gfc_trans_where_assign,
1940 gfc_trans_where_2): Likewise.
1941 * trans-types.c (gfc_get_character_type, gfc_build_array_type,
1942 gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
1943
1944 * trans.c (gfc_add_modify_expr): Add sanity check that types
1945 for the lhs and rhs are the same for scalar assignments.
1946
1947 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1948
1949 * dump-parse-tree.c (show_common): New function.
1950 (gfc_show_namespace): Show commons.
1951
1952 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1953 Andrew Vaught <andyv@firstinter.net>
1954
1955 PR fortran/13249
1956 PR fortran/15481
1957 * decl.c (gfc_match_save): Adapt to new common structures,
1958 don't allow saving USE-associated common.
1959 * dump-parse-tree (gfc_show_attr): (saved_)common are not
1960 symbol attributes any longer.
1961 (gfc_show_symbol): Don't show old-style commons any longer.
1962 (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
1963 interface.
1964 * gfortran.h (symbol_attribute): Remove common and saved_common
1965 attributes.
1966 (gfc_symbol): Remove common_head element.
1967 (gfc_common_head): New struct.
1968 (gfc_get_common_head): New macro.
1969 (gfc_symtree): Add field 'common' to union.
1970 (gfc_namespace): Add field 'common_root'; change type of field
1971 'blank_common' to blank_common.
1972 (gfc_add_data): New prototype.
1973 (gfc_traverse_symtree): Expect a symtree as first argument
1974 instead of namespace.
1975 * match.c (gfc_get_common): New function.
1976 (match_common_name): Change to take char * as argument, adapt,
1977 fix bug with empty name.
1978 (gfc_match_common): Adapt to new data structures. Disallow
1979 redeclaration of USE-associated COMMON-block. Fix bug with
1980 empty common.
1981 (var_element): Adapt to new common structures.
1982 * match.h (gfc_get_common): Declare.
1983 * module.c: Add 2004 to copyright years, add commons to module
1984 file layout description.
1985 (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
1986 for removed attributes.
1987 (mio_symbol): Adapt to new way of storing common relations.
1988 (load_commons): New function.
1989 (read_module): Skip common list on first pass, load_commons at
1990 second.
1991 (write_commons): New function.
1992 (write_module): Call write_commons().
1993 * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
1994 functions related to removed attributes.
1995 (gfc_add_data): New function.
1996 (gfc_clear_attr): Don't set removed attributes.
1997 (gfc_copy_attr): Don't copy removed attributes.
1998 (traverse_symtree): Remove.
1999 (gfc_traverse_symtree): Don't traverse symbol
2000 tree of the passed namespace, but require a symtree to be passed
2001 instead. Unify with traverse_symtree.
2002 (gfc_traverse_ns): Call gfc_traverse_symtree according to new
2003 interface.
2004 (save_symbol): Remove setting of removed attribute.
2005 * trans-common.c (gfc_sym_mangled_common_id): Change to
2006 take 'char *' argument instead of 'gfc_symbol'.
2007 (build_common_decl, new_segment, translate_common): Adapt to new
2008 data structures, add new
2009 argument name.
2010 (create_common): Adapt to new data structures, add new
2011 argument name. Fix typo in intialization of derived types.
2012 (finish_equivalences): Add second argument in call to
2013 create_common.
2014 (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
2015 (gfc_trans_common): Adapt to new data structures.
2016 * trans-decl.c (gfc_create_module_variables): Remove test for
2017 removed attribute.
2018
2019 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2020
2021 * io.c: Add 2004 to copyright years.
2022
2023 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2024 Andrew Vaught <andyv@firstinter.net>
2025
2026 * gfortran.h (gfc_gsymbol): New typedef.
2027 (gfc_gsym_root): New variable.
2028 (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
2029 * parse.c (global_used): New function.
2030 (parse_block_data): Check for double empty BLOCK DATA,
2031 use global symbol table.
2032 (parse_module): Use global symbol table.
2033 (add_global_procedure, add_global_program): New functions.
2034 (gfc_parse_file): Use global symbol table.
2035 * symbol.c (gfc_gsym_root): New variable.
2036 (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
2037 functions.
2038
2039 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2040
2041 * module.c (mio_gmp_real): Correct writing of negative numbers.
2042
2043 2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2044
2045 PR fortran/15963
2046 * expr.c (check_intrinsic_op): Allow comparison of characters.
2047 Make logic easier.
2048
2049 2004-06-26 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2050 Andrew Vaught <andyv@firstinter.net>
2051
2052 * decl.c (contained_procedure): New function.
2053 (match_end): Verify correctness of END STATEMENT in
2054 all cases.
2055
2056 2004-06-26 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2057 Andrew Vaught <andyv@firstinter.net>
2058
2059 PR fortran/15190
2060 * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
2061 (decode_statement): Enforce required space in free-form.
2062
2063 2004-06-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2064
2065 * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
2066 * trans-array.c (gfc_conv_descriptor_data): Add operand
2067 for COMPONENT_REF.
2068 (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
2069 (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
2070 (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
2071 * trans-common.c (create_common): Likewise.
2072 * trans-expr.c (gfc_conv_component_ref): Likewise.
2073 * trans-io.c (set_parameter_value): Likewise.
2074 (set_parameter_ref, set_string, set_flag, io_result): Likewise.
2075 (transfer_expr): Likewise.
2076 * trans-decl.c (gfc_trans_auto_character_variable):
2077 Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
2078 (gfc_gimplify_function): New function.
2079 (gfc_generate_function-code): Properly handle nested functions.
2080 * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
2081
2082 2004-06-22 Janne Blomqvist <jblomqvi@cc.hut.fi>
2083
2084 PR fortran/15750
2085 * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
2086 (gfc_resolve_inquire): Resolve the iolength tag. Return
2087 SUCCESS at end of function if no failure has occured.
2088 * resolve.c (resolve_code): Resolve if iolength is encountered.
2089 * trans-io.c: (ioparm_iolength, iocall_iolength,
2090 iocall_iolength_done): New variables.
2091 (last_dt): Add IOLENGTH.
2092 (gfc_build_io_library_fndecls ): Set iolength related variables.
2093 (gfc_trans_iolength): Implement.
2094 (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
2095
2096 2004-06-21 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de
2097
2098 PR fortran/15511
2099 * scanner.c (load_line): Don't truncate preprocessor lines.
2100 Reformat error message.
2101 (preprocessor_line): Issue warning in case of malformed
2102 preprocessor line.
2103
2104 2004-06-21 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2105
2106 * resolve.c (resolve_symbol): Add comment in function body.
2107 (check_data_variable): Change type of mark to ar_type, adapt code
2108 accordingly.
2109
2110 2004-06-21 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2111
2112 * array.c (gfc_insert_constructor): Avoid redundant call to
2113 mpz_comp. Add 2004 to copyright years.
2114
2115 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
2116
2117 * trans.h (stmtblock_t): Change has_scope to unsigned int.
2118
2119 2004-06-20 Steven G. Kargl <kargls@comcast.net>
2120
2121 * arith.c (gfc_range_check): correct complex underflow.
2122
2123 2004-06-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2124
2125 PR fortran/15962
2126 * match.c (match_case_selector): Call gfc_match_init_expr
2127 instead of gfc_match_expr.
2128 * resolve.c (validate_case_label_expr): No need to check for
2129 constant, since it wouldn't have been matched with the fix to
2130 match.c.
2131
2132 2004-06-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2133
2134 PR fortran/15211
2135 * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
2136 of strings.
2137
2138 2004-06-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2139
2140 PR fortran/15510
2141 * trans-deecl.c (generate_local_decl): Do not issue warning for
2142 unused variables if they're use associated.
2143
2144 2004-06-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2145 Andrew Vaught <andyv@firstinter.net>
2146
2147 PR fortran/14928
2148 * gfortran.h (gfc_check_f): Add new field f3ml.
2149 * check.c (gfc_check_minloc_maxloc): Take argument list instead
2150 of individual arguments, reorder if necessary.
2151 * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
2152 * intrinsic.c (add_sym_3ml): New function.
2153 (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
2154 (check_specific): Catch special case MINLOC, MAXLOC.
2155
2156 2004-06-14 Paul Brook <paul@codesourcery.com>
2157
2158 * intrinsic.c (add_sym_2s): Use correct function types.
2159
2160 2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2161
2162 * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize. Move data.c
2163 * data.c (gfc_get_section_index): Remove dependency on trans.h.
2164
2165 2004-06-12 Steven G. Kargl <kargls@comcast.net>
2166
2167 * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
2168 gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
2169 * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
2170 GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
2171 * trans-intrinsic.c: Use symbols.
2172 * intrinsic.c (add_sym_2s): New function.
2173 * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
2174 * intrinsic.h: Function prototypes.
2175 * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
2176 gfc_resolve_srand): New functions.
2177
2178 2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2179
2180 PR fortran/14957
2181 * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
2182 contained procedure.
2183
2184 2004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2185
2186 PR fortran/12841
2187 * interface.c (compare_parameter, compare_actual_formal): Don't
2188 check types and array shapes for NULL()
2189 * trans-expr.c (conv_function_call): No double indirection for
2190 NULL()
2191
2192 2004-06-09 Toon Moene <toon@moene.indiv.nluug.nl>
2193
2194 * trans-expr.c (gfc_conv_cst_int_power): Compute
2195 x**(-n) by converting it to (1/x)**n instead of
2196 1/x**n.
2197
2198 2004-06-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2199
2200 PR fortran/13372
2201 * module.c (write_symbol, write_symtree): Don't write symbols
2202 wrongly added to namespace.
2203 * trans-decl.c (gfc_create_module_variable): Don't create a
2204 backend decl for a symbol incorrectly added to namespace.
2205
2206 2004-06-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2207
2208 PR fortran/13201
2209 * resolve.c (resolve_symbol): Verify that parameter array has an
2210 explicit shape. Fix typos and coding style issues in surrounding
2211 lines.
2212
2213 2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2214
2215 PR fortran/15478
2216 * gfortran.texi: The documentation doesn't contain infomration on
2217 how to report bugs, and shouldn't, so remove the line which
2218 says it does.
2219
2220 2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2221
2222 * intrinsic.c (sort_actual): Keep track of type of missing
2223 arguments. (Missing from previous commit.)
2224
2225 2004-06-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2226
2227 * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
2228 * interface.c (compare_actual_formal): Keep type of omitted
2229 optional arguments.
2230 * trans-expr.c (gfc_conv_function_call): Add string length
2231 argument for omitted string argument.
2232
2233 2004-06-03 Paul Brook <paul@codesourcery.com>
2234
2235 * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
2236 lists instead of compound expr chains.
2237 (gfc_trans_code): Annotate statement lists.
2238
2239 2004-06-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2240
2241 * trans-array.c: Fix spelling in comments.
2242
2243 2004-06-02 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2244
2245 PR fortran/15557
2246 * data.c (assign_substring_data_value): New function.
2247 (gfc_assign_data_value): Call the new function if we're dealing
2248 with a substring LHS.
2249
2250 2004-06-01 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2251
2252 PR fortran/15477
2253 * gfortran.h (GFC_VERSION): Remove.
2254 * gfortran.texi (version-gfortran): Remove, replace by version-GCC
2255 where used.
2256
2257 2004-05-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2258
2259 * trans-types.c: Fix spelling & layout in comments.
2260
2261 2004-05-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2262
2263 PR fortran/14067
2264 * trans-const.c (gfc_conv_string_init): Allow variable string
2265 length lower than initialization string length.
2266
2267 2004-05-30 Paul Brook <paul@codesourcery.com>
2268
2269 PR fortran/15620
2270 * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
2271 * trans-expr.c (gfc_trans_string_copy): New function.
2272 (gfc_conv_statement_function): Use them. Create temp vars. Enforce
2273 character lengths.
2274 (gfc_conv_string_parameter): Use gfc_trans_string_copy.
2275 * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
2276 * trans.h (struct gfc_saved_var): Define.
2277 (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
2278
2279 2004-05-30 Steven G. Kargl <kargls@comcast.net>
2280
2281 * iresolve.c (gfc_resolve_random_number): Clean up conditional.
2282
2283 2004-05-29 Steven G. Kargl <kargls@comcast.net>
2284
2285 * simplify.c (gfc_simplify_log): Remove useless line of code.
2286
2287 2004-05-29 Paul Brook <paul@codesourcery.com>
2288
2289 * trans-common.c (find_equivalence): Find multiple rules.
2290
2291 2004-05-27 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2292
2293 * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
2294 (gfc_current_locus): Declare new global variable.
2295 * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
2296 (gfc_current_locus1): Rename ...
2297 (gfc_current_locus): ... to this.
2298 (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
2299 skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
2300 gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
2301 gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
2302 and gfc_current_locus(), respectively.
2303 * array.c (match_subscript, gfc_match_array_ref, match_array_list,
2304 match_array_cons_element, gfc_match_array_constructor):
2305 Read/modify gfc_current_locus instead of calling gfc_set_locus()
2306 and gfc_current_locus().
2307 * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
2308 match_attr_spec, gfc_match_function_decl, gfc_match_end,
2309 attr_decl1, gfc_match_save): Likewise.
2310 * error.c (error_print, gfc_internal_error): Likewise.
2311 * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
2312 * interface.c (gfc_add_interface): Likewise.
2313 * io.c (gfc_match_format, match_dt_format, match_dt_element,
2314 match_io_iterator, match_io): Likewise.
2315 * match.c (gfc_match_space, gfc_match_eos,
2316 gfc_match_small_literal_int, gfc_match_st_label,
2317 gfc_match_strings, gfc_match_name, gfc_match_iterator,
2318 gfc_match_char, gfc_match, gfc_match_assignment,
2319 gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
2320 gfc_match_nullify, gfc_match_call, match_implicit_range,
2321 gfc_match_implicit, gfc_match_data, match_case_selector,
2322 gfc_match_case, match_forall_iterator): Likewise.
2323 * matchexp.c (gfc_match_defined_op_name, next_operator,
2324 match_level_1, match_mult_operand, match_ext_mult_operand,
2325 match_add_operand, match_ext_add_operand, match_level_2,
2326 match_level_3, match_level_4, match_and_operand, match_or_operand,
2327 match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
2328 * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
2329 * parse.c (match_word, decode_statement, next_free, next_fixed,
2330 add_statement, verify_st_order, parse_if_block, gfc_parse_file):
2331 Likewise.
2332 * primary.c (match_digits, match_integer_constant,
2333 match_boz_constant, match_real_constant, match_substring,
2334 next_string_char, match_charkind_name, match_string_constant,
2335 match_logical_constant, match_const_complex_part,
2336 match_complex_constant, match_actual_arg, match_keyword_arg,
2337 gfc_match_actual_arglist, gfc_match_structure_constructor,
2338 gfc_match_rvalue, gfc_match_variable): Likewise.
2339 * st.c (gfc_get_code): Likewise.
2340 * symbol.c (check_conflict, check_used, check_done,
2341 duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
2342 gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
2343 gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
2344
2345 2004-05-26 Roger Sayle <roger@eyesopen.com>
2346
2347 * io.c (format_asterisk): Silence compiler warnings by correcting
2348 the number of elements of a "locus" initializer.
2349
2350 2004-05-25 Roger Sayle <roger@eyesopen.com>
2351
2352 PR fortran/13912
2353 * matchexp.c: Allow unary operators after arithmetic operators
2354 as a GNU extension.
2355 (match_ext_mult_operand, match_ext_add_operand): New functions.
2356 (match_mult_operand): Tweak to call match_ext_mult_operand.
2357 (match_add_operand): Tweak to call match_ext_mult_operand.
2358 (match_level_2): Rearrange to call match_ext_add_operand.
2359
2360 2004-05-25 Paul Brook <paul@codesourcery.com>
2361
2362 * expr.c (check_inquiry): Remove bogus tests.
2363
2364 2004-05-23 Paul Brook <paul@codesourcery.com>
2365
2366 PR fortran/13773
2367 * expr.c (restricted_args): Remove redundant checks/argument.
2368 (external_spec_function): Update to match.
2369 (restricted_intrinsic): Rewrite.
2370
2371 2004-05-23 Paul Brook <paul@codesourcery.com>
2372 Victor Leikehman <lei@haifasphere.co.il>
2373
2374 * gfortran.h (struct gfc_symbol): Add equiv_built.
2375 * trans-common.c: Change int to HOST_WIDE_INT. Capitalize error
2376 messages.
2377 (current_length): Remove.
2378 (add_segments): New function.
2379 (build_equiv_decl): Create initialized common blocks.
2380 (build_common_decl): Always add decl to bindings.
2381 (create_common): Create initializers.
2382 (find_segment_info): Reformat to match coding conventions.
2383 (new_condition): Use add_segments.
2384 (add_condition, find_equivalence, add_equivalences): Move iteration
2385 inside functions. Only process each segment once.
2386 (new_segment, finish_equivalences, translate_common): Simplify.
2387
2388 2004-05-23 Steven G. Kargl <kargls@comcast.net>
2389
2390 * check.c (gfc_check_random_seed): Issue for too many arguments.
2391
2392 2004-05-22 Steven G. Kargl <kargls@comcast.net>
2393
2394 * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
2395
2396 2004-05-22 Paul Brook <paul@codesourcery.com>
2397
2398 * dump-parse-tree.c (gfc_show_equiv): New function.
2399 (gfc_show_namespace): Use it.
2400
2401 2004-05-22 Victor Leikehman <lei@haifasphere.co.il>
2402
2403 PR fortran/13249
2404 * symbol.c (gfc_add_common): Disable checks to work around other more
2405 fundamental inadequacies.
2406
2407 2004-05-22 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2408
2409 * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
2410 only for functions.
2411 (gfc_build_function_decl): Likewise.
2412
2413 2004-05-22 Steven G. Kargl <kargls@comcast.net>
2414
2415 * check.c (gfc_check_system_clock): New function.
2416 * intrinsic.c (add_sym_3s): New function.
2417 (add_subroutines): Use it.
2418 * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
2419 Add prototypes.
2420 * iresolve.c (gfc_resolve_system_clock): New function.
2421
2422 2004-05-22 Steven G. Kargl <kargls@comcast.net>
2423
2424 * invoke.texi: Document -Wunderflow and spell check.
2425 * lang.opt: Add Wunderflow.
2426 * gfortran.h (gfc_option_t): Add warn_underflow option.
2427 * options.c (gfc_init_options, set_Wall): Use it.
2428 * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
2429 * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
2430 gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
2431 gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
2432 * arith.c (common_logarithm): Fix typo in comment.
2433
2434 2004-05-21 Roger Sayle <roger@eyesopen.com>
2435
2436 * io.c (check_format): As a GNU extension, allow the comma after a
2437 string literal to be optional in a format. Use gfc_notify_std to
2438 issue an error/warning as appropriate.
2439
2440 2004-05-21 Roger Sayle <roger@eyesopen.com>
2441
2442 * io.c (check_format): Use gfc_notify_std to determine whether to
2443 issue an error/warning for omitting the digits from the X format.
2444
2445 2004-05-20 Roger Sayle <roger@eyesopen.com>
2446
2447 * io.c (check_format): Allow the number before the X format to
2448 be optional when not -pedantic.
2449
2450 2004-05-18 Feng Wang <fengwang@nudt.edu.cn>
2451 Paul Brook <paul@codesourcery.com>
2452
2453 * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
2454 Create decls for __builtin_pow{,f}.
2455 * gfortran.h (PREFIX_LEN): Define.
2456 * trans-decl.c (gfor_fndecl_math_powi): Add.
2457 (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
2458 (gfc_build_intrinsic_function_decls): Create decls for powi.
2459 * trans-expr.c (powi_table): Add.
2460 (gfc_conv_integer_power): Remove.
2461 (gfc_conv_powi): New function.
2462 (gfc_conv_cst_int_power): New function.
2463 (gfc_conv_power_op): Use new powi routines.
2464 * trans.h (struct gfc_powdecl_list): Add.
2465 (gfor_fndecl_math_powi): Add.
2466 (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
2467
2468 2004-05-18 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2469
2470 * trans.c, trans-decl.c: Fix comment typos.
2471
2472 2004-05-18 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2473
2474 * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
2475
2476 2004-05-18 Steve Kargl <kargls@comcast.net>
2477
2478 * arith.c (gfc_int2complex): Fix incorrect range checking.
2479
2480 2004-05-18 Paul Brook <paul@codesourcery.com>
2481
2482 PR fortran/13930
2483 * decl.c (add_init_expr_to_sym): Remove incorrect check.
2484 (default_initializer): Move to expr.c.
2485 (variable_decl): Don't assign default initializer to variables.
2486 * expr.c (gfc_default_initializer): Move to here.
2487 * gfortran.h (gfc_default_initializer): Add prototype.
2488 * resolve.c (resolve_symbol): Check for illegal initializers.
2489 Assign default initializer.
2490
2491 2004-05-17 Steve Kargl <kargls@comcast.net>
2492
2493 * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
2494
2495 2004-05-17 Steve Kargl <kargls@comcast.net>
2496
2497 * arith.c (gfc_real2complex): Range checking wrong part of complex
2498 number.
2499
2500 2004-05-16 Paul Brook <paul@codesourcery.com>
2501
2502 * options.c (gfc_handle_module_path_options): Fix buffer overrun.
2503
2504 2004-05-16 Paul Brook <paul@codesourcery.com>
2505
2506 * arith.c (gfc_range_check): Fix logic error.
2507
2508 2004-05-16 Steve Kargl <sgk@troutmask.apl.washington.edu>
2509
2510 * arith.c: Fix comment typos.
2511
2512 2004-05-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2513
2514 PR fortran/13742
2515 * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
2516 not initialized in a disallowed fashion.
2517 * match.c (gfc_match_common): Likewise.
2518 (var_element): Verify that variable is not in the blank COMMON,
2519 if it is in a common.
2520
2521 2004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
2522
2523 * Make-lang.in (f95.generated-manpages): Remove.
2524 (f95.srcextra): New.
2525 (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
2526 f95.maintainer-clean): Generate info and dvi files in objdir/doc.
2527 (f95.dvi): Remove.
2528 (dvi): New.
2529 (f95.install-info): Remove.
2530 (install-info): New.
2531
2532 2004-05-15 Victor Leikehman <lei@haifasphere.co.il>
2533
2534 * decl.c (add_init_expr_to_sym): Check for variable size arrays.
2535
2536 2004-05-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2537
2538 * primary.c (match_boz_constant): Use gfc_notify_std() for
2539 issuing a warning or an error.
2540
2541 2004-05-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2542
2543 PR fortran/13826
2544 * primary.c (match_structure_constructor): Rename ...
2545 (gfc_match_structure_constructor): ... to this. Make non-static.
2546 (gfc_match_rvalue): Call renamed function.
2547 * match.h (gfc_match_structure_constructor): Declare.
2548 * match.c (gfc_match_data_constant): Handle structure
2549 constructor.
2550
2551 2004-05-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2552
2553 PR fortran/13702
2554 (Port from g95)
2555 * gfortran.h (gfc_linebuf): New typedef.
2556 (linebuf): Remove.
2557 (gfc_file): Revamped, use new gfc_linebuf.
2558 (locus): Revamped, use new types.
2559 (gfc_current_file): Remove.
2560 (gfc_current_form, gfc_source_file): New global variables.
2561 * match.c (gfc_match_space, gfc_match_strings): Use
2562 gfc_current_form to find source form.
2563 * module.c (gfc_dump_module): Use gfc_source_file when printing
2564 module header.
2565 * error.c (show_locus, show_loci) Use new data structures to print
2566 locus.
2567 * scanner.c (first_file, first_duplicated_file, gfc_current_file):
2568 Remove.
2569 (file_head, current_file, gfc_current_form, line_head, line_tail,
2570 gfc_current_locus1, gfc_source_file): New global variables.
2571 (gfc_scanner_init1): Set new global variables.
2572 (gfc_scanner_done1): Free new data structures.
2573 (gfc_current_locus): Return pointer to gfc_current_locus1.
2574 (gfc_set_locus): Set gfc_current_locus1.
2575 (gfc_at_eof): Set new variables.
2576 (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
2577 to new locus structure.
2578 (gfc_check_include): Remove.
2579 (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
2580 (gfc_skip_comments): Use gfc_current_form, find locus with
2581 gfc_current_locus1.
2582 (gfc_next_char): Use gfc_current_form.
2583 (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
2584 (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
2585 comment formatting.
2586 (get_file): New function.
2587 (preprocessor_line, include_line): New functions.
2588 (load_file): Move down, rewrite to match new data structures.
2589 (gfc_new_file): Rewrite to match new data structures.
2590 * parse.c (next_statement): Remove code which is now useless. Use
2591 gfc_source_form and gfc_source_file where appropriate.
2592 * trans-decl.c (gfc_get_label_decl): adapt to new data structures
2593 when determining locus of frontend code.
2594 * trans-io.c (set_error_locus): Same.
2595 * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
2596 * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
2597 preprocessor flags.
2598 (all): Add missing initializers.
2599
2600 2004-05-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2601
2602 * Make-lang.in (trans-common.o): Remove redundant dependency.
2603 (data.c): Replace object file name ...
2604 (data.o): ... by the correct one.
2605
2606 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2607
2608 * dump-parse-tree.c (gfc_show_array_ref): Print colon only
2609 for ranges when dumping array references.
2610
2611 2004-05-14 Victor Leikehman <lei@haifasphere.co.il>
2612
2613 * decl.c (variable_decl): Always apply default initializer.
2614
2615 2004-05-08 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2616
2617 PR fortran/15206
2618 * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
2619 handle zero correctly.
2620
2621 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2622
2623 * match.c (gfc_match): Eliminate dead code.
2624
2625 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2626
2627 * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
2628 Detect bad continuation line in fixed form sources.
2629
2630 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2631
2632 PR fortran/15205
2633 * iresolve.c (gfc_resolve_nearest): Add new function.
2634 * intrinsic.h: ... declare it here.
2635 * intrinsic.c (add_functions): ... add it as resolving function
2636 for NEAREST.
2637
2638 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2639
2640 PR fortran/14066
2641 * match.c (gfc_match_do): Allow infinite loops with
2642 label-do-stmt. Do not enforce space after comma.
2643
2644 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2645
2646 PR fortran/15051
2647 * parse.c (parse_interface): Allow empty INTERFACE, remove
2648 seen_body.
2649
2650 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2651
2652 * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
2653 decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
2654 expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
2655 intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
2656 matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
2657 primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
2658 trans-array.c, trans-array.h, trans-common.c, trans-const.c,
2659 trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
2660 trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
2661 trans-types.h, trans.c, trans.h: Update copyright years and
2662 boilerplate.
2663 * data.c: Likewise, also removed two whitespace-only lines.
2664 * gfortranspec.c, lang.opt: Update copyright years.
2665
2666 2004-05-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2667
2668 PR fortran/14568
2669 * trans-decl.c (generate_local_decl): Don't warn for unused
2670 variables which are in common blocks.
2671
2672 2004-05-13 Diego Novillo <dnovillo@redhat.com>
2673
2674 * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
2675 trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
2676 trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
2677
2678 2004-05-13 Victor Leikehman <lei@haifasphere.co.il>
2679
2680 PR fortran/15314
2681 * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
2682
2683 2004-05-13 Joseph S. Myers <jsm@polyomino.org.uk>
2684
2685 * gfortran.texi: Use @table @emph instead of @itemize @emph.
2686 Remove "set DEVELOPMENT".
2687 (Compiling GFORTRAN): Remove.
2688
2689 2004-05-09 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2690
2691 * array.c (match_subscript, match_array_ref): Add comments
2692 explaining argument 'init'.
2693 * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
2694 trans-expr.c, trans.c: Fix some typos in comments.
2695 * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
2696 * primary.c (match_digits, match_integer_constant): Add comment
2697 explaining signflag.
2698
2699 2004-05-01 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2700
2701 PR fortran/13940
2702 * primary.c: Include system.h and flags.h, needed for pedantic.
2703 (match_boz_constant): Allow "x" for hexadecimal constants, warn if
2704 pedantic is set.
2705
2706 2004-05-01 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2707
2708 PR fortran/13940
2709 * match.c (match_data_constant): Handle case where
2710 gfc_find_symbol sets sym to NULL
2711
2712 2004-04-28 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2713
2714 * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
2715 dependency on mathbuiltins.def
2716
2717 2004-04-24 Victor Leikehman <lei@il.ibm.com>
2718
2719 * trans-io.c (transfer_expr): Implemented recursive printing
2720 of derived types.
2721
2722 2004-04-24 Andrew Pinski <pinskia@physics.uc.edu>
2723
2724 * gfortranspec.c: Do not include multilib.h.
2725
2726 2004-04-24 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2727
2728 * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
2729 2004 to copyright years.
2730 * trans-expr.c, trans-decl.c: Comment update, we now generate
2731 GENERIC, not SIMPLE. Add 2004 to copyright years.
2732
2733 2004-04-24 Paul Brook <paul@codesourcery.com>
2734
2735 * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
2736
2737 2004-04-24 Feng Wang <fengwang@nudt.edu.cn>
2738
2739 PR 14817
2740 * arith.c (gfc_arith_divide): Fix complex divide.
2741
2742 2004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
2743
2744 * gfortranspec.c: Include the target headers.
2745
2746 2004-04-18 Feng Wang <fengwang@nudt.edu.cn>
2747
2748 PR fortran/14921
2749 PR fortran/14540
2750 * arith.c (arctangent2): New function.
2751 * arith.h (arctangent2): Add function prototype.
2752 * simplify.c (gfc_simplify_atan2): Use it.
2753 (gfc_simplify_log): Use it.
2754
2755 2004-04-12 Diego Novillo <dnovillo@redhat.com>
2756
2757 * fortran/f95-lang.c (gfc_expand_stmt): Remove.
2758 (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
2759
2760 2004-04-11 Bud Davis <bdavis9659@comcast.net>
2761
2762 PR fortran/14872
2763 * trans-io.c (build_dt): Change REC to value.
2764
2765 2004-04-11 Feng Wang <fengwang@nudt.edu.cn>
2766
2767 PR 14394
2768 * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
2769 the real value when converting mpf to string.
2770
2771 2004-04-11 Feng Wang <fengwang@nudt.edu.cn>
2772
2773 PR 14395
2774 * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
2775 the result.
2776
2777 2004-04-11 Feng Wang <fengwang@nudt.edu.cn>
2778
2779 PR fortran/14377
2780 * simplify.c (simplify_min_max): Convert the type of the result.
2781
2782 2004-04-11 Paul Brook <paul@codesourcery.com>
2783
2784 * gfortran.texi: Use full target triplet.
2785
2786 2004-04-11 Paul Brook <paul@codesourcery.com>
2787
2788 * Make-lang.in (GFORTRAN_TEXI): Set it.
2789 (fortran/dfortran.dvi): Use it. Add fortran to include paths.
2790 (fortran/gfortran.info): Ditto.
2791 * gfortran.texi: Major update.
2792 * invoke.texi: New file.
2793
2794 2004-04-10 Paul Brook <paul@codesourcery.com>
2795
2796 * trans-array.c (gfc_trans_allocate_temp_array,
2797 gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
2798 * trans-decl.c (gfc_build_dummy_array_decl,
2799 gfc_get_symbol_decl, gfc_build_function_decl,
2800 gfc_create_module_variable): Ditto.
2801 * trans-expr.c (gfc_conv_variable): Ditto.
2802 * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
2803 * trans.h (GFC_DECL_STRING): Remove.
2804 (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
2805 GFC_DECL_ASSIGN): Renumber flags.
2806
2807 2004-04-05 Paul Brook <paul@codesourcery.com>
2808
2809 PR 13252
2810 PR 14081
2811 * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
2812 and stack_restore.
2813 * gfortran.h (struct gfc_charlen): Add backend_decl.
2814 * trans-array.c (gfc_trans_allocate_temp_array,
2815 gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
2816 (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
2817 Remove old, broken string handling.
2818 (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
2819 gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
2820 gfc_trans_deferred_array): Handle character arrays.
2821 * trans-const.c (gfc_conv_const_charlen): New function.
2822 * trans-const.h (gfc_conv_const_charlen): Add prototype.
2823 * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
2824 as static.
2825 (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
2826 (gfc_create_string_length): New function.
2827 (gfc_get_symbol_decl): Create lengths for character variables.
2828 (gfc_get_fake_result_decl): Ditto.
2829 (gfc_build_function_decl): Only set length for assumed length
2830 character arguments.
2831 (gfc_trans_dummy_character): New function.
2832 (gfc_trans_auto_character_variable): Rewrite.
2833 (gfc_trans_deferred_vars): Handle more types of character variable.
2834 (gfc_create_module_variable): String lengths have moved.
2835 (gfc_generate_function_code): Initialize deferred var chain earlier.
2836 * trans-expr.c (gfc_conv_init_string_length): Rename ...
2837 (gfc_trans_init_string_length): ... to this.
2838 (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
2839 gfc_conv_function_call): Update to new format for character variables.
2840 (gfc_conv_string_length): Remove.
2841 (gfc_conv_string_parameter): Update assertion.
2842 * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
2843 * trans-io.c (set_string): Use new macro names.
2844 * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
2845 * trans-types.c (gfc_get_character_type): Use existing length expr.
2846 (gfc_is_nodesc_array): Make public.
2847 (gfc_get_dtype_cst): Rename ...
2848 (gfc_get_dtype): ... to this. Handle unknown size arrays.
2849 (gfc_get_nodesc_array_type): Use new name.
2850 (gfc_sym_type): New character variable code.
2851 (gfc_get_derived_type): Ditto.
2852 (gfc_get_function_type): Evaluate character variable lengths.
2853 * trans-types.h (gfc_strlen_kind): Define.
2854 (gfc_is_nodesc_array): Add prototype.
2855 * trans.h: Update prototypes.
2856 (struct lang_type): Update comments.
2857 (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
2858 (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
2859
2860 2004-04-04 Paul Brook <paul@codesourcery.com>
2861
2862 * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
2863 * options.c (gfc_init.options, gfc_handle_option): Ditto.
2864 * trans-expr.c (gfc_conv_function_call): Ditto.
2865 * trans-types.c (gfc_is_nodesc_array): Ditto
2866 * lang.opt (fg77-calls): Remove.
2867
2868 2004-04-04 Paul Brook <paul@codesourcery.com>
2869
2870 * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
2871 (gfc_conv_descriptor_base): Rename ...
2872 (gfc_conv_descriptor_offset): ... to this.
2873 (gfc_trans_allocate_array_storage): Set offset to zero.
2874 (gfc_conv_array_base): Rename ...
2875 (gfc_conv_array_offset): ... to this.
2876 (gfc_conv_array_index_ref): Add offset parameter.
2877 (gfc_conv_array_ref): Include offset.
2878 (gfc_trans_preloop_setup): Use existing offset.
2879 (gfc_trans_allocate_temp_array, gfc_array_allocate,
2880 gfc_trans_auto_array_allocation, gfc_trans_g77_array,
2881 gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
2882 gfc_conf_ss_descriptor): Set offset.
2883 * trans-array.h: Rename prototypes.
2884 * trans-const.h (gfc_index_zero_node): Define.
2885 * trans-decl.c (gfc_build_qualified_array): Change base to offset.
2886 * trans-types.c (gfc_get_array_type_bounds): Ditto.
2887 (gfc_get_nodesc_array_type): Calculate offset before upper bound.
2888
2889 2004-03-25 Diego Novillo <dnovillo@redhat.com>
2890
2891 * convert.c (convert): Don't handle WITH_RECORD_EXPR.
2892
2893 2004-03-24 Bud Davis <bdavis9659@comcast.net>
2894
2895 PR 14055
2896 * arith.c (gfc_convert_integer,gfc_convert_real): Removed leading '+'
2897 before conversion by gmp library call.
2898
2899 2004-03-24 Bud Davis <bdavis9659@comcast.net>
2900
2901 PR 12921
2902 * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
2903
2904 2004-02-24 Richard Henderson <rth@redhat.com>
2905
2906 * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
2907
2908 2004-02-19 Loren J. Rittle <ljrittle@acm.org>
2909
2910 * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
2911 (fortran/gfortran.info): ... to here.
2912 (f95.srcinfo): New.
2913
2914 2004-02-16 Richard Henderson <rth@redhat.com>
2915
2916 * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
2917 * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
2918 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
2919 (gfc_expand_function): Rename from expand_function_body, make static,
2920 don't do anything except invoke tree_rest_of_compilation.
2921 (gfc_be_parse_file): Invoke cgraph.
2922 (gfc_expand_decl): Remove.
2923 (gfc_init_builtin_functions): Add __builtin_init_trampoline and
2924 __builtin_adjust_trampoline.
2925 * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
2926 (gfc_finalize): New.
2927 (gfc_generate_function_code): Use it. Lower nested functions.
2928 * trans-expr.c (gfc_conv_function_call): Add static chain operand
2929 to call_expr.
2930 * trans.c (gfc_build_function_call): Likewise.
2931 * trans.h (expand_function_body): Remove.
2932
2933 2004-02-15 Victor Leikehman <lei@il.ibm.com>
2934
2935 PR gfortran/13433
2936 * trans-decl.c (gfc_build_function_decl) For functions
2937 returning CHARACTER pass an extra length argument,
2938 following g77 calling conventions.
2939 * trans-types.c (gfc_get_function_type) Ditto.
2940 * trans-expr.c (gfc_conv_function_call) Ditto.
2941
2942 2004-02-14 Paul Brook <paul@codesourcery.com>
2943
2944 * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
2945
2946 2004-02-12 Paul Brook <paul@nowt.org>
2947
2948 * BUGS: Remove.
2949
2950 2004-02-08 Steve Kargl <sgk@troutmask.apl.washington.edu>
2951
2952 * gfortran.texi: Fix typos.
2953
2954 2004-02-07 Bud Davis <bdavis9659@comcast.net>
2955
2956 PR gfortran/13909
2957 * intrinsic.c (add_conversions) Use logical conversion instead
2958 of real.
2959 * trans-types.c (gfc_get_logical_type) implemented logical*1
2960 and logical*2.
2961
2962 2004-01-17 Paul Brook <paul@codesourcery.com>
2963
2964 * lang-specs.h: Remove %<fixed-form.
2965
2966 2004-01-15 Toon Moene <toon@moene.indiv.nluug.nl>
2967
2968 * lang-specs.h: Enable preprocessing of source files
2969 ending in .F, .fpp, .FPP, .F90 and .F95.
2970
2971 2004-01-13 Toon Moene <toon@moene.indiv.nluug.nl>
2972
2973 PR fortran/12912
2974 * lang-specs.h: Enable compilation of files ending
2975 in .f, .for and .FOR.
2976
2977 2004-01-11 Paul Brook <paul@codesourcery.com>
2978
2979 * trans-stmt.c (gfc_trans_if_1): New function.
2980 (gfc_trans_if): Use it.
2981
2982 2004-01-11 Erik Schnetter <schnetter@uni-tuebingen.de>
2983
2984 * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
2985 (gfc_option_t): Add max_identifier_length.
2986 * lang.opt: Add fmax-identifier-length.
2987 * match.c (parse_name): Use limit.
2988 * options.c (gfc_init_options): Set max_identifier_length.
2989 (gfc_handle_option): Ditto.
2990
2991 2004-01-11 Feng Wang <fengwang@nudt.edu.cn>
2992
2993 * intrinsic.c (add_functions): Add resolve function to dcmplx.
2994 * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
2995 * iresolve.c (gfc_resolve_dcmplx): New function.
2996
2997 2004-01-10 Paul Brook <paul@codesourcery.com>
2998
2999 * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
3000 * trans-types.c (gfc_sym_type): Handle external dummy procedures.
3001 (gfc_return_by_reference): Correct condition.
3002 (gfc_get_function_type): Ditto.
3003
3004 2004-01-10 Paul Brook <paul@codesourcery.com>
3005
3006 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
3007 types.
3008
3009 2004-01-10 Huang Chun <chunhuang73@hotmail.com>
3010
3011 * iresolve.c: Use correct kind.
3012
3013 2004-01-10 Huang Chun <chunhuang73@hotmail.com>
3014
3015 PR fortran/13467
3016 * trans-decl.c (gfc_create_module_variable): Output array valued
3017 parameters.
3018
3019 2004-01-10 Paul Brook <paul@codesourcery.com>
3020
3021 * resolve.c (resolve_branch): Get error message right way round.
3022
3023 2004-01-10 Canqun Yang <canqun@nudt.edu.cn>
3024
3025 * trans-array (gfc_conv_loop_setup): Adjust comment to track
3026 reality.
3027 (gfc_array_allocate): Don't count size of element twice.
3028
3029 2004-01-04 Paul Brook <paul@codesourcery.com>
3030
3031 * lang.opt (i8, r8, std=*): Remove RejectNegative.
3032
3033 2004-01-04 Paul Brook <paul@codesourcery.com>
3034
3035 * error.c (gfc_notify_std): New function.
3036 * gfortran.h (gfc_notify_std): Declare.
3037 (GFC_STD_*): Define.
3038 (gfc_option_t): Add warn_std and allow_std.
3039 * intrinsic.c (gfc_init_expr_extensions): Fix logic.
3040 (gfc_intrinsic_func_interface): Use gfc_notify_std.
3041 * check.c (check_rest): Use gfc_notify_std.
3042 * match.c (gfc_match_pause): Ditto.
3043 (gfc_match_assign): Ditto.
3044 (gfc_match_goto): Ditto.
3045 * resolve.c (resolve_branch): Ditto.
3046 * lang.opt: Add std=<foo> and w.
3047 * options.c (gfc_init_options): Set allow_std and warn_std.
3048 (gfc_handle_option): Handle OPT_std_* and OPT_w.
3049
3050 2004-01-01 Paul Brook <paul@codesourcery.com>
3051
3052 * array.c (gfc_append_constructor): Take constructor, not expression.
3053 * data.c (struct gfc_expr_stack): Remove.
3054 (expr_stack): Remove.
3055 (find_con_by_offset): Rename from find_expr_in_con.
3056 (find_con_by_component): Rename from find_component_in_con.
3057 (gfc_get_expr_stack): Remove.
3058 (gfc_assign_data_value): Rewrite.
3059 (gfc_expr_push): Remove.
3060 (gfc_expr_pop): Remove.
3061 (gfc_advance_section): Rename from
3062 gfc_modify_index_and_calculate_offset. Handle unbounded sections.
3063 (gfc_get_section_index): Handle unbounded sections.
3064 * gfortran.h: Update prototypes.
3065 * resolve.c (check_data_variable): Array section maight not be the
3066 last ref.
3067
3068 2004-01-01 Paul Brook <paul@codesourcery.com>
3069
3070 PR fortran/13432
3071 * resolve.c (resolve_symbol): Allow assumed length function results.
3072
3073 2004-01-01 Steve Kargl <sgk@troutmask.apl.washington.edu>
3074
3075 * match.c (gfc_match_pause): Fix spelling.
3076
3077 2004-01-01 Steven Bosscher <stevenb@suse.de>
3078
3079 PR fortran/13251
3080 * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
3081 reference from the expression.
3082
3083 2003-12-26 Feng Wang <fengwang@nudt.edu.cn>
3084
3085 * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
3086 dumping.
3087 * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
3088 (gfc_exec_op): New EXEC_LABEL_ASSIGN.
3089 (symbol_attribute):New variable attribute: assign.
3090 * io.c (resolve_tag):Integer variable is allowed.
3091 (match_dt_format): Add ASSIGN statement. Set assign flag.
3092 * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
3093 (gfc_match_assign): Add ASSIGN statement. Set assign flag.
3094 (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
3095 * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
3096 (next_statement): Add ST_LABEL_ASSIGNMENT.
3097 (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
3098 * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
3099 (resolve_blocks): Resolve ASSIGNED GOTO statement label list.
3100 * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
3101 * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
3102 assign. Put them into the stuct lang_decl.
3103 * trans-io.c (set_string): Add the assign statement.
3104 * trans-stmt.c (gfc_trans_label_assign): New function.
3105 (gfc_trans_goto): Translate ASSIGNED GOTO statement.
3106 * trans-stmt.h (gfc_trans_label_assign): Added function prototype.
3107 * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
3108 * trans.h (lang_decl):Add shadow variable decl tree needed by assign.
3109 (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
3110 (GFC_DECL_ASSIGN(node)): New macro to access flag.
3111
3112 2003-12-31 Huang Chun <chunhuang73@hotmail.com>
3113
3114 PR fortran/13434
3115 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in
3116 minval/maxval.
3117
3118 2003-12-22 Toon Moene <toon@moene.indiv.nluug.nl>
3119
3120 * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
3121 that arguments to subroutines/functions can't alias themselves, nor global
3122 memory.
3123
3124 2003-12-20 Steven Bosscher <stevenb@suse.de>
3125
3126 * trans-expr.c (gfc_conv_expr_op): Fold the result expression.
3127 * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise.
3128
3129 2003-12-12 Huang Chun <chunhuang73@hotmail.com>
3130
3131 * primary.c (match_substring): Fix substring bug for start point
3132 or end point is NULL.
3133 * trans-expr.c (gfc_conv_substring): Ditto
3134 * trans-types.c (gfc_sym_type): Get correct type of scalar
3135 character variables.
3136 * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in
3137 derived type.
3138
3139 2003-12-10 Richard Henderson <rth@redhat.com>
3140
3141 * options.c (gfc_post_options): Don't ever use rtl inlining.
3142
3143 2003-12-05 Canqun Yang <canqun@nudt.edu.cn>
3144
3145 * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists.
3146 * trans-equivalence.c: Remove.
3147 * trans-decl.c (gfc_get_symbol_decl): Update to match.
3148 (gfc_generate_function_code): Ditto.
3149 * trans-array.c (gfc_conv_array_parameter): Ditto.
3150 * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o
3151 (F95_ADDITIONAL_OBJS): Add stor-layout.o
3152 * trans.h (gfc_trans_equivalence): Remove.
3153 * gfortran.h (struct gfc_equiv): Add used field.
3154 (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring,
3155 equiv_offset fields.
3156
3157 2003-12-05 Richard Henderson <rth@redhat.com>
3158
3159 * trans.c (gfc_build_addr_expr): New.
3160 (gfc_build_indirect_ref, gfc_build_array_ref): New.
3161 * trans.h: Declare them.
3162 * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
3163 trans-stmt.c, trans.c (*): Use them.
3164
3165 * f95-lang.c (gfc_post_options): Remove dead prototype.
3166 * trans-array.c (gfc_trans_deferred_vars): Remove unused variable.
3167 * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list
3168 allocation size.
3169
3170 2003-12-01 Feng Wang <fengwang@nudt.edu.cn>
3171
3172 * io.c (gfc_match_format): Check for missing format label.
3173
3174 2003-11-30 Huang Chun <chunhuang73@hotmail.com>
3175
3176 PR fortran/13155
3177 * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols
3178 from interfaces in modules.
3179
3180 2003-11-30 Paul Brook <paul@nowt.org>
3181
3182 * trans-array.c (gfc_trans_g77_array): Make non-static.
3183 (gfc_trans_assumed_size): Remove.
3184 (gfc_trans_dummy_array_bias): Explicitly free temporary.
3185 * trans-array.h (gfc_trans_g77_array): Add prototype.
3186 (gfc_trans_assumed_size): Remove.
3187 * trans-decls.c (gfor_fndecl_push_context): Remove.
3188 (gfor_fndecl_pop_context): Remove.
3189 (gfc_build_function)decls): Don't create them.
3190 (gfc_trans_deferred_vars): Update to match. Remove dead code.
3191 * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp.
3192
3193 2003-11-30 Kejia Zhao <kejia_zh@nudt.edu.cn>
3194
3195 * trans-array.c (gfc_conv_array_parameter): Simplify
3196 array argument passing for array name actual argument.
3197 * trans-expr.c (gfc_conv_function_call): Ditto
3198 * trans-types.c (gfc_is_nodesc_array):Ditto.
3199
3200 2003-11-30 Paul Brook <paul@nowt.org>
3201
3202 * f95-lang.c (gfc_post_options): Move ...
3203 * options.c (gfc_post_options): .. to here. Handle inlining options.
3204 * gfortran.h (gfc_post_options): Add prototype.
3205
3206 2003-11-28 Richard Henderson <rth@redhat.com>
3207
3208 * trans.c (gfc_create_var_np): Use create_tmp_var_raw.
3209
3210 2003-11-28 Huang Chun <chunhuang73@hotmail.com>
3211
3212 * trans.h (has_alternate_specifier): New global variable.
3213 * match.c (gfc_match_call): Handle actual arguments associated with
3214 alternate return indicators.
3215 * trans-expr.c (gfc_conv_function_call): Ditto
3216 * trans-stmt.c (gfc_trans_call): Ditto
3217 (gfc_trans_return): Handle return statement with value.
3218 * trans-decl.c (gfc_generate_function_code): Handle functions with
3219 asterisk dummy.
3220 (gfc_get_fake_result_decl): Ditto
3221 * trans-types.c (gfc_get_function_type): Ditto
3222 * resolve.c (resolve_actual_arglist): Check alternate return indicators.
3223 (resolve_formal_arglist): Check asterisk dummy.
3224
3225 2003-11-27 Paul Brook <paul@nowt.org>
3226
3227 * trans-array.c (gfc_tran_allocate_array_storage): Use new memory
3228 allocation interface.
3229 (gfc_conv_ array_parameter): Ditto.
3230 (gfc_trans_auto_array_allocation): Ditto. Also free the memory.
3231 * trans-array.c: Update prototype.
3232 * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes.
3233 (gfc_trans_auto_character_variable): Use new memory alloc interface.
3234 * trans-expr.c (gfc_conv_string_tmp): Ditto.
3235 (gfc_conv_function_call): Use gfc_conv_string_tmp.
3236 * trans-stmt.c (gfc_do_allocate): Use new memory alloc interface.
3237 * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto.
3238 * trans.h (gfc_ss_info): Remove unused pdata field.
3239 * trans.c (gfc_create_var_np): Change T to V.
3240
3241 2003-11-26 Richard Henderson <rth@redhat.com>
3242
3243 * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ...
3244 * trans-intrinsic.c (gfc_intrinsic_map): ... here. Add SCALE,
3245 FRACTION, NEAREST, SET_EXPONENT.
3246 (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant.
3247 Fix GTY marking. Remove unnecessary const's.
3248 (LIBM_FUNCTION): Rename from I_LIB.
3249 (LIBF_FUNCTION): New.
3250 (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming
3251 conventions. Assume the expr signature is correct. Mark const.
3252 (gfc_conv_intrinsic_exponent): Use library functions.
3253 (gfc_conv_intrinsic_set_exponent): Remove.
3254 (gfc_conv_intrinsic_scale): Remove.
3255 (gfc_conv_intrinsic_nearest): Remove.
3256 (gfc_conv_intrinsic_fraction): Remove.
3257 (gfc_conv_intrinsic_function): Update.
3258 * trans-decl.c (gfor_fndecl_math_exponent4): New.
3259 (gfor_fndecl_math_exponent8): New.
3260 (gfc_build_intrinsic_function_decls): Set them.
3261 * trans.h: Declare them.
3262
3263 2003-11-25 Canqun Yang <canqun@nudt.edu.cn>
3264
3265 * trans-common.c (gfc_layout_global_equiv): Locate the error for
3266 underflow COMMON block.
3267 (gfc_trans_one_common): Fix bug for size of COMMON block containing
3268 EQUIVALENCE object. Also fix typo in an error message.
3269
3270 2003-11-25 Diego Novillo <dnovillo@redhat.com>
3271
3272 * Make-lang.in: Add check-gfortran to lang_checks.
3273 (check-f95): Alias for check-gfortran.
3274
3275 2003-11-25 Jason Merrill <jason@redhat.com>
3276
3277 * Make-lang.in (f95.tags): Create TAGS.sub files in each
3278 directory and TAGS files that include them for each front end.
3279
3280 2003-11-24 Paul Brook <paul@nowt.org>
3281
3282 PR fortran/13154
3283 * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks.
3284
3285 2003-11-24 Paul Brook <paul@nowt.org>
3286
3287 * expr.c (simplify_const_ref): Return SUCCESS for things we don't
3288 handle.
3289 * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape.
3290
3291 2003-11-24 Paul Brook <paul@nowt.org>
3292
3293 PR fortran/13105
3294 * array.c (gfc_array_ref_shape): Handle elemental dimensions.
3295 * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup.
3296
3297 2003-11-20 Richard Henderson <rth@redhat.com>
3298
3299 * trans-array.c (gfc_trans_allocate_array_storage): Use convert.
3300 (gfc_conv_array_base): Likewise.
3301 * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
3302 * trans-expr.c (gfc_conv_string_tmp): Likewise.
3303 * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise.
3304 * trans-stmt.c (gfc_trans_character_select): Likewise.
3305
3306 2003-11-13 Paul Brook <paul@nowt.org>
3307
3308 * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals.
3309
3310 2003-11-13 Canqun Yang <canqun@nudt.edu.cn>
3311
3312 * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects.
3313 (resolve_equivalence): New function.
3314 (resolve_equivalence_derived): New function.
3315
3316 2003-11-12 Richard Henderson <rth@redhat.com>
3317
3318 * trans.c (gfc_trans_code): Use annotate_with_locus instead of
3319 annotate_all_with_locus.
3320
3321 2003-11-11 Canqun Yang <canqun@nudt.edu.cn>
3322
3323 * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768.
3324 * trans-decl.c (gfc_finish_var_decl): Modified.
3325
3326 2003-11-08 Paul Brook <paul@nowt.org>
3327
3328 PR fortran/12704
3329 * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size
3330 arrays.
3331
3332 2003-11-06 Paul Brook <paul@nowt.org>
3333
3334 * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos.
3335
3336 2003-11-02 Canqun Yang <canqun@nudt.edu.cn>
3337
3338 * match.c (gfc_match_stopcode): Assign '0' to stop_code.
3339
3340 2003-10-27 Anthony Green <green@redhat.com>
3341
3342 * Make-lang.in (f95.stageprofile): Use tabs, not spaces.
3343 (f95.stagefeedback): Ditto.
3344
3345 2003-10-27 Andrew Pinski <pinskia@physics.uc.edu>
3346
3347 PR fortran/12682
3348 * Make-lang.in (f95.stageprofile): Add.
3349 (f95.stagefeedback): Add.
3350
3351 2003-10-23 Richard Henderson <rth@redhat.com>
3352
3353 * f96-lang.c (gfc_gimplify_expr): Remove.
3354 (LANG_HOOKS_GIMPLIFY_EXPR): Remove.
3355 (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New.
3356
3357 2003-10-23 Richard Henderson <rth@redhat.com>
3358
3359 * f95-lang.c (gfc_gimplify_expr): Return gimplify_status.
3360
3361 2003-10-20 Paul Brook <paul@nowt.org>
3362
3363 * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node.
3364 * trans-stmt.c (gfc_trans_do_while): Ditto.
3365
3366 2003-10-17 Paul Brook <paul@nowt.org>
3367
3368 * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size.
3369
3370 2003-10-17 Paul Brook <paul@nowt.org>
3371
3372 * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC.
3373
3374 2003-10-17 Feng Wang <wf_cs@yahoo.com>
3375
3376 * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type.
3377 (gfc_resolve_minloc): Ditto.
3378 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types.
3379 Return the value after subtracting the lower bound.
3380
3381 2003-10-16 Richard Henderson <rth@redhat.com>
3382
3383 * f95-lang.c (expand_function_body): Don't check flag_disable_gimple.
3384
3385 2003-10-16 Steven Bosscher <steven@gcc.gnu.org>
3386
3387 * lang.c: Remove -M option for now, it's in the way for C.
3388
3389 2003-10-14 Jason Merrill <jason@redhat.com>
3390
3391 * Make-lang.in (f95.tags): New rule.
3392
3393 2003-10-13 Richard Henderson <rth@redhat.com>
3394
3395 * trans.c (gfc_trans_code): Use annotate_all_with_locus.
3396
3397 2003-10-13 Paul Brook <paul@nowt.org>
3398
3399 * trans-decl.c (generate_local_decl): Don't create junk variables.
3400
3401 2003-10-13 Paul Brook <paul@nowt.org>
3402
3403 * resolve.c (resolve_formal_arglist): Use function result decl in
3404 preference to function decl.
3405
3406 2003-10-12 Richard Henderson <rth@redhat.com>
3407
3408 * f95-lang.c (gfc_define_builtin): New const_p argument. Set
3409 TREE_READONLY. Update all callers.
3410
3411 2003-10-12 Feng Wang <wf_cs@yahoo.com>
3412
3413 * iresolve.c (gfc_resolve_cshift): Change to match implementation.
3414 * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT.
3415 (gfc_is_intrinsic_libcall): Add CSHIFT.
3416
3417 2003-10-12 Richard Henderson <rth@redhat.com>
3418
3419 * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT.
3420 (gfc_trans_array_constructor_value): Likewise.
3421 (gfc_conv_array_initializer): Likewise.
3422 * trans-stmt.c (gfc_trans_character_select): Likewise.
3423
3424 2003-11-12 Kejia Zhao <kejia_zh@yahoo.com.cn>
3425
3426 * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove.
3427
3428 2003-10-11 Huang Chun <jiwang@mail.edu.cn>
3429
3430 * check.c (gfc_check_repeat): Check arguments are scalar.
3431 (gfc_check_trim): New function.
3432 * intrinsic.h (gfc_check_trim): Add prototype.
3433 * intrinsic.c (add_functions): Use it.
3434 * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat):
3435 Decalare.
3436 * trans-decl.c: Ditto.
3437 (gfc_build_intrinsic_fucntion_decls): Set them.
3438 * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars.
3439 (gfc_conv_intrinsic_trim): New function.
3440 (gfc_conv_intrinsic_repeat): New function.
3441 (gfc_conv_intrinsic_function): Use them.
3442
3443 2003-10-11 Huang Chun <jiwang@mail.edu.cn>
3444
3445 * trans-types.c (gfc_sym_type): Handle result variables.
3446
3447 2003-10-11 Huang Chun <jiwang@mail.edu.cn>
3448
3449 * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use
3450 gfc_get_character_type.
3451
3452 2003-10-11 Feng Wang <wf_cs@yahoo.com>
3453
3454 * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl.
3455
3456 2003-10-11 Paul Brook <paul@nowt.org>
3457
3458 * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions.
3459 (gfc_resolve_dprod): New function.
3460 (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type.
3461 * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare.
3462 (gfc_resolve_dprod): Declare.
3463 * intrinsic.c (add_functions): Use them.
3464 * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg.
3465
3466 2003-10-06 Richard Henderson <rth@redhat.com>
3467
3468 * f95-lang.c (gfc_init_builtin_functions): Add clzll.
3469 * trans-intrinsic.c (call_builtin_clz): Use it.
3470
3471 2003-10-05 Paul Brook <paul@nowt.org>
3472
3473 * f95-lang.c (expand_function_body): Call (push|pop)_function_context.
3474 * trans-decl.c (gfc_generate_function_code): Set
3475 cfun->function_end_locus.
3476
3477 2003-09-24 Jason Merrill <jason@redhat.com>
3478
3479 * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of
3480 TREE_LOCUS.
3481
3482 2003-09-21 Lifang Zeng <zlf605@hotmail.com>
3483 Paul Brook <paul@nowt.org>
3484
3485 * Make-lang.in (F95_OBJS): Add fortran/data.o.
3486 * array.c (gfc_inser_constructor): New function.
3487 (gfc_get_constructor): New function.
3488 (gfc_free_constructor): Initialize offset and repeat.
3489 (iterator_stack): Remove.
3490 (expand_info): Add offset, component and repeat fields.
3491 (expand_constructor): Set them.
3492 (expand): Set new fields.
3493 (gfc_copy_constructor): Ditto. Avoid recursion.
3494 * gfortran.h: Add prototypes for new functions.
3495 (gfc_constructor): Add offset, component and repeat.
3496 (iteratio_stack): Move to here.
3497 * resolve.c (check_data_variable): Convert data values into variable
3498 initializers.
3499 (traverse_data_list): Build implicit loop chain.
3500 (gfc_resolve): Ditto.
3501 * trans-array.c (gfc_conv_array_intializer): Handle repeat count.
3502 * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure.
3503 * trans-expr.c (gfc_conv_structure): Handle array initializers.
3504 (gfc_conv_expr): Update to match.
3505 * trans.h (gfc_conv_structure): Declare.
3506 * data.c: New file.
3507
3508 2003-09-20 Kejia Zhao <kejia_zh@yahoo.com.cn>
3509
3510 * trans.h: Add declarations for gfor_fndecl_si_kind and
3511 gfor_fndecl_sr_kind.
3512 * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
3513 * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function.
3514 (g95_conv_intrinsic_sr_kind): New function.
3515 (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and
3516 SELECTED_REAL_KIND.
3517
3518 2003-09-17 Lars Segerlund <Lars.Segerlund@comsys.se>
3519
3520 * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8
3521 instead of _4 and _8 as postfix for libgfortran calls.
3522
3523 2003-09-16 Paul Brook <paul@nowt.org>
3524
3525 * array.c (compare_bounds): New function.
3526 (gfc_compare_array_spec): Use it.
3527
3528 2003-09-14 Paul Brook <paul@nowt.org>
3529
3530 * primary.c (gfc_match_rvalue): Make sure sym->result is set.
3531 * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs.
3532
3533 2003-09-14 Paul Brook <paul@nowt.org>
3534
3535 * check.c (dim_rank_check): Allow assumed bounds if requested.
3536 (gfc_check_lbound): Call it.
3537 (gfc_check_ubound): Ditto.
3538 (gfc_check_size): Change to match.
3539 * simplify.c (gfc_simplify_bound): New function.
3540 (gfc_simplify_lbound): New function.
3541 (gfc_simplify_ubound): New function.
3542 * intrinsic.h: Declare them.
3543 * intrinsic.c (add_functions): Use them.
3544
3545 2003-09-14 Paul Brook <paul@nowt.org>
3546
3547 * io.c (format_lex): Initialize negative_flag.
3548 (check_format): Intialize repeat.
3549 * trans-io.c (gfc_new_nml_name_expr): Declare static.
3550 (gfc_new_var_expr): Ditto.
3551
3552 2003-09-14 Paul Brook <paul@nowt.org>
3553
3554 * trans-array.c (gfc_conv_array_initializer): Handle derived types.
3555 * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values.
3556
3557 2003-09-12 Paul Brook <paul@nowt.org>
3558
3559 * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold.
3560
3561 2003-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3562
3563 * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr
3564 for a correct expression.
3565
3566 2003-09-10 Kejia Zhao <kejia_zh@yahoo.com.cn>
3567
3568 * trans-intrinsic.c (real_compnt_info): New struct.
3569 (prepare_arg_info): New function.
3570 (gfc_conv_intrinsic_set_exponent): New function.
3571 (gfc_conv_intrinsic_scale): New function.
3572 (gfc_conv_intrinsic_nearest): New function.
3573 (gfc_conv_intrinsic_fraction): New function.
3574 (gfc_conv_intrinsic_exponent): New function.
3575 (gfc_conv_intrinsic_spacing): New function.
3576 (gfc_conv_intrinsic_rrspacing): New function.
3577 (gfc_conv_intrinsic_function): Use them.
3578
3579 2003-08-24 XiaoQiang Zhang (zhangapache@yahoo.com>
3580
3581 * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for
3582 build_int_2 changed from (high, low) to (low, high).
3583 * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len,
3584 ioparm_namelist_read_mode, iocall_set_nml_val_int,
3585 iocall_set_nml_val_float, iocall_set_nml_val_char,
3586 iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration.
3587 (gfc_build_io_library_fndecls): Add variable initialization.
3588 (gfc_new_nml_name_expr, get_new_var_expr): New function.
3589 (build_dt): Add namelist support.
3590 * io.c (value): New variable.
3591 (check_format): Support FMT_H now.
3592
3593 2003-09-07 Paul Brook <paul@nowt.org>
3594
3595 * io.c (gfc_resolve_dt): Error if format label is not defined.
3596
3597 2003-09-07 Kejia Zhao <kejia_zh@yahoo.com.cn>
3598
3599 * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is
3600 about case_switch's break. The other is about building the condition
3601 statement tree, which judges the argument in the range of the
3602 corresponding integer type.
3603 * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work
3604 for the large values.
3605
3606 2003-09-05 Paul Brook <paul@nowt.org>
3607
3608 * f95-lang.c (expand_function_body): Gimplify the function.
3609
3610 2003-09-04 Jeff Law <law@redhat.com>
3611
3612 * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at
3613 index zero!
3614
3615 2003-09-04 Paul Brook <paul@nowt.org>
3616
3617 * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls.
3618 (gfc_expand_stmt): New function.
3619 (LANG_HOOKS_RTL_EXPAND_STMT): Define.
3620 (expand_function_body): Use tree_rest_of_compilation.
3621 * trans-decl.c (gfc_generate_function_code): Don't free cfun.
3622
3623 2003-09-03 Jeff Law <law@redhat.com>
3624
3625 * f95-lang.c (gfc_init_builtin_functions): C arrays start at
3626 index zero!
3627
3628 2003-08-30 Paul Brook <paul@nowt.org>
3629
3630 * f95-lang.c (builtin_function): Remove #if 0 code.
3631 (gfc_define_builtin): New function.
3632 (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def.
3633 * mathbuiltins.def: New file.
3634 * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields.
3635 (gfc_intrinsic_map): Use mathbuiltins.def.
3636 (gfc_intrinsic_builtin_t): Remove.
3637 (gfc_build_intrinsic_lib_fndecls): Update.
3638 * trans-types.c (gfc_init_types): Remove redundant initilaization of
3639 signed_size_type_node.
3640
3641 2003-08-29 Paul Brook <paul@nowt.org>
3642
3643 * arith.c (gfc_real_kinds): Use correct minimum exponents.
3644
3645 2003-08-22 Kejia Zhao <kejia_zh@yahoo.com.cn>
3646
3647 * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO.
3648 (gfc_conv_intrinsic_function): Add MODULO.
3649
3650 2003-08-22 Jason Merrill <jason@redhat.com>
3651
3652 * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates.
3653
3654 2003-08-22 Andreas Jaeger <aj@suse.de>
3655
3656 * Make-lang.in (f95.install-common): Add DESTDIR support.
3657 * (f95.install-info): Likewise.
3658 (f95.uninstall): Likewise.
3659
3660 2003-08-19 Diego Novillo <dnovillo@redhat.com>
3661
3662 * trans-types.c (gfc_init_types): Initialize
3663 signed_size_type_node with size_type_node.
3664
3665 2003-08-18 Paul Brook <paul@nowt.org>
3666
3667 * dependency.c (gfc_dependency): New enum.
3668 (check_another_array_ref): Remove.
3669 (gfc_get_array_from_component): Remove.
3670 (get_x): Remove.
3671 (get_range): Remove.
3672 (get_no_of_elements): Use mpz_t, not mpf_t.
3673 (transform_sections): New function.
3674 (gfc_check_range_range): Rename ...
3675 (gfc_check_section_vs_section): ... to this. Use new function.
3676 (gfc_is_inside_range): Rewrite to match.
3677 (gfc_check_element_vs_section): Ditto.
3678 (gfc_check_element_vs_element): Ditto.
3679 (get_deps): Ditto.
3680 (gfc_dep_resolver): Ditto. Remove unused parameter.
3681 * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section,
3682 gfc_check_element_vs_element, gfc_is_inside_range,
3683 gfc_get_array_from_component): Remove prototypes for static functions.
3684 (gfc_dep_resolver): Update prototype.
3685 * trans-array.c (gfc_conv_resolve_dependencies): Change to match.
3686
3687 2003-08-15 Paul Brook <paul@nowt.org>
3688
3689 * trans-decl.c (gfc_build_qualified_array): Don't add symbols for
3690 return values to parent scope.
3691 (gfc_build_dummy_array_decl): Ditto.
3692
3693 2003-08-14 Paul Brook <paul@nowt.org>
3694
3695 * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the
3696 size of the type, not the pointer.
3697 * resolve.c (resolve_symbol): Give more accurate error message.
3698
3699 2003-08-10 Paul Brook <paul@nowt.org>
3700
3701 * trans-decl.c (gfc_build_function_decl): Only mangle global symbols.
3702
3703 2003-08-10 Paul Brook <paul@nowt.org>
3704
3705 * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived
3706 type components.
3707
3708 2003-08-10 Chun Huang <compiler@sohu.com>
3709
3710 * resolve.c (resolve_formal_arglist): Resolve STATEMENT function.
3711 (resolve_symbol): Ditto.
3712 * trans-expr.c (gfc_conv_statement_function): New function.
3713 (gfc_conv_function_expr): Use it.
3714
3715 2003-08-10 Paul Brook <paul@nowt.org>
3716
3717 * trans-array.c (gfc_conv_ss_startstride): Handle functions.
3718 (walk_function_expr): Set section rank.
3719 * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
3720
3721 2003-08-10 Paul Brook <paul@nowt.org>
3722
3723 * intrinsic.c (add_sym): Prefix names with correct string.
3724 (add_sym_0s): New function.
3725 (add_subroutines): Register abort.
3726
3727 2003-08-10 Erik Schnetter <schnetter@uni-tuebingen.de>
3728
3729 * gfortran.h: Introduce options to control the mangling.
3730 * lang.opt: Likewise.
3731 * options.c (gfc_init_options): Handle the options.
3732 * trans-common.c (gfc_sym_mangled_common_id): New function.
3733 (gfc_build_common_decl): Call it.
3734 * trans-decl.c (gfc_sym_mangled_function_id): New function.
3735 (gfc_get_extern_function_decl, gfc_build_function_decl): Call it.
3736
3737 2003-08-09 Paul Brook <paul@nowt.org>
3738
3739 * module.c (mio_symbol): Always ouput a namespace for formal args.
3740 (load_needed): Namespace now belong to their proper symbol.
3741 (gfc_dump_module): Change G95=>GFORTRAN.
3742
3743 2003-08-05 Paul Brook <paul@nowt.org>
3744
3745 * options.c: Force -fg77-calls.
3746
3747 2003-08-02 Paul Brook <paul@nowt.org>
3748
3749 * Makelang.in: Rename G95_* to GFORTRAN_*.
3750 * All sources: Rename G95_* to GFC_*.
3751
3752 2003-08-01 Paul Brook <paul@nowt.org>
3753
3754 * fortran/Make-lang.in: Use GMPLIBS.
3755 * fortran/config-lang.in: Set need_gmp.
3756 * trans-expr.c (gfc_conv_variable): Remove incorrect assertion.
3757
3758 2003-07-27 Andreas Jaeger <aj@suse.de>
3759
3760 * trans-decl.c (gfc_generate_constructors): Convert prototype to
3761 ISO C90.
3762 * trans-const.c (gfc_init_constants): Likewise.
3763 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise.
3764
3765 * gfortranspec.c: Convert to ISO C90.
3766 (lang_specific_driver): Correct copyright, remove ALT_LIBM usage.
3767
3768 2003-07-26 Paul Brook <paul@nowt.org>
3769
3770 * lang.opt: Add -fdump-parse-tree.
3771 * options.c (gfc_handle_option): Ditto.
3772 * resolve.c (resolve_forall_iterators): Convert to proper type.
3773 * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type.
3774
3775 2003-07-26 Paul Brook <paul@nowt.org>
3776
3777 * Makefile.in: Add build dependencies on files common with rest of gcc.
3778
3779 2003-07-26 Lifang Zeng <zlf605@hotmail.com>
3780
3781 * trans.h: Declare g95_trans_pointer_assignment.
3782 * trans-expr.c (g95_trans_pointer_assignment): New function.
3783 (g95_trans_pointer_assign): Use it.
3784 * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment.
3785 (g95_trans_pointer_assign_need_temp): New function.
3786
3787 2003-07-26 Paul Brook <paul@nowt.org>
3788
3789 * gfortran.texi: Replace references to g95.
3790
3791 2003-07-26 Paul Brook <paul@nowt.org>
3792
3793 Rename g95_* to gfc_*.
3794
3795 2003-07-25 Paul Brook <paul@nowt.org>
3796
3797 * gfortran.h: Rename from g95.h.
3798 * trans-types.c (boolean_type_node, booelan_true_node,
3799 boolean_false_node): Remove.
3800 * trans-types.h: Ditto.
3801
3802 2003-07-25 Chun Huang <compiler@sohu.com>
3803
3804 * parse.c (accept_statement): Implement BLOCK DATA statement.
3805 * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer
3806 variables.
3807
3808 2003-07-24 Lifang Zeng <zlf605@hotmail.com>
3809
3810 * trans-stmt.c (temporary_list): Define.
3811 (g95_trans_assign_need_temp): New function.
3812 (g95_trans_forall_1): Modified for WHERE.
3813 (g95_trans_where_assign): Modified.
3814 (g95_trans_where_2): Modified.
3815 (g95_evaluate_where_mask): Modified.
3816 (g95_trans_where): Modified.
3817 (g95_get_temp_expr): Removed.
3818 (g95_add_to_where_stmt_list): Removed.
3819 (compute_overall_iter_number): Modified for WHERE.
3820 * trans.h: Remove where_stmt_list.
3821
3822 2003-07-24 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3823
3824 * lang.opt: Correct description of options -J and -M.
3825
3826 2003-07-23 Steven Bosscher <steven@gcc.gnu.org>
3827
3828 * lang.opt: Move help text to here.
3829 * lang-options.h: Remove.
3830
3831 2003-07-23 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3832 * iresolve.c (g95_resolve_transpose): Proper variable in switch.
3833 * simplify.c (g95_simplify_nearest): Fix typo and use a correct test
3834 on kind.
3835
3836 2003-07-22 Steven Bosscher <steven@gcc.gnu.org>
3837 Paul Brook <paul@nowt.org>
3838
3839 * check.c (check_rest): Use global pedantic flag.
3840 * io.c (data_desc): Ditto.
3841 * error.c (g95_warning, g95_warning_now): Use global flag.
3842 * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE.
3843 (expand_function_body): Update to new prototypes.
3844 (g95_init): Use new option names.
3845 * g95.h (g95_option_t): Standardize names.
3846 (g95_init_options, g95_handle_option): Update prototypes.
3847 * interface.c: Use new option names.
3848 * match.c: Ditto.
3849 * module.c: Ditto.
3850 * parse.c: Ditto.
3851 * primary.c: Ditto.
3852 * resolve.c: Ditto.
3853 * scanner.c: Ditto.
3854 * simplify.c: Ditto.
3855 * symbol.c: Ditto.
3856 * trans-array.c: Ditto.
3857 * trans-expr.c: Ditto.
3858 * trans-types.c: Ditto.
3859 * trans-decl.c: Ditto.
3860 (g95_build_library_function_decl): Remove obsolete VPARAMS.
3861 * trans.h: Ditto.
3862 * options.c (g95_display_help): Remove.
3863 (g95_init_options): Convert to new scheme.
3864 (set_Wall): Ditto
3865 (g95module_option): Ditto, rename from g95_parse_arg.
3866 (g95_handle_module_path_options): New function.
3867 * trans-equivalence.c: Fix error message.
3868 * lang.opt: Corrections.
3869
3870 2003-07-21 Steven Bosscher <steven@gcc.gnu.org>
3871
3872 * lang.opt: New file.
3873
3874 2003-07-21 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3875
3876 * decl.c (match_attr_spec): Set colon_seen.
3877
3878 2003-07-14 Paul Brook <paul@nowt.org>
3879
3880 * trans-array.c: Update comment.
3881 (g95_trans_array_constructor_subarray): Cleanup loopinfo data.
3882 * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith,
3883 minmaxloc,minmaxval): Ditto.
3884 * trans-io.c (g95_trans_transfer): Ditto.
3885 * trans-stmt.c: Remove unneeded prototypes.
3886 (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain.
3887 (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo.
3888 (compute_inner_temp_size): Remove bits of dead code. Add comments.
3889 Don't share loopinfo.
3890 (compute_overall_iter_number): Declare as static.
3891 (allocate_temp_for_forall_nest): Ditto.
3892 (g95_trans_forall_1): Don't pass shared loopinfo.
3893 * trans.c (g95_start_block): Expand comment.
3894
3895 2003-07-12 Paul Brook <paul@nowt.org>
3896
3897 * arith.c (g95_index_integer_kind): Remove unused initializer.
3898 * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array
3899 index by size of element.
3900 (generate_loop_for_rhs_to_temp): Ditto.
3901 (allocate_temp_for_forall_nest): Use element size, not index size.
3902
3903 2003-07-11 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3904
3905 * arith.c (g95_index_integer_kind): Add a TODO.
3906 * simplify.c (g95_simplify_nearest): Add a TODO.
3907
3908 2003-07-09 Chun Huang <compiler@sohu.com>
3909
3910 * trans.h: Add declarations for gfor_fndecl_string_scan and
3911 gfor_fndecl_string_verify.
3912 * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
3913 * trans-intrinsic.c (g95_conv_intrinsic_scan): New function.
3914 (g95_conv_intrinsic_verify): New function.
3915 (g95_conv_intrinsic_function): Add SCAN and VERIFY.
3916 * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case
3917 of parameter 'BACK=.TRUE.'
3918
3919 2003-07-05 Lifang Zeng <zlf605@hotmail.com>
3920
3921 * trans-stmt.c (iter_info, forall_info): Define.
3922 (g95_trans_forall_block): Remove.
3923 (g95_trans_forall_loop): Use forall info blocks.
3924 (g95_trans_nested_forall_loop): New function.
3925 (g95_do_allocate): Handle things other than logical masks.
3926 (generate_loop_for_temp_to_lhs): New function.
3927 (generate_loop_for_rsh_to_temp): New function.
3928 (compute_inner_temp_size): New function.
3929 (compute_overall_iter_number): New function.
3930 (allocate_temp_for_forall_nest): New function.
3931 (g95_trans_forall): Move body ...
3932 (g95_trans_forall_1): ... to here. Handle loops with temporaries.
3933
3934 2003-07-02 Paul Brook <paul@nowt.org>
3935
3936 * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars
3937 in correct scope. Change callers to match.
3938 * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays.
3939 * iresolve.c (g95_resolve_reshape): Only use constant shapes.
3940
3941 2003-07-02 Paul Brook <paul@nowt.org>
3942
3943 * trans-array.c (g95_conv_loop_setup): Remove dead var. Use
3944 expression shape for all expressions.
3945 * trans-decl.c (g95_symbol_init): Allow adding at very end of list.
3946
3947 2003-07-03 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3948
3949 * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options,
3950 g95_parse_arg), intrinsic.c (g95_convert_type): support of
3951 -Wconversion.
3952 * intrinsic.c, g95.h: Add g95_convert_type_warn,
3953 * resolve.c (g95_resolve_index): Call it.
3954
3955 2003-07-02 Paul Brook <paul@nowt.org>
3956
3957 * iresolve.c (g95_resolve_reshape): Set expression shape.
3958 (g95_resolve_shape): Ditto.
3959 * simplify.c (g95_simplify_shape): Move common code outside condition.
3960 * trans-array.c (g95_conv_array_initializer): Teach it how to count.
3961
3962 2003-07-01 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
3963
3964 * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve
3965 conformance checks.
3966
3967 2003-06-29 Paul Brook <paul@nowt.org>
3968
3969 * array.c (g95_simplify_iterator_var): Don't bother with return value.
3970 * expr.c (find_array_element, find_component_ref): New functions.
3971 (remove_subobject_ref): New function.
3972 (simplify_const_ref): Use them. Rename from simplify_component_ref.
3973 (simplify_ref_chain): New function.
3974 (g95_simplify_expr): Use it. Simplify parameter variable subobjects.
3975 (g95_specification_expr): Simplify the expression.
3976 * resolve.c (resolve_operator): Check simplifications return code.
3977 (g95_resolve_expr): Ditto.
3978
3979 2003-06-26 Paul Brook <paul@nowt.org>
3980
3981 * expr.c (simplify_component_ref): New function.
3982 (g95_simplify_expr): Use it.
3983 * resolve.c (resolve_structure_cons): Handle references.
3984
3985 2003-06-25 Paul Brook <paul@nowt.org>
3986
3987 * trans-io.c (build_dt): Handle internal units.
3988
3989 2003-06-25 Canqun Yang <canqun@yahoo.com.cn>
3990
3991 * trans-common.c (g95_build_common_decl): Array index range starts at 0.
3992 (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common):
3993 Use g95_array_index_type instead of integer_type_node.
3994 (g95_build_common_decl, g95_set_common_master_type): Use
3995 g95_character1_type_node instead of char_type_node.
3996 * trans-equivalence.c (g95_layout_local_equiv): As above.
3997
3998 2003-06-24 Steven G. Kargl <kargls@attbi.com>
3999
4000 * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg):
4001 remove last remains of -fquiet.
4002
4003 2003-06-22 Paul Brook <paul@nowt.org>
4004
4005 * resolve.c (resolve_operator): Don't fail if we can't simplify.
4006 (g95_resolve_expr): Ditto.
4007 (resolce_code): Mark as static.
4008 * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the
4009 gimplifer doesn't (yet).
4010
4011 2003-06-20 Paul Brook <paul@nowt.org>
4012
4013 * g95.h: Add ST_PAUSE and EXEC_PAUSE.
4014 * match.c (g95_match_if): Add ST_PAUSE.
4015 (g95_match_stopcode): New function.
4016 (g95_match_pause, g95_match_stop): Use it.
4017 * parse.c (g95_ascii_statement): Handle ST_PAUSE.
4018 (decode_stmt, next_statement, parse_executable): Ditto.
4019 * resolve.c (resolve_code): Ditto.
4020 * st.c (g95_free_statement): Ditto.
4021 * trans-stmt.c (g95_trans_pause): New function.
4022 * trans-stmt.h: Declare it.
4023 * trans.c (g95_trans_code): Use it.
4024 * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string):
4025 Declare.
4026 (g95_build_builtin_function_decls): Initialize them.
4027 * trans.h: Ditto.
4028 * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE.
4029
4030 2003-06-18 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4031
4032 * io.c (g95_match_open , g95_match_close, g95_match_inquire,
4033 match_filepos): Fix error handling.
4034
4035 2003-06-18 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4036
4037 * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size):
4038 Add assertions on arguments.
4039 * resolve.c (expression_shape): Remove useless &.
4040 * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits,
4041 g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset,
4042 g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent,
4043 g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range
4044 g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing,
4045 g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions.
4046 (g95_simplify_not, g95_simplify_scale): Add assertions.
4047
4048 2003-06-15 Paul Brook <paul@nowt.org>
4049
4050 Clean up stuff to work with the ssa optimizers.
4051 * convert.c (convert): Handle BOOLEAN_TYPEs.
4052 * f95-lang.c (g95_truthvalue_conversion): Implement.
4053 * trans-array.c (g95_trans_array_constructor_value): Group multiple
4054 scalar values.
4055 * trans.h (g95_truthvalue_conversion): Declare.
4056 * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants.
4057 * trans-stmt.c (g95_trans_character_select): Don't create array
4058 assignments. Mark labels as indirect jump targets.
4059 * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes.
4060 (g95_get_dtype_cst): Handle LOGICAL types.
4061
4062 2003-06-14 Paul Brook <paul@nowt.org>
4063
4064 * f95-lang.c (g95_gimplify_expr): New function.
4065 * trans-array.c (g95_trans_array_constructor_value): Don't create
4066 array assignments.
4067 (g95_conv_expr_descriptor): Rename simple->gimple.
4068 * trans-expr.c (conv_expr_op): Use proper logical operators.
4069 * trans-intrinsic.c (build_fixbound_expr): New function.
4070 (build_fix_expr): Ditto.
4071 (g95_conv_intinsic_aint): Use them. Use builtin functions.
4072 (g95_conv_intrinsic_function): Add FLOOR and CEILING.
4073
4074 2003-06-10 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4075
4076 * array.c (g95_compare_array_spec): Remove unreachable code.
4077 * expr.c (g95_copy_expr): Likewise.
4078 * intrinsic.c (g95_convert_type): Likewise.
4079 * misc.c (g95_code2string): Likewise.
4080 * simplify.c (g95_simplify_ishft, g95_simplify_real,
4081 g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise.
4082 * trans-stmt.c (g95_trans_select): Likewise.
4083 * primary.c (extend_ref): Add an assertion.
4084 * simplify.c (g95_convert_constant): Add const.
4085 * intrinsic.h: Remove g95_check_x_ni.
4086 * f95-lang.c (g95_finish): Call g95_release_include_path.
4087
4088 2003-06-10 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4089
4090 * resolve.c (resolve_contained_functions): Fix typo introduced on
4091 2003-01-13.
4092
4093 2003-06-09 Paul Brook <paul@nowt.org>
4094
4095 * g95.h: Include system.h not hwint.h.
4096 * many: use safe-ctype.h not ctype.h. Change isalpha -> ISALPHA, etc.
4097 * misc.c (g95_getmem): Use xmalloc/memset instead of calloc.
4098
4099 2003-06-09 Paul Brook <paul@nowt.org>
4100
4101 * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables.
4102 * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE.
4103 * trans-decl.c (g95_add_decl_to_functions): Make non-static.
4104 (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects.
4105 (g95_generate_function_code): Translate COMMON and EQUIVALENCE
4106 objects.
4107 * trans.h (g95_trans_equivalence, g95_trans_common,
4108 g95_add_decl_to_function): Declare.
4109 * trans-common.c, trans-equivalence.c: New files.
4110
4111 2003-06-08 Steven Bosscher <steven@gcc.gnu.org>
4112
4113 * intrinsic.c (g95_intrinsic_extension): Remove.
4114 (add_functions): Substitute g95_check_x for g95_check_x_ni
4115 everywhere.
4116 (g95_init_expr_extensions): New function.
4117 (g95_intrinsic_func_interface): Use it.
4118 * intrinsic.h: Remove extern decl for g95_intrinsic_extension.
4119 * check.c (g95_check_digit, g95_check_huge, g95_check_kind,
4120 g95_check_precision, g95_check_present, g95_check_radix,
4121 g95_check_range, g95_check_selected_real_kind): Do not set
4122 g95_intrinsic_extension.
4123 (g95_check_x_ni): Remove now duplicate of g95_check_x.
4124
4125 * expr.c (check_inquiry): Add FIXME, fixup some code style.
4126
4127 2003-06-06 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4128
4129 * g95.h (ref_type): Name this type explicitly.
4130 * module.c (MIO_NAME): Add specialisations of mio_name.
4131 (mio_symbol_attribute, mio_typespec, mio_array_ref,
4132 mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them.
4133 (ab_attribute): Name this type explicitly.
4134 (mio_symbol_attribute, mio_expr): Add cast to call to find_enum.
4135
4136 2003-06-05 Kejia Zhao <kejia_zh@yahoo.com.cn>
4137
4138 * trans-intrinsic.c (g95_conv_allocated): New function.
4139 (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work.
4140
4141 2003-06-05 Steven Bosscher <steven@gcc.gnu.org>
4142
4143 * f95-lang.c: Don't include g95-support.h
4144 (g95_mark_addressable): Add prototype.
4145 (g95_init_decl_processing): Remove C front end hack.
4146 * f95-tree.c: Remove file.
4147 * support.c: Remove file.
4148 * g95-support.h: Remove file.
4149 * trans-types.c (g95_init_types): Set up boolean
4150 type related tree nodes.
4151 * Make-lang.in: Remove rules for dead files and
4152 dependencies on them.
4153
4154 2003-06-05 Steven Bosscher <steven@gcc.gnu.org>
4155
4156 * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final
4157 C front end dependency. Also, convert.c does not depend on
4158 g95-support.h anymore.
4159 * convert.c: Don't include c-common.h and g95-support.h
4160 * f95-lang.c: Don't inlude c-common.h and c-common.def (3x).
4161 (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p,
4162 stmts_are_full_exprs_p, current_stmt_tree,
4163 current_scope_stmt_stack): Remove.
4164 * g95-support.h (unsigned_conversion_warning): Kill proto.
4165 (boolean_type_node, boolean_true_node, boolean_false_node):
4166 Don't define here. Instead, make then true tree nodes in
4167 trans-types.
4168 * support.c (c_global_trees): Die, C front end, die!!!
4169 (g95_init_c_decl_hacks): Don't touch intmax_type_node,
4170 uintmax_type_node, string_type_node and const_string_type_node.
4171 (decl_constant_value, overflow_warning): Make static functions.
4172 They are in death row too, though.
4173 (default_conversion, c_expand_asm_operands): Remove.
4174 * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c,
4175 trans.c: Don't include c-common.h.
4176 * trans-types.c (boolean_type_node, boolean_true_node,
4177 boolean_false_node): Make them real tree nodes.
4178 * trans-types.h (intmax_type_node, string_type_node,
4179 const_string_type_node): Hack to work around C dependencies
4180 in builtin-types.def.
4181
4182 2003-06-04 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4183
4184 * decl.c (decl_types): Add some iterators-like sentinels.
4185 * decl.c (match_attr_spec): Use them.
4186 Use "decl_types" instead of "int".
4187 Add cast in call to g95_match_strings.
4188 * dump-parse-tree.c (g95_show_namespace): Use "g95_intrinsic_op"
4189 instead of "int".
4190 * g95.h (g95_intrinsic_op): Add some iterators-like sentinels.
4191 (g95_interface_info): Use "g95_intrinsic_op".
4192 * dump-parse-tree.c (g95_show_namespace): Use them.
4193 * interface.c (g95_check_interfaces): Use them.
4194 * module.c (read_module, write_module): Use them.
4195 * symbol.c (g95_get_namespace, g95_free_namespace): Use them.
4196 Use "g95_intrinsic_op".
4197 * interface.c (check_operator_interface): Use "g95_intrinsic_op".
4198 Add a default case in switch statement.
4199 * intrinsic.h (g95_generic_isym_id): Moved to...
4200 * g95.h (g95_generic_isym_id): here.
4201 (g95_intrinsic_sym): Use "g95_generic_isym_id".
4202 * intrinsic.c (make_generic): Use "g95_generice_isym_id".
4203 * trans-intrinsic.c (g95_intrinsic_map_t,
4204 g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id".
4205 * match.c (g95_match_intrinsic_op): Add cast in call to
4206 g95_match_strings.
4207
4208 2003-06-03 Steven Bosscher <steven@gcc.gnu.org>
4209
4210 * support.c (skip_evaluation, warn_conversion, lvalue_p,
4211 lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment,
4212 constant_fits_type_p, convert_and_check,
4213 unsigned_conversion_warning): Remove these ugly remnants
4214 we inherited from the C front end.
4215 (function_types_compatible): Remove '#if 0'-edcode.
4216 (build_modify_expr): Likewise.
4217 (convert_for_assignment): Don't use the deceased functions.
4218 The parameter fundecl is now unused.
4219 (decl_constant_value): Always just return decl. In fact
4220 this function is not used at present, but it might be in
4221 the future, when we start using the tree inliner.
4222 (overflow_warning, default_conversion, c_expand_asm_operands):
4223 Abort when these are called, they are part of the C type
4224 checking implementation and therefore poison to Fortran.
4225
4226 2003-06-04 Steven Bosscher <steven@gcc.gnu.org>
4227
4228 * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on
4229 c-pretty-print.o and c-dump.o. Add a comment on why we
4230 depend on c-semantics.c.
4231 * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN):
4232 Don't use the C front end tree dumper hook to dump the
4233 language specific tree representation -- we don't have
4234 one. So instead, inherit the default langhook.
4235
4236 2003-06-02 Paul Brook <paul@nowt.org>
4237
4238 * trans-expr.c (g95_conv_variable): Remove incorrent assertion.
4239
4240 2003-06-02 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4241
4242 * check.c (g95_check_associated): Use proper types. Remove
4243 extraneous argument in call to g95_error().
4244
4245 2003-06-02 Kejia Zhao <kejia_zh@yahoo.com.cn>
4246
4247 * resolve.c (resolve_operator): Make logical operands convert to the
4248 type with higher kind.
4249
4250 2003-06-02 Kejia Zhao <kejia_zh@yahoo.com.cn>
4251
4252 * check.c (g95_check_associated): Make sure both pointer and target has
4253 the same type and rank. Null pointer or array section with vector
4254 subscript as target are not allowed.
4255 * trans.h: Declare gfor_fndecl_associated.
4256 * trans-decl.c: (g95_build_builtin_function_decls): Initialize
4257 gfor_fndecl_associated.
4258 * trans-intrinsic.c (g95_conv_associated): New function.
4259 (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work.
4260
4261 2003-06-02 Kejia Zhao <kejia_zh@yahoo.com.cn>
4262
4263 * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER
4264 according to POINTER itself rather than TARGET.
4265 (g95_conv_expr_descriptor): Make lbound start at 1.
4266 * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify.
4267
4268 2003-06-01 Paul Brook <paul@nowt.org>
4269
4270 * expr.c (g95_type_convert_binary): Make it match the standard.
4271 * g95.texi: Remove dead link.
4272
4273 2003-06-01 Steven Bosscher <steven@gcc.gnu.org>
4274
4275 * g95.texi: Cleanup somewhat in preparation for inclusion
4276 in GCC CVS.
4277
4278 2003-05-23 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4279 Canqun Yang <canqun@yahoo.com.cn>
4280
4281 * resolve.c (compare_bound_int, resolve_where_shape): Proper return
4282 type.
4283 (g95_find_forall_index): Return proper value.
4284 (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to
4285 compare the return value from g95_find_forall_index.
4286
4287 2003-05-23 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4288 * g95.h, io.c (g95_st_label): Remove "length".
4289 (g95_symtree): Remove "link".
4290 (g95_case): Remove "code".
4291 * arith.c, arith.h (g95_compare_string, g95_convert_integer,
4292 g95_convert_real): Make an argument pointer to const.
4293 * decl.c (colon_seen): Add a TODO.
4294 * interface.c (g95_compare_types): Fix typo.
4295 * interface.c (compare_interfaces): Preserve value of "p".
4296 * intrinsic.c (sort_actual): Remove "i".
4297 * match.c (g95_match_assign): Proper type in call to g95_match().
4298 * parse.c (next_free): Avoid duplicate call due to macro.
4299 * parse.c (check_statement_label): wrong type in call to g95_error.
4300 * primary.c (match_real_constant): Add a TODO.
4301 * resolve.c (resolve_select): Remove useless conditional.
4302 * simplify.c (g95_simplify_repeat): Proper assignment to
4303 "value.character.string".
4304 * simplify.c (g95_simplify_reshape): Wrong variable in call to
4305 g95_error.
4306
4307 2003-05-20 Canqun Yang <canqun@yahoo.com.cn>
4308
4309 * trans-stmt.c: Remove unnecessary include file defaults.h.
4310
4311 2003-05-19 Lifang Zeng <zlf605@hotmail.com>
4312
4313 * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative
4314 stride.
4315 (g95_trans_forall): Allow arbitrary number of FORALL indexes and
4316 actual variables used as FORALL indexes.
4317
4318 2003-05-15 Paul Brook <paul@nowt.org>
4319
4320 * trans-array.c (g95_trans_static_array_pointer): Use
4321 null_pointer_node.
4322 (g95_trans_deferred_array): Initialize static array pointers.
4323 * trans-expr.c (g95_conv_function_call): Use formal arglist to
4324 correctly pass POINTER and absent CHARACTER arguments.
4325
4326 2003-05-14 Lifang Zeng <zlf605@hotmail.com>
4327
4328 * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement.
4329 (g95_resolve_forall_body): Resolve FORALL body.
4330 (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL.
4331 (g95_resolve_assign_in_forall): Resolve assignment inside FORALL.
4332 (g95_find_forall_index): Check whether the FORALL index appears in
4333 the expression or not.
4334 (resolve_code): Modified.
4335
4336 2003-05-14 Paul Brook <paul@nowt.org>
4337
4338 * iresolve.c (g95_resolve_spread): Convert ncopies to index_type.
4339
4340 2003-05-13 Paul Brook <paul@nowt.org>
4341
4342 * trans-types.c (g95_max_array_element_size): Now a tree node.
4343 (g95_init_types): Work out max size properly.
4344 (g95_get_dtype_cst): Modify to match.
4345
4346 2003-05-11 Paul Brook <paul@nowt.org>
4347
4348 * trans-io.c (add_case): Create a label decl for case labels.
4349
4350 2003-05-11 Paul Brook <paul@nowt.org>
4351
4352 * arith.c (g95_integer_index_kind): New variable.
4353 * f95-lang.c (g95_init): Move frontend initialization here ...
4354 (g95_post_options): ... from here.
4355 * g95.h (g95_index_integer_kind, g95_resolve_index): Declare.
4356 * intrinsic.c (add_functions): Use index kinds.
4357 * iresolve.c: Convert to index_kind where needed.
4358 * resolve.c (g95_resolve_index): Make public, use index_kind.
4359 (resolve_array_ref): Adjust to match.
4360 * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind.
4361 * trans-stmt.c: Ditto.
4362 * trans-types.c: Ditto.
4363 * trans-types.h (g95_array_index_kind): Remove declaration.
4364 * trans-expr.c (g95_conv_expr_present): Use null_pointer_node.
4365
4366 2003-05-07 Paul Brook <paul@nowt.org>
4367
4368 * trans-const.c (g95_conv_mpz_to_tree): Typecast constant.
4369 * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type
4370 of bound indices.
4371
4372 2003-05-07 Paul Brook <paul@nowt.org>
4373
4374 * trans-array.c (trans_static_array_pointer,
4375 g95_trans_array_constructor_value, g95_conv_array_initializer,
4376 g95_conv_structure): CONSTRUCTOR nodes only have one operand.
4377 (g95_add_loop_ss_code): Convert subscripts to the correct type.
4378 * trans-stmt.c (g95_trans_character_select): Ditto.
4379 * trans-types.c (g95_init_types): Ditto.
4380
4381 2003-05-07 Steven Bosscher <steven@gcc.gnu.org>
4382
4383 * f95-lang.c (expand_function_body): Use input_line, not lineno.
4384 * trans-decl.c (g95_generate_function_code,
4385 g95_generate_constructors): Likewise.
4386 * trans.c (g95_trans_runtime_check, g95_add_block_to_block,
4387 g95_get_backend_locus, g95_set_backend_locus, g95_trans_code):
4388 Likewise.
4389
4390 2003-05-07 Kejia Zhao <kejia_zh@yahoo.com.cn>
4391 * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type
4392 with components point to the DERIVED type itself, and two DERIVED
4393 type with components point to each other.
4394 * trans-expr.c (g95_conv_componet_ref): Modified
4395
4396 2003-05-07 Kejia Zhao <kejia_zh@yahoo.com.cn>
4397 * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into
4398 null_pointer_node.
4399 (g95_trans_pointer_assign): Implement Nullify.
4400
4401 2003-05-01 Paul Brook <paul@nowt.org>
4402
4403 * trans-array.c (g95_walk_function_expr): Cope with NULL esym.
4404 * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions.
4405
4406 2003-05-01 Paul Brook <paul@nowr.org>
4407
4408 * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c,
4409 trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and
4410 IS_EMPTY_STMT.
4411
4412 2003-05-01 Canqun Yang <canqun@yahoo.com.cn>
4413
4414 * trans-stmt.c (g95_trans_integer_select): Add a parameter to build
4415 CASE_LABEL_EXPR.
4416
4417 2003-04-28 Paul Brook <paul@nowt.org>
4418
4419 * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big
4420 as their kind suggests.
4421 (g95_resolve_reshape): Ditto.
4422
4423 2003-04-28 Chun Huang <compiler@sohu.com>
4424
4425 * trans-expr.c (g95_conv_substring_expr): New function.
4426 (g95_conv_expr): Use it.
4427
4428 2003-04-28 Paul Brook <paul@nowt.org>
4429
4430 * iresolve.c (g95_resolve_transpose): Make it match the
4431 implementation.
4432 * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE.
4433
4434 2003-04-18 Steven Bosscher <steven@gcc.gnu.org>
4435
4436 * trans-types.c (g95_add_field_to_struct): New function to
4437 add a field to a UNION_TYPE or RECORD_TYPE.
4438 * trans-types.h (g95_add_field_to_struct): Prototype.
4439 (g95_get_derived_type): Use g95_add_field_to_struct to add
4440 components.
4441 * trans-io.c (g95_add_field): Remove.
4442 (ADD_FIELD): Use new g95_add_field_to_struct function.
4443 (ADD_STRING): Likewise.
4444 * trans-stmt.c (g95_trans_select): Likewise.
4445 (g95_add_field): Remove duplicated function.
4446
4447 2003-04-18 Canqun Yang <canqun@yahoo.com.cn>
4448
4449 Port implementation for CHARACTER SELECT from Andy's tree.
4450 * trans-stmt.c (g95_trans_character_select): Implement character
4451 select. (g95_add_field): New function.
4452 * trans-decl.c: Declare 'gfor_gndecl_select_string'.
4453 (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'.
4454 * g95.h (struct g95_case): Add field 'int n'.
4455 * trans.h: Declare 'gfor_fndecl_select_string'.
4456
4457 2003-04-18 Steven Bosscher <steven@gcc.gnu.org>
4458
4459 * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove.
4460 (g95_insert_bbd): Die on duplicates.
4461 * g95.h (g95_insert_bbt_with_overlap): Delete prototype.
4462
4463 2003-04-14 Steven Bosscher <steven@gcc.gnu.org>
4464
4465 * g95.texi: Require GMP 4.0 -- like we actually
4466 do. Explain the testsuite and what-goes-where.
4467 Don't use undefined texinfo symbol. Break very
4468 long line. Remove finished item from the list
4469 of open projects.
4470
4471 2003-04-11 Canqun Yang <canqun@yahoo.com.cn>
4472
4473 * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries
4474 LOGICAL type.
4475
4476 2003-04-10 Canqun Yang <canqun@yahoo.com.cn>
4477
4478 * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL.
4479 (g95_trans_forall_body): New function.
4480
4481 2003-04-10 Canqun Yang <canqun@yahoo.com.cn>
4482
4483 * resolve.c (resove_where): New function.
4484 (resolve_where_shape): New function.
4485 (resolve_code): Add call to 'resolve_where'
4486 * trans-stmt.c (g95_trans_where): Modified.
4487 (g95_trans_where_2): New function.
4488 (g95_trans_where_assign): New function.
4489 (g95_evaluate_where_mask): New function.
4490 (g95_add_to_stmt_list): New function.
4491 (g95_get_temp_expr): New function.
4492 * trans.h (where_stmt_list): New structure.
4493
4494 2003-04-10 Paul Brook <paul@nowt.org>
4495
4496 * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
4497 (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto.
4498
4499 2003-04-10 Steven Bosscher <steven@gcc.gnu.org>
4500
4501 Update after mainline -> tree-ssa-branch merge.
4502 * f95-lang.c (g95_mark_addressable): Update put_var_into_stack
4503 call.
4504 (g95_init): Update for new lang_hooks definition.
4505 (g95_post_options): New langhook.
4506 (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options.
4507 * scanner.c (g95_new_file): Comment update.
4508
4509 2003-04-09 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4510
4511 * g95.h, lang-options.h: Add -Wimplicit-interface.
4512 * options.c (g95_init_options, g95_parse_arg): Set it.
4513 * interface.c (check_intents): Warn about call with implicit
4514 interface.
4515 * resolve.c (resolve_unknown_f, resolve_unknown_s): Call
4516 g95_procedure_use.
4517
4518 2003-04-05 Paul Brook <paul@nowt.org>
4519
4520 * iresolve.c (g95_resolve_spread): Don't resole based on type.
4521 * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD.
4522
4523 2003-03-29 Paul Brook <paul@nowt.org>
4524
4525 * iresolve.c (g95_resolve_pack): Don't bother resolving based on type.
4526 (g95_resolve_unpack): Ditto.
4527 * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function.
4528 (g95_conv_intrinsic_function): Use it. Remove PACK and UNPACK.
4529 (g95_is_intrinsic_libcall): Add PACK and UNPACK.
4530
4531 2003-03-25 Paul Brook <paul@nowt.org>
4532
4533 * arith.c (g95_unary_user, g95_user): Remove dead functions.
4534 * arith.h: Ditto.
4535 * array.c (g95_free_array_ref): Ditto.
4536 * g95.h: Ditto.
4537 * symbol.c (g95_use_derived_tree): Ditto.
4538 * intrinsic.c (add_functions): Use simplification for SCALE.
4539 * primary.c (g95_match_rvalue): Test sym, not symtree.
4540
4541 2003-03-25 Paul Brook <paul@nowt.org>
4542
4543 * trans-decl.c (build_function_decl): Add parameter before it gets
4544 turned into a constant.
4545 * iresolve.c (g95_resolve_eoshift): Resolve to a useful name.
4546 * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT.
4547 * trans-decl.c (g95_create_module_variable): Don't pushdecl constants.
4548
4549 2003-03-22 Paul Brook <paul@nowt.org>
4550
4551 * trans-array.c (g95_conv_array_initializer): Allow scalar
4552 expressions.
4553 * trans-decl.c (g95_finish_var_decl): Result variables are not
4554 module variables.
4555 * trans-intrinsic.c (g95_conv_intrinsic_transfer): New function.
4556 (g95_conv_intrinsic_function): Use it.
4557 * trans-types.h (g95_type_spec): Remove dead declaration.
4558
4559 2003-03-21 Paul Brook <paul@nowt.org>
4560
4561 * trans-decl.c (g95_build_function_decl): Mark string parameters.
4562
4563 2003-03-20 Paul Brook <paul@nowt.org>
4564
4565 * trans-decl.c (g95_build_function_decl): Put character length
4566 parameters at the end of the function declaration.
4567 * trans-expr.c (g95_conv_function_call): Ditto.
4568 * trans-types.c (g95_get_function_type): Ditto.
4569
4570 2003-03-20 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4571
4572 * resolve.c (resolve_formal_arglist): Don't impose intent for
4573 procedure arguments of pure functions.
4574 (resolve_select): Remove redundant assignment.
4575
4576 2003-03-19 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4577
4578 * arith.c (validate_logical), g95.h, options.c (g95_init_options):
4579 Remove option l1.
4580 * g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const.
4581 * iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add
4582 const.
4583 * lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls.
4584 Order list.
4585 * symbol.c (g95_add_type): Fix typo in comment.
4586
4587
4588 2003-03-16 Paul Brook <paul@nowt.org>
4589
4590 * dump-parse-tree.c (g95_show_code_node): Print resolved sym name.
4591 * expr.c (g95_build_call): Remove.
4592 * f95-lang.c (puchdecl_top_level): New function.
4593 * g95.h (g95_code): Store resolved symbol, not just the name.
4594 * intrinsic.c (g95_intrinsic_namespace): New global namespace.
4595 (g95_intirinsic_init_1, g95_intrinsic_done_1): Use it.
4596 (g95_get_intrinsic_sub_symbol): New function.
4597 * iresolve.c (g95_resolve_cpu_time): Use it.
4598 (g95_resolve_random_number): Ditto.
4599 * resolve.c: Set code->resolved_sym instead of code->sub_name.
4600 * trans-decl.c (g95_get_extern_function_decl): Give external decls
4601 the correct DECL_CONTEXT. Add global symbold to the global scope.
4602 * trans-stmt.c (g95_trans_code): Remove hacks now the fronted is
4603 fixed.
4604
4605 2003-03-16 Paul Brook <paul@nowt.org>
4606
4607 * g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays.
4608 * options.c (g95_parse_arg): Ditto.
4609 * module.c (mio_symbol_attribute): Handle the always_explicit bit.
4610 * resolve.c (resolve_formal_arglist): The always_explicit sould be set
4611 for the procedure, not the parameter.
4612 * trans-array.c (g95_trans_g77_array): New function.
4613 (g95_trans_assumed_size): Use it.
4614 (g95_trans_dummy_array_bias): Ditto.
4615 (g95_conv_array_parameter): Handle g77 arrays. Move existing body ...
4616 (g95_conv_expr_descriptor): ... to here. Update callers.
4617 * trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays.
4618 (g95_get_symbol_decl): Avoid processing g77 arrays multiple times.
4619 * trans-expr.c (g95_conv_function_call): Handle g77 arrays.
4620 * trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays.
4621 * trans-types.c (g95_is_nodesc_array): Handle g77 arrays.
4622 (g95_sym_type): Ditto.
4623
4624 2003-03-15 Paul Brook <paul@nowt.org>
4625
4626 * trans-array.c (g95_walk_elemental_function_args): Don't amputate the
4627 first chain.
4628 * trans-expr.c (g95_conv_function_call): Use the resolved symbol.
4629
4630 2003-03-14 Paul Brook <paul@nowt.org>
4631
4632 * trans-array.c (g95_array_is_packed): Remove.
4633 (g95_conv_array_base): Correctly handle all descriptorless cases.
4634 (g95_conv_array_stride): Use descriptorless strides.
4635 (g95_trans_dummy_array_bias): Don't always repack the array.
4636 (g95_build_dummy_array_decl): Automatic dummy arrays are only partial
4637 packed.
4638 * trans-types.c (g95_get_nodesc_array_type): Differentiate between
4639 dummy and non-dummy arrays...
4640 (g95_sym_type, g95_get_derived_type): ... like these.
4641 (g95_get_array_type_bounds): Allow discontiguous arrays.
4642
4643 2003-03-12 Paul Brook <paul@nowt.org>
4644
4645 * array.c (g95_resolve_array_spec): Fix comment.
4646 * g95.h (symbol_attributes): New flag always_explicit.
4647 * resolve.c (resolve_formal_arglist): Set it always_explicit.
4648 * iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify.
4649 * trans-array.c (g95_conv_descriptor_dimension): Remove dead assert.
4650 (g95_trans_array_bounds): Allow assumed shape arrays.
4651 (g95_trans_repack_array): Remove.
4652 (g95_trans_dummy_array_bias): Rewite to use descriptorless arrays.
4653 * trans-decl.c (g95_build_qualified_array): Only ignore absent
4654 bounds for assumed size arrays.
4655 (g95_build_dummy_array_decl): Use descriptorless arrays.
4656 * trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays.
4657 (g95_trans_pointer_assign): Fix typo.
4658 * trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead
4659 code.
4660 (g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays.
4661 * trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays.
4662 Also modify callers.
4663 * trans-types.h (g95_get_nodesc_array_type): Modify prototype.
4664
4665 2003-03-08 Paul Brook <paul@nowt.org>
4666
4667 * trans-array.c (g95_walk_elemental_functions): Don't reverse the SS.
4668 (g95_conv_array_ubound): Provide dummy value for assumed size arrays.
4669 * resolve.c (compare_spec_to_ref): Allow full array sections.
4670
4671 2003-03-08 Paul Brook <paul@nowt.org>
4672
4673 * expr.c (g95_simplify_expr): Also simplify array index and
4674 substring expressions.
4675 * resolve.c (compare_spec_to_ref): Check for assumed size bounds.
4676 * trans-array.c (g95_trans_array_bounds): New function.
4677 (g95_trans_auto_array_allocation): Use it.
4678 (g95_trans_assumed_size): Rewrite.
4679 * trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
4680 (gfor_fndecl_repack): Remove.
4681 (g95_build_qualified_array): Handle absent upper bounds.
4682 (g95_build_dummy_array_decl): Assumed shape arrays are descriptorless.
4683 (g95_get_symbol_decl): Update.
4684 (g95_build_intrinsic_function_decls): Initialize new decls.
4685 * trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
4686 (gfor_fndecl_repack): Remove.
4687 * trans-io.c (g95_build_io_library_fndecls): Correct prototypes.
4688 * trans-types.c: (g95_build_array_type): Merge duplicated code..
4689 (g95_get_nodesc_array_type): Handle absent bounds.
4690 * trans-types.h (g95_get_nodesc_array_type): Declare.
4691
4692 2003-03-04 Paul Brook <paul@nowt.org>
4693
4694 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including
4695 builtin-types.def.
4696
4697 2003-03-02 Paul Brook <paul@nowt.org>
4698
4699 * options.c (g95_init_options): Drfault to 1.
4700 (g95_pasrse_arg): Add -frepack-arrays, use strcmp.
4701 * trans-array.c (g95_conv_array_data, g95_conv_array_base,
4702 g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound):
4703 Handle non-constant size automatic arrays.
4704 (g95_conv_section_upper_bound, g95_conv_section_startstride): Use
4705 generic bound functions.
4706 (g95_trans_auto_array_allocation): Don't create a descriptor.
4707 (g95_trans_assumed_size): New function (broken).
4708 (g95_trans_dummy_array_bias): Remove unused var.
4709 * trans-array.h (g95_trans_assumed_size): Declare.
4710 * trans-decl.c (create_index_var): New fuction.
4711 (g95_build_qualified_array): New function.
4712 (g95_get_symbol_decl): Use it.
4713 (g95_trans_deferred_vars): Handle assumed shape seperately.
4714 * trans-types.c (get_element_type): Handle heap allocated arrays.
4715 (g95_is_nodesc_array): Include non-const size arrays.
4716 (g95_get_nodesc_array_type): Ditto.
4717
4718 2003-02-23 Paul Brook <paul@nowt.org>
4719
4720 * trans-array.c (g95_array_init_size): Should use stride, not size of
4721 last dimension.
4722
4723 2003-02-18 Paul Brook <paul@nowt.org>
4724
4725 * trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check
4726 after intrinsic function check.
4727
4728 2003-02-18 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4729
4730 * io.c (match_io): Fix missing return value and remove useless
4731 assignment.
4732 * match.c (g95_match): Remove useless assignment.
4733 * module.c (parse_string): Remove useless post increment.
4734 * simplify.c (g95_simplify_verify): Remove useless assignment.
4735
4736 2003-02-15 Paul Brook <paul@nowt.org>
4737
4738 * expr.c (restricted_intrinsic): Handle bad values gracefully.
4739 * g95.h (symbol_attribute): Add referenced member.
4740 (g95_symbol): Add dummy_order member.
4741 (g95_set_sym_referenced): Declare.
4742 * match.c (g95_match_assignment, g95_match_call): Use it
4743 * primary.c (match_actual_arg, g95_match_rvalue,
4744 g95_match_variable): Ditto.
4745 * symbol.c (next_dummy_order): New variable.
4746 (g95_set_sym_referenced): New function.
4747 (check_done): New function.
4748 (g95_add_*): Use it.
4749 * trans-decl.c: Make formatting conform to GCC standards.
4750 (g95_defer_symbol_init): Add dummy variables in the right order.
4751 (g95_get_symbol_decl): Only accept referenced variables.
4752 (g95_create_module_variable): Module variables are always required.
4753 (generatr_local_decls): New function.
4754 (generate_local_vars): New function.
4755 (g95_generate_function_code): Use it.
4756
4757 2003-02-13 Paul Brook <paul@nowt.org>
4758
4759 * trans-decl.c (g95_conv_struct_cons): Remove.
4760 (g95_get_symbol_decl): Use g95_conv_expr for structure initializers.
4761 * trans-expr.c (g95_conv_structure): New function.
4762 (g95_conv_expr): Use it.
4763
4764 2003-02-09 Paul Brook <paul@nowt.org>
4765
4766 * trans-array.c (g95_array_init_size): Don't evaluate the linit
4767 expressions multiple times.
4768 (g95_trans_auto_arry_allocation): Use pointer not tmp.
4769
4770 2003-02-08 Paul Brook <paul@nowt.org>
4771
4772 * module.c (mio_symtree_ref): Declare as static.
4773 (mio_expr): Remove dead code.
4774 (read_module): Set the symtree link for fixups.
4775 * trans-intrinsic.c (g95_conv_intrinsic_round): Rename...
4776 (build_round_expr): ... to this.
4777 (g95_conv_intrinsic_aint): New function.
4778 (g95_conv_intrinsic_function): Use it.
4779
4780 2003-02-08 Paul Brook <paul@nowt.org>
4781
4782 * trans-array.c (g95_trans_array_constructor_value): Use the acutal
4783 offset after modificaton, not the increment expression.
4784 * dependency.c: Kill excess whitespace.
4785
4786 2003-02-07 Sanjiv Gupta <sanjivg@noida.hcltech.com>
4787
4788 * dependency.h: Remove some function declarations.
4789 * dependency.c (get_no_of_elements): Change this function not to
4790 return int.
4791 * other: Add comments for all modified functions.
4792
4793 2003-02-06 Paul Brook <paul@nowt.org>
4794
4795 * g95spec.c (lang_specific_functions): Fix initializer warning.
4796 * dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree
4797 for structure type names.
4798 * trans-decl.c (g95_cons_structure_cons): New function.
4799 (g95_get_symbol_decl): Use it.
4800 * trans-expr.c (g95_conv_component_ref): Remove duplicate pointer
4801 referencing code.
4802
4803 2003-02-06 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4804
4805 * resolve.c (compare_cases): Add const to casts.
4806
4807 2003-01-30 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4808
4809 * g95.h (g95_check_f): Change a1 to f1m.
4810 * intrinsic.c (add_sym_1m, check_specific,
4811 g95_intrinsic_func_interface): Use it.
4812
4813 * module.c (init_pi_tree): Remove useless cast.
4814 (fp2): Fix argument type.
4815
4816 * parse.c (parse_select_block): Add comment.
4817
4818 2003-02-05 Toon Moene <toon@moene.indiv.nluug.nl>
4819
4820 * lang-options.h: Fix warning involving C90 concatenated
4821 strings.
4822
4823 2003-02-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
4824 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4825
4826 * io.c (format_asterisk): Complete initializer to kill warning.
4827 * arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND,
4828 DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines.
4829 (g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the
4830 new defines to complete initializers. Kills all warnings.
4831
4832 * Make-lang.in: Comment cleanup.
4833
4834 2003-02-05 Paul Brook <paul@nowt.org>
4835
4836 * array.c (g95_free_constructor): Handle NULL expressions.
4837 * resolve.c (resolve_structure_cons): Ditto.
4838 * decl.c (g95_match_null): New Function.
4839 (variable_decl): Use it.
4840 * module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE.
4841 * primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE.
4842 * trans-types.c (g95_set_decl_attributes): Remove empty function.
4843
4844 2003-02-05 Paul Brook <paul@nowt.org>
4845
4846 * trans.h (build1_v): New macro.
4847 (build_v): Remove pointless and incorrect prototype.
4848 * various: Use build1_v for GOTO_EXPR and LABEL_EXPRs.
4849 * f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args.
4850
4851 2003-02-01 Steven Bosscher <s.bosscher@student.tudelft.nl>
4852
4853 * Make-lang.in (F95_OBJS): Remove one more dead file.
4854
4855 2003-02-01 Paul Brook <paul@nowt.org>
4856
4857 * lang-specs.h: Don't pass -ffixed-form to the linker.
4858 * trans-decl.c (g95_generate_function_code): Clear saved decl chain.
4859
4860 2003-02-01 Paul Brook <paul@nowt.org>
4861
4862 * Make-lang.in (F95_OBJS): Remove dead files.
4863 * trans-array.c (g95_array_init_size): Do the right thing when
4864 ubound=NULL.
4865 * trans-decl.c (g95_generate_function_code): Initialize deffered
4866 symbol list before translating contained subroutines.
4867 * trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute
4868 scalar invariant values here...
4869 (g95_conv_variable, g95_conv_function_call): ... instead of here ...
4870 * trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here.
4871
4872 2003-01-29 Paul Brook <paul@nowt.org>
4873
4874 * trans-array.c (g95_add_loop_code): Put pre code in the right block.
4875 (g95_walk_elemental_function_args): Reverse chains before adding.
4876 (g95_reverse_ss): Move about a bit.
4877 * trans-expr.c (g95_conv_function_call): Handle scalar intrinsic
4878 function arguments.
4879
4880 2003-01-28 Paul Brook <paul@nowt.org>
4881
4882 * intrinsic.c (resolve_intrinsic): Use correct union member.
4883 * trans-array.c (g95_trans_dummy_array_bias): Don't touch absent
4884 parameters.
4885 * trans-decl.c (g95_get_symbol_decl): Don't translate initializers for
4886 use associated variables.
4887 * trans-intrinsic.c (g95_conv_intrinsic_present): Move body ...
4888 * trans-expr.c (g95_conv_expr_present): ... to here.
4889 * trans.h: Declare it.
4890 * trans-types.c (g95_sym_type): Assume subroutine if not specified.
4891
4892 2003-01-28 Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>
4893
4894 * array.c (expand_iterator): Suppress useless assignment.
4895 * decl.c (match_char_spec): Ditto.
4896 * io.c (match_io_iterator): Ditto.
4897 * primary.c (match_real_constant): Ditto.
4898 * interface.c (fold_unary, g95_free_interface, g95_extend_expr):
4899 Ditto. Also, use g95_intrinsic_op not int for intrinsic operators.
4900 * matchexp.c (match_add_operand, match_level_5): Likewise.
4901 * module.c (parse_atom, find_enum): Likewise.
4902 * resolve.c: move #include <string.h>
4903 (resolve_select): Fix serious typo.
4904
4905 2003-01-28 Steven Bosscher <s.bosscher@student.tudelft.n>
4906
4907 * Make-lang.in: Don't build with broken tree-ssa-pre.
4908
4909 2003-01-28 Steven Bosscher <s.bosscher@student.tudelft.nl>
4910
4911 * resolve.c (resolve_index): Add a TODO.
4912 * symbol.c: Remove useless "#include <ctype.h>".
4913
4914 2003-01-27 Paul Brook <paul@nowt.org>
4915
4916 * check.c (check_rest): Allow different type kinds as an extension.
4917 * g95.h (g95_resolve_f): Add f1m.
4918 * intrinsic.c (add_sym_1m, resolve_intrinsic): Use it.
4919 * intrinsic.h: Chenge prototypes for MIN and MAX.
4920 * iresolve.c (g95_resolve_minmax): New function.
4921 (g95_resolve_min, g95_resolve_max): Use it.
4922 * trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate
4923 arguments once.
4924 (g95_conv_intrinsic_present): Fix logic.
4925
4926 2003-01-27 Steven Bossche <s.bosscher@student.tudelft.nl>
4927
4928 * g95.h (g95_case): Don't be a tree, be a double linked list.
4929 * match.c (match_case_selector): Remove redundant semantics check.
4930 Clean up a few goto's to make it a tiny little bit faster.
4931 * resolve.c (case_tree): Die.
4932 (compare_cases): Accept and compare unbounded cases too.
4933 (check_case_overlap): Don't build a tree. Instead, merge-sort the
4934 whole list of g95_cases passed from resolve_select.
4935 (sane_logical_select): Die.
4936 (check_case_expr): Return FAILURE if a CASE label is of the wrong
4937 type kind.
4938 (resolve_select): Fixup case expression for computed GOTOs, put it
4939 in expr, not expr2, for easier handing in the parse tree dumper and
4940 the code generator. Rewrite the rest of the function: Kill
4941 unreachable case labels and unreachable case blocks.
4942 * dump-parse-tree.c (g95_show_code_node): Always dump expr for
4943 an EXEC_SELECT, not case2 anymore.
4944 * trans-const.c (g95_conv_constant_to_tree): New function.
4945 (g95_conv_constant): Use it.
4946 * trans-const.h: Declare prototype for the new function.
4947 * trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select,
4948 g95_trans_character_select): New static functions.
4949 (g95_trans_select): Rewrite.
4950
4951 2003-01-26 Paul Brook <paul@nowt.org>
4952
4953 * intrinsic.c (add_fnctions): Properly add dreal.
4954 * trans-intrinsic.c (g95_conv_intrinsic_present): New function.
4955 (g95_conv_intrinsic_function): Use it.
4956 * trans-io.c (build_dt): Abort on internal files (unimplemented).
4957
4958 2003-01-26 Paul Brook <paul@nowt.org>
4959
4960 Widespread changes to the handling of symbols in expressions. These
4961 are now linked via g95_symtree nodes.
4962 * parse.c (g95_fixup_sibling symbols): New function.
4963 (parse_contained): Use it.
4964 * g95.h (symbol_attribute): Add contained. Indicates a symbol is a
4965 contained procedure that has bee correctly fixed up.
4966 (g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol.
4967
4968 2003-01-24 Paul Brook <paul@nowt.org>
4969
4970 * trans-array.c (g95_walk_expr): Function result attributes are in
4971 sym->result.
4972 * trans-expr.c (g95_conv_function_call,
4973 g95_trans_arrayfunc_assign): Ditto.
4974 * trans-decl.c (g95_get_symbol_for_expr): Set sym->result.
4975
4976 2003-01-23 Steven Bosscher <s.bosscher@student.tudelft.nl>
4977
4978 * expr.c (check_restricted): Fix error message.
4979 * symbol.c (free_st_labels): Plug memleak.
4980
4981 2003-01-22 Steven Bosscher <s.bosscher@student.tudelft.nl>
4982
4983 * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca,
4984 reduce_binary_aa, reduce_binary, eval_intrinsic,
4985 eval_intrinsic_f2): Use typesafe prototypes for eval functions.
4986 * g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions
4987 for typesafe intrinsics helper functions.
4988 (g95_intrinsic_sym): Use them.
4989 * intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1,
4990 add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4,
4991 add_sym_5, add_conv, resolve_intrinsic, do_simplify,
4992 check_specific, g95_intrinsic_func_interface,
4993 g95_intrinsic_sub_interface): Adjust all calls to intrinsics
4994 helper functions.
4995 * trans-decl.c (g95_get_extern_function_decl): Likewise.
4996 * Make-lang.in: Don't disable warnings for strict prototypes
4997 any longer, everything is typesafe now.
4998
4999 2003-01-22 Steven Bosscher <s.bosscher@student.tudelft.nl>
5000
5001 * bbt.c (duplicate_node): Make static.
5002 * module.c (module_name): Make static.
5003 * scanner.c (include_dirs): Make static.
5004
5005 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
5006
5007 Hard coded _gfor_'s should not show up anymore.
5008 * g95.h (PREFIX): New macro.
5009 * iresolve.c (g95_resolve_cpu_time): Use PREFIX, not
5010 hard-coded "_gfor".
5011 (g95_resolve_random_number): Likewise.
5012 * trans-decl.c (g95_build_intrinsic_function_decls): Likewise.
5013 * trans-io.c: Remove 'prefix' macro. Replace all uses with
5014 the new PREFIX macro from g95.h.
5015
5016 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
5017
5018 The troubles of forking... Andy implemented this just now too.
5019 Let's stick to that and keep the trees close.
5020 * g95.h (g95_st_label): 'format' member is now a g95_expr.
5021 * io.c: Revert previous changes.
5022 (g95_match_format): Match the format string as a character
5023 literal expression.
5024 * match.h (g95_statement_label): Declare external.
5025 * parse.c: Revert previous changes.
5026 * symbol.c (g95_free_st_label): Free a g95_expr instead
5027 if a 'char *'.
5028 * trans-io.c: Revert previous changes.
5029 (build_dt): Use set_string to set the format string.
5030
5031 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
5032
5033 * io.c (format_string): Make non-static.
5034 (g95_match_format): Remember the format string.
5035 (terminate_io): Add I/O termination for empty I/O lists.
5036 * match.h: Declare external format_string.
5037 * parse.c (check_statement_label): Attack the format string
5038 to a format label for FORMAT statements.
5039 * trans-io.c (g95_add_field): Define prefix macro. Replace
5040 all uses of PREFIX define with a use of this macro.
5041 (build_dt): Implement formatted I/O for format labels.
5042
5043 2003-01-20 Steven Bosscher <s.bosscher@student.tudelft.nl>
5044
5045 * lang-options.h: Kill "-std=F".
5046 * options.c: Remove unimplemented "-std=F". Modify
5047 web address.
5048 * misc.c (g95_terminal_width): New function.
5049 * error.c (g95_error_init_1): Use g95_terminal_width.
5050 * g95.h: Add prototype for g95_terminal_width, remove
5051 fmode flag.
5052
5053 2003-01-19 Steven Bosscher <s.bosscher@student.tudelft.nl>
5054
5055 * Make-lang.in: Fix typo.
5056
5057 2003-01-18 Steven Bosscher <s.bosscher@student.tudelft.nl>
5058
5059 * g95.h (struct g95_case): Remove unused cruft, new member
5060 'where' to keep track of the locus of the default case.
5061 * match.c (g95_match_case): Add locus to the current case.
5062 (match_case_selector): Likewise.
5063 * parse.c (parse_select_block): Move semantics check for
5064 multiple DEFAULT cases out of here to...
5065 * resolve.c (check_case_overlap): ...here. Return sooner
5066 when possible.
5067 (check_case_expr): Take two g95_cases now, use to sure the
5068 expression kinds are the same.
5069 (resolve_select): Cleanup.
5070
5071 2003-01-18 Paul Brook <paul@nowt.org>
5072
5073 * trans-io.c: Fix typos in ported IO work (set_fla[tg]).
5074 * trans-decl.c (g95_set_symbol_decl): Handle non-array result
5075 variables.
5076 (g95_get_extern_function_decl): Put decls in the correct context.
5077
5078 2003-01-18 Steven Bosscher <s.bosscher@student.tudelft.nl>
5079
5080 * trans-io.c: Port changes from Andy to set ERR flag.
5081
5082 2003-01-17 Paul Brook <paul@nowt.org>
5083
5084 * trans-array.c: Add various comments.
5085 (g95_ss_terminator): Declare as const.
5086 (g95_walk_expr): Remove first parameter and update all callers.
5087 (g95_walk_op_expr): Initialize scalar SS properly.
5088 * trans-array.h (g95_walk_expr): Update prototype.
5089 * trans-expr.c: Update for new g95_walk_expr.
5090 * trans-intrinsic.c: Ditto.
5091 * trans-io.c: Ditto.
5092 * trans.h: Various comments for SS chains.
5093
5094 2003-01-17 Paul Brook <paul@nowt.org>
5095
5096 * intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING
5097 and RRSPACING.
5098 * intrinsic.c (add_functions): Use them.
5099 * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto.
5100 * trans-expr.c (g95_conv_expr_lhs): Abort on impossible error.
5101
5102 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
5103
5104 Fallout of a small merge conflict:
5105 * intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE).
5106
5107 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
5108
5109 * initrinsic.c: New add_sym_* functions for strong typing.
5110 (add_conv): Make prototype strict.
5111 * dump-parse-tree.c, dependency.c: Include config.h
5112 * resolve.c, trans-io.c: Fix typos.
5113
5114 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
5115
5116 * dump-parse-tree.c (g95_show_code_node): Show the
5117 condition for a computed GOTO that was transformed
5118 to a SELECT CASE construct.
5119 * resolve.c (check_case_overlap): Revert previous switch
5120 to treaps, it was too slow and didn't catch all trouble.
5121 (resolve_symbol): Be more flexible about module procedures.
5122 * symbol.c (check_conflict): Point to relevant section in
5123 the standard for dubious conflict. Allow procedure
5124 dummy arguments to be optional again.
5125 * trans-io (add_field): Rename to g95_add_field. Change
5126 all callers.
5127 * trans-stmt (trans_select): Handle unbounded cases for
5128 integer SELECT CASE constructs. Fix/add more comment.
5129
5130 2003-01-17 Steven Bosscher <s.bosscher@student.tudelft.nl>
5131
5132 * g95.h: Uses GCC's function attribute macros.
5133 * error.c, module.c, parse.c, g95.h: More function attributes.
5134
5135 2003-01-16 Steven Bosscher <s.bosscher@student.tudelft.nl>
5136 Forgot a file...
5137 * trans-decl.c (get_label_decl): Use TREE_LINENO instead
5138 of DECL_SOURCE_LINE, and TREE_FILENAME instead of
5139 DECL_SOURCE_FILE.
5140
5141 2003-01-16 Steven Bosscher <s.bosscher@student.tudelft.nl>
5142
5143 * f95-lang.c (pushdecl): Use TREE_LINENO instead of
5144 DECL_SOURCE_LINE.
5145 * trans.c (g95_trans_code): Use annotate_all_with_file_line
5146 instead of nowdead wrap_all_with_wfl.
5147
5148 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
5149
5150 * parse.c (g95_parse_file): In verbose mode, dump the parse tree
5151 before generating code, so we can still see it even if the code
5152 generation phase dies.
5153
5154 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
5155
5156 * decl.c (build_sym): Split out initialization expression parts...
5157 (add_init_expr_to_sym): ...to here.
5158 (variable_decl): Add the symbol following an attribute list to the
5159 symbol tree before parsing the optional initialization expression
5160 if the symbol is not of a derived type.
5161 * primary.c (g95_match_rvalue): Don't assume a symbol always has
5162 a value if it is a PARAMETER.
5163
5164 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
5165
5166 * misc.c: Don't #include <mcheck.h>
5167 * module.c: Ditto. Kill uses of mtrace, muntrace. If there
5168 ever was a glibc bug, then either this was never reported to
5169 glibc people, or it has been fixed for so long that there's
5170 no information you can find about it, anywhere.
5171
5172 2003-01-14 Steven Bosscher <s.bosscher@student.tudelft.nl>
5173
5174 Fix warnings:
5175 * module.c (attr_bits, bt_types, array_spec_types):
5176 Switch 'const' and 'static'.
5177 * iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'.
5178
5179 GNU'ify source code:
5180 * trans-io.c: Numerous fixes, one fixed warning and a few
5181 TODO markers so that we don't forget about them.
5182
5183 2003-01-13 Paul Brook <paul@nowt.org>
5184
5185 * intrinsic.c (add_functions): Add G95_ISYM_SCALE.
5186 * intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT.
5187 Add G95_ISYM_SCALE.
5188 * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto
5189 * match.c (g95_match_stop): Fix dumb == -> != error.
5190
5191 2003-01-13 Steven Bosscher <s.bosscher@student.tudelft.nl>
5192
5193 * dump-parse-tree.c (show_indent): Add line breaks. This
5194 whole dumping process needs cleanups.
5195 * f95-lang.c (g95_mark_addressable): Fix prototype to match
5196 the langhook. Fix 'return's accordingly.
5197 * g95-support.h: Adjust prototype.
5198 * g95.h: Add 'no_backend' member to 'g95_option_t' struct.
5199 * lang-options.h: Add '-fsyntax-only'.
5200 * options.c (g95_init_options): Init 'no_backend'.
5201 (g95_parse_arg): Deal with '-fsyntax-only'.
5202 * parse.c (g95_parse_file): Do not generate code if 'no_backend'
5203 is set.
5204
5205 2003-01-13 Steven Bosscher <s.bosscher@student.tudelft.nl>
5206 Patch from Arnaud
5207 * resolve.c (resolve_symbol): Assumed shape arrays must be dummy
5208 arguments. Also make sure that if a symbol is marked INTRINSIC,
5209 an intrinsic with the symbol's name actually exists.
5210 (check_conflict): Make EXTERNAL and DIMENSION attributes conflict.
5211 Do not allow PROCEDURES to have the SAVE, POINTER, TARGET,
5212 ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute.
5213
5214 2003-01-13 Steven Bosscher <s.bosscher@student.tudelft.nl>
5215
5216 * resolve.c (resolve_contained_functions): Fix condition, don't
5217 throw internal_error if a child namespace has no name. Apparently
5218 this can be the case?
5219
5220 2003-01-11 Paul Brook <paul@nowt.org>
5221
5222 Port changes from Andy's tree:
5223 * g95.h (g95_code): Add stop_code.
5224 * match.c (g95_match_stop): Detter syntax checking.
5225 * resolve.c (resolve_generic_f0): Return match type.
5226 (resolve_generic_f): Remove dead/duplicated code.
5227 (resolve_specific_f): Ditto.
5228 * dump-parse-tree.c (g95_show_code_node): Handle new STOP format.
5229 * trans-decl.c (gfor_fndel_stop_*): New fndecl nodes.
5230 * trans-stmt.c (g95_trans_stop): Handle new STOP format.
5231
5232 2003-01-11 Paul Brook <paul@nowt.org>
5233
5234 * trans-array.c: Various documentation/comment changes.
5235 * trans-stmt.c: Ditto.
5236
5237
5238 2003-01-10 Paul Brook <paul@nowt.org>
5239
5240 * options.c/h: Add -fdump-parse-tree as alias of -v.
5241
5242 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
5243
5244 * dump-parse-tree.c (g95_show_namespace): Fixed another
5245 typo. Sorry, it's Friday...
5246
5247 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
5248
5249 Spotted by Tobi:
5250 * trans-array.c, trans-array.h, trans.c, trans-const.c,
5251 trans-const.h, trans-decl.c, trans-expr.c, trans.h
5252 trans-intrinsic.c, trans-io.c, trans-stmt.c, trans-stmt.h
5253 trans-types.c: Fix bogus copyright years, add 2003.
5254 * trans-types.h: Give copyright header.
5255
5256 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
5257
5258 * dump-parse-tree.c (g95_show_namespace): Fixed typo.
5259 * expr.c, options.c, scanner.c: Add some more 'const' markers.
5260 * intrinsic.c: Some constant strings moved to read-only memory.
5261 * io.c (format_asterisk): Move to...
5262 * g95.h: ...here.
5263
5264 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
5265
5266 * dump-parse-tree.c (g95_show_namespace): Dump implicit
5267 types for ranges instead of per-letter. Indent the
5268 'CONTAINS' just like everything else.
5269 * resolve.c (resolve_contained_functions): Clarify comment.
5270 Explain non-obvious conditional expression. Improve
5271 diagnostics if tyoe cannot be resolved.
5272 Port semi-fix from Andy's tree:
5273 (was_declared): Move up before first use.
5274 (generic_sym, specific_sym): New functions. Code moved
5275 out if procedure_kind.
5276 (procedure_kind): Simplify using new functions.
5277 (resolve_generic_f): Make sure the functions we find in
5278 a parent namespace is generic.
5279 (resolve_specific_f): Ditto for specific functions.
5280
5281 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
5282
5283 * trans-stmt.c, trans.c: Fix some code style issues. Add
5284 some more comment (but still not enough!).
5285
5286 2003-01-10 Steven Bosscher <s.bosscher@student.tudelft.nl>
5287
5288 * symbol.c (flavors, procedures, intents, acces_types,
5289 access_types, ifsrc_types): Make const.
5290 * misc.c (g95_string2code): Make 'm' param 'const'.
5291 * module.c (find_enum, write_atom, mio_name): Make
5292 'm' param 'const'.
5293 (attr_bits, bt_types, array_spec_types, array_ref_types,
5294 ref_types, expr_types): Make const.
5295 * g95.h: Adjust external decls.
5296
5297 2003-01-09 Paul Brook <paul@nowt.org>
5298
5299 * Testsuite: Add a load of new cases.
5300
5301 2003-01-08 Steven Bosscher <s.bosscher@student.tudelft.nl>
5302
5303 * Make-file.in: Add dependency on back end header files;
5304 a parallel build should work now.
5305 * f95-lang-c (lang_identifier): Remove bogus comment.
5306 (g95_be_parse_file): Fix prototype.
5307 (g95_init): Make static.
5308 (g95_finish): Make static.
5309 * error.c (g95_syntax_error): Kill. Make define in...
5310 * g95.h (g95_syntax_error): Define.
5311 (g95.options): Make 'source' member 'const'.
5312 * interface.c (g95_match_interface): Explain
5313 hard-to-read condition.
5314 (g95_match_end_interface): Ditto.
5315 * trans_const.c (g95_build_string_const): Make 's' parameter
5316 'const'.
5317 * trans_const.h: Adjust protoype accordingly.
5318 * trans-decl.c: Include tree-dump.h
5319 (g95_generate_function_code): Build fixes for recent changes
5320 in the tree-ssa branch.
5321
5322 2003-01-08 Steven Bosscher <s.bosscher@student.tudelft.nl>
5323
5324 * format.c: Kill, move code from here...
5325 * io.c: ...to here.
5326 * Make-lang.in: Adjust.
5327 * MANIFEST: Ditto.
5328 * match.h: Ditto.
5329 * BUGS: Mention where to submit bugs. Move old content...
5330 * TODO: ...to here. New file.
5331
5332 2003-01-08 Steven Bosscher <s.bosscher@student.tudelft.nl>
5333 Fix most warnings, and suppress the ones we can't fix for now.
5334 * Make-lang.in: Suppress warnings about bad proto's in g95.h,
5335 these warnings just clutter the screen and there's not much
5336 we can do about them for now anyway.
5337 * check.c, iresolve.c: Mark unused function parameters.
5338 * dump-parse-tree.c (g95_show_array_spec): Punt on AS_UNKNOWN,
5339 they should be resolved before they get here.
5340 * error.c: Remove unused FILE *status_out.
5341 * f95-lang.c (g95_init): Remove bogus cast.
5342 * Many files: Make things 'const' where required.
5343 * g95.h: Fix prototypes for all modified functions above.
5344 (g95_options): Remove 'object' member.
5345
5346 2003-01-07 Steven Bosscher <s.bosscher@student.tudelft.nl>
5347
5348 * Make-file.in: Cleanup bogus targets. Add more comment.
5349 * lang-options.h: New option '-w'.
5350 * g95.h: add no_options field to struct g95_options.
5351 * options.c (g95_init_options): Default no_warnings to off.
5352 (g95_parse_arg): Recognise the '-w' switch and its alias,
5353 '-fno-warnings'.
5354 * error.c (g95_warning, g95_warning_now): Don't emit warning if
5355 no_warning option is set.
5356 * iresolve.c (g95_resolve_shape): Fix warning.
5357
5358 2003-01-07 Steven Bosscher <s.bosscher@student.tudelft.nl>
5359
5360 * primary.c (g95_next_string_char): Rename next_string_char, and
5361 make static. Adjust callers accordingly.
5362 * resolve.c (resolve_generic_f0): Return try, not match. Adjust
5363 callers accordingly.
5364 * g95.h: Split out all g95_match* functions to...
5365 * match.h: ...here. New file.
5366 * array.c, decl.c, expr.c, format.c, interface.c, io.c, match.c,
5367 matchexp.c, module.c, parse.c, primary.c: Inlcude match.h
5368
5369 2003-01-07 Steven Bosscher <s.bosscher@student.tudelft.nl>
5370
5371 * symbol.c (g95_clear_new_implicit, g95_add_new_implicit_range,
5372 g95_merge_new_implicit): New functions.
5373 (g95_match_implicit_none, g95_match_implicit): Move from here...
5374 * match.c (g95_match_implicit_none, g95_match_implicit): ... to here.
5375 Modify to use the new functions in symbol.c.
5376 * g95.h: Add and move prototypes.
5377
5378 2003-01-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
5379
5380 * bbt.c (insert): Use a typedef'ed compare_fn prototype for the
5381 node compare function.
5382 (g95_insert_bbt): Likewise.
5383 (g95_insert_bbt_with_overlap): Likewise.
5384 (g95_delete_bbt): Likewise.
5385 (delete_treap): Likewise. Also fix a potential bug when calling it.
5386 * module.c (compare_pointers): Change proto to compare_fn.
5387 (compare_integers): Likewise.
5388 (compare_true_names): Likewise.
5389 (find_true_name): Adjust call to compare_true_names to match proto.
5390 (require_atom, write_atom, mio_name): Fix 'const' warnings.
5391 (init_pi_tree): Make compare a compare_fn instead of (int *).
5392 * resolve.c (compare_cases): Change proto to compare_fn.
5393 * symbol.c (g95_compare_symtree): Change proto to compare_fn, make
5394 it static, and rename to compare_symtree.
5395 (delete_symtree, g95_undo_symbols, g95_new_symtree): Use renamed
5396 function.
5397 * g95.h: Kill g95_compare_symtree prototype. Adjust prototypes
5398 of g95_insert_bbt, g95_insert_bbt_with_overlap, and g95_delete_bbt.
5399
5400 2003-01-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
5401 * Make-lang.in: Fix spaces/tabs issues from previous patch.
5402 * patch.options: Blow away Paul's checkin mistake :-)
5403 * io.c (terminate_io): Fix memory leak (Arnaud).
5404
5405 2003-01-06 Steven Bosscher <s.bosscher@student.tudelft.nl>
5406
5407 * Make-lang.in: Teach about building DVI, info manual.
5408 * g95.texi: New file.
5409
5410 2003-01-02 Paul Brook <paul@nowt.org>
5411
5412 * trans-array.c (g95_reverse_ss): Make static and don't use.
5413 (g95_conv_ss_descriptor): Don't use g95_loopinfo
5414 (g95_conv_array_parameters): Modify for pointer assignments.
5415 (g95_walk_subexpr): New function.
5416 (g95_walk_expr*): Use it.
5417 * trans-array.h (g95_reverse_ss): Remove prototype.
5418 * trans-expr.c (g95_trans_pointer_assign): Implement.
5419 (Many): Set se.want_pointer before calling g95_conv_array_parameter.
5420 * trans-intrinsic.c: Sync with scalarizer changes.
5421 * trans-io.c: Ditto.
5422
5423 2002-12-29 Paul Brook <paul@nowt.org>
5424
5425 * trans-array.c: Document calling convention for arrays.
5426
5427 2002-12-19 Paul Brook <paul@nowt.org>
5428
5429 * trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect
5430 assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass
5431 optional parameters for some intrinsics.
5432 (g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE.
5433 * trans-expr.c (g95_conv_function_call): Pass NULL for absent
5434 optional parameters.
5435 * trans.h (g95_se): Add ignore_optional flag.
5436
5437 2002-12-15 Paul Brook <paul@nowt.org>
5438
5439 * trans-array.c (g95_conv_array_parameter): Fix partial rank sections.
5440 * trans-decl.c (g95_generate_function_code): Use TDI_original.
5441
5442 2002-12-14 Paul Brook <paul@nowt.org>
5443
5444 * trans-stmt.c (g95_trans_call): Use resolved symbol name.
5445
5446 2002-12-12 Paul Brook <paul@nowt.org>
5447
5448 * trans-array.c (g95_trans_array_constructor_subarray): Fully
5449 initialize the scalarizer.
5450 (various): Update to new format of g95_expr->value.constructor.
5451
5452 2002-12-08 Paul Brook <paul@nowt.org>
5453
5454 * trans-array.c (g95_put_offset_into_var): New function.
5455 (g95_trans_array_constructor_subarray): New function.
5456 (g95_trans_array_constructor_value): Use it.
5457 (g95_array_cons_size): Don't abort() on array components.
5458
5459 2002-12-08 Paul Brook <paul@nowt.org>
5460
5461 * Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o.
5462 * support.c: Update #includes.
5463 (statement_code_p, c_size_in_bytes, s_size_type_node): Remove.
5464 * trans-array.c: Update #includes.
5465 * trans.c: Ditto.
5466 * trans-const.c: Ditto.
5467 * trans-io.c: Ditto.
5468 * trans-types.c: Ditto.
5469 (g95_init_types): Set size_type_node.
5470 * trans-decl.c: Update #includes.
5471 (gfor_fndecl_adjust{l,r}): Declare and initialize.
5472 * trans-stmt.c: Update #includes.
5473 (g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR.
5474 (g95_trans_select): Fix check for unbounded ranges.
5475 * trans-expr.c: Update #includes.
5476 (g95_conv_string_tmp): New function.
5477 (g95_conv_concat_op): Use it.
5478 * trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare.
5479 * Trans-intrisic.c: Update #includes.
5480 (g95_conv_intrinsic_strcmp): New function.
5481 (g95_conv_intrinsic_adjust): Ditto.
5482 (g95_conv_intrinsic_function: Use them.
5483
5484 2002-11-30 Paul Brook <paul@nowt.org>
5485
5486 * trans-array.c (g95_walk_function_expr): Handle non-array return by
5487 reference.
5488 * trans-dec.c (g95_build_function_decl): Handle character return
5489 parammeters.
5490 (g95_get_fake_result_decl): Ditto.
5491 (g95_trans_deferred_vars): Ditto.
5492 * trans-expr.c (g95_conv_function_call): Ditto.
5493 (g95_trans_arrayfunc_assign) Limit to array valued functions.
5494 * trans-intrinsic.c (g95_conv_intrinsic_char): New function.
5495 (g95_conv_intrinsic_function): Use it.
5496 * trans-types.c (g95_sym_type): Handle functions returning strings.
5497 (g95_return_by_reference): Ditto.
5498 (g95_get_function_type): Ditto.
5499
5500 2002-11-18 Paul Brook <paul@nowt.org>
5501
5502 * trans-stmt.c (g95_trans_if): Fix IF statements when the condition
5503 requires a temporary.
5504 (g95_trans_select): Handle computed gotos.
5505 * trans-types.c (g95_build_array_type): Warn about non-functional
5506 assumed shape arrays.
5507 * trans-expr.c (g95_trans_scalar_assign): Correctly handle post
5508 blocks.
5509 * trans-intrinsic.c (g95_conv_intrinsic_round): New function.
5510 (g95_conv_intrinsic_int): New function.
5511 (g95_conv_intrinsic_mod): New function.
5512 (g95_conv_intrinsic_ichar): New function.
5513 (g95_conv_intrinsic_function): Use them.
5514 (g95_conv_intrinsic_dim): Use g95_evaluate_now.
5515
5516 2002-11-17 Toon Moene <toon@moene.indiv.nluug.nl>
5517
5518 * trans-types.c (g95_build_array_type): Assumed
5519 sized arrays can have rank > 1.
5520 * trans.c (g95_trans_code): Remove erroneous
5521 warning about CONTINUE.
5522 * trans-expr.c (g95_conv_variable): Remove
5523 erroneous assert.
5524
5525 2002-11-15 Paul Brook <paul@nowt.org>
5526
5527 * trans-array.c (g95_conv_array_parameter): Check for NULL stride.
5528
5529 2002-10-31 Paul Brook <paul@nowt.org>
5530
5531 * f95-tree.c: Remove tree copying stuff that's now in gimple.c
5532 * trans-expr.c (g95_conv_component_ref): Handle character string
5533 components.
5534 (g95_conv_string_parameter): Ditto.
5535 * trans-types.c (g95_get_derived_type): Add length decl to caracter
5536 string components.
5537
5538 2002-10-10 Paul Brook <paul@nowt.org>
5539
5540 * trans-decl.c (gfor_fndecl_size?): Declare and initialize.
5541 * trans-expr.c (g95_conv_function_call): Remove unreliable return value
5542 check.
5543 * trans-intrinsic.c (g95_conv_intrinsic_size): New function.
5544 (g95_conv_intrinsic_function): Handle size and shape intrinsics.
5545 (g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE.
5546 * trans-types.c (pvoid_type_node): Declare and initialize.
5547 * trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT
5548 (g95_array_allocate): Fix when base==data.
5549 (g95_conv_array_parameter): Correctly handle reduced rank sections.
5550 * trans-io.c (g95_trans_write): Correctly handle string modifiers.
5551
5552 2002-10-09 Paul Brook <paul@nowt.org>
5553
5554 * (g95_conv_expr_reference): Handle character strings correctly.
5555
5556 2002-10-07 Paul Brook <paul@nowt.org>
5557
5558 (g95_expand_decl): Rename from f95_expand_decl_stmt and use as
5559 langhook.
5560 * trans-array.c (g95_build_array_initializer): Remove.
5561 (g95_conv_array_initializer): New Function.
5562 (g95_trans_auto_arry_allocation): Cleanup.
5563 (g95_trans_init_character_array): Remove.
5564 * g95spec.c: Link in libgforbegin.
5565 * trans.c (g95_generate_code): Rename main function to MAIN__.
5566 (g95_create_var): New function.
5567 (g95_create_var_np): New function.
5568 (g95_evaluate_now): New function.
5569 (g95_start_block): New function.
5570 (g95_finish_block): New function.
5571 (g95_add_expr_to_block): New function.
5572 (g95_add_block_to_block): New function.
5573 * trans-expr.c (g95_conv_componen_ref): New function.
5574 * Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o.
5575 (F95_OBJS): Add dependency.o.
5576 * f95-lang.c (g95_is_simple_stmt): Remove.
5577 * f95-tree.c (mark_not_simple): New function.
5578 (unshare_all_trees): New function.
5579 (create_tmp_var, create_tmp_alias_var): Remove.
5580 * support.c (declare_tmp_vars, tree_last_decl): Remove.
5581 * trans*: Convert to new IR using GENERIC trees. Don't bother about
5582 SIMPLE/GIMPLE rules, this is now done by Lang-independant code.
5583
5584 2002-10-01 Paul Brook <paul@nowt.org>
5585
5586 * trans-array.c: Add support for descriptorless arrays.
5587 (g95_conv_array_data): New function.
5588 (g95_conv_array_base): New function.
5589 * trans-array.h: Declare these here.
5590 * trans-decl.c(g95_create_mopdule_variable): Perform variable
5591 initialization and creation here.
5592 (g95_create_module_vars): Instead of here.
5593 * trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*.
5594 * trans-intrinsic.c: Ditto.
5595 * trans-types.c (g95_is_nodesc_array): New function.
5596 (g95_get_nodesc_array_type): New function.
5597 (g95_sym_type, g95_get_derived_type): Use them.
5598 * trans-const.c (g95_conv_mpf_to_tree): Remove workaround.
5599
5600 2002-09-28 Paul Brook <paul@nowt.org>
5601
5602 * trans-const.c (g95_conv_mpf_to_tree): Work around backend bug.
5603 * trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex
5604 parameters.
5605
5606 2002-09-24 Paul Brook <paul@nowt.org>
5607
5608 * f95-lang.c (listify): Remove declaration.
5609 (expand_function_body): Use optimize >=1 instead of flag_tree_saa.
5610 (listify)
5611 * f95-tree.c (get_name): New function.
5612 * trans.c (module_namespace): Remove.
5613 * trans-decl.c: Use g95_chainon_list rather than chainon(listify()).
5614 * trans-types.c: Ditto.
5615
5616 2002-09-19 Paul Brook <paul@nowt.org>
5617
5618 * trans-array.c (g95_get_array_cons_size): New Function.
5619 (g95_con_ss_startstride): Handle Array constructors.
5620 (g95_conv_loop_setup): Ditto.
5621 (g95_conv_array_parameter): Ditto.
5622 * tras-decl.c (g95_finish_var_decl): Make initializes variables
5623 static.
5624
5625 2002-09-19 Paul Brook <paul@nowt.org>
5626
5627 * trans.c (g95_simple_fold_tmp): Detect variables inside
5628 NON_LVALUE_EXPR.
5629 * trans-stmt.c (g95_trans_arithmetic_if): Implement this.
5630
5631 2002-09-18 Steven Bosscher <s.bosscher@student.tudelft.nl>
5632
5633 * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o
5634
5635 2002-09-14 Paul Brook <paul@nowt.org>
5636
5637 * trans.c (g95_create_module_variable): Move to trans-decl.c.
5638 * trans-const.c (g95_conv_string_init): New Function.
5639 * trans-const.h: Declare it.
5640 * trans-decl.c (g95_get_symbol_decl): Handle initializers for static
5641 variables. Don't bail on intrinsic symbols.
5642 (get_extern_function_decl): Handle specific intrinsic functions.
5643 * trans-types.c (g95_sym_type): Dummy functions don't return
5644 reference types.
5645 * trans-array.c (g95_build_array_initializer): New Function.
5646 (g95_trans_auto_array_allocation): Build initializer for static decls.
5647 Don't use mpz_addmul, it's GMP4 only.
5648
5649 2002-09-12 Paul Brook <paul@nowt.org>
5650
5651 * trans-decl.c (g95_generate_code): Fix thinko with return variable.
5652 (g95_get_extern_function_decl, g95_build_function_decl): Mangle
5653 assembler names for module procedures.
5654
5655 2002-09-11 Tobias Schlueter <Tobias.Schlueter@physik.uni-muenchen.de>
5656
5657 * trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of
5658 dependency/
5659
5660 2002-09-10 Paul Brook <paul@nowt.org>
5661
5662 * trans-array.c: Change format of G95_SS_TEMP strictures.
5663 (g95_check_fncall_dependancy): New function.
5664 (trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating
5665 offsets.
5666 * trans-decl.c (g95_get_symbol_decl): move assertion after handling of
5667 result variables.
5668 (g95_build_function_decl): Don't assume result arrays are packed.
5669 (g95_trans-deferred-vars): Handle array result variables.
5670 (g95_generate_fuction_code): Clear saved_function_decls.
5671 * trans-expr.c (g95_conv_fnction_call): Handle direct array return by
5672 reference.
5673 (g95_trans_arrayfunc_assign): New function.
5674 (g95_trans_assignment): Use it.
5675 * trans.h (g95_ss): Add temp struct for G95_SS_TEMP.
5676 (g95_se): Add direct_byref.
5677 * trans-types.c: Use sym->result rather than sym where appropriate.
5678 * trans-intrinsic.c (g95_conv_intrinsic_funcall): New function.
5679 Update other functions to use this.
5680 (g95_is_intrinsic_libcall): New function.
5681 (g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics.
5682 (g95_walk_intrinsic_function): Ditto.
5683
5684 2002-09-08 Paul Brook <paul@nowt.org>
5685
5686 * trans-types.c: Change rank field to dtype field in array descriptor.
5687 * trans-array.c: Implement filling of dtype array descriptor field.
5688 * trans-intrinsic.c: Fix broken LEN intrinsic.
5689
5690 2002-09-07 Paul Brook <paul@nowt.org>
5691
5692 * trans-intrinsic.c: Remove outdated todo intrinsic list.
5693 (g95_get_symbol_for_expr): Remove hack for fortran based intrinsics.
5694 (g95_walk_intrinsic_function): Add MINLOC and MAXLOC.
5695
5696 2002-09-06 Paul Brook <paul@nowt.org>
5697
5698 * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o.
5699 (gt-f95-trans-types.h): Add dependancy information.
5700 * config-lang.in (gtfiles): Add trans-types.c
5701 * f95-lang.c (g95_be_parse_file): Pass error and warning counts
5702 back to top-level code.
5703 * trans-array.c, trans-types.c: Change format of array descriptor.
5704 (g95_conv_descriptor_dimension): New function.
5705 * trans-types.h (g95_conv_descriptor_rank): define.
5706 * trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC
5707 intrinsics.
5708
5709 2002-09-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
5710
5711 * trans-array.c, trans-types.c: Add rank information to descriptor.
5712
5713 2002-09-06 Tobias Schlueter <Tobias.Schlueter@physik.uni-muenchen.de>
5714
5715 * trans-stmt.c (g95_trans_allocate): Fix when ref==NULL.
5716
5717 2002-09-04 Paul Brook <paul@nowt.org>
5718
5719 * f95-lang.c (g95_create_decls): New function.
5720 (g95_init): Move initialization of external decls to above, and call
5721 from g95_be_parse_file.
5722 * trans.c (g95_finish_stmt): Don't amputate the decl chain.
5723 * trans-types.c (g95_init_types): Always name integer and char types.
5724 (g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL.
5725
5726 2002-09-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
5727
5728 * Make-lang.in: Add options.c to F95_PARSER_OBJS
5729
5730 2002-09-02 Paul Brook <paul@nowt.org>
5731
5732 * g95_generate_code: Clear the attr for __fortran_main.
5733 * trans-types.c (g95_finish_type): New function.
5734 * g95_init_io_state_type: Use g95_finish_type.
5735 * g95_conv_intrinsic_anyall: Fix thinko in result initialization.
5736
5737 2002-09-01 Paul Brook <paul@nowt.org>
5738
5739 * README.backend: Warn about the dangers of extra config.h files.
5740 Remove obsolete libgfor stuff.
5741 * config-lang.in: Add target-libgfor dependancy.
5742 * g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff.
5743
5744 2002-09-01 Toon Moene <toon@moene.indiv.nluug.nl>
5745
5746 * g95_conv_mpz_to_tree: Free storage pointed to by q,
5747 not by buff.
5748
5749 2002-08-30 Paul Brook <paul@nowt.org>
5750
5751 * trans-intrinsic.c (g95_conv_intrinsic_function,
5752 g95_walk_intrinsic_function): Added ANY and ALL.
5753 (g95_conv_intrinsic_anyall): New function.
5754 * iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in
5755 mangled name