OSDN Git Service

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