OSDN Git Service

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