OSDN Git Service

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