OSDN Git Service

Fix illogical logic.
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2005-03-26  Steven G. Kargl  <kargls@comcast.net>
2
3         * arith.c (check_result): Fix illogical logic.
4
5 2005-03-26  Canqun Yang  <canqun@nudt.edu.cn>
6
7         * trans-common.c (create_common): Build RECORD_NODE for common blocks
8         contain no equivalence objects.
9         (add_equivalences): New argument saw_equiv.
10         (trans_common): New local variable saw_equiv.
11         (finish_equivalences): Add a local variable dummy, Always pass true
12         for the 3rd parameter to create_common.
13
14 2005-03-25  Steven G. Kargl  <kargls@comcast.net>
15
16         * intrinsic.texi: Fix "make dvi"
17
18 2005-03-24  Steven G. Kargl  <kargls@comcast.net>
19
20         * intrinsic.texi: New file.
21         * gfortran.texi: Include it; white space change; fix typo.
22
23 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
24
25         * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
26
27 2005-03-23  Steven Bosscher  <stevenb@suse.de>
28
29         * convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
30         * trans-array.c (gfc_trans_allocate_array_storage,
31         gfc_trans_allocate_temp_array gfc_trans_array_constructor_value,
32         gfc_conv_array_index_ref, gfc_trans_array_bound_check,
33         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
34         gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride,
35         gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds,
36         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
37         gfc_conv_expr_descriptor): Likewise.
38         * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp,
39         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
40         * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound,
41         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign,
42         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
43         gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop,
44         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
45         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc,
46         gfc_conv_intrinsic_merge, prepare_arg_info,
47         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise.
48         * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while,
49         gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs,
50         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
51         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
52         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign):
53         Likewise.
54         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise.
55         * trans.c (gfc_add_modify_expr): Likewise.
56
57 2005-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
58
59         * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
60         gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
61         gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
62         gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
63         gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
64         gfc_check_perror): new functions to check newly implemented
65         g77 intrinsics.
66         * gfortran.h: adding symbols for new intrinsics.
67         * intrinsic.c (add_functions): adding new intrinsics.
68         (add_subroutines): adding new intrinsics.
69         * intrinsic.h: prototype for all checking and resolving
70         functions.
71         * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
72         gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
73         gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
74         gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
75         gfc_resolve_kill_sub, gfc_resolve_link_sub,
76         gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
77         gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
78         gfc_resolve_perror): new functions to resolve intrinsics.
79         * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
80         for new symbols.
81
82 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
83
84         * dump-parse-tree.c (gfc_show_expr): Dump name of namespace
85         in which the variable is declared.
86
87         PR fortran/18525
88         * resolve.c (was_declared): Also check for dummy attribute.
89
90 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
91
92         * gfortran.h (arith): Remove ARITH_0TO0.
93         * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
94         (gfc_arith_power): Remove special casing of zero to integral
95         power zero.
96
97 2005-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
98
99         * Make-lang.in (fortran-warn): Remove -Wno-error.
100         (expr.o-warn, resolve.o-warn, simplify.o-warn,
101         trans-common.o-warn): Specify -Wno-error.
102
103 2005-03-17  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
104
105         * trans-array.c (gfc_trans_static_array_pointer,
106         get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix
107         comment and formatting typos.
108
109 2005-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
110
111         * invoke.texi: Fix typos.
112
113 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
114
115         * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
116
117 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
118
119         * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
120         to zero on label_tree.
121
122 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
123
124         PR fortran/18827
125         * io.c (resolve_tag): Add checking on assigned label.
126         (match_dt_format): Does not set symbol assign attribute.
127         * match.c (gfc_match_goto):Does not set symbol assign attribute.
128         * resolve.c (resolve_code): Add checking on assigned label.
129         * trans-common.c (build_field): Deals with common variable assigned
130         a label.
131         * trans-stmt.c (gfc_conv_label_variable): New function.
132         (gfc_trans_label_assign): Use it.
133         (gfc_trans_goto): Ditto.
134         * trans-io.c (set_string): Ditto.
135         * trans.h (gfc_conv_label_variable): Add prototype.
136
137 2005-03-14  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
138
139         PR fortran/20467
140         * symbol.c (check_conflict): A dummy argument can't be a statement
141         function.
142
143 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
144
145         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
146         the argument of the shift to the unsigned type.
147
148 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
149
150         PR fortran/16907
151         * resolve.c (gfc_resolve_index): Allow REAL indices as an extension.
152
153 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
154
155         PR fortran/20323
156         * resolve.c (gfc_resolve): Check if character lengths are
157         specification expressions.
158
159 2005-03-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
160
161         PR fortran/20361
162         * trans-array.c (gfc_stack_space_left): Remove unused variable.
163         (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
164         code.
165         * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
166         Remove declaration / prototype.
167         * trans-common.c (build_equiv_decl): Give union a name.  Check if
168         it can be put on the stack.
169         * trans-decl.c (gfc_stack_space_left): Move function here.
170         (gfc_build_qualified_array): Fix comment typo.
171         * trans.h (gfc_put_var_on_stack): Add prototype.
172
173 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
174
175         * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
176         * decl.c, trans.c: Don't use C++ style comments.
177         * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access,
178         ifsrc): Give names to enums and use ENUM_BITFIELD.
179         (gfc_access): Remove trailing comma.
180
181 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
182
183         PR 19936
184         * primary.c (match_complex_constant): Mangled complex constant may
185         be an implied do-loop.  Give implied do-loop matcher a chance.
186
187 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
188
189         PR fortran/19754
190         * resolve.c (compare_shapes):  New function.
191         (resolve_operator): Use it.
192
193 2005-03-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
194
195         * trans-const.c (gfc_conv_constant_to_tree): Use correct tree
196         type for COMPLEX constants.
197
198 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
199
200         PR fortran/19673
201         * trans-expr.c (gfc_conv_function_call): Correctly dereference
202         argument from a pointer function also if it has a result clause.
203
204 2005-03-04  Steven G. Kargl  <kargls@comcast.net>
205
206         * expr.c (gfc_copy_shape_excluding): Change && to ||.
207
208 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
209
210         * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
211         clarify comment.
212
213 2005-02-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
214         (port from g95)
215
216         PR fortran/19479
217         * simplify.c (gfc_simplify_bound): Rename to ...
218         (simplify_bound): ... this and overhaul.
219
220 2005-02-28  Steven G. Kargl  <kargl@gcc.gnu.org>
221
222         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
223         (gfc_conv_intrinsic_function): update function calls
224
225 2005-02-27  Steven G. Kargl  <kargl@gcc.gnu.org>
226
227         PR fortran/20058
228         * trans-types.c (gfc_max_integer_kind): Declare
229         (gfc_init_kinds): Initialize it.
230         * gfortran.h (gfc_max_integer_kind): extern it.
231         * primary.c (match_boz_constant): Use it; remove gfortran extension
232         of kind suffixes on BOZ literal constants
233
234
235 2005-02-27  Steven G. Kargl  <kargls@comcast.net>
236
237         * arith.c (gfc_check_real_range):  Remove multiple returns
238         (check_result): New function.
239         (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
240         gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.
241
242
243 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
244
245         * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
246
247
248 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-meunchen.de>
249
250         Unrevert previously reverted patch.  Adding this fix:
251         * module.c (find_true_name): Deal with NULL module.
252
253 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
254
255         Revert yesterday's patch:
256         2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
257
258                 * gfortran.h (gfc_component, gfc_actual_arglist, ...
259                 ... argument.  Copy string instead of pointing to it.
260
261 2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
262
263         * gfortran.h (gfc_get_namespace): Add second argument to prototype.
264         * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
265         gfc_get_namespace.
266         * module.c (mio_namespace_ref, load_needed): Likewise.
267         * parse.c (parse_interface, parse_contained): Likewise.  Here the
268         correct second argument matters.
269         * symbol.c (gfc_get_namespace): Add parent_types argument, only copy
270         parent's implicit types if this is set.
271         (gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
272         * trans-common.c (build_common_decl): Likewise.
273
274         * gfortran.h (symbol_attribute): New 'untyped' field, fix comment
275         formatting.
276         * symbol.c (gfc_set_default_type): Issue error only once, by setting
277         and checking 'untyped' attribute.
278
279         * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
280         fields into new struct 'op' inside the 'value' union.
281         * arith.c (eval_intrinsic): Adapt all users.
282         * dependency.c (gfc_check_dependency): Likewise.
283         * dump-parse-tree.c (gfc_show_expr): Likewise.
284         * expr.c (gfc_get_expr): Don't clear removed fields.
285         (free_expr0, gfc_copy_expr, gfc_type_convert_binary,
286         gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
287         check_intrinsic_op): Adapt to new field names.
288         * interface.c (gfc_extend_expr): Likewise.  Also explicitly
289         nullify 'esym' and 'isym' fields of new function call.
290         * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
291         Adapt to renamed structure fields.
292         * matchexp.c (build_node, match_level_1, match_expr): Likewise.
293         * module.c (mio_expr): Likewise.
294         * resolve.c (resolve_operator): Likewise.
295         (gfc_find_forall_index): Likewise.  Only look through operands
296         if dealing with EXPR_OP
297         * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
298         * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
299         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
300
301         [ Reverted ]
302         * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
303         'name' a 'const char *'.
304         (gfc_symbol): Likewise, also for 'module'.
305         (gfc_symtree): Make 'name' a 'const char *'.
306         (gfc_intrinsic_sym): Likewise, also for 'lib_name'.
307         (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
308         'char *' argument.
309         (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
310         initialize 'SYM->module'.
311         * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
312         pointer instead of empty string.
313         * dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
314         * interface.c (gfc_compare_types): Adapt check to account for possible
315         NULL pointer.
316         (compare_actual_formal): Check for NULL pointer instead of empty
317         string.
318         * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
319         Add 'const' qualifier.
320         (conv_name): Return a heap allocated string.
321         (find_conv): Add 'const' qualifier to 'target'.
322         (add_sym): Use 'gfc_get_string' instead of 'strcpy'.
323         (make_generic): Check for NULL pointer instead of empty string.
324         (make_alias): Use 'gfc_get_string' instead of 'strcpy'.
325         (add_conv): No need to strcpy result from 'conv_name'.
326         (sort_actual): Check for NULL pointer instead of empty  string.
327         * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
328         Adapt prototype.
329         * module.c (compare_true_names): Compare pointers instead of strings
330         for 'module' member.
331         (find_true_name): Initialize string fields with gfc_get_string.
332         (mio_pool_string): New function.
333         (mio_internal_string): Adapt comment.
334         (mio_component_ref, mio_component, mio_actual_arg): Use
335         'mio_pool_string' instead of 'mio_internal_string'.
336         (mio_symbol_interface): Add 'const' qualifier to string arguments.
337         Add level of indirection. Use 'mio_pool_string' instead of
338         'mio_internal_string'.
339         (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
340         (write_common, write_symbol): Use 'mio_pool_string' instead of
341         'mio_internal_string'.
342         (write_symbol0, write_symbol1): Likewise, also check for NULL pointer
343         instead of empty string.
344         (write_operator, write_generic): Pass correct type variable to
345         'mio_symbol_interface'.
346         (write_symtree): Use 'mio_pool_string' instead of
347         'mio_internal_string'.
348         * primary.c (match_keyword_arg): Adapt check to possible
349         case of NULL pointer.  Use 'gfc_get_string' instead of 'strcpy'.
350         * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
351         gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
352         'strcpy'.
353         (ambiguous_symbol): Check for NULL pointer instead of empty string.
354         (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
355         arguments.
356         * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
357         pointer instead of empty string.
358         * trans-decl.c (gfc_sym_mangled_identifier,
359         gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
360         gfc_get_symbol_decl): Likewise.
361         * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
362         argument.  Copy string instead of pointing to it.
363
364 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
365
366         * intrinsic.h, st.c: Update copyright.
367
368 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
369
370         * symbol.c: Typos in comments.
371
372 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
373
374         * expr.c (gfc_type_convert_binary): Typo in comment.
375
376 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
377
378         * check.c (gfc_check_selected_int_kind): New function.
379         * intrinsic.h: Prototype it.
380         * intrinsic.c (add_function): Use it.
381         * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
382           BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
383
384 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
385
386         * check.c (gfc_check_int): improve checking of optional kind
387         * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER
388
389 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
390
391         * check.c (gfc_check_achar): New function
392         * intrinsic.h: Prototype it.
393         * intrinsic.c (add_function): Use it.
394
395 2005-02-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
396
397         * trans-stmt.c (generate_loop_for_temp_to_lhs,
398         generate_loop_for_rhs_to_temp): Remove if whose condition is
399         always true.
400
401 2005-02-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
402
403         * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
404         (gfc_use_derived): ... this function.
405
406 2005-02-09  Richard Henderson  <rth@redhat.com>
407
408         * f95-lang.c (gfc_init_builtin_functions): Call
409         build_common_builtin_nodes; do not define any functions handled
410         by it.
411
412 2005-02-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
413
414         * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for
415         EXPR_SUBSTRING.
416         (gfc_is_constant_expr): Check 'ref' to determine if substring
417         reference is constant.
418         (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'.
419         (check_init_expr, check_restricted): Check 'ref' instead of 'op1'
420         and 'op2'.
421         * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'.
422
423 2005-02-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
424
425         * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save,
426         gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data,
427         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
428         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
429         gfc_add_procedure): Add argument.
430         * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name,
431         gfc_match_null, match_type_spec, match_attr_spec,
432         gfc_match_formal_arglist, match_result, gfc_match_function_decl):
433         Update callers to match.
434         (gfc_match_entry) : Likewise, fix comment typo.
435         (gfc_match_subroutine, attr_decl1, gfc_add_dimension,
436         access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc,
437         gfc_match_derived_decl): Update callers.
438         * interface.c (gfc_match_interface): Likewise.
439         * match.c (gfc_match_label, gfc_add_flavor,
440         gfc_match_call, gfc_match_common, gfc_match_block_data,
441         gfc_match_namelist, gfc_match_module, gfc_match_st_function):
442         Likewise.
443         * parse.c (parse_derived, parse_interface, parse_contained),
444         primary.c (gfc_match_rvalue, gfc_match_variable): Likewise.
445         * resolve.c (resolve_formal_arglist, resolve_entries): Update callers.
446         * symbol.c (check_conflict, check_used): Add new 'name' argument,
447         use when printing error message.
448         (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy,
449         gfc_add_generic, gfc_add_in_common, gfc_add_data,
450         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
451         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
452         gfc_add_procedure): Add new 'name' argument.  Pass along to
453         check_conflict and check_used.
454         (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic,
455         gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental,
456         gfc_add_pure, gfc_add_recursive, gfc_add_intent,
457         gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new
458         argument in calls to any of the modified functions.
459
460 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
461
462         * gfortran.texi: Don't give last update date.
463
464 2006-01-30  Richard Henderson  <rth@redhat.com>
465
466         * options.c (gfc_init_options): Zero flag_errno_math.
467
468 2005-01-29  Paul Brook  <paul@codesourcery.com>
469
470         PR fortran/18565
471         * check.c (real_or_complex_check): New function.
472         (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions.
473         * intrinsic.c (add_functions): Use new check functions.
474         * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc):
475         Add prototypes.
476
477 2005-01-29  Steven G. Kargl  <kargls@comcast.net>
478
479         PR fortran/19589
480         * expr.c (gfc_check_assign):  Check for conformance of logical operands
481
482 2004-01-27  Steven Bosscher  <stevenb@suse.de>
483
484         * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
485         TREE_USED for all labels.
486         (gfc_trans_entry_master_switch): Use it instead of building a
487         label by hand.
488         * trans-io.c (add_case): Likewise.
489         * trans-stmt.c (gfc_trans_integer_select): Likewise.
490
491 2004-01-23  Paul Brook  <paul@codesourcery.com>
492         Steven G. Kargl  <kargls@comcast.net>
493
494         PR fortran/17941
495         * arith.c (gfc_convert_real): Remove sign handling.
496         * primary.c (match_digits): Allow whitespace after initial sign.
497         (match_real_const): Handle signs here.  Allow whitespace after
498         initial sign.  Remove dead code.
499         (match_const_complex_part): Remove.
500         (match_complex_part): Use match_{real,integer}_const.
501         (match_complex_constant): Cross-promote integer types.
502
503 2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
504
505         PR fortran/19294
506         * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
507         transpose_c8 for complex types.
508
509 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
510
511         * data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
512         trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
513         trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
514         Follow spelling conventions.
515
516 2005-01-22  Bud Davis  <bdavis9659@comcast.net>
517
518         PR fortran/19313
519         * trans-io.c (gfc_trans_inquire): Added code to support
520         pad.
521
522 2005-01-22  Steven G. Kargl  <kargls@comcast.net>
523
524         * intrinsic.c (make_alias):  Add standard argument.
525         (add_functions): Update make_alias calls.
526
527 2005-01-22  Paul Brook  <paul@codesourcery.com>
528
529         * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
530
531 2005-01-22  Paul Brook  <paul@codesourcery.com>
532
533         * gfortran.h (gfc_check_access): Add prototype.
534         * match.c (gfc_match_namelist): Remove TODO.
535         * module.c (check_access): Rename ...
536         (gfc_check_access): ... to this.  Boolify.  Update callers.
537         * resolve.c (resolve_symbol): Check for private objects in public
538         namelists.
539
540 2005-01-22  Paul Brook  <paul@codesourcery.com>
541
542         * primary.c (gfc_match_rvalue): Only apply implicit type if variable
543         does not have an explicit type.
544         (gfc_match_variable): Resolve implicit derived types in all cases.
545         Resolve contained function types from their own namespace, not the
546         parent.
547         * resolve.c (resolve_contained_fntype): Remove duplicate sym->result
548         checking.  Resolve from the contained namespace, not the parent.
549
550 2005-01-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
551
552         PR fortran/19543
553         * trans-const.c (gfc_conv_constant_to_tree): Give logical
554         constants the correct type.
555
556         PR fortran/19194
557         * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
558         length parameters.
559         (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
560         pointer fields.
561
562 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
563
564         * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
565         gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
566         match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
567         scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
568         trans-io.c, trans-stmt.c, trans.c: Update copyright.
569
570 2005-01-17  Ira Rosen  <irar@il.ibm.com>
571
572         * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
573
574 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
575
576         PR fortran/19182
577         * error.c (error_char): Line-buffer errors / warnings.
578
579 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
580
581         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
582         unsigned issue.  Use build_int_cst instead of converting
583         integer_zero_node.  Remove unnecessary conversion.
584
585         * trans-types.c (gfc_get_character_type_len): : Use
586         gfc_charlen_type_node as basic type for the range field.
587
588         * trans-intrinsic.c (build_fixbound_expr,
589         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
590         gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
591         gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
592         of converting 'integer_zero_node' or 'integer_one_node'
593         respectively.
594         (gfc_conv_intrinsic_ishftc): Same, but store in local variable to
595         evade re-building.
596         (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
597         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
598         'build_int_cst' instead of converting 'integer_zero_node' or
599         'integer_one_node' respectively.
600
601         * trans-intrinsic.c (gfc_conv_intrinsic_index,
602         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
603         'gfc'-prefix from local variable, remove dead code, use correct
604         type when inserting argument.
605
606         * trans-intrinsic.c, trans-types.c: Update copyright years.
607
608 2005-01-16  Steven G. Kargl  <kargls@comcast.net>
609
610         PR 19168
611         * resolve.c (check_case_overlap): Typo in comment.
612         (validate_case_label_expr):  Fix up kinds of case values
613         (resolve_select): Properly handle kind mismatches.
614
615 2004-01-16  Paul Brook  <paul@codesourcery.com>
616
617         PR fortran/17675
618         * trans-common.c (translate_common): Remove duplicate function call.
619         (finish_equivalences): Preserve alignment when biasing offsets.
620
621 2005-01-15  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de
622
623         * primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
624         ASCII-like character encoding.
625
626 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
627
628         * resolve.c (compare_case): Cleanup.
629
630 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
631
632         * resolve.c (compare_case): Give arguments correct type.
633
634 2005-01-13  Kazu Hirata  <kazu@cs.umass.edu>
635
636         * iresolve.c, trans-common.c, trans-types.c: Fix comment
637         typos.
638
639 2005-01-09  Paul Brook  <paul@codesourcery.com>
640
641         PR fortran/17675
642         * trans-common.c (current_common, current_offset): Remove.
643         (create_common): Add head argument.
644         (align_segment): New function.
645         (apply_segment_offset): New function.
646         (translate_common): Merge code from new_segment.  Handle alignment.
647         (new_segment): Remove.
648         (finish_equivalences): Ensure proper alignment.
649
650 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
651
652         * trans-const.c: Don't include unused math.h.
653
654         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
655         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
656         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
657         trailing whitespace.
658         (prepare_arg_info): Fix formatting, indenting and remove trailing
659         whitespace.
660         (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
661         trailing whitespace.
662
663         * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
664         gfc_constant_result, gfc_range_check, gfc_arith_power,
665         eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
666         gfc_real2complex, gfc_complex2int, gfc_complex2real,
667         gfc_complex2complex): Fix whitespace issues.
668         * check.c (must_be, type_check, numeric_check, int_or_real_check,
669         logical_array_check, array_check, scalar_check, nonoptional_check,
670         variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
671         gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
672         gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
673         gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
674         gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
675         gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
676         gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
677         gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
678         gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
679         gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
680         gfc_check_lbound, gfc_check_logical, min_max_args,
681         gfc_check_min_max_integer, gfc_check_min_max_real,
682         gfc_check_min_max_double, gfc_check_matmul,
683         gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
684         gfc_check_pack, gfc_check_precision, gfc_check_radix,
685         gfc_check_range, gfc_check_real, gfc_check_repeat,
686         gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
687         gfc_check_set_exponent): Fix formatting issues.
688         (gfc_check_size, gfc_check_sign): Alphabetize function order,
689         remove whitespace-only line.
690         (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
691         gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
692         gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
693         gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
694         gfc_check_random_number, gfc_check_random_seed,
695         gfc_check_second_sub, gfc_check_system_clock,
696         gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
697         gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
698         gfc_check_unlink_sub): Fix formatting issues.
699
700 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
701
702         * gfortran.h: Remove outdated comment.  Don't include stdio.h
703         explicitly.
704
705 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
706
707         * gfortranspec.c (lang_specific_driver): Change year to 2005 in
708         output of 'gfortran --version'.
709
710 2005-01-03  Steven G. Kargl  <kargls@comcast.net>
711
712         * arith.c: Add system.h; remove string.h
713         * decl.c: Ditto
714         * matchexp.c: Ditto
715         * parse.c: Ditto
716         * resolve.c: Ditto
717         * st.c: Ditto
718         * check.c: Remove stdlib.h and stdarg.h
719         * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
720         * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
721         * f95-lang.c: Add system.h; remove stdio.h
722         * interface.c: Add system.h; remove stdlib.h and string.h
723         * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
724         * io.c: Remove string.h
725         * simplify.c: Ditto
726         * match.c: Remove stdarg.h and string.h
727         * misc.c: Update copyright; add system.h; remove stdlib.h,
728         string.h, and sys/stat.h
729         * module.c: Add system.h; remove string.h, stdio.h, errno.h,
730         unistd.h, and time.h
731         * option.c: Remove string.h and stdlib.h
732         * primary.c: Ditto
733         * scanner.c: Update copyright; add system.h; remove stdlib.h,
734         stdio.h, string.h, and strings.h
735         * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
736         * trans-array.c: Remove stdio.h and gmp.h
737         * trans-const.c: Ditto
738         * trans-expr.c: Ditto
739         * trans-io.c: Ditto
740         * trans-stmt.c: Ditto
741         * trans.c: Ditto
742         * trans-intrinsic.c: Remove stdio.h and string.h
743
744 2004-12-29  Steven G. Kargl  <kargls@comcast.net>
745
746         * gfortran.h (gfc_case): fix typo in comment.
747
748 2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
749
750         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
751         logical shift.  Call fold.  Remove 0-bit shift shortcut.
752         (gfc_conv_intrinsic_ishftc): Convert first argument to at least
753         4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
754         result if width(arg 1) < 4 bytes.  Call fold.
755
756         PR fortran/19032
757         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
758         in front of function to match the standard.  Correct handling
759         of MODULO.
760
761 2004-12-27  Andrew Pinski  <pinskia@physics.uc.edu>
762
763         * trans-expr.c (gfc_conv_cst_int_power): Only check for
764         flag_unsafe_math_optimizations if we have a float type.
765
766 2004-12-23  Steven G. Kargl  <kargls@comcast.net>
767
768         * gfortran.texi: Fix typo.
769
770 2004-12-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
771
772         * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
773         comment typo.
774
775 2004-12-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
776
777         PR fortran/18993
778         * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
779         (gfc_match_nullify): Make sure that ')' is in front of the end of
780         statement.
781
782         * scanner.c (skip_fixed_comments): Fix typo in comment preceding
783         function.
784
785 2004-12-14  Richard Henderson  <rth@redhat.com>
786
787         * gfortran.h (gfc_expr.function.name): Make const.
788         (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
789         (gfc_get_string): Update prototype.
790         * iresolve.c: Include tree.h.
791         (string_node, HASH_SIZE, string_head, hash): Remove.
792         (gfc_get_string): Use vsnprintf, get_identifier.
793         (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
794         * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
795         (gfc_done_1): Don't call gfc_iresolve_done_1.
796         * module.c (mio_allocated_string): Take and return const char *,
797         instead of modifying char**.
798         (mio_expr): Update to match.
799         * resolve.c (pure_function): Constify name argument.
800         (resolve_function): Constify name.
801         * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
802
803 2004-12-12  Richard Henderson  <rth@redhat.com>
804
805         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
806         gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
807         gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
808         gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
809         gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
810         gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
811         gfc_resolve_unpack: Use PREFIX.
812
813 2004-12-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
814
815         PR fortran/18869
816         * match.c (gfc_match_common): Skip whitespace.
817
818 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
819
820         PR fortran/16581
821         * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
822         gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
823         integer kind check; Issue error for -std=f95 when needed.
824         * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
825         GFC_STD_F95.
826         * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
827         Promote arguments to same kind.
828
829 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
830         Paul Brook  <paul@codesourcery.com>
831
832         PR fortran/16222
833         * resolve.c (gfc_resolve_iterator_expr): New function.
834         (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
835         start, end and stride to correct type.
836         (resolve_code): Pass extra argument.
837         * array.c (resolve_array_list): Pass extra argument.
838         * gfortran.h (gfc_resolve): Add prototype.
839         * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
840         Handle real type iterators.
841
842 2004-12-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
843
844         PR fortran/17175
845         * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
846         same kind as C's 'int'.
847         (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
848
849 2004-12-08  Richard Henderson  <rth@redhat.com>
850
851         * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
852         to the output expression.
853         * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
854         warning conversion.
855         (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
856         to index kind.
857
858 2004-12-08  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
859
860         PR fortran/18826
861         * resolve.c (resolve_code): Impose correct restrictions on
862         assigned variable.
863
864         * decl.c (gfc_match_end): Use locus of END when eos is an error.
865
866 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
867         Paul Brook  <paul@codesourcery.com>
868
869         * check.c (gfc_check_flush, gfc_check_fnum): New functions.
870         (gfc_check_fstat, gfc_check_fstat_sub): New functions.
871         (gfc_check_stat, gfc_check_stat_sub): New functions.
872         * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
873         * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
874         fstat, and stat to intrinsics symbol tables.
875         * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
876         (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
877         * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
878         (gfc_resolve_stat, gfc_resolve_flush): New functions.
879         (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
880         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
881
882 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
883
884         * intrinsic.c: Fix and add comments, fix function declarations
885         (OPTIONAL,REQUIRED): New symbols
886         (add_functions,add_subroutines): Use symbols
887         (gmp.h): Remove unused include
888
889 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
890
891         * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
892         in diagnostics.
893
894 2004-11-24  Steven Bosscher  <stevenb@suse.de>
895
896         * options.c (gfc_post_options): Don't clear flag_inline_functions.
897
898 2004-11-20  Steven G. Kargl  <kargls@comcast.net>
899
900         * check.c (gfc_check_getcwd_sub): Fix seg fault.
901
902         * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
903         gfc_check_unlink,gfc_check_unlink_sub): New functions
904         * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
905         * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
906         exit to intrinsics symbol tables.
907         * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
908         gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
909         gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
910         gfc_resolve_unlink_sub): Add and sort prototypes.
911         * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
912         gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
913         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
914
915 2004-11-16  Paul Brook  <paul@codesourcery.com>
916
917         PR fortran/13010
918         * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
919         (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
920         * trans-types.c (gfc_get_dtype): Accept array type rather than element
921         type.
922         (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
923         (gfc_get_array_type_bounds): Ditto.
924         (gfc_get_derived_type): Recurse into derived type pointers.
925         * trans-types.h (gfc_get_dtype): Add prototype.
926         * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
927
928 2004-11-15  Paul Brook  <paul@codesourcery.com>
929
930         * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
931
932 2004-11-10  Paul Brook  <paul@codesourcery.com>
933
934         PR fortran/18375
935         * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
936         * trans-io.c (transfer_array_component): Ditto.
937
938 2004-11-10  Paul Brook  <paul@codesourcery.com>
939
940         * invoke.texi: Fix typo.
941
942 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
943
944         * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
945         gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
946         module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
947         trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
948         trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
949
950 2004-11-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
951
952         PR fortran/18023
953         * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
954
955 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
956
957         * gfortranspec.c: Replace GNU CC with GCC.
958
959 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
960
961         * gfortranspec.c (lang_specific_driver): Change year to 2004.
962
963 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
964
965         PR fortran/18111
966         *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
967         hidden parameters.
968
969 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
970
971         PR fortran/15164
972         * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
973         module procedures as if they were module variables.
974
975 2004-11-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
976
977         PR fortran/17535
978         PR fortran/17583
979         PR fortran/17713
980         * module.c (write_symbol1): Set module_name for dummy arguments.
981
982 2004-11-02  Paul Brook  <paul@codesourcery.com>
983
984         * intrinsic.c (check_intrinsic_standard): Include error locus.
985         Remove VLA.
986         (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
987         locus to check_intrinsic_standard.
988
989 2004-10-31  Janne Blomqvist  <jblomqvi@cc.hut.fi>
990
991         PR fortran/17590
992         * gfortran.h: Change GFC_STD_* flags to more appropriate
993         ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
994         gfc_option_t): Add field for warning about use of nonstandard
995         intrinsics.
996         * intrinsic.c (add_sym): Add parameter for standard version, check
997         this against current standard.
998         (add_sym_0): Pass standard parameter to add_sym.
999         (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
1000         (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
1001         (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
1002         (make_generic): Add parameter for standard, check this
1003         against currently selected standard.
1004         (add_functions, add_subroutines): Add parameter to tell which
1005         standard an intrinsic belongs to.
1006         (check_intrinsic_standard): New function.
1007         (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
1008         (gfc_intrinsic_sub_interface): Ditto.
1009         * lang.opt: Add Wnonstd-intrinsics option.
1010         * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
1011         init new warning.
1012         (set_Wall): Add warning about nonstd intrinsics.
1013         (gfc_handle_option): Change to use new GFC_STD_* flags,
1014         handle new warning.
1015         * invoke.texi: Update manual to include -Wnonstd-intrinsics.
1016
1017 2004-10-30  Andrew Pinski  <pinskia@physics.uc.edu>
1018
1019         * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
1020
1021 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1022
1023         * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
1024
1025 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1026
1027         * trans.c (gfc_trans_code): Set global locus after recursing. Fix
1028         comment typo.
1029
1030 2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>
1031
1032         * check.c (gfc_check_rand): Allow missing optional argument.
1033         (gfc_check_irand): Ditto.
1034         * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
1035
1036 2004-10-28  Scott Robert Ladd  <scott.ladd@coyotegulch.com>
1037
1038         PR fortran/13490, PR fortran/17912
1039         * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
1040         * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
1041         * gcc/fortran/arith.c: Added support for an "asymmetric integer"
1042         warning when compiling with pedantic.
1043         * gcc/fortran/arith.c: Set minimum integer values to reflect
1044         realities of two's complement signed integers. Added
1045         pedantic minimum.
1046
1047 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1048
1049         * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
1050         (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
1051         link it in.
1052
1053 2004-10-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1054
1055         * trans-decl.c (generate_local_decl): Simplify logic, fix comment
1056         typo.
1057         (gfc_generate_function_code): Fix formatting issue.
1058
1059 2004-10-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1060
1061         * module.c: Fix formatting issues.
1062
1063 2004-10-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1064
1065         * module.c (mio_interface_rest): Set where member of interface
1066         while loading.
1067
1068 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1069
1070         PR fortran/17901
1071         * options.c (gfc_handle_option): Add break after handing the
1072         J/M option.
1073
1074 2004-10-08  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
1075
1076         * arith.c: Fix formatting issues.
1077
1078 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1079
1080         PR fortran/17676
1081         * resolve.c (resolve_operator): Use correct operator name in message.
1082
1083 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1084
1085         * primary.c (match_boz_constant): Allow kind parameter suffixes.
1086         Move standard warning further to the front.
1087
1088 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1089
1090         * trans-stmt.c: Fix a comment typo.
1091
1092 2004-10-07  Paul Brook  <paul@codesourcery.com>
1093
1094         PR fortran/17678
1095         * trans-array.c (gfc_trans_deferred_array): Leave use associated
1096         variables alone.
1097
1098 2004-10-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1099
1100         PR fortran/17568
1101         * simplify.c (twos_complement): New function.
1102         (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
1103
1104         * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
1105
1106 2004-10-06  Paul Brook  <paul@codesourcery.com>
1107
1108         * trans-stmt.c (gfc_trans_simple_do): New function.
1109         (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
1110         loop.  Update comments.
1111
1112 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1113
1114         PR fortran/17283
1115         * iresolve.c (gfc_resolve_pack): Choose function depending if mask
1116         is scalar.
1117
1118         PR fortran/17631
1119         * intrinsic.c (add_sym_5): Remove.
1120         (add_subroutines): Add resolution function for MVBITS.
1121         * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
1122         MVBITS
1123         * iresolve.c (gfc_resolve_mvbits): New function.
1124         (gfc_resolve_random_number): Remove empty line at end of function.
1125
1126         * trans-const.c (gfc_build_cstring_const): New function.
1127         (gfc_init_cst): Use new function.
1128         * trans-const.h (gfc_build_cstring_const): Add prototype.
1129         * trans-io.c (set_string, set_error_locus): Use new function.
1130         * trans-stmt.c (gfc_trans_goto): Use new function.
1131
1132         PR fortran/17708
1133         * parse.c (accept_statement): Don't treat END DO like END IF and
1134         END SELECT.
1135         (parse_do_block): Generate possible END DO label inside END DO
1136         block.
1137
1138         PR fortran/17776
1139         * check.c (gfc_check_system_sub): New function.
1140         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
1141         * intrinsic.c (add_functions): Add 'system'.
1142         (add_subroutines): Add 'system'.
1143         * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
1144         Move prototypes to other suborutines.
1145         (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
1146         Add prototype.
1147         (gfc_resolve_system_clock): Fix formatting of prototype.
1148         * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
1149         functions.
1150         * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
1151         GFC_ISYM_SYSTEM.
1152
1153 2004-10-04  Erik Schnetter  <schnetter@aei.mpg.de>
1154
1155         * scanner.c (preprocessor_line): Accept preprocessor lines without
1156         file names.  Check file names for closing quotes.  Handle escaped
1157         quotes in file names.
1158
1159 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1160         Paul Brook  <paul@codesourcery.com>
1161
1162         * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
1163         Use gfc_get_expr_charlen.
1164         * trans-expr.c (gfc_get_expr_charlen): New function.
1165         * trans.h (gfc_get_expr_charlen): Add prototype.
1166
1167 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
1168
1169         * trans-intrinsic.c: Fix a comment typo.
1170
1171 2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1172
1173         * simplify.c (range_check): Remove blank line at beginning of function.
1174         (gfc_simplify_dint): Same at end of function.
1175         (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
1176         (gfc_simplify_bound): Fix indentation.
1177         (gfc_simplify_log10): Simplify calculation.
1178         (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
1179         of function.
1180         (gfc_simplify_nearest): Same at end of function.
1181         (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
1182         function.
1183         (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
1184         gfc_simplify_spacing): Simplify calulations.
1185
1186 2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>
1187
1188         * trans-intrinsic.c: Fix comments on spacing and rrspacing
1189         (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
1190
1191 2004-10-01  Jan Hubicka  <jh@suse.cz>
1192
1193         * f95-lang.c (gfc_expand_function): Update call of
1194         tree_rest_of_compilation.
1195         * trans-decl.c (gfc_generate_constructors): Likewise.
1196
1197 2004-09-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1198
1199         * trans-intrinsic.c: Comment fixes.
1200
1201 2004-09-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1202
1203         * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
1204
1205 2004-09-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1206
1207         * trans-types.c (gfc_return_by_reference): Remove superfluous
1208         assertion.
1209
1210         * intrinsic.h (gfc_resolve_getcwd): Update prototype.
1211         * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
1212
1213         PR fortran/17615
1214         * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
1215         function to determine return type.
1216
1217 2004-09-20  Jan Hubicka  <jh@suse.cz>
1218
1219         * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
1220         tree.
1221         (gfc_generate_function_code): Likewise.
1222
1223 2004-09-20  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1224
1225         PR fortran/15957
1226         * simplify.c (gfc_simplify_reshape): Set shape of return value
1227         correctly.
1228
1229 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
1230             Zack Weinberg  <zack@codesourcery.com>
1231
1232         * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
1233         enumeration constants.
1234
1235 2004-09-17  Paul Brook  <paul@codesourcery.com>
1236
1237         * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
1238         (gfc_linebuf_header_size): Define.
1239         * scanner.c (load_file): Use it.
1240
1241 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
1242
1243         * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
1244         interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
1245         resolve.c, scanner.c, trans-array.c, trans-array.h,
1246         trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
1247         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
1248         trans.h: Fix comment typos.  Follow spelling conventions.
1249
1250 2004-09-16  Victor Leikehman  <lei@il.ibm.com>
1251
1252         PR/15364
1253         * trans-io.c (transfer_array_component): New function.
1254         (transfer_expr): For array fields, call transfer_array_component.
1255
1256 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
1257
1258         * gfortran.texi: Fix a typo.
1259
1260 2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1261
1262         * parse.c (eof_buf): Rename eof to eof_buf.
1263         (unexpected_eof): Same.
1264         (gfc_parse_file): Same.
1265
1266 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
1267
1268         * check.c (gfc_check_getcwd_sub): New function.
1269         * gfortran.h (GFC_ISYM_GETCWD): New symbol.
1270         * intrinsic.c (add_functions): Add function definition;
1271         Use symbol.
1272         * intrinsic.c (add_subroutines): Add subroutine definitions.
1273         * intrinsic.h: Add prototypes.
1274         * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
1275         New functions.
1276         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
1277
1278 2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1279
1280         PR fortran/16485
1281         * module.c (write_symbol): Don't fill in module name here.
1282         (write_symbol0): Fill in here instead.
1283
1284 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
1285
1286         * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
1287         trans-array.c, trans-common.c, trans-expr.c,
1288         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
1289         comment typos.  Follow spelling conventions.
1290
1291 2004-09-09  Paul Brook  <paul@codesourcery.com>
1292
1293         * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
1294
1295 2004-09-08  Paul Brook  <paul@codesourcery.com>
1296
1297         * array.c: Don't include assert.h.
1298         * data.c: Don't include assert.h.  Replace assert and abort with
1299         gcc_assert and gcc_unreachable.
1300         * dependency.c: Ditto.
1301         * f95-lang.c: Ditto.
1302         * iresolve.c: Ditto.
1303         * resolve.c: Ditto.
1304         * simplify.c: Ditto.
1305         * symbol.c: Ditto.
1306         * trans-array.c: Ditto.
1307         * trans-common.c: Ditto.
1308         * trans-const.c: Ditto.
1309         * trans-decl.c: Ditto.
1310         * trans-expr.c: Ditto.
1311         * trans-intrinsic.c: Ditto.
1312         * trans-io.c: Ditto.
1313         * trans-stmt.c: Ditto.
1314         * trans-types.c: Ditto.
1315         * trans.c: Ditto.
1316
1317 2004-09-07  Per Bothner  <per@bothner.com>
1318         Paul Brook  <paul@codesourcery.com>
1319
1320         * error.c (show_locus): Handle mapped locations.
1321         * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
1322         * gfortran.h: Include input.h.
1323         (struct gfc_linebuf): Use source_location.
1324         * scanner.c (get_file): Initialize linemap.
1325         (preprocessor_line): Pass extra argument to get_file.
1326         (load_file): Ditto.  Setup linemap.
1327         (gfc_new_file): Handle mapped locations.
1328         * trans-common.c (build_field, build_equiv_decl, build_common_decl):
1329         Set decl source locations.
1330         (gfc_trans_common): Set blank common block location.
1331         * trans-decl.c (gfc_set_decl_location): New function.
1332         (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
1333         (trans_function_start): Move call to gfc_set_backend_locus..
1334         (build_function_decl): ... to here.
1335         (build_entry_thunks): Set and restore the backend locus.
1336         (gfc_generate_constructors): Remove excess arguments to
1337         init_function_start.
1338         (gfc_generate_block_data): Add comments.  Set the decl locus.
1339         * trans-io.c (set_error_locus): Handle mapped locations.
1340         * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
1341         (gfc_trans_code): Use SET_EXPR_LOCATION.
1342         (gfc_generate_code): Override the location of the new symbol.
1343         * trans.h (gfc_set_decl_location): Add prototype.
1344
1345 2004-08-31  Paul Brook  <paul@codesourcery.com>
1346
1347         * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
1348
1349 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1350
1351         PR fortran/15327
1352         * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
1353         strings.
1354
1355 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1356
1357         PR fortran/16400
1358         PR fortran/16404
1359         (port from g95)
1360         * resolve.c (resolve_transfer): New function.
1361         (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
1362
1363 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1364
1365         PR fortran/16579
1366         * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
1367         unsigned char.
1368
1369 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1370
1371         * CONTRIB, NEWS, README, TODO: Remove obsolete files.
1372
1373 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1374
1375         PR fortran/17244
1376         * trans-types.c (gfc_return_by_reference): Remove TODO error,
1377         add comment pointing out possible issue WRT compatibility with g77.
1378
1379 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1380
1381         * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
1382         all occurences of 'gfc_strlen_type_node' by
1383         'gfc_charlen_type_node'.
1384         * trans-types.h: Same. Also update comment accordingly.
1385
1386 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1387
1388         * primary.c: Update copyright boilerplate to say GCC.
1389         * f95-lang.c: Change initial comment to say gfortran.
1390
1391 2004-08-31  Paul Brook  <paul@codesourcery.com>
1392
1393         * trans-types.h: Add comments.
1394         (intmax_type_node, string_type_node, const_string_type_node): Remove.
1395
1396 2004-08-30  Richard Henderson  <rth@redhat.com>
1397
1398         * Make-lang.in (fortran/f95-lang.o): Update dependencies.
1399         (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
1400         * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
1401         c_long, c_long_long.
1402         (gfc_logical_info): Add c_bool.
1403         (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
1404         * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
1405         rather than gfc_int[48]_type_node for allocate choice.
1406         * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
1407         local copies of some kind type nodes.
1408         (gfc_build_builtin_function_decls): Likewise.
1409         * trans-expr.c (gfc_conv_power_op): Likewise.
1410         * trans-intrinsic.c (gfc_conv_intrinsic_index,
1411         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
1412         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
1413         * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
1414         gfc_trans_character_select, gfc_trans_allocate): Likewise.
1415         * trans-io.c (gfc_pint4_type_node): Move into ...
1416         (gfc_build_io_library_fndecls): ... here.  Cache local copies of
1417         some kind type nodes.
1418         * trans-types.c (gfc_type_nodes): Remove.
1419         (gfc_character1_type_node, gfc_strlen_type_node): New.
1420         (gfc_integer_types, gfc_logical_types): New.
1421         (gfc_real_types, gfc_complex_types): New.
1422         (gfc_init_kinds): Fill in real mode_precision.
1423         (gfc_build_int_type, gfc_build_real_type): New.
1424         (gfc_build_complex_type, gfc_build_logical_type): New.
1425         (c_size_t_size): New.
1426         (gfc_init_types): Loop over kinds.
1427         (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
1428         (gfc_get_complex_type, gfc_get_logical_type): Likewise.
1429         (gfc_get_character_type_len): Likewise.
1430         (gfc_type_for_size): Loop over kinds; use a reduced set of
1431         unsigned type nodes.
1432         (gfc_type_for_mode): Loop over kinds.
1433         (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
1434         (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
1435         * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
1436         F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
1437         F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
1438         F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
1439         F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
1440         F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
1441         gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
1442         gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
1443         gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
1444         gfc_complex8_type_node, gfc_complex16_type_node,
1445         gfc_logical1_type_node, gfc_logical2_type_node,
1446         gfc_logical4_type_node, gfc_logical8_type_node,
1447         gfc_logical16_type_node, gfc_strlen_kind): Remove.
1448         (gfc_character1_type_node): Turn in to a variable.
1449         (gfc_strlen_type_node): Likewise.
1450
1451 2004-08-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1452
1453         * gfortran.h (gfc_namespace): Add new field is_block_data.
1454         * parse.c (accept_statement): Remove special handling for BLOCK DATA.
1455         (parse_block_data): Record BLOCK DATA name, set is_block_data field.
1456         * trans.c (gfc_generate_code): Handle BLOCK DATA units.
1457         * trans.h (gfc_generate_block_data): Add prototype.
1458         * trans-decl.c (gfc_generate_block_data): New function.
1459
1460 2004-08-29  Richard Henderson  <rth@redhat.com>
1461
1462         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
1463         * trans-types.c (gfc_init_kinds): Reject integer kinds larger
1464         than two HOST_WIDE_INT.
1465
1466 2004-08-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1467
1468         PR fortran/13910
1469         * decl.c (free_variable, free_value, gfc_free_data, var_list,
1470         var_element, top_var_list, match_data_constant, top_val_list,
1471         gfc_match_data): Move here from match.c.
1472         (match_old_style_init): New function.
1473         (variable_decl): Match old-style initialization.
1474         * expr.c (gfc_get_variable_expr): New function.
1475         * gfortran.h (gfc_get_variable_expr): Add prototype.
1476         * gfortran.texi: Start documentation for supported extensions.
1477         * match.c: Remove the functions moved to decl.c.
1478         * match.h (gfc_match_data): Move prototype to under decl.c.
1479         * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
1480         comments.
1481
1482 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
1483         Paul Brook  <paul@codesourcery.com>
1484
1485         * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
1486         * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
1487         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
1488         (build_builtin_fntypes): New function.
1489         (gfc_init_builtin_functions): Use it.
1490         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
1491         and GFC_ISYM_ERF{,C}.
1492         (gfc_c_int_kind): Declare.
1493         * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
1494         * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
1495         gfc_resolve_g77_math1): Add prototypes.
1496         * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
1497         * mathbuiltins.def: Add comment.  Change third argument.  Use
1498         DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
1499         * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
1500         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
1501         * trans-types.c (gfc_c_int_kind): Declare.
1502         (gfc_init_kinds): Set it.
1503
1504 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
1505         Paul Brook  <paul@codesourcery.com>
1506
1507         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
1508         (gfc_check_f, gfc_simplify_f): Add f0.
1509         * intrinsic.c (do_check): Call f0.  Flatten.
1510         (add_sym_0): Fix prototype.  Set f0.
1511         (add_functions): Add getgid, getgid and getuid.
1512         (resolve_intrinsic): Remove obsolete comment.
1513         (do_simplify): Call f0.
1514         * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
1515         gfc_resolve_getuid): Add prototypes.
1516         * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
1517         gfc_resolve_getuid): New functions.
1518         * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
1519         GFC_ISYM_GET?ID.
1520
1521 2004-08-28  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1522
1523         * error.c (gfc_error_init_1): Remove blank line in front of
1524         function body. Add missing blank.
1525         (gfc_buffer_error, error_char, error_string): Remove blank line in
1526         front of function body.
1527         (show_locus): Add comma in comment.
1528         (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
1529         gfc_push_error, gfc_pop_error): Remove blank line in front of
1530         function body.
1531         (gfc_get_errors): Typo fix in comment in front of function. Remove
1532         blank line in front of function body.
1533
1534 2004-08-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1535
1536         * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
1537         variable declaration of same name.
1538         * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
1539         intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
1540         resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
1541         Replace all calls to gfc_default_*_kind with variable accesses.
1542         * trans-types.c: Same as above.
1543         (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
1544         static qualifier. Replace all occurences.
1545         (gfc_default_*_kind): Remove functions.
1546
1547 2004-08-26  Richard Henderson  <rth@redhat.com>
1548
1549         * arith.c: Include system.h, not real system headers.
1550         (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
1551         DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
1552         GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
1553         GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
1554         (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
1555         gfc_index_integer_kind, gfc_default_integer_kind,
1556         gfc_default_real_kind,gfc_default_double_kind,
1557         gfc_default_character_kind, gfc_default_logical_kind,
1558         gfc_default_complex_kind, validate_integer, validate_real,
1559         validate_logical, validate_character,
1560         gfc_validate_kind): Move to trans-types.c.
1561         (gfc_set_model_kind): Use gfc_validate_kind.
1562         (gfc_set_model): Just copy the current precision to default.
1563         (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
1564         * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
1565         * gfortran.h: Update file commentary.
1566         * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
1567         (gfc_default_integer_kind_1, gfc_default_real_kind_1,
1568         gfc_default_double_kind_1, gfc_default_character_kind_1,
1569         gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
1570         (gfc_init_kinds): New.
1571         (gfc_init_types): Don't set gfc_index_integer_kind here.
1572         * trans-types.h (gfc_init_kinds): Declare.
1573         * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
1574
1575 2004-08-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1576
1577         * check.c (gfc_check_atan2): New function.
1578         * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
1579         * intrinsic.h (gfc_check_atan2): Add prototype.
1580
1581 2004-08-25  Richard Henderson  <rth@redhat.com>
1582
1583         * arith.c (gfc_validate_kind): Add may_fail argument; abort if
1584         false and we don't validate the kind.
1585         (gfc_check_integer_range, gfc_check_real_range): Update to match.
1586         * check.c (kind_check): Likewise.
1587         * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
1588         (match_char_spec, match_logical_spec): Likewise.
1589         * gfortran.h (gfc_validate_kind): Likewise.
1590         * options.c (gfc_handle_option): Likewise.
1591         * primary.c (match_integer_constant, match_real_constant,
1592         match_string_constant, match_logical_constant,
1593         match_const_complex_part): Likewise.
1594         * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
1595         gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
1596         gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
1597         gfc_simplify_maxexponent, gfc_simplify_minexponent,
1598         gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
1599         gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
1600         gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
1601         gfc_simplify_tiny): Likewise.
1602         * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
1603         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
1604         prepare_arg_info): Likewise.
1605
1606 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1607
1608         * expr.c (gfc_check_assign): Add comment. Add new warning.
1609         * trans-expr.c (gfc_conv_function_call): Correctly dereference
1610         result of pointer valued function when not in pointer assignment.
1611
1612 2004-08-25  Paul Brook  <paul@codesourcery.com>
1613
1614         * config-lang.in: Remove dead commented line.
1615         * module.c: Replace g95 with gfortran in comment.
1616
1617 2004-08-25  Paul Brook  <paul@codesourcery.com>
1618
1619         PR fortran/17190
1620         * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
1621
1622 2004-08-25  Paul Brook  <paul@codesourcery.com>
1623
1624         PR fortran/17144
1625         * trans-array.c (gfc_trans_allocate_temp_array): Remove
1626         string_length argument.
1627         (gfc_trans_array_ctor_element): New function.
1628         (gfc_trans_array_constructor_subarray): Use it.
1629         (gfc_trans_array_constructor_value): Ditto.  Handle constant
1630         character arrays.
1631         (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
1632         (gfc_trans_array_constructor): Use them.
1633         (gfc_add_loop_ss_code): Update to new gfc_ss layout.
1634         (gfc_conv_ss_descriptor): Remember section string length.
1635         (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
1636         (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
1637         (gfc_conv_expr_descriptor): Ditto.
1638         (gfc_conv_loop_setup): Ditto.  Spelling fixes.
1639         * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
1640         * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
1641         * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
1642         (gfc_conv_variable): Set string_length from section.
1643         (gfc_conv_function_call): Remove extra argument.
1644         (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
1645         * trans-types.c (gfc_get_character_type_len): New function.
1646         (gfc_get_character_type): Use it.
1647         (gfc_get_dtype): Return zero for internal types.
1648         * trans-types.h (gfc_get_character_type_len): Add prototype.
1649         * trans.h (struct gfc_ss): Move string_length out of union.
1650
1651 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1652
1653         * trans.h (build2_v, build3_v): New macros.
1654         (build_v): Remove.
1655         * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
1656         build.
1657         * trans-array.c (gfc_conv_descriptor_data,
1658         gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
1659         gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
1660         gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
1661         gfc_trans_allocate_temp_array,
1662         gfc_trans_array_constructor_subarray,
1663         gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
1664         gfc_trans_array_bound_check, gfc_conv_array_index_offset,
1665         gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
1666         gfc_conv_array_ref, gfc_trans_preloop_setup,
1667         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
1668         gfc_conv_loop_setup, gfc_array_init_size,
1669         gfc_conv_array_initializer, gfc_trans_array_bounds,
1670         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
1671         gfc_conv_expr_descriptor, gfc_conv_array_parameter,
1672         gfc_trans_deferred_array): Use buildN and buildN_v macros instead
1673         of build and build_v as appropriate.
1674         * trans-common.c (create_common): Same.
1675         * trans-decl.c (gfc_trans_auto_character_variable,
1676         gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
1677         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
1678         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
1679         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
1680         gfc_conv_expr_op, gfc_conv_function_call,
1681         gfc_trans_structure_assign): Same.
1682         * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
1683         gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
1684         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
1685         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
1686         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
1687         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
1688         gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
1689         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
1690         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
1691         gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
1692         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
1693         gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
1694         gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
1695         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
1696         gfc_conv_intrinsic_iargc): Same.
1697         * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
1698         set_flag, add_case, io_result, transfer_namelist_element,
1699         transfer_expr): Same.
1700         * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
1701         gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
1702         gfc_trans_integer_select, gfc_trans_logical_select,
1703         gfc_trans_character_select, gfc_trans_forall_loop,
1704         gfc_trans_nested_forall_loop, gfc_do_allocate,
1705         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
1706         compute_inner_temp_size, compute_overall_iter_number,
1707         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
1708         gfc_trans_forall_1, gfc_evaluate_where_mask,
1709         gfc_trans_where_assign, gfc_trans_allocate): Same.
1710         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
1711         * trans.c (gfc_add_modify_expr, gfc_finish_block,
1712         gfc_build_array_ref, gfc_build_function_call,
1713         gfc_trans_runtime_check): Same.
1714
1715 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1716
1717         * trans-const.c (gfc_conv_mpz_to_tree): Change call to
1718         build_int_cst to build_int_cst_wide in accordance to Nathan's
1719         previous patch.
1720
1721 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
1722
1723         * trans-array.c (gfc_trans_array_constructor_value): Adjust
1724         build_int_cst calls.
1725         * trans-const.c (gfc_build_string_const, gfc_init_constants,
1726         gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
1727         * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
1728         gfc_trans_entry_master_switch): Likewise.
1729         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
1730         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
1731         * trans-io.c (add_case, set_error_locus,
1732         transfer_namelist_element, transfer_expr): Likewise.
1733         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
1734         gfc_trans_stop, gfc_trans_character_select): Likewise.
1735         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
1736         * trans.c (gfc_trans_runtime_check): Likewise.
1737
1738 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1739
1740         * trans-decl.c, trans-types.c: Add and remove blank lines as
1741         required.
1742
1743 2004-08-24  Richard Henderson  <rth@redhat.com>
1744
1745         * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
1746
1747 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1748
1749         * resolve.c (merge_argument_lists): Revert unintentionally
1750         committed change.
1751
1752 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1753
1754         * trans-decl.c (build_function_decl): Fix spelling in comment.
1755         (build_entry_thunks): Remove code with no function.
1756         (gfc_build_intrinsic_function_decls): Remove empty line.
1757
1758         * resolve.c (resolve_entries): Fix a bunch of comment typos.
1759
1760 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1761
1762         * f95-lang.c (gfc_init_decl_processing): Adjust
1763         build_common_tree_nodes call.
1764
1765 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1766
1767         * trans-types.c: Spelling and formatting fixes.
1768
1769 2004-08-23  Richard Henderson  <rth@redhat.com>
1770
1771         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
1772         of going through an intermediate string.  Fix 32/64 int/long bug.
1773
1774 2004-08-23  Eric Christopher  <echristo@redhat.com>
1775
1776         * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
1777         usage. Use build_vector_type_for_mode for vector types.
1778
1779 2004-08-22  Richard Henderson  <rth@redhat.com>
1780
1781         PR 13465
1782         * data.c (find_con_by_offset): Search ordered list; handle
1783         elements with repeat counts.
1784         (gfc_assign_data_value_range): New.
1785         * gfortran.h (struct gfc_data_value): Make repeat unsigned.
1786         (gfc_assign_data_value_range): Declare.
1787         * match.c (top_val_list): Extract repeat count into a temporary.
1788         * resolve.c (values): Make left unsigned.
1789         (next_data_value): Don't decrement left.
1790         (check_data_variable): Use gfc_assign_data_value_range.
1791
1792 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1793
1794         * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
1795
1796 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1797
1798         * check.c (gfc_check_reduction): Rename to ...
1799         (check_reduction): ... this. Make static. Don't check type of
1800         first argument.
1801         (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
1802         * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
1803         SUM to use new check functions.
1804         (check_specific): Change logic to call new functions.
1805         * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
1806         Add prototypes.
1807         (gfc_check_reduction): Remove prototype.
1808
1809 2004-08-20  Paul Brook  <paul@codesourcery.com>
1810         Canqun Yang  <canqun@nudt.edu.cn>
1811
1812         PR fortran/17077
1813         * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
1814         for automatic arrays.
1815         * trans-types.c (gfc_get_nodesc_array_type): Add comment.
1816
1817 2004-08-19  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1818         (Port from g95)
1819
1820         PR fortran/17074
1821         * match.c (match_simple_forall, match_simple_where): Forward-declare.
1822         (gfc_match_if): Order statement list alphabetically, add WHERE and
1823         FORALL, remove double PAUSE.
1824         (gfc_match_simple_where, match_forall_header,
1825         gfc_match_simple_forall): New functions.
1826         (gfc_match_forall): Use match_forall_header.
1827
1828 2004-08-19  Paul Brook  <paul@codesourcery.com>
1829
1830         PR fortran/17091
1831         * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
1832         * symbol.c (gfc_clear_attr): Use memset.
1833
1834 2004-08-19  Paul Brook  <paul@codesourcery.com>
1835
1836         PR fortran/14976
1837         PR fortran/16228
1838         * data.c (assign_substring_data_value): Remove.
1839         (create_character_intializer): New function.
1840         (gfc_assign_data_value): Track the typespec for the current
1841         subobject.  Use create_character_intializer.
1842
1843 2004-08-19  Erik Schnetter  <schnetter@aei.mpg.de>
1844
1845         PR fortran/16946
1846         * check.c (gfc_check_reduction): New function.
1847         (gfc_check_minval_maxval): Removed.
1848         (gfc_check_product): Removed.
1849         (gfc_check_sum): Removed.
1850         * intrinsic.h: Add/remove declarations for these.
1851         * gfortran.h: Add field f3red to union gfc_check_f.
1852         * intrinsic.c (add_sym_3red): New function.
1853         (add_functions): Register maxval, minval, product, and sum intrinsics
1854         through add_sym_3red.
1855         (check_specific): Handle f3red union field.
1856         * iresolve.c: Whitespace change.
1857
1858 2004-08-18  Paul Brook  <paul@codesourcery.com>
1859
1860         * trans-types.c (gfc_sym_type): Use pointer types for optional args.
1861
1862 2004-08-18  Victor Leikehman  <lei@il.ibm.com>
1863
1864         PR fortran/13278
1865         * trans-io.c (transfer_namelist_element): New. Recursively handle
1866         derived-type variables.  Pass string lengths.
1867         (build_dt): Code moved to build_namelist, with some
1868         changes and additions.
1869         (gfc_build_io_library_fndecls): Declare the fifth
1870         argument in st_set_nml_var_char -- string_length.
1871
1872 2004-08-17  Paul Brook  <paul@codesourcery.com>
1873         Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1874
1875         PR fortran/13082
1876         * decl.c (get_proc_name): Update mystery comment.
1877         (gfc_match_entry): Check for errors earlier.  Add entry point to list.
1878         * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
1879         * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
1880         (struct gfc_entry_list): Define.
1881         (gfc_get_entry_list): Define.
1882         (struct gfc_namespace): Add refs and entries.
1883         (enum gfc_exec_op): Add EXEC_ENTRY.
1884         (struct gfc_code): Add ext.entry.
1885         * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
1886         (mio_symbol_attribute): Don't save/reture addr->entry.
1887         (mio_namespace_ref): Refcount namespaces.
1888         * parse.c (accept_statement): Handle ST_ENTRY.
1889         (gfc_fixup_sibling_symbols): Mark symbol as referenced.
1890         (parse_contained): Fixup sibling references to entry points
1891         after parsing the procedure body.
1892         * resolve.c (resolve_contained_fntype): New function.
1893         (merge_argument_lists, resolve_entries): New functions.
1894         (resolve_contained_functions): Use them.
1895         (resolve_code): Handle EXEC_ENTRY.
1896         (gfc_resolve): Call resolve_entries.
1897         * st.c (gfc_free_statement): Handle EXEC_ENTRY.
1898         * symbol.c (gfc_get_namespace): Refcount namespaces.
1899         (gfc_free_namespace): Ditto.
1900         * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
1901         optional when multiple entry points are present.
1902         * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
1903         (gfc_get_extern_function_decl): Add assertion.  Fix coment.
1904         (create_function_arglist, trans_function_start, build_entry_thunks):
1905         New functions.
1906         (gfc_build_function_decl): Rename ...
1907         (build_function_decl): ... to this.
1908         (gfc_create_function_decl): New function.
1909         (gfc_generate_contained_functions): Use it.
1910         (gfc_trans_entry_master_switch): New function.
1911         (gfc_generate_function_code): Use new functions.
1912         * trans-stmt.c (gfc_trans_entry): New function.
1913         * trans-stmt.h (gfc_trans_entry): Add prototype.
1914         * trans-types.c (gfc_get_function_type): Add entry point argument.
1915         * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
1916         (gfc_generate_module_code): Call gfc_create_function_decl.
1917         * trans.h (gfc_build_function_decl): Remove.
1918         (gfc_create_function_decl): Add prototype.
1919
1920 2004-08-15  Andrew Pinski  <apinski@apple.com>
1921
1922         PR fortran/17030
1923         * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
1924         for cabs{,f} and copysign{,f}.
1925         * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
1926         (gfor_fndecl_math_cabs): Delete.
1927         (gfor_fndecl_math_sign4): Delete.
1928         (gfor_fndecl_math_sign8): Delete.
1929         (gfc_build_intrinsic_function_decls): Remove the
1930         initializing of cabs{,f} and copysign{,f} functions.
1931         * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
1932         instead of the functions definitions.
1933         (gfc_conv_intrinsic_sign): Likewise.
1934         * trans.h (gfor_fndecl_math_cabsf): Delete.
1935         (gfor_fndecl_math_cabs): Delete.
1936         (gfor_fndecl_math_sign4): Delete.
1937         (gfor_fndecl_math_sign8): Delete.
1938
1939 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
1940
1941         * trans-array.c (gfc_trans_array_constructor_value): Use
1942         build_int_cst.
1943         * trans-const.c (gfc_build_string_const,
1944         gfc_init_constants, gfc_conv_mpz_to_tree,
1945         gfc_conv_constant_to_tree): Likewise.
1946         * trans-decl.c (gfc_get_symbol_decl): Likewise.
1947         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
1948         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
1949         * trans-io.c (add_case, set_error_locus, build_dt,
1950         transfer_expr): Likewise.
1951         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
1952         gfc_trans_stop, gfc_trans_character_select): Likewise.
1953         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
1954         * trans.c (gfc_trans_runtime_check): Likewise.
1955
1956 2004-08-14  Paul Brook  <paul@codesourcery.com>
1957
1958         * trans-decl.c (gfc_build_function_decl): Remove dead code.
1959
1960 2004-08-14  Paul Brook  <paul@codesourcery.com>
1961
1962         * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
1963
1964 2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1965
1966         * gfortran.h: Add comments.
1967         * parse.c (parse_contained): Fix comment typo.
1968         * resolve.c (was_declared): Ditto.
1969         * symbol.c: Ditto.
1970
1971 2004-08-11  Paul Brook  <paul@codeourcery.com>
1972
1973         PR fortran/16917
1974         * intrinsic.c (add_functions): Add dfloat as an alias for dble.
1975
1976 2004-08-10  Richard Henderson  <rth@redhat.com>
1977
1978         * f95-lang.c (gfc_init_builtin_functions): Remove
1979          __builtin_stack_alloc, add __builtin_alloca.
1980         * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
1981         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
1982
1983 2004-08-10  Paul Brook  <paul@codesourcery.com>
1984
1985         * trans-io.c (transfer_expr): Handle pointters.
1986
1987 2004-08-10  Paul Brook  <paul@codesourcery.com>
1988
1989         PR fortran/16919
1990         * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
1991         (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
1992         (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
1993         Handle GFC_SS_COMPONENT.
1994         (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
1995         (gfc_conv_loop_setup): Tweak commends. Remove dead code.
1996         Use ss->shape.
1997         (gfc_conv_array_initializer): Call specific initializer routines.
1998         * trans-expr.c (gfc_trans_structure_assign): New function.
1999         (gfc_trans_subarray_assign): New function.
2000         (gfc_trans_subcomponent_assign): New fucntion
2001         (gfc_conv_structure): Use them.
2002         * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
2003         (gfc_ss): Add shape.
2004
2005 2004-08-08  Victor Leikehman  <lei@il.ibm.com>
2006
2007         * simplify.c (gfc_simplify_shape): Bugfix.
2008         * expr.c (gfc_copy_shape_excluding): New function.
2009         * gfortran.h (gfc_get_shape): Bugfix.
2010         (gfc_copy_shape_excluding): Added declaration.
2011         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
2012         gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
2013         gfc_resolve_ubound, gfc_resolve_transpose): Added compile
2014         time resolution of shape.
2015
2016 2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2017
2018         * intrinsic.c (add_subroutines): Add getenv and
2019         get_environment_variable. (add_sym_5s): New function.
2020         * intrinsic.h (gfc_resolve_get_environment_variable): Add
2021         prototype.
2022         * iresolve.c (gfc_resolve_get_environment_variable): New
2023         function.
2024
2025 2004-08-06  Feng Wang  <fengwang@nudt.edu.cn>
2026
2027         * f95-lang.c (gfc_init_builtin_functions): Fix the number of
2028         __builtin_pow[f] arguments.
2029
2030 2004-08-06  Steven G. Kargl  <kargls@comcast.net>
2031
2032         * arith.c: Add #define for model numbers.  Remove global GMP variables.
2033         (natural_logarithm,common_logarithm,exponential,sine,
2034         cosine,arctangent,hypercos,hypersine ): Remove.
2035         (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
2036         (arctangent2,gfc_arith_init_1,gfc_arith_done_1
2037         gfc_check_real_range, gfc_constant_result, gfc_range_check,
2038         gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
2039         gfc_arith_divide,complex_reciprocal,complex_pow_ui,
2040         gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
2041         gfc_convert_complex,gfc_int2real,gfc_int2complex,
2042         gfc_real2int,gfc_real2real,gfc_real2complex,
2043         gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
2044         to MPFR, use new functions.
2045         * arith.h: Remove extern global variables.
2046         (natural_logarithm,common_logarithm,exponential, sine, cosine,
2047         arctangent,hypercos,hypersine): Remove prototypes.
2048         (arctangent2): Update prototype from GMP to MPFR.
2049         (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
2050         * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
2051         * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
2052         * gfortran.h (GFC_REAL_BITS): Remove.
2053         (arith): Add ARITH_NAN.
2054         Include mpfr.h.  Define GFC_RND_MODE.
2055         Rename GCC_GFORTRAN_H GFC_GFC_H.
2056         (gfc_expr): Convert GMP to MPFR.
2057         * module.c: Add arith.h, correct type in comment.
2058         (mio_gmp_real): Convert GMP to MPFR.
2059         (mio_expr):  Use gfc_set_model_kind().
2060         * primary.c:  Update copyright date with 2004.
2061         (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
2062         * simplify.c: Remove global GMP variables
2063         (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
2064         gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
2065         gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
2066         gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
2067         gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
2068         gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
2069         gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
2070         gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
2071         gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
2072         gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
2073         gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
2074         gfc_simplify_rrspacing,gfc_simplify_scale,
2075         gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
2076         gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
2077         gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
2078         gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
2079         Use new functions.
2080         * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
2081         gfc_conv_mpf_to_tree.  Convert it to use MPFR
2082         (gfc_conv_constant_to_tree): Use it.
2083         * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
2084         * trans-intrinsic.c: Add arith.h, remove gmp.h
2085         (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
2086
2087 2004-08-06  Victor Leikehman  <lei@il.ibm.com>
2088         Paul Brook  <paul@codesourcery.com>
2089
2090         * trans-array.c (gfc_trans_allocate_array_storage,
2091         gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
2092         gfc_conv_loop_setup): For functions, if the shape of the result
2093         is not known in compile-time, generate an empty array descriptor for
2094         the result and let the callee to allocate the memory.
2095         (gfc_trans_dummy_array_bias): Do nothing for pointers.
2096         (gfc_conv_expr_descriptor): Use function return values directly.
2097         * trans-expr.c (gfc_conv_function_call): Always add byref call
2098         insn to pre chain.
2099         (gfc_trans_pointer_assignment): Add comments.
2100         (gfc_trans_arrayfunc_assign): Don't chain on expression.
2101
2102 2004-08-01  Roger Sayle  <roger@eyesopen.com>
2103
2104         * options.c (gfc_init_options): Don't warn about the use GNU
2105         extensions by default.
2106         (gfc_post_options): Warn about GNU extensions with -pedantic.
2107         (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
2108
2109 2004-07-30  Richard Henderson  <rth@redhat.com>
2110
2111         * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
2112         for TREE_CONSTANTs.
2113
2114 2004-07-25  Richard Henderson  <rth@redhat.com>
2115
2116         * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
2117         and DECL_IGNORED_P on RESULT_DECL.
2118         (gfc_generate_constructors): Likewise.
2119
2120 2004-07-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2121
2122         PR fortran/16465
2123         * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
2124         options.
2125         (ffixed-line-length-80, ffixed-line-length-132): Remove.
2126         * options.c (gfc_handle_options): Deal with changed options.
2127         * scanner.c (load_line): Change second arg to 'char **',
2128         allocate if pointing to NULL. Keep track of buffer's length.
2129         Adapt buffer size to overlong lines. Pad lines to full length
2130         in fixed form.
2131         (load_file): Adapt to new interface of load_line.
2132
2133 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
2134
2135         * trans.h (builtin_function): Declare.
2136
2137 2004-07-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2138
2139         PR fortran/16404
2140         (parts ported from g95)
2141         * parse.h (gfc_state_data): New field do_variable.
2142         (gfc_check_do_variable): Add prototype.
2143         * parse.c (push_state): Initialize field 'do_variable'.
2144         (gfc_check_do_variable): New function.
2145         (parse_do_block): Remember do iterator variable.
2146         (parse_file): Initialize field 'do_variable'.
2147         * match.c (gfc_match_assignment, gfc_match_do,
2148         gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
2149         Add previously missing checks.
2150         (gfc_match_return): Reformat error message.
2151         * io.c (match_out_tag): New function.
2152         (match_open_element, match_close_element,
2153         match_file_element, match_dt_element): Call match_out_tag
2154         instead of match_vtag where appropriate.
2155         (match_io_iterator, match_io_element): Add missing check.
2156         (match_io): Reformat error message.
2157         (match_inquire_element): Call match_out_tag where appropriate.
2158
2159         * parse.c (gfc_check_do_variable): Fix error locus.
2160
2161 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2162
2163         PR fortran/15129
2164         * trans-decl.c (gfc_build_function_decl): Create a new chardecl
2165         for every assumed length character dummy argument.
2166
2167         PR fortran/15140
2168         * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
2169
2170         PR fortran/13792
2171         * simplify.c (gfc_simplify_bound): Copy the bound expression.
2172
2173 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2174
2175         PR fortran/15324
2176         * trans-array.c gfc_trans_g77_array,
2177         gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
2178         for assumed length characters.
2179         (gfc_conv_expr_descriptor): Set se->string_length if dealing
2180         with a character expression.
2181         (gfc_cvonv_array_parameter): Pass string length when passing
2182         character array according to g77 conventions.
2183
2184 2004-07-12  Paul Brook  <paul@codesourcery.com>
2185
2186         * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
2187         * trans-array.c (gfc_trans_auto_array_allocation): Remove
2188         initialization code.
2189         * trans-common.c (create_common): Use gfc_conv_initializer.
2190         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
2191         * trans-expr.c (gfc_conv_initializer): New function.
2192         (gfc_conv_structure): Use it.
2193         * trans.h (gfc_conv_initializer): Add prototype.
2194
2195 2004-07-11  Paul Brook  <paul@codesourcery.com>
2196
2197         PR fortran/15986
2198         * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
2199         variables.
2200         (parse_contained): Mark contained symbols as referenced.
2201
2202 2004-07-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2203
2204         PR fortran/16455
2205         * module.c (gfc_dump_module, gfc_use_module): Print locus
2206         when opening of module file fails.
2207
2208         PR fortran/16404
2209         * io.c (match_io): Flag 'WRITE(...), ...' as extension.
2210
2211         PR fortran/16404
2212         * match.c (gfc_match_program): A program name is obligatory.
2213         (gfc_match_return): RETURN in main program is an extension.
2214         (gfc_match_block_data): A space is required before a block data
2215         name.
2216
2217         PR fortran/16433
2218         * primary.c (match_boz_constant): Call gfc_notify_std only if
2219         we actually have a non-standard boz-literal-constant.
2220
2221         PR fortran/15754
2222         * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
2223         warning if assigning NULL().
2224
2225 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
2226
2227         * f95-lang.c (set_block): Remove.
2228         (gfc_clear_binding_stack): New.
2229         (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
2230         (struct binding_level): Remove block_created_by_back_end.
2231         (clear_binding_level): Likewise.
2232         (poplevel): Don't handle block_created_by_back_end.
2233
2234 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2235
2236         * trans-decl.c (gfc_create_module_variable): Nothing to do if
2237         symbol is in common, because we ...
2238         (gfc_generate_module_vars): Call gfc_trans_common.
2239
2240 2004-07-10  Paul Brook  <paul@codesourcery.com>
2241
2242         * trans-array.c (gfc_build_null_descriptor): New function.
2243         (gfc_trans_static_array_pointer): Use it.
2244         * trans-array.h (gfc_build_null_descriptor): Add prototype.
2245         * trans-expr.c (gfc_conv_structure): Handle array pointers.
2246
2247 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2248
2249         PR fortran/16336
2250         * decl.c (gfc_match_save): Use-associated common block
2251         doesn't collide.
2252         * gfortran.h (gfc_common_head): Add new field 'name'.
2253         Fix typo in comment after #endif.
2254         * match.c (gfc_get_common): Add new argument from_common,
2255         mangle name if flag is set, fill in new field in structure
2256         gfc_common_head.
2257         (match_common): Set new arg in call to gfc_get_common,
2258         use-associated common block doesn't collide.
2259         * match.h (gfc_get_common): Adapt prototype.
2260         * module.c (load_commons): Set new arg in call to
2261         gfc_get_common.
2262         * symbol.c (free_common_tree): New function.
2263         (gfc_free_namespace): Call new function.
2264         * trans-common.c (several functions): Remove argument
2265         'name', use name from gfc_common_head instead.
2266
2267 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2268
2269         * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
2270         and RHS match. Return early if the RHS is NULL().
2271
2272         PR fortran/16336
2273         * match.c (match_common): Fix error reporting for used common.
2274
2275         PR fortran/15969
2276         * trans-expr.c (gfc_conv_structure): Handle initialization
2277         of scalar pointer components.
2278
2279         * parse.c (decode_statement): Fix matching of BLOCK DATA.
2280
2281         * trans-decl.c (generate_local_decl): Remove workaround obsoleted
2282         by fix for PR 15481.
2283
2284 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2285
2286         * trans-common.c: Fix whitespace issues, make variable names
2287         more readable.
2288         (create_common): Additionally, make loop logic more obvious.
2289
2290 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2291         Paul Brook  <paul@codesourcery.com>
2292
2293         PR fortran/13415
2294         * trans-common.c (calculate_length): Remove ...
2295         (get_segment_info): Merge into here.  Save field type.
2296         (build_field): Use saved type.
2297         (create_common, new_condition, new_segment, finish_equivalences):
2298         Use new get_segment_info.
2299         * trans-types.c: Update comment.
2300
2301 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2302
2303         PR fortran/14077
2304         * moduele.c (mio_symbol): Don't I/O initial values unless
2305         symbol is a parameter.
2306
2307 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2308
2309         PR fortran/13201
2310         * resolve.c (resolve_symbol): Verify that the shape of a
2311         parameter array is not only explicit, but also constant.
2312         * array.c (gfc_is_compile_time_shape): New function.
2313         * gfortran.h (gfc_is_compile_time_shape): Add prototype.
2314
2315 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2316
2317         PR fortran/15481
2318         PR fortran/13372
2319         PR fortran/13575
2320         PR fortran/15978
2321         * module.c (write_symbol, write_symtree): Remove workaround.
2322         * primary.c (match_actual_arglist): Enhance comment.
2323         (gfc_match_rvalue): Handle function call with first argument
2324         a keyword argument correctly.
2325         * resolve.c (resolve_symbol): Change call to
2326         gfc_set_default_type to issue error if no implicit type
2327         can be found.
2328         * trans-decl.c (gfc_create_module_variable): Remove workaround.
2329
2330 2004-07-08  Paul Brook  <paul@codesourcery.com>
2331
2332         * intrinsic.c (add_sym_4s): New function.
2333         (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
2334
2335 2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2336         Paul Brook  <paul@codesourcery.com>
2337
2338         PR fortran/15280
2339         PR fortran/15665
2340         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
2341         GFC_ISYM_COMMAND_ARGUMENT_COUNT.
2342         * intrinsic.c (add_functions):  Identify iargc.  Add
2343         command_argument_count.
2344         (add_subroutines): Resolve getarg.  Add get_command and
2345         get_command_argument.
2346         * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
2347         gfc_resolve_get_command_argument): Add prototypes.
2348         * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
2349         gfc_resolve_get_command_argument): New functions.
2350         * trans-decl.c (gfor_fndecl_iargc): New variable.
2351         (gfc_build_intrinsic_function_decls): Set it.
2352         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
2353         (gfc_conv_intrinsic_function): Use it.
2354         * trans.h (gfor_fndecl_iargc): Declare.
2355
2356 2004-07-04  Matthias Klose  <doko@debian.org>
2357
2358         * Make-lang.in: Generate and install gfortran man page.
2359         * invoke.texi: Remove extra '@c man end'.
2360
2361 2004-07-04  Richard Henderson  <rth@redhat.com>
2362
2363         * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
2364
2365 2004-07-04  Paul Brook  <paul@codesourcery.com>
2366
2367         * decl.c (gfc_match_implicit_range): Don't use typespec.
2368         (gfc_match_implicit): Handle character selectors.
2369         * gfortran.h (gfc_set_implicit): Remove prototype.
2370         (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
2371         * parse.c (accept_statement): Don't call gfc_set_implicit.
2372         * symbol.c (new_ts): Remove.
2373         (gfc_set_implicit_none): Use same loop bounds as other functions.
2374         (gfc_set_implicit): Remove.
2375         (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
2376         (gfc_merge_new_implicit): Combine with gfc_set_implicit.
2377
2378 2004-06-30  Richard Henderson  <rth@redhat.com>
2379
2380         * match.c (var_element): Remove unused variable.
2381
2382         * trans-decl.c (gfc_generate_function_code): Don't set
2383         x_whole_function_mode_p.
2384         (gfc_generate_constructors): Likewise.
2385
2386 2004-06-30  Richard Henderson  <rth@redhat.com>
2387
2388         * trans-decl.c (gfc_generate_function_code): Don't set
2389         immediate_size_expand.
2390         (gfc_generate_constructors): Likewise.
2391
2392 2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2393
2394         PR fortran/16161
2395         * decl.c (gfc_match_type_spec): Rename second argument to
2396         'implicit_flag', reverse meaning. Don't match_char_spec if
2397         'implicit_flag' is set. Rename to ...
2398         (match_type_spec): ... this.
2399         (gfc_match_implicit_none, match_implicit_range): Move here
2400         from match.c.
2401         (gfc_match_implicit): Move here from match.c, try to
2402         match_char_len if match_implicit_range doesn't succeed for
2403         CHARACTER implicits. Call renamed fucntion match_type_spec.
2404         (gfc_match_data_decl, match_prefix): Call renamed function
2405         match_type_spec.
2406         * match.c (gfc_match_implicit_none, match_implicit_range,
2407         gfc_match_implicit): Move to decl.c.
2408         * match.h (gfc_match_implicit_none, gfc_match_implicit):
2409         Move protoypes to section 'decl.c'.
2410         (gfc_match_type_spec): Remove prototype.
2411
2412 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2413
2414         * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
2415         copyright years.
2416
2417 2004-06-29  Steven Bosscher  <stevenb@suse.de>
2418
2419         Make sure types in assignments are compatible.  Mostly mechanical.
2420         * trans-const.h (gfc_index_one_node): New define.
2421         * trans-array.c (gfc_trans_allocate_array_storage,
2422         gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
2423         gfc_trans_array_constructor_value, gfc_trans_array_constructor,
2424         gfc_conv_array_ubound, gfc_conv_array_ref,
2425         gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
2426         gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
2427         gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
2428         gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
2429         types in assignments, conversions and conditionals for expressions.
2430         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
2431         gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
2432         gfc_conv_function_call, gfc_trans_pointer_assignment,
2433         gfc_trans_scalar_assign): Likewise.
2434         * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
2435         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
2436         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
2437         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
2438         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
2439         gfc_conv_allocated, gfc_conv_associated,
2440         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
2441         * trans-io.c (set_string): Likewise.
2442         * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
2443         gfc_do_allocate, generate_loop_for_temp_to_lhs,
2444         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
2445         compute_overall_iter_number, gfc_trans_assign_need_temp,
2446         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
2447         gfc_evaluate_where_mask, gfc_trans_where_assign,
2448         gfc_trans_where_2): Likewise.
2449         * trans-types.c (gfc_get_character_type, gfc_build_array_type,
2450         gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
2451
2452         * trans.c (gfc_add_modify_expr): Add sanity check that types
2453         for the lhs and rhs are the same for scalar assignments.
2454
2455 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2456
2457         * dump-parse-tree.c (show_common): New function.
2458         (gfc_show_namespace): Show commons.
2459
2460 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2461         Andrew Vaught  <andyv@firstinter.net>
2462
2463         PR fortran/13249
2464         PR fortran/15481
2465         * decl.c (gfc_match_save): Adapt to new common structures,
2466         don't allow saving USE-associated common.
2467         * dump-parse-tree (gfc_show_attr): (saved_)common are not
2468         symbol attributes any longer.
2469         (gfc_show_symbol): Don't show old-style commons any longer.
2470         (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
2471         interface.
2472         * gfortran.h (symbol_attribute): Remove common and saved_common
2473         attributes.
2474         (gfc_symbol): Remove common_head element.
2475         (gfc_common_head): New struct.
2476         (gfc_get_common_head): New macro.
2477         (gfc_symtree): Add field 'common' to union.
2478         (gfc_namespace): Add field 'common_root'; change type of field
2479         'blank_common' to blank_common.
2480         (gfc_add_data): New prototype.
2481         (gfc_traverse_symtree): Expect a symtree as first argument
2482         instead of namespace.
2483         * match.c (gfc_get_common): New function.
2484         (match_common_name): Change to take char * as argument, adapt,
2485         fix bug with empty name.
2486         (gfc_match_common): Adapt to new data structures. Disallow
2487         redeclaration of USE-associated COMMON-block. Fix bug with
2488         empty common.
2489         (var_element): Adapt to new common structures.
2490         * match.h (gfc_get_common): Declare.
2491         * module.c: Add 2004 to copyright years, add commons to module
2492         file layout description.
2493         (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
2494         for removed attributes.
2495         (mio_symbol): Adapt to new way of storing common relations.
2496         (load_commons): New function.
2497         (read_module): Skip common list on first pass, load_commons at
2498         second.
2499         (write_commons): New function.
2500         (write_module): Call write_commons().
2501         * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
2502         functions related to removed attributes.
2503         (gfc_add_data): New function.
2504         (gfc_clear_attr): Don't set removed attributes.
2505         (gfc_copy_attr): Don't copy removed attributes.
2506         (traverse_symtree): Remove.
2507         (gfc_traverse_symtree): Don't traverse symbol
2508         tree of the passed namespace, but require a symtree to be passed
2509         instead. Unify with traverse_symtree.
2510         (gfc_traverse_ns): Call gfc_traverse_symtree according to new
2511         interface.
2512         (save_symbol): Remove setting of removed attribute.
2513         * trans-common.c (gfc_sym_mangled_common_id): Change to
2514         take 'char *' argument instead of 'gfc_symbol'.
2515         (build_common_decl, new_segment, translate_common): Adapt to new
2516         data structures, add new
2517         argument name.
2518         (create_common): Adapt to new data structures, add new
2519         argument name. Fix typo in intialization of derived types.
2520         (finish_equivalences): Add second argument in call to
2521         create_common.
2522         (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
2523         (gfc_trans_common): Adapt to new data structures.
2524         * trans-decl.c (gfc_create_module_variables): Remove test for
2525         removed attribute.
2526
2527 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2528
2529         * io.c: Add 2004 to copyright years.
2530
2531 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2532         Andrew Vaught  <andyv@firstinter.net>
2533
2534         * gfortran.h (gfc_gsymbol): New typedef.
2535         (gfc_gsym_root): New variable.
2536         (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
2537         * parse.c (global_used): New function.
2538         (parse_block_data): Check for double empty BLOCK DATA,
2539         use global symbol table.
2540         (parse_module): Use global symbol table.
2541         (add_global_procedure, add_global_program): New functions.
2542         (gfc_parse_file): Use global symbol table.
2543         * symbol.c (gfc_gsym_root): New variable.
2544         (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
2545         functions.
2546
2547 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2548
2549         * module.c (mio_gmp_real): Correct writing of negative numbers.
2550
2551 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2552
2553         PR fortran/15963
2554         * expr.c (check_intrinsic_op): Allow comparison of characters.
2555         Make logic easier.
2556
2557 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2558         Andrew Vaught  <andyv@firstinter.net>
2559
2560         * decl.c (contained_procedure): New function.
2561         (match_end): Verify correctness of END STATEMENT in
2562         all cases.
2563
2564 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2565         Andrew Vaught  <andyv@firstinter.net>
2566
2567         PR fortran/15190
2568         * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
2569         (decode_statement): Enforce required space in free-form.
2570
2571 2004-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2572
2573         * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
2574         * trans-array.c (gfc_conv_descriptor_data): Add operand
2575         for COMPONENT_REF.
2576         (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
2577         (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
2578         (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
2579         * trans-common.c (create_common): Likewise.
2580         * trans-expr.c (gfc_conv_component_ref): Likewise.
2581         * trans-io.c (set_parameter_value): Likewise.
2582         (set_parameter_ref, set_string, set_flag, io_result): Likewise.
2583         (transfer_expr): Likewise.
2584         * trans-decl.c (gfc_trans_auto_character_variable):
2585         Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
2586         (gfc_gimplify_function): New function.
2587         (gfc_generate_function-code): Properly handle nested functions.
2588         * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
2589
2590 2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2591
2592         PR fortran/15750
2593         * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
2594         (gfc_resolve_inquire): Resolve the iolength tag.  Return
2595         SUCCESS at end of function if no failure has occured.
2596         * resolve.c (resolve_code): Resolve if iolength is encountered.
2597         * trans-io.c: (ioparm_iolength, iocall_iolength,
2598         iocall_iolength_done): New variables.
2599         (last_dt): Add IOLENGTH.
2600         (gfc_build_io_library_fndecls ): Set iolength related variables.
2601         (gfc_trans_iolength): Implement.
2602         (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
2603
2604 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de
2605
2606         PR fortran/15511
2607         * scanner.c (load_line): Don't truncate preprocessor lines.
2608         Reformat error message.
2609         (preprocessor_line): Issue warning in case of malformed
2610         preprocessor line.
2611
2612 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2613
2614         * resolve.c (resolve_symbol): Add comment in function body.
2615         (check_data_variable): Change type of mark to ar_type, adapt code
2616         accordingly.
2617
2618 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2619
2620         * array.c (gfc_insert_constructor): Avoid redundant call to
2621         mpz_comp. Add 2004 to copyright years.
2622
2623 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2624
2625         * trans.h (stmtblock_t): Change has_scope to unsigned int.
2626
2627 2004-06-20  Steven G. Kargl  <kargls@comcast.net>
2628
2629         * arith.c (gfc_range_check): correct complex underflow.
2630
2631 2004-06-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2632
2633         PR fortran/15962
2634         * match.c (match_case_selector): Call gfc_match_init_expr
2635         instead of gfc_match_expr.
2636         * resolve.c (validate_case_label_expr): No need to check for
2637         constant, since it wouldn't have been matched with the fix to
2638         match.c.
2639
2640 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2641
2642         PR fortran/15211
2643         * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
2644         of strings.
2645
2646 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2647
2648         PR fortran/15510
2649         * trans-deecl.c (generate_local_decl): Do not issue warning for
2650         unused variables if they're use associated.
2651
2652 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2653         Andrew Vaught <andyv@firstinter.net>
2654
2655         PR fortran/14928
2656         * gfortran.h (gfc_check_f): Add new field f3ml.
2657         * check.c (gfc_check_minloc_maxloc): Take argument list instead
2658         of individual arguments, reorder if necessary.
2659         * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
2660         * intrinsic.c (add_sym_3ml): New function.
2661         (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
2662         (check_specific): Catch special case MINLOC, MAXLOC.
2663
2664 2004-06-14  Paul Brook  <paul@codesourcery.com>
2665
2666         * intrinsic.c (add_sym_2s): Use correct function types.
2667
2668 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2669
2670         * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
2671         * data.c (gfc_get_section_index):  Remove dependency on trans.h.
2672
2673 2004-06-12  Steven G. Kargl  <kargls@comcast.net>
2674
2675         * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
2676         gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
2677         * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
2678         GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
2679         * trans-intrinsic.c:  Use symbols.
2680         * intrinsic.c (add_sym_2s): New function.
2681         * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
2682         * intrinsic.h: Function prototypes.
2683         * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
2684         gfc_resolve_srand):  New functions.
2685
2686 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2687
2688         PR fortran/14957
2689         * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
2690         contained procedure.
2691
2692 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2693
2694         PR fortran/12841
2695         * interface.c (compare_parameter, compare_actual_formal): Don't
2696         check types and array shapes for NULL()
2697         * trans-expr.c (conv_function_call): No double indirection for
2698         NULL()
2699
2700 2004-06-09  Toon Moene  <toon@moene.indiv.nluug.nl>
2701
2702         * trans-expr.c (gfc_conv_cst_int_power): Compute
2703         x**(-n) by converting it to (1/x)**n instead of
2704         1/x**n.
2705
2706 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2707
2708         PR fortran/13372
2709         * module.c (write_symbol, write_symtree): Don't write symbols
2710         wrongly added to namespace.
2711         * trans-decl.c (gfc_create_module_variable): Don't create a
2712         backend decl for a symbol incorrectly added to namespace.
2713
2714 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2715
2716         PR fortran/13201
2717         * resolve.c (resolve_symbol): Verify that parameter array has an
2718         explicit shape. Fix typos and coding style issues in surrounding
2719         lines.
2720
2721 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2722
2723         PR fortran/15478
2724         * gfortran.texi: The documentation doesn't contain infomration on
2725         how to report bugs, and shouldn't, so remove the line which
2726         says it does.
2727
2728 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2729
2730         * intrinsic.c (sort_actual): Keep track of type of missing
2731         arguments. (Missing from previous commit.)
2732
2733 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2734
2735         * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
2736         * interface.c (compare_actual_formal): Keep type of omitted
2737         optional arguments.
2738         * trans-expr.c (gfc_conv_function_call): Add string length
2739         argument for omitted string argument.
2740
2741 2004-06-03  Paul Brook  <paul@codesourcery.com>
2742
2743         * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
2744         lists instead of compound expr chains.
2745         (gfc_trans_code): Annotate statement lists.
2746
2747 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2748
2749         * trans-array.c: Fix spelling in comments.
2750
2751 2004-06-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2752
2753         PR fortran/15557
2754         * data.c (assign_substring_data_value): New function.
2755         (gfc_assign_data_value): Call the new function if we're dealing
2756         with a substring LHS.
2757
2758 2004-06-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2759
2760         PR fortran/15477
2761         * gfortran.h (GFC_VERSION): Remove.
2762         * gfortran.texi (version-gfortran): Remove, replace by version-GCC
2763         where used.
2764
2765 2004-05-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2766
2767         * trans-types.c: Fix spelling & layout in comments.
2768
2769 2004-05-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2770
2771         PR fortran/14067
2772         * trans-const.c (gfc_conv_string_init): Allow variable string
2773         length lower than initialization string length.
2774
2775 2004-05-30  Paul Brook  <paul@codesourcery.com>
2776
2777         PR fortran/15620
2778         * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
2779         * trans-expr.c (gfc_trans_string_copy): New function.
2780         (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
2781         character lengths.
2782         (gfc_conv_string_parameter): Use gfc_trans_string_copy.
2783         * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
2784         * trans.h (struct gfc_saved_var): Define.
2785         (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
2786
2787 2004-05-30  Steven G. Kargl  <kargls@comcast.net>
2788
2789         * iresolve.c (gfc_resolve_random_number): Clean up conditional.
2790
2791 2004-05-29  Steven G. Kargl  <kargls@comcast.net>
2792
2793         * simplify.c (gfc_simplify_log): Remove useless line of code.
2794
2795 2004-05-29  Paul Brook  <paul@codesourcery.com>
2796
2797         * trans-common.c (find_equivalence): Find multiple rules.
2798
2799 2004-05-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2800
2801         * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
2802         (gfc_current_locus): Declare new global variable.
2803         * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
2804         (gfc_current_locus1): Rename ...
2805         (gfc_current_locus): ... to this.
2806         (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
2807         skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
2808         gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
2809         gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
2810         and gfc_current_locus(), respectively.
2811         * array.c (match_subscript, gfc_match_array_ref, match_array_list,
2812         match_array_cons_element, gfc_match_array_constructor):
2813         Read/modify gfc_current_locus instead of calling gfc_set_locus()
2814         and gfc_current_locus().
2815         * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
2816         match_attr_spec, gfc_match_function_decl, gfc_match_end,
2817         attr_decl1, gfc_match_save): Likewise.
2818         * error.c (error_print, gfc_internal_error): Likewise.
2819         * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
2820         * interface.c (gfc_add_interface): Likewise.
2821         * io.c (gfc_match_format, match_dt_format, match_dt_element,
2822         match_io_iterator, match_io): Likewise.
2823         * match.c (gfc_match_space, gfc_match_eos,
2824         gfc_match_small_literal_int, gfc_match_st_label,
2825         gfc_match_strings, gfc_match_name, gfc_match_iterator,
2826         gfc_match_char, gfc_match, gfc_match_assignment,
2827         gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
2828         gfc_match_nullify, gfc_match_call, match_implicit_range,
2829         gfc_match_implicit, gfc_match_data, match_case_selector,
2830         gfc_match_case, match_forall_iterator): Likewise.
2831         * matchexp.c (gfc_match_defined_op_name, next_operator,
2832         match_level_1, match_mult_operand, match_ext_mult_operand,
2833         match_add_operand, match_ext_add_operand, match_level_2,
2834         match_level_3, match_level_4, match_and_operand, match_or_operand,
2835         match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
2836         * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
2837         * parse.c (match_word, decode_statement, next_free, next_fixed,
2838         add_statement, verify_st_order, parse_if_block, gfc_parse_file):
2839         Likewise.
2840         * primary.c (match_digits, match_integer_constant,
2841         match_boz_constant, match_real_constant, match_substring,
2842         next_string_char, match_charkind_name, match_string_constant,
2843         match_logical_constant, match_const_complex_part,
2844         match_complex_constant, match_actual_arg, match_keyword_arg,
2845         gfc_match_actual_arglist, gfc_match_structure_constructor,
2846         gfc_match_rvalue, gfc_match_variable): Likewise.
2847         * st.c (gfc_get_code): Likewise.
2848         * symbol.c (check_conflict, check_used, check_done,
2849         duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
2850         gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
2851         gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
2852
2853 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2854
2855         * io.c (format_asterisk): Silence compiler warnings by correcting
2856         the number of elements of a "locus" initializer.
2857
2858 2004-05-25  Roger Sayle  <roger@eyesopen.com>
2859
2860         PR fortran/13912
2861         * matchexp.c: Allow unary operators after arithmetic operators
2862         as a GNU extension.
2863         (match_ext_mult_operand, match_ext_add_operand): New functions.
2864         (match_mult_operand): Tweak to call match_ext_mult_operand.
2865         (match_add_operand): Tweak to call match_ext_mult_operand.
2866         (match_level_2): Rearrange to call match_ext_add_operand.
2867
2868 2004-05-25  Paul Brook  <paul@codesourcery.com>
2869
2870         * expr.c (check_inquiry): Remove bogus tests.
2871
2872 2004-05-23  Paul Brook  <paul@codesourcery.com>
2873
2874         PR fortran/13773
2875         * expr.c (restricted_args): Remove redundant checks/argument.
2876         (external_spec_function): Update to match.
2877         (restricted_intrinsic): Rewrite.
2878
2879 2004-05-23  Paul Brook  <paul@codesourcery.com>
2880         Victor Leikehman  <lei@haifasphere.co.il>
2881
2882         * gfortran.h (struct gfc_symbol): Add equiv_built.
2883         * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
2884         messages.
2885         (current_length): Remove.
2886         (add_segments): New function.
2887         (build_equiv_decl): Create initialized common blocks.
2888         (build_common_decl): Always add decl to bindings.
2889         (create_common): Create initializers.
2890         (find_segment_info): Reformat to match coding conventions.
2891         (new_condition): Use add_segments.
2892         (add_condition, find_equivalence, add_equivalences): Move iteration
2893         inside functions.  Only process each segment once.
2894         (new_segment, finish_equivalences, translate_common): Simplify.
2895
2896 2004-05-23  Steven G. Kargl  <kargls@comcast.net>
2897
2898         * check.c (gfc_check_random_seed): Issue for too many arguments.
2899
2900 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
2901
2902         * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
2903
2904 2004-05-22  Paul Brook  <paul@codesourcery.com>
2905
2906         * dump-parse-tree.c (gfc_show_equiv): New function.
2907         (gfc_show_namespace): Use it.
2908
2909 2004-05-22  Victor Leikehman  <lei@haifasphere.co.il>
2910
2911         PR fortran/13249
2912         * symbol.c (gfc_add_common): Disable checks to work around other more
2913         fundamental inadequacies.
2914
2915 2004-05-22  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
2916
2917         * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
2918         only for functions.
2919         (gfc_build_function_decl): Likewise.
2920
2921 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
2922
2923         * check.c (gfc_check_system_clock): New function.
2924         * intrinsic.c (add_sym_3s): New function.
2925         (add_subroutines): Use it.
2926         * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
2927         Add prototypes.
2928         * iresolve.c (gfc_resolve_system_clock): New function.
2929
2930 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
2931
2932         * invoke.texi: Document -Wunderflow and spell check.
2933         * lang.opt: Add Wunderflow.
2934         * gfortran.h (gfc_option_t): Add warn_underflow option.
2935         * options.c (gfc_init_options, set_Wall): Use it.
2936         * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
2937         * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
2938         gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
2939         gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
2940         * arith.c (common_logarithm): Fix typo in comment.
2941
2942 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2943
2944         * io.c (check_format): As a GNU extension, allow the comma after a
2945         string literal to be optional in a format.  Use gfc_notify_std to
2946         issue an error/warning as appropriate.
2947
2948 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2949
2950         * io.c (check_format): Use gfc_notify_std to determine whether to
2951         issue an error/warning for omitting the digits from the X format.
2952
2953 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2954
2955         * io.c (check_format): Allow the number before the X format to
2956         be optional when not -pedantic.
2957
2958 2004-05-18  Feng Wang  <fengwang@nudt.edu.cn>
2959         Paul Brook  <paul@codesourcery.com>
2960
2961         * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
2962         Create decls for __builtin_pow{,f}.
2963         * gfortran.h (PREFIX_LEN): Define.
2964         * trans-decl.c (gfor_fndecl_math_powi): Add.
2965         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
2966         (gfc_build_intrinsic_function_decls): Create decls for powi.
2967         * trans-expr.c (powi_table): Add.
2968         (gfc_conv_integer_power): Remove.
2969         (gfc_conv_powi): New function.
2970         (gfc_conv_cst_int_power): New function.
2971         (gfc_conv_power_op): Use new powi routines.
2972         * trans.h (struct gfc_powdecl_list): Add.
2973         (gfor_fndecl_math_powi): Add.
2974         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
2975
2976 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2977
2978         * trans.c, trans-decl.c: Fix comment typos.
2979
2980 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2981
2982         * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
2983
2984 2004-05-18  Steve Kargl  <kargls@comcast.net>
2985
2986         * arith.c (gfc_int2complex): Fix incorrect range checking.
2987
2988 2004-05-18  Paul Brook  <paul@codesourcery.com>
2989
2990         PR fortran/13930
2991         * decl.c (add_init_expr_to_sym): Remove incorrect check.
2992         (default_initializer): Move to expr.c.
2993         (variable_decl): Don't assign default initializer to variables.
2994         * expr.c (gfc_default_initializer): Move to here.
2995         * gfortran.h (gfc_default_initializer): Add prototype.
2996         * resolve.c (resolve_symbol): Check for illegal initializers.
2997         Assign default initializer.
2998
2999 2004-05-17  Steve Kargl  <kargls@comcast.net>
3000
3001         * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
3002
3003 2004-05-17  Steve Kargl  <kargls@comcast.net>
3004
3005         * arith.c (gfc_real2complex): Range checking wrong part of complex
3006         number.
3007
3008 2004-05-16  Paul Brook  <paul@codesourcery.com>
3009
3010         * options.c (gfc_handle_module_path_options): Fix buffer overrun.
3011
3012 2004-05-16  Paul Brook  <paul@codesourcery.com>
3013
3014         * arith.c (gfc_range_check): Fix logic error.
3015
3016 2004-05-16  Steve Kargl  <sgk@troutmask.apl.washington.edu>
3017
3018         * arith.c: Fix comment typos.
3019
3020 2004-05-15  Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3021
3022         PR fortran/13742
3023         * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
3024         not initialized in a disallowed fashion.
3025         * match.c (gfc_match_common): Likewise.
3026         (var_element): Verify that variable is not in the blank COMMON,
3027         if it is in a common.
3028
3029 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3030
3031         * Make-lang.in (f95.generated-manpages): Remove.
3032         (f95.srcextra): New.
3033         (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
3034         f95.maintainer-clean): Generate info and dvi files in objdir/doc.
3035         (f95.dvi): Remove.
3036         (dvi): New.
3037         (f95.install-info): Remove.
3038         (install-info): New.
3039
3040 2004-05-15  Victor Leikehman  <lei@haifasphere.co.il>
3041
3042         * decl.c (add_init_expr_to_sym): Check for variable size arrays.
3043
3044 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3045
3046         * primary.c (match_boz_constant): Use gfc_notify_std() for
3047         issuing a warning or an error.
3048
3049 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3050
3051         PR fortran/13826
3052         * primary.c (match_structure_constructor): Rename ...
3053         (gfc_match_structure_constructor): ... to this. Make non-static.
3054         (gfc_match_rvalue): Call renamed function.
3055         * match.h (gfc_match_structure_constructor): Declare.
3056         * match.c (gfc_match_data_constant): Handle structure
3057         constructor.
3058
3059 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3060
3061         PR fortran/13702
3062         (Port from g95)
3063         * gfortran.h (gfc_linebuf): New typedef.
3064         (linebuf): Remove.
3065         (gfc_file): Revamped, use new gfc_linebuf.
3066         (locus): Revamped, use new types.
3067         (gfc_current_file): Remove.
3068         (gfc_current_form, gfc_source_file): New global variables.
3069         * match.c (gfc_match_space, gfc_match_strings): Use
3070         gfc_current_form to find source form.
3071         * module.c (gfc_dump_module): Use gfc_source_file when printing
3072         module header.
3073         * error.c (show_locus, show_loci) Use new data structures to print
3074         locus.
3075         * scanner.c (first_file, first_duplicated_file, gfc_current_file):
3076         Remove.
3077         (file_head, current_file, gfc_current_form, line_head, line_tail,
3078         gfc_current_locus1, gfc_source_file): New global variables.
3079         (gfc_scanner_init1): Set new global variables.
3080         (gfc_scanner_done1): Free new data structures.
3081         (gfc_current_locus): Return pointer to gfc_current_locus1.
3082         (gfc_set_locus): Set gfc_current_locus1.
3083         (gfc_at_eof): Set new variables.
3084         (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
3085         to new locus structure.
3086         (gfc_check_include): Remove.
3087         (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
3088         (gfc_skip_comments): Use gfc_current_form, find locus with
3089         gfc_current_locus1.
3090         (gfc_next_char): Use gfc_current_form.
3091         (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
3092         (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
3093         comment formatting.
3094         (get_file): New function.
3095         (preprocessor_line, include_line): New functions.
3096         (load_file): Move down, rewrite to match new data structures.
3097         (gfc_new_file): Rewrite to match new data structures.
3098         * parse.c (next_statement): Remove code which is now useless. Use
3099         gfc_source_form and gfc_source_file where appropriate.
3100         * trans-decl.c (gfc_get_label_decl): adapt to new data structures
3101         when determining locus of frontend code.
3102         * trans-io.c (set_error_locus): Same.
3103         * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
3104         * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
3105         preprocessor flags.
3106         (all): Add missing initializers.
3107
3108 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3109
3110         * Make-lang.in (trans-common.o): Remove redundant dependency.
3111         (data.c): Replace object file name ...
3112         (data.o): ... by the correct one.
3113
3114 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3115
3116         * dump-parse-tree.c (gfc_show_array_ref): Print colon only
3117         for ranges when dumping array references.
3118
3119 2004-05-14  Victor Leikehman  <lei@haifasphere.co.il>
3120
3121         * decl.c (variable_decl): Always apply default initializer.
3122
3123 2004-05-08  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3124
3125         PR fortran/15206
3126         * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
3127         handle zero correctly.
3128
3129 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3130
3131         * match.c (gfc_match): Eliminate dead code.
3132
3133 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3134
3135         * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
3136         Detect bad continuation line in fixed form sources.
3137
3138 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3139
3140         PR fortran/15205
3141         * iresolve.c (gfc_resolve_nearest): Add new function.
3142         * intrinsic.h: ... declare it here.
3143         * intrinsic.c (add_functions): ... add it as resolving function
3144         for NEAREST.
3145
3146 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3147
3148         PR fortran/14066
3149         * match.c (gfc_match_do): Allow infinite loops with
3150         label-do-stmt. Do not enforce space after comma.
3151
3152 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3153
3154         PR fortran/15051
3155         * parse.c (parse_interface): Allow empty INTERFACE, remove
3156         seen_body.
3157
3158 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3159
3160         * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
3161         decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
3162         expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
3163         intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
3164         matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
3165         primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
3166         trans-array.c, trans-array.h, trans-common.c, trans-const.c,
3167         trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
3168         trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
3169         trans-types.h, trans.c, trans.h: Update copyright years and
3170         boilerplate.
3171         * data.c: Likewise, also removed two whitespace-only lines.
3172         * gfortranspec.c, lang.opt: Update copyright years.
3173
3174 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3175
3176         PR fortran/14568
3177         * trans-decl.c (generate_local_decl): Don't warn for unused
3178         variables which are in common blocks.
3179
3180 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3181
3182         * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
3183         trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
3184         trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
3185
3186 2004-05-13  Victor Leikehman  <lei@haifasphere.co.il>
3187
3188         PR fortran/15314
3189         * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
3190
3191 2004-05-13  Joseph S. Myers  <jsm@polyomino.org.uk>
3192
3193         * gfortran.texi: Use @table @emph instead of @itemize @emph.
3194         Remove "set DEVELOPMENT".
3195         (Compiling GFORTRAN): Remove.
3196
3197 2004-05-09  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
3198
3199         * array.c (match_subscript, match_array_ref): Add comments
3200         explaining argument 'init'.
3201         * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
3202         trans-expr.c, trans.c: Fix some typos in comments.
3203         * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
3204         * primary.c (match_digits, match_integer_constant): Add comment
3205         explaining signflag.
3206
3207 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3208
3209         PR fortran/13940
3210         * primary.c: Include system.h and flags.h, needed for pedantic.
3211         (match_boz_constant): Allow "x" for hexadecimal constants, warn if
3212         pedantic is set.
3213
3214 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3215
3216         PR fortran/13940
3217         * match.c (match_data_constant): Handle case where
3218         gfc_find_symbol sets sym to NULL
3219
3220 2004-04-28  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3221
3222         * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
3223         dependency on mathbuiltins.def
3224
3225 2004-04-24  Victor Leikehman  <lei@il.ibm.com>
3226
3227         * trans-io.c (transfer_expr): Implemented recursive printing
3228         of derived types.
3229
3230 2004-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
3231
3232         * gfortranspec.c: Do not include multilib.h.
3233
3234 2004-04-24  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
3235
3236         * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
3237         2004 to copyright years.
3238         * trans-expr.c, trans-decl.c: Comment update, we now generate
3239         GENERIC, not SIMPLE. Add 2004 to copyright years.
3240
3241 2004-04-24  Paul Brook  <paul@codesourcery.com>
3242
3243         * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
3244
3245 2004-04-24  Feng Wang  <fengwang@nudt.edu.cn>
3246
3247         PR 14817
3248         * arith.c (gfc_arith_divide): Fix complex divide.
3249
3250 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
3251
3252         * gfortranspec.c: Include the target headers.
3253
3254 2004-04-18  Feng Wang  <fengwang@nudt.edu.cn>
3255
3256         PR fortran/14921
3257         PR fortran/14540
3258         * arith.c (arctangent2): New function.
3259         * arith.h (arctangent2): Add function prototype.
3260         * simplify.c (gfc_simplify_atan2): Use it.
3261         (gfc_simplify_log): Use it.
3262
3263 2004-04-12  Diego Novillo  <dnovillo@redhat.com>
3264
3265         * fortran/f95-lang.c (gfc_expand_stmt): Remove.
3266         (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
3267
3268 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
3269
3270         PR fortran/14872
3271         * trans-io.c (build_dt): Change REC to value.
3272
3273 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
3274
3275         PR 14394
3276         * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
3277         the real value when converting mpf to string.
3278
3279 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
3280
3281         PR 14395
3282         * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
3283         the result.
3284
3285 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
3286
3287         PR fortran/14377
3288         * simplify.c (simplify_min_max): Convert the type of the result.
3289
3290 2004-04-11  Paul Brook  <paul@codesourcery.com>
3291
3292         * gfortran.texi: Use full target triplet.
3293
3294 2004-04-11  Paul Brook  <paul@codesourcery.com>
3295
3296         * Make-lang.in (GFORTRAN_TEXI): Set it.
3297         (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
3298         (fortran/gfortran.info): Ditto.
3299         * gfortran.texi: Major update.
3300         * invoke.texi: New file.
3301
3302 2004-04-10  Paul Brook  <paul@codesourcery.com>
3303
3304         * trans-array.c (gfc_trans_allocate_temp_array,
3305         gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
3306         * trans-decl.c (gfc_build_dummy_array_decl,
3307         gfc_get_symbol_decl, gfc_build_function_decl,
3308         gfc_create_module_variable): Ditto.
3309         * trans-expr.c (gfc_conv_variable): Ditto.
3310         * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
3311         * trans.h (GFC_DECL_STRING): Remove.
3312         (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
3313         GFC_DECL_ASSIGN): Renumber flags.
3314
3315 2004-04-05  Paul Brook  <paul@codesourcery.com>
3316
3317         PR 13252
3318         PR 14081
3319         * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
3320         and stack_restore.
3321         * gfortran.h (struct gfc_charlen): Add backend_decl.
3322         * trans-array.c (gfc_trans_allocate_temp_array,
3323         gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
3324         (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
3325         Remove old, broken string handling.
3326         (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
3327         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
3328         gfc_trans_deferred_array): Handle character arrays.
3329         * trans-const.c (gfc_conv_const_charlen): New function.
3330         * trans-const.h (gfc_conv_const_charlen): Add prototype.
3331         * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
3332         as static.
3333         (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
3334         (gfc_create_string_length): New function.
3335         (gfc_get_symbol_decl): Create lengths for character variables.
3336         (gfc_get_fake_result_decl): Ditto.
3337         (gfc_build_function_decl): Only set length for assumed length
3338         character arguments.
3339         (gfc_trans_dummy_character): New function.
3340         (gfc_trans_auto_character_variable): Rewrite.
3341         (gfc_trans_deferred_vars): Handle more types of character variable.
3342         (gfc_create_module_variable): String lengths have moved.
3343         (gfc_generate_function_code): Initialize deferred var chain earlier.
3344         * trans-expr.c (gfc_conv_init_string_length): Rename ...
3345         (gfc_trans_init_string_length):  ... to this.
3346         (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
3347         gfc_conv_function_call): Update to new format for character variables.