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