OSDN Git Service

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