OSDN Git Service

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