OSDN Git Service

2004-07-04 Matthias Klose <doko@debian.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2004-07-04  Matthias Klose  <doko@debian.org>
2
3         * Make-lang.in: Generate and install gfortran man page.
4         * invoke.texi: Remove extra '@c man end'.
5
6 2004-07-04  Richard Henderson  <rth@redhat.com>
7
8         * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
9
10 2004-07-04  Paul Brook  <paul@codesourcery.com>
11
12         * decl.c (gfc_match_implicit_range): Don't use typespec.
13         (gfc_match_implicit): Handle character selectors.
14         * gfortran.h (gfc_set_implicit): Remove prototype.
15         (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
16         * parse.c (accept_statement): Don't call gfc_set_implicit.
17         * symbol.c (new_ts): Remove.
18         (gfc_set_implicit_none): Use same loop bounds as other functions.
19         (gfc_set_implicit): Remove.
20         (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
21         (gfc_merge_new_implicit): Combine with gfc_set_implicit.
22
23 2004-06-30  Richard Henderson  <rth@redhat.com>
24
25         * match.c (var_element): Remove unused variable.
26
27         * trans-decl.c (gfc_generate_function_code): Don't set
28         x_whole_function_mode_p.
29         (gfc_generate_constructors): Likewise.
30
31 2004-06-30  Richard Henderson  <rth@redhat.com>
32
33         * trans-decl.c (gfc_generate_function_code): Don't set
34         immediate_size_expand.
35         (gfc_generate_constructors): Likewise.
36
37 2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
38
39         PR fortran/16161
40         * decl.c (gfc_match_type_spec): Rename second argument to
41         'implicit_flag', reverse meaning. Don't match_char_spec if
42         'implicit_flag' is set. Rename to ...
43         (match_type_spec): ... this.
44         (gfc_match_implicit_none, match_implicit_range): Move here
45         from match.c.
46         (gfc_match_implicit): Move here from match.c, try to
47         match_char_len if match_implicit_range doesn't succeed for
48         CHARACTER implicits. Call renamed fucntion match_type_spec.
49         (gfc_match_data_decl, match_prefix): Call renamed function
50         match_type_spec.
51         * match.c (gfc_match_implicit_none, match_implicit_range,
52         gfc_match_implicit): Move to decl.c.
53         * match.h (gfc_match_implicit_none, gfc_match_implicit):
54         Move protoypes to section 'decl.c'.
55         (gfc_match_type_spec): Remove prototype.
56
57 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
58
59         * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to 
60         copyright years.
61
62 2004-06-29  Steven Bosscher  <stevenb@suse.de>
63
64         Make sure types in assignments are compatible.  Mostly mechanical.
65         * trans-const.h (gfc_index_one_node): New define.
66         * trans-array.c (gfc_trans_allocate_array_storage,
67         gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
68         gfc_trans_array_constructor_value, gfc_trans_array_constructor,
69         gfc_conv_array_ubound, gfc_conv_array_ref,
70         gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
71         gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
72         gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
73         gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
74         types in assignments, conversions and conditionals for expressions.
75         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
76         gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
77         gfc_conv_function_call, gfc_trans_pointer_assignment,
78         gfc_trans_scalar_assign): Likewise.
79         * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
80         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
81         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
82         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
83         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
84         gfc_conv_allocated, gfc_conv_associated,
85         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
86         * trans-io.c (set_string): Likewise.
87         * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
88         gfc_do_allocate, generate_loop_for_temp_to_lhs,
89         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
90         compute_overall_iter_number, gfc_trans_assign_need_temp,
91         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
92         gfc_evaluate_where_mask, gfc_trans_where_assign,
93         gfc_trans_where_2): Likewise.
94         * trans-types.c (gfc_get_character_type, gfc_build_array_type,
95         gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
96
97         * trans.c (gfc_add_modify_expr): Add sanity check that types
98         for the lhs and rhs are the same for scalar assignments.
99
100 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
101
102         * dump-parse-tree.c (show_common): New function.
103         (gfc_show_namespace): Show commons.
104
105 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
106         Andrew Vaught  <andyv@firstinter.net>
107
108         PR fortran/13249
109         PR fortran/15481
110         * decl.c (gfc_match_save): Adapt to new common structures,
111         don't allow saving USE-associated common.
112         * dump-parse-tree (gfc_show_attr): (saved_)common are not
113         symbol attributes any longer.
114         (gfc_show_symbol): Don't show old-style commons any longer.
115         (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
116         interface.
117         * gfortran.h (symbol_attribute): Remove common and saved_common
118         attributes.
119         (gfc_symbol): Remove common_head element.
120         (gfc_common_head): New struct.
121         (gfc_get_common_head): New macro.
122         (gfc_symtree): Add field 'common' to union.
123         (gfc_namespace): Add field 'common_root'; change type of field
124         'blank_common' to blank_common.
125         (gfc_add_data): New prototype.
126         (gfc_traverse_symtree): Expect a symtree as first argument
127         instead of namespace.
128         * match.c (gfc_get_common): New function.
129         (match_common_name): Change to take char * as argument, adapt,
130         fix bug with empty name.
131         (gfc_match_common): Adapt to new data structures. Disallow
132         redeclaration of USE-associated COMMON-block. Fix bug with
133         empty common.
134         (var_element): Adapt to new common structures.
135         * match.h (gfc_get_common): Declare.
136         * module.c: Add 2004 to copyright years, add commons to module
137         file layout description.
138         (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
139         for removed attributes.
140         (mio_symbol): Adapt to new way of storing common relations.
141         (load_commons): New function.
142         (read_module): Skip common list on first pass, load_commons at
143         second.
144         (write_commons): New function.
145         (write_module): Call write_commons().
146         * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
147         functions related to removed attributes.
148         (gfc_add_data): New function.
149         (gfc_clear_attr): Don't set removed attributes.
150         (gfc_copy_attr): Don't copy removed attributes.
151         (traverse_symtree): Remove.
152         (gfc_traverse_symtree): Don't traverse symbol 
153         tree of the passed namespace, but require a symtree to be passed
154         instead. Unify with traverse_symtree.
155         (gfc_traverse_ns): Call gfc_traverse_symtree according to new
156         interface.
157         (save_symbol): Remove setting of removed attribute.
158         * trans-common.c (gfc_sym_mangled_common_id): Change to
159         take 'char *' argument instead of 'gfc_symbol'.
160         (build_common_decl, new_segment, translate_common): Adapt to new
161         data structures, add new
162         argument name.
163         (create_common): Adapt to new data structures, add new
164         argument name. Fix typo in intialization of derived types.
165         (finish_equivalences): Add second argument in call to
166         create_common.
167         (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
168         (gfc_trans_common): Adapt to new data structures.
169         * trans-decl.c (gfc_create_module_variables): Remove test for 
170         removed attribute.
171
172 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
173
174         * io.c: Add 2004 to copyright years.
175
176 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
177         Andrew Vaught  <andyv@firstinter.net>
178
179         * gfortran.h (gfc_gsymbol): New typedef.
180         (gfc_gsym_root): New variable.
181         (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
182         * parse.c (global_used): New function.
183         (parse_block_data): Check for double empty BLOCK DATA,
184         use global symbol table.
185         (parse_module): Use global symbol table.
186         (add_global_procedure, add_global_program): New functions.
187         (gfc_parse_file): Use global symbol table.
188         * symbol.c (gfc_gsym_root): New variable.
189         (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
190         functions.
191
192 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
193
194         * module.c (mio_gmp_real): Correct writing of negative numbers.
195
196 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
197
198         PR fortran/15963
199         * expr.c (check_intrinsic_op): Allow comparison of characters.
200         Make logic easier.
201
202 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
203         Andrew Vaught  <andyv@firstinter.net>
204
205         * decl.c (contained_procedure): New function.
206         (match_end): Verify correctness of END STATEMENT in
207         all cases.
208
209 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
210         Andrew Vaught  <andyv@firstinter.net>
211
212         PR fortran/15190
213         * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
214         (decode_statement): Enforce required space in free-form.
215
216 2004-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
217
218         * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
219         * trans-array.c (gfc_conv_descriptor_data): Add operand
220         for COMPONENT_REF.
221         (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
222         (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
223         (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
224         * trans-common.c (create_common): Likewise.
225         * trans-expr.c (gfc_conv_component_ref): Likewise.
226         * trans-io.c (set_parameter_value): Likewise.
227         (set_parameter_ref, set_string, set_flag, io_result): Likewise.
228         (transfer_expr): Likewise.
229         * trans-decl.c (gfc_trans_auto_character_variable):
230         Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
231         (gfc_gimplify_function): New function.
232         (gfc_generate_function-code): Properly handle nested functions.
233         * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
234
235 2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>
236
237         PR fortran/15750
238         * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
239         (gfc_resolve_inquire): Resolve the iolength tag.  Return
240         SUCCESS at end of function if no failure has occured.
241         * resolve.c (resolve_code): Resolve if iolength is encountered.
242         * trans-io.c: (ioparm_iolength, iocall_iolength,
243         iocall_iolength_done): New variables.
244         (last_dt): Add IOLENGTH.
245         (gfc_build_io_library_fndecls ): Set iolength related variables.
246         (gfc_trans_iolength): Implement.
247         (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
248
249 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de
250
251         PR fortran/15511
252         * scanner.c (load_line): Don't truncate preprocessor lines.
253         Reformat error message.
254         (preprocessor_line): Issue warning in case of malformed
255         preprocessor line. 
256
257 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
258
259         * resolve.c (resolve_symbol): Add comment in function body.
260         (check_data_variable): Change type of mark to ar_type, adapt code
261         accordingly.
262
263 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
264
265         * array.c (gfc_insert_constructor): Avoid redundant call to
266         mpz_comp. Add 2004 to copyright years.
267         
268 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
269
270         * trans.h (stmtblock_t): Change has_scope to unsigned int.
271
272 2004-06-20  Steven G. Kargl  <kargls@comcast.net>
273
274         * arith.c (gfc_range_check): correct complex underflow.
275
276 2004-06-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
277
278         PR fortran/15962
279         * match.c (match_case_selector): Call gfc_match_init_expr
280         instead of gfc_match_expr.
281         * resolve.c (validate_case_label_expr): No need to check for
282         constant, since it wouldn't have been matched with the fix to
283         match.c.
284
285 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
286
287         PR fortran/15211
288         * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
289         of strings. 
290
291 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
292
293         PR fortran/15510
294         * trans-deecl.c (generate_local_decl): Do not issue warning for
295         unused variables if they're use associated.
296
297 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
298         Andrew Vaught <andyv@firstinter.net>
299
300         PR fortran/14928
301         * gfortran.h (gfc_check_f): Add new field f3ml.
302         * check.c (gfc_check_minloc_maxloc): Take argument list instead
303         of individual arguments, reorder if necessary.
304         * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
305         * intrinsic.c (add_sym_3ml): New function.
306         (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
307         (check_specific): Catch special case MINLOC, MAXLOC. 
308
309 2004-06-14  Paul Brook  <paul@codesourcery.com>
310
311         * intrinsic.c (add_sym_2s): Use correct function types.
312
313 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
314
315         * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
316         * data.c (gfc_get_section_index):  Remove dependency on trans.h.
317
318 2004-06-12  Steven G. Kargl  <kargls@comcast.net>
319
320         * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
321         gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
322         * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
323         GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
324         * trans-intrinsic.c:  Use symbols.
325         * intrinsic.c (add_sym_2s): New function.
326         * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
327         * intrinsic.h: Function prototypes.
328         * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub 
329         gfc_resolve_srand):  New functions.
330
331 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
332
333         PR fortran/14957
334         * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
335         contained procedure.
336         
337 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
338
339         PR fortran/12841
340         * interface.c (compare_parameter, compare_actual_formal): Don't
341         check types and array shapes for NULL()
342         * trans-expr.c (conv_function_call): No double indirection for
343         NULL() 
344
345 2004-06-09  Toon Moene  <toon@moene.indiv.nluug.nl>
346
347         * trans-expr.c (gfc_conv_cst_int_power): Compute
348         x**(-n) by converting it to (1/x)**n instead of
349         1/x**n.
350
351 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
352
353         PR fortran/13372
354         * module.c (write_symbol, write_symtree): Don't write symbols
355         wrongly added to namespace.
356         * trans-decl.c (gfc_create_module_variable): Don't create a
357         backend decl for a symbol incorrectly added to namespace.
358
359 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
360
361         PR fortran/13201
362         * resolve.c (resolve_symbol): Verify that parameter array has an
363         explicit shape. Fix typos and coding style issues in surrounding
364         lines.
365
366 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
367
368         PR fortran/15478
369         * gfortran.texi: The documentation doesn't contain infomration on
370         how to report bugs, and shouldn't, so remove the line which
371         says it does.
372
373 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
374
375         * intrinsic.c (sort_actual): Keep track of type of missing 
376         arguments. (Missing from previous commit.)
377
378 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
379
380         * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
381         * interface.c (compare_actual_formal): Keep type of omitted
382         optional arguments.
383         * trans-expr.c (gfc_conv_function_call): Add string length
384         argument for omitted string argument.
385
386 2004-06-03  Paul Brook  <paul@codesourcery.com>
387
388         * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
389         lists instead of compound expr chains.
390         (gfc_trans_code): Annotate statement lists.
391
392 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
393
394         * trans-array.c: Fix spelling in comments.
395
396 2004-06-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
397
398         PR fortran/15557
399         * data.c (assign_substring_data_value): New function.
400         (gfc_assign_data_value): Call the new function if we're dealing
401         with a substring LHS.
402
403 2004-06-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
404
405         PR fortran/15477
406         * gfortran.h (GFC_VERSION): Remove.
407         * gfortran.texi (version-gfortran): Remove, replace by version-GCC
408         where used.
409
410 2004-05-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
411
412         * trans-types.c: Fix spelling & layout in comments.
413
414 2004-05-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
415
416         PR fortran/14067
417         * trans-const.c (gfc_conv_string_init): Allow variable string
418         length lower than initialization string length.
419
420 2004-05-30  Paul Brook  <paul@codesourcery.com>
421
422         PR fortran/15620
423         * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
424         * trans-expr.c (gfc_trans_string_copy): New function.
425         (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
426         character lengths.
427         (gfc_conv_string_parameter): Use gfc_trans_string_copy.
428         * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
429         * trans.h (struct gfc_saved_var): Define.
430         (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
431
432 2004-05-30  Steven G. Kargl  <kargls@comcast.net>
433
434         * iresolve.c (gfc_resolve_random_number): Clean up conditional.
435
436 2004-05-29  Steven G. Kargl  <kargls@comcast.net>
437
438         * simplify.c (gfc_simplify_log): Remove useless line of code.
439
440 2004-05-29  Paul Brook  <paul@codesourcery.com>
441
442         * trans-common.c (find_equivalence): Find multiple rules.
443
444 2004-05-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
445
446         * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
447         (gfc_current_locus): Declare new global variable.
448         * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
449         (gfc_current_locus1): Rename ...
450         (gfc_current_locus): ... to this.
451         (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
452         skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
453         gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
454         gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
455         and gfc_current_locus(), respectively.
456         * array.c (match_subscript, gfc_match_array_ref, match_array_list,
457         match_array_cons_element, gfc_match_array_constructor):
458         Read/modify gfc_current_locus instead of calling gfc_set_locus()
459         and gfc_current_locus().
460         * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
461         match_attr_spec, gfc_match_function_decl, gfc_match_end,
462         attr_decl1, gfc_match_save): Likewise.
463         * error.c (error_print, gfc_internal_error): Likewise.
464         * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
465         * interface.c (gfc_add_interface): Likewise.
466         * io.c (gfc_match_format, match_dt_format, match_dt_element,
467         match_io_iterator, match_io): Likewise.
468         * match.c (gfc_match_space, gfc_match_eos,
469         gfc_match_small_literal_int, gfc_match_st_label,
470         gfc_match_strings, gfc_match_name, gfc_match_iterator,
471         gfc_match_char, gfc_match, gfc_match_assignment,
472         gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
473         gfc_match_nullify, gfc_match_call, match_implicit_range,
474         gfc_match_implicit, gfc_match_data, match_case_selector,
475         gfc_match_case, match_forall_iterator): Likewise.
476         * matchexp.c (gfc_match_defined_op_name, next_operator,
477         match_level_1, match_mult_operand, match_ext_mult_operand,
478         match_add_operand, match_ext_add_operand, match_level_2,
479         match_level_3, match_level_4, match_and_operand, match_or_operand,
480         match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
481         * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
482         * parse.c (match_word, decode_statement, next_free, next_fixed,
483         add_statement, verify_st_order, parse_if_block, gfc_parse_file):
484         Likewise.
485         * primary.c (match_digits, match_integer_constant,
486         match_boz_constant, match_real_constant, match_substring,
487         next_string_char, match_charkind_name, match_string_constant,
488         match_logical_constant, match_const_complex_part,
489         match_complex_constant, match_actual_arg, match_keyword_arg,
490         gfc_match_actual_arglist, gfc_match_structure_constructor,
491         gfc_match_rvalue, gfc_match_variable): Likewise.
492         * st.c (gfc_get_code): Likewise.
493         * symbol.c (check_conflict, check_used, check_done,
494         duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
495         gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
496         gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
497
498 2004-05-26  Roger Sayle  <roger@eyesopen.com>
499
500         * io.c (format_asterisk): Silence compiler warnings by correcting
501         the number of elements of a "locus" initializer.
502
503 2004-05-25  Roger Sayle  <roger@eyesopen.com>
504
505         PR fortran/13912
506         * matchexp.c: Allow unary operators after arithmetic operators
507         as a GNU extension.
508         (match_ext_mult_operand, match_ext_add_operand): New functions.
509         (match_mult_operand): Tweak to call match_ext_mult_operand.
510         (match_add_operand): Tweak to call match_ext_mult_operand.
511         (match_level_2): Rearrange to call match_ext_add_operand.
512
513 2004-05-25  Paul Brook  <paul@codesourcery.com>
514
515         * expr.c (check_inquiry): Remove bogus tests.
516
517 2004-05-23  Paul Brook  <paul@codesourcery.com>
518
519         PR fortran/13773
520         * expr.c (restricted_args): Remove redundant checks/argument.
521         (external_spec_function): Update to match.
522         (restricted_intrinsic): Rewrite.
523
524 2004-05-23  Paul Brook  <paul@codesourcery.com>
525         Victor Leikehman  <lei@haifasphere.co.il>
526
527         * gfortran.h (struct gfc_symbol): Add equiv_built.
528         * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
529         messages.
530         (current_length): Remove.
531         (add_segments): New function.
532         (build_equiv_decl): Create initialized common blocks.
533         (build_common_decl): Always add decl to bindings.
534         (create_common): Create initializers.
535         (find_segment_info): Reformat to match coding conventions.
536         (new_condition): Use add_segments.
537         (add_condition, find_equivalence, add_equivalences): Move iteration
538         inside functions.  Only process each segment once.
539         (new_segment, finish_equivalences, translate_common): Simplify.
540
541 2004-05-23  Steven G. Kargl  <kargls@comcast.net>
542
543         * check.c (gfc_check_random_seed): Issue for too many arguments.
544
545 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
546
547         * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
548
549 2004-05-22  Paul Brook  <paul@codesourcery.com>
550
551         * dump-parse-tree.c (gfc_show_equiv): New function.
552         (gfc_show_namespace): Use it.
553
554 2004-05-22  Victor Leikehman  <lei@haifasphere.co.il>
555
556         PR fortran/13249
557         * symbol.c (gfc_add_common): Disable checks to work around other more
558         fundamental inadequacies.
559
560 2004-05-22  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
561
562         * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
563         only for functions.
564         (gfc_build_function_decl): Likewise.
565
566 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
567
568         * check.c (gfc_check_system_clock): New function.
569         * intrinsic.c (add_sym_3s): New function.
570         (add_subroutines): Use it.
571         * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
572         Add prototypes.
573         * iresolve.c (gfc_resolve_system_clock): New function.
574
575 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
576
577         * invoke.texi: Document -Wunderflow and spell check.
578         * lang.opt: Add Wunderflow.
579         * gfortran.h (gfc_option_t): Add warn_underflow option.
580         * options.c (gfc_init_options, set_Wall): Use it.
581         * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
582         * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
583         gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
584         gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
585         * arith.c (common_logarithm): Fix typo in comment.
586
587 2004-05-21  Roger Sayle  <roger@eyesopen.com>
588
589         * io.c (check_format): As a GNU extension, allow the comma after a
590         string literal to be optional in a format.  Use gfc_notify_std to
591         issue an error/warning as appropriate.
592
593 2004-05-21  Roger Sayle  <roger@eyesopen.com>
594
595         * io.c (check_format): Use gfc_notify_std to determine whether to
596         issue an error/warning for omitting the digits from the X format.
597
598 2004-05-20  Roger Sayle  <roger@eyesopen.com>
599
600         * io.c (check_format): Allow the number before the X format to
601         be optional when not -pedantic.
602
603 2004-05-18  Feng Wang  <fengwang@nudt.edu.cn>
604         Paul Brook  <paul@codesourcery.com>
605
606         * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
607         Create decls for __builtin_pow{,f}.
608         * gfortran.h (PREFIX_LEN): Define.
609         * trans-decl.c (gfor_fndecl_math_powi): Add.
610         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
611         (gfc_build_intrinsic_function_decls): Create decls for powi.
612         * trans-expr.c (powi_table): Add.
613         (gfc_conv_integer_power): Remove.
614         (gfc_conv_powi): New function.
615         (gfc_conv_cst_int_power): New function.
616         (gfc_conv_power_op): Use new powi routines.
617         * trans.h (struct gfc_powdecl_list): Add.
618         (gfor_fndecl_math_powi): Add.
619         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
620
621 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
622
623         * trans.c, trans-decl.c: Fix comment typos.
624
625 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
626
627         * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
628
629 2004-05-18  Steve Kargl  <kargls@comcast.net>
630
631         * arith.c (gfc_int2complex): Fix incorrect range checking.
632
633 2004-05-18  Paul Brook  <paul@codesourcery.com>
634
635         PR fortran/13930
636         * decl.c (add_init_expr_to_sym): Remove incorrect check.
637         (default_initializer): Move to expr.c.
638         (variable_decl): Don't assign default initializer to variables.
639         * expr.c (gfc_default_initializer): Move to here.
640         * gfortran.h (gfc_default_initializer): Add prototype.
641         * resolve.c (resolve_symbol): Check for illegal initializers.
642         Assign default initializer.
643
644 2004-05-17  Steve Kargl  <kargls@comcast.net>
645
646         * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
647
648 2004-05-17  Steve Kargl  <kargls@comcast.net>
649
650         * arith.c (gfc_real2complex): Range checking wrong part of complex
651         number. 
652         
653 2004-05-16  Paul Brook  <paul@codesourcery.com>
654
655         * options.c (gfc_handle_module_path_options): Fix buffer overrun.
656
657 2004-05-16  Paul Brook  <paul@codesourcery.com>
658
659         * arith.c (gfc_range_check): Fix logic error.
660
661 2004-05-16  Steve Kargl  <sgk@troutmask.apl.washington.edu>
662
663         * arith.c: Fix comment typos.
664
665 2004-05-15  Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
666
667         PR fortran/13742
668         * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
669         not initialized in a disallowed fashion.
670         * match.c (gfc_match_common): Likewise.
671         (var_element): Verify that variable is not in the blank COMMON,
672         if it is in a common. 
673
674 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
675
676         * Make-lang.in (f95.generated-manpages): Remove.
677         (f95.srcextra): New.
678         (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
679         f95.maintainer-clean): Generate info and dvi files in objdir/doc.
680         (f95.dvi): Remove.
681         (dvi): New.
682         (f95.install-info): Remove.
683         (install-info): New.
684
685 2004-05-15  Victor Leikehman  <lei@haifasphere.co.il>
686
687         * decl.c (add_init_expr_to_sym): Check for variable size arrays.
688
689 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
690
691         * primary.c (match_boz_constant): Use gfc_notify_std() for
692         issuing a warning or an error.
693
694 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
695
696         PR fortran/13826
697         * primary.c (match_structure_constructor): Rename ...
698         (gfc_match_structure_constructor): ... to this. Make non-static.
699         (gfc_match_rvalue): Call renamed function.
700         * match.h (gfc_match_structure_constructor): Declare.
701         * match.c (gfc_match_data_constant): Handle structure
702         constructor.
703
704 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
705
706         PR fortran/13702 
707         (Port from g95)
708         * gfortran.h (gfc_linebuf): New typedef.
709         (linebuf): Remove.
710         (gfc_file): Revamped, use new gfc_linebuf.
711         (locus): Revamped, use new types.
712         (gfc_current_file): Remove.
713         (gfc_current_form, gfc_source_file): New global variables.
714         * match.c (gfc_match_space, gfc_match_strings): Use
715         gfc_current_form to find source form.
716         * module.c (gfc_dump_module): Use gfc_source_file when printing
717         module header.
718         * error.c (show_locus, show_loci) Use new data structures to print
719         locus.
720         * scanner.c (first_file, first_duplicated_file, gfc_current_file):
721         Remove.
722         (file_head, current_file, gfc_current_form, line_head, line_tail,
723         gfc_current_locus1, gfc_source_file): New global variables.
724         (gfc_scanner_init1): Set new global variables.
725         (gfc_scanner_done1): Free new data structures.
726         (gfc_current_locus): Return pointer to gfc_current_locus1.
727         (gfc_set_locus): Set gfc_current_locus1.
728         (gfc_at_eof): Set new variables.
729         (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
730         to new locus structure.
731         (gfc_check_include): Remove.
732         (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
733         (gfc_skip_comments): Use gfc_current_form, find locus with
734         gfc_current_locus1.
735         (gfc_next_char): Use gfc_current_form.
736         (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
737         (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
738         comment formatting.
739         (get_file): New function.
740         (preprocessor_line, include_line): New functions.
741         (load_file): Move down, rewrite to match new data structures.
742         (gfc_new_file): Rewrite to match new data structures.
743         * parse.c (next_statement): Remove code which is now useless. Use
744         gfc_source_form and gfc_source_file where appropriate.
745         * trans-decl.c (gfc_get_label_decl): adapt to new data structures
746         when determining locus of frontend code.
747         * trans-io.c (set_error_locus): Same.
748         * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
749         * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
750         preprocessor flags.
751         (all): Add missing initializers.
752
753 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
754
755         * Make-lang.in (trans-common.o): Remove redundant dependency.
756         (data.c): Replace object file name ...
757         (data.o): ... by the correct one.
758
759 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
760
761         * dump-parse-tree.c (gfc_show_array_ref): Print colon only
762         for ranges when dumping array references.
763
764 2004-05-14  Victor Leikehman  <lei@haifasphere.co.il>
765
766         * decl.c (variable_decl): Always apply default initializer.
767
768 2004-05-08  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
769
770         PR fortran/15206
771         * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
772         handle zero correctly.
773
774 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
775
776         * match.c (gfc_match): Eliminate dead code.
777
778 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
779
780         * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
781         Detect bad continuation line in fixed form sources.
782
783 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
784
785         PR fortran/15205
786         * iresolve.c (gfc_resolve_nearest): Add new function.
787         * intrinsic.h: ... declare it here.
788         * intrinsic.c (add_functions): ... add it as resolving function
789         for NEAREST.
790         
791 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
792
793         PR fortran/14066
794         * match.c (gfc_match_do): Allow infinite loops with
795         label-do-stmt. Do not enforce space after comma.
796
797 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
798
799         PR fortran/15051
800         * parse.c (parse_interface): Allow empty INTERFACE, remove
801         seen_body.
802
803 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
804
805         * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
806         decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
807         expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
808         intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
809         matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
810         primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
811         trans-array.c, trans-array.h, trans-common.c, trans-const.c,
812         trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
813         trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
814         trans-types.h, trans.c, trans.h: Update copyright years and
815         boilerplate.
816         * data.c: Likewise, also removed two whitespace-only lines.
817         * gfortranspec.c, lang.opt: Update copyright years.
818
819 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
820
821         PR fortran/14568
822         * trans-decl.c (generate_local_decl): Don't warn for unused
823         variables which are in common blocks. 
824
825 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
826
827         * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
828         trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
829         trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
830
831 2004-05-13  Victor Leikehman  <lei@haifasphere.co.il>
832
833         PR fortran/15314
834         * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
835
836 2004-05-13  Joseph S. Myers  <jsm@polyomino.org.uk>
837
838         * gfortran.texi: Use @table @emph instead of @itemize @emph.
839         Remove "set DEVELOPMENT".
840         (Compiling GFORTRAN): Remove.
841
842 2004-05-09  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
843
844         * array.c (match_subscript, match_array_ref): Add comments
845         explaining argument 'init'.
846         * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
847         trans-expr.c, trans.c: Fix some typos in comments.
848         * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
849         * primary.c (match_digits, match_integer_constant): Add comment
850         explaining signflag.
851
852 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
853
854         PR fortran/13940
855         * primary.c: Include system.h and flags.h, needed for pedantic.
856         (match_boz_constant): Allow "x" for hexadecimal constants, warn if
857         pedantic is set.
858
859 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
860
861         PR fortran/13940
862         * match.c (match_data_constant): Handle case where
863         gfc_find_symbol sets sym to NULL
864
865 2004-04-28  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
866
867         * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
868         dependency on mathbuiltins.def
869
870 2004-04-24  Victor Leikehman  <lei@il.ibm.com>
871
872         * trans-io.c (transfer_expr): Implemented recursive printing
873         of derived types.
874
875 2004-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
876
877         * gfortranspec.c: Do not include multilib.h.
878
879 2004-04-24  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
880
881         * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
882         2004 to copyright years.
883         * trans-expr.c, trans-decl.c: Comment update, we now generate
884         GENERIC, not SIMPLE. Add 2004 to copyright years.
885
886 2004-04-24  Paul Brook  <paul@codesourcery.com>
887
888         * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
889
890 2004-04-24  Feng Wang  <fengwang@nudt.edu.cn>
891
892         PR 14817
893         * arith.c (gfc_arith_divide): Fix complex divide.
894
895 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
896
897         * gfortranspec.c: Include the target headers.
898
899 2004-04-18  Feng Wang  <fengwang@nudt.edu.cn>
900
901         PR fortran/14921
902         PR fortran/14540
903         * arith.c (arctangent2): New function.
904         * arith.h (arctangent2): Add function prototype.
905         * simplify.c (gfc_simplify_atan2): Use it.
906         (gfc_simplify_log): Use it.
907
908 2004-04-12  Diego Novillo  <dnovillo@redhat.com>
909
910         * fortran/f95-lang.c (gfc_expand_stmt): Remove.
911         (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
912
913 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
914
915         PR fortran/14872
916         * trans-io.c (build_dt): Change REC to value.
917
918 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
919
920         PR 14394 
921         * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
922         the real value when converting mpf to string.
923
924 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
925
926         PR 14395
927         * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
928         the result.
929
930 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
931
932         PR fortran/14377
933         * simplify.c (simplify_min_max): Convert the type of the result.
934
935 2004-04-11  Paul Brook  <paul@codesourcery.com>
936
937         * gfortran.texi: Use full target triplet.
938
939 2004-04-11  Paul Brook  <paul@codesourcery.com>
940
941         * Make-lang.in (GFORTRAN_TEXI): Set it.
942         (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
943         (fortran/gfortran.info): Ditto. 
944         * gfortran.texi: Major update.
945         * invoke.texi: New file.
946
947 2004-04-10  Paul Brook  <paul@codesourcery.com>
948
949         * trans-array.c (gfc_trans_allocate_temp_array,
950         gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
951         * trans-decl.c (gfc_build_dummy_array_decl,
952         gfc_get_symbol_decl, gfc_build_function_decl,
953         gfc_create_module_variable): Ditto.
954         * trans-expr.c (gfc_conv_variable): Ditto.
955         * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
956         * trans.h (GFC_DECL_STRING): Remove.
957         (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
958         GFC_DECL_ASSIGN): Renumber flags.
959
960 2004-04-05  Paul Brook  <paul@codesourcery.com>
961
962         PR 13252
963         PR 14081
964         * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
965         and stack_restore.
966         * gfortran.h (struct gfc_charlen): Add backend_decl.
967         * trans-array.c (gfc_trans_allocate_temp_array,
968         gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
969         (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
970         Remove old, broken string handling.
971         (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
972         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
973         gfc_trans_deferred_array): Handle character arrays.
974         * trans-const.c (gfc_conv_const_charlen): New function.
975         * trans-const.h (gfc_conv_const_charlen): Add prototype.
976         * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
977         as static.
978         (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
979         (gfc_create_string_length): New function.
980         (gfc_get_symbol_decl): Create lengths for character variables.
981         (gfc_get_fake_result_decl): Ditto.
982         (gfc_build_function_decl): Only set length for assumed length
983         character arguments.
984         (gfc_trans_dummy_character): New function.
985         (gfc_trans_auto_character_variable): Rewrite.
986         (gfc_trans_deferred_vars): Handle more types of character variable.
987         (gfc_create_module_variable): String lengths have moved.
988         (gfc_generate_function_code): Initialize deferred var chain earlier.
989         * trans-expr.c (gfc_conv_init_string_length): Rename ...
990         (gfc_trans_init_string_length):  ... to this.
991         (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
992         gfc_conv_function_call): Update to new format for character variables.
993         (gfc_conv_string_length): Remove.
994         (gfc_conv_string_parameter): Update assertion.
995         * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
996         * trans-io.c (set_string): Use new macro names.
997         * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
998         * trans-types.c (gfc_get_character_type): Use existing length expr.
999         (gfc_is_nodesc_array): Make public.
1000         (gfc_get_dtype_cst): Rename ...
1001         (gfc_get_dtype): ... to this.  Handle unknown size arrays.
1002         (gfc_get_nodesc_array_type): Use new name.
1003         (gfc_sym_type): New character variable code.
1004         (gfc_get_derived_type): Ditto.
1005         (gfc_get_function_type): Evaluate character variable lengths.
1006         * trans-types.h (gfc_strlen_kind): Define.
1007         (gfc_is_nodesc_array): Add prototype.
1008         * trans.h: Update prototypes.
1009         (struct lang_type): Update comments.
1010         (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
1011         (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
1012
1013 2004-04-04  Paul Brook  <paul@codesourcery.com>
1014
1015         * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
1016         * options.c (gfc_init.options, gfc_handle_option): Ditto.
1017         * trans-expr.c (gfc_conv_function_call): Ditto.
1018         * trans-types.c (gfc_is_nodesc_array): Ditto
1019         * lang.opt (fg77-calls): Remove.
1020
1021 2004-04-04  Paul Brook  <paul@codesourcery.com>
1022
1023         * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
1024         (gfc_conv_descriptor_base): Rename ...
1025         (gfc_conv_descriptor_offset): ... to this.
1026         (gfc_trans_allocate_array_storage): Set offset to zero.
1027         (gfc_conv_array_base): Rename ...
1028         (gfc_conv_array_offset): ... to this.
1029         (gfc_conv_array_index_ref): Add offset parameter.
1030         (gfc_conv_array_ref): Include offset.
1031         (gfc_trans_preloop_setup): Use existing offset.
1032         (gfc_trans_allocate_temp_array,  gfc_array_allocate,
1033         gfc_trans_auto_array_allocation, gfc_trans_g77_array,
1034         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
1035         gfc_conf_ss_descriptor): Set offset.
1036         * trans-array.h: Rename prototypes.
1037         * trans-const.h (gfc_index_zero_node): Define.
1038         * trans-decl.c (gfc_build_qualified_array): Change base to offset.
1039         * trans-types.c (gfc_get_array_type_bounds): Ditto.
1040         (gfc_get_nodesc_array_type): Calculate offset before upper bound.
1041
1042 2004-03-25  Diego Novillo  <dnovillo@redhat.com>
1043
1044         * convert.c (convert): Don't handle WITH_RECORD_EXPR.
1045
1046 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
1047
1048         PR 14055
1049         * arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
1050         before conversion by gmp library call.
1051
1052 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
1053
1054         PR 12921
1055         * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
1056
1057 2004-02-24  Richard Henderson  <rth@redhat.com>
1058
1059         * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
1060
1061 2004-02-19  Loren J. Rittle  <ljrittle@acm.org>
1062
1063         * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
1064         (fortran/gfortran.info): ... to here.
1065         (f95.srcinfo): New.
1066
1067 2004-02-16  Richard Henderson  <rth@redhat.com>
1068
1069         * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
1070         * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
1071         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
1072         (gfc_expand_function): Rename from expand_function_body, make static,
1073         don't do anything except invoke tree_rest_of_compilation.
1074         (gfc_be_parse_file): Invoke cgraph.
1075         (gfc_expand_decl): Remove.
1076         (gfc_init_builtin_functions): Add __builtin_init_trampoline and
1077         __builtin_adjust_trampoline.
1078         * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
1079         (gfc_finalize): New.
1080         (gfc_generate_function_code): Use it.  Lower nested functions.
1081         * trans-expr.c (gfc_conv_function_call): Add static chain operand
1082         to call_expr.
1083         * trans.c (gfc_build_function_call): Likewise.
1084         * trans.h (expand_function_body): Remove.
1085
1086 2004-02-15  Victor Leikehman  <lei@il.ibm.com>
1087
1088         PR gfortran/13433
1089         * trans-decl.c (gfc_build_function_decl) For functions
1090         returning CHARACTER pass an extra length argument,
1091         following g77 calling conventions.
1092         * trans-types.c (gfc_get_function_type) Ditto.
1093         * trans-expr.c (gfc_conv_function_call) Ditto.
1094
1095 2004-02-14  Paul Brook  <paul@codesourcery.com>
1096
1097         * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
1098
1099 2004-02-12  Paul Brook  <paul@nowt.org>
1100
1101         * BUGS: Remove.
1102
1103 2004-02-08  Steve Kargl  <sgk@troutmask.apl.washington.edu>
1104
1105         * gfortran.texi: Fix typos.
1106
1107 2004-02-07  Bud Davis  <bdavis9659@comcast.net>
1108  
1109         PR gfortran/13909
1110         * intrinsic.c (add_conversions) Use logical conversion instead
1111         of real.
1112         * trans-types.c (gfc_get_logical_type) implemented logical*1
1113         and logical*2.
1114
1115 2004-01-17  Paul Brook  <paul@codesourcery.com>
1116
1117         * lang-specs.h: Remove %<fixed-form.
1118
1119 2004-01-15  Toon Moene  <toon@moene.indiv.nluug.nl>
1120
1121         * lang-specs.h: Enable preprocessing of source files
1122         ending in .F, .fpp, .FPP, .F90 and .F95.
1123
1124 2004-01-13  Toon Moene  <toon@moene.indiv.nluug.nl>
1125
1126         PR fortran/12912
1127         * lang-specs.h: Enable compilation of files ending
1128         in .f, .for and .FOR.
1129
1130 2004-01-11  Paul Brook  <paul@codesourcery.com>
1131
1132         * trans-stmt.c (gfc_trans_if_1): New function.
1133         (gfc_trans_if): Use it.
1134
1135 2004-01-11  Erik Schnetter  <schnetter@uni-tuebingen.de>
1136
1137         * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
1138         (gfc_option_t): Add max_identifier_length.
1139         * lang.opt: Add fmax-identifier-length.
1140         * match.c (parse_name): Use limit.
1141         * options.c (gfc_init_options): Set max_identifier_length.
1142         (gfc_handle_option): Ditto.
1143
1144 2004-01-11  Feng Wang  <fengwang@nudt.edu.cn>
1145
1146         * intrinsic.c (add_functions): Add resolve function to dcmplx.
1147         * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
1148         * iresolve.c (gfc_resolve_dcmplx): New function.
1149
1150 2004-01-10  Paul Brook  <paul@codesourcery.com>
1151
1152         * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
1153         * trans-types.c (gfc_sym_type): Handle external dummy procedures.
1154         (gfc_return_by_reference): Correct condition.
1155         (gfc_get_function_type): Ditto.
1156
1157 2004-01-10  Paul Brook  <paul@codesourcery.com>
1158
1159         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
1160         types.
1161
1162 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
1163
1164         * iresolve.c: Use correct kind.
1165
1166 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
1167
1168         PR fortran/13467
1169         * trans-decl.c (gfc_create_module_variable):  Output array valued
1170         parameters.
1171
1172 2004-01-10  Paul Brook  <paul@codesourcery.com>
1173
1174         * resolve.c (resolve_branch): Get error message right way round.
1175
1176 2004-01-10  Canqun Yang <canqun@nudt.edu.cn>
1177
1178         * trans-array (gfc_conv_loop_setup): Adjust comment to track
1179         reality.
1180         (gfc_array_allocate): Don't count size of element twice.
1181
1182 2004-01-04  Paul Brook  <paul@codesourcery.com>
1183
1184         * lang.opt (i8, r8, std=*): Remove RejectNegative.
1185
1186 2004-01-04  Paul Brook  <paul@codesourcery.com>
1187
1188         * error.c (gfc_notify_std): New function.
1189         * gfortran.h (gfc_notify_std): Declare.
1190         (GFC_STD_*): Define.
1191         (gfc_option_t): Add warn_std and allow_std.
1192         * intrinsic.c (gfc_init_expr_extensions): Fix logic.
1193         (gfc_intrinsic_func_interface): Use gfc_notify_std.
1194         * check.c (check_rest): Use gfc_notify_std.
1195         * match.c (gfc_match_pause): Ditto.
1196         (gfc_match_assign): Ditto.
1197         (gfc_match_goto): Ditto.
1198         * resolve.c (resolve_branch): Ditto.
1199         * lang.opt: Add std=<foo> and w.
1200         * options.c (gfc_init_options): Set allow_std and warn_std.
1201         (gfc_handle_option): Handle OPT_std_* and OPT_w.
1202
1203 2004-01-01  Paul Brook  <paul@codesourcery.com>
1204
1205         * array.c (gfc_append_constructor): Take constructor, not expression.
1206         * data.c (struct gfc_expr_stack): Remove.
1207         (expr_stack): Remove.
1208         (find_con_by_offset): Rename from find_expr_in_con.
1209         (find_con_by_component): Rename from find_component_in_con.
1210         (gfc_get_expr_stack): Remove.
1211         (gfc_assign_data_value): Rewrite.
1212         (gfc_expr_push): Remove.
1213         (gfc_expr_pop): Remove.
1214         (gfc_advance_section): Rename from
1215         gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
1216         (gfc_get_section_index): Handle unbounded sections.
1217         * gfortran.h: Update prototypes.
1218         * resolve.c (check_data_variable): Array section maight not be the
1219         last ref.
1220
1221 2004-01-01  Paul Brook  <paul@codesourcery.com>
1222
1223         PR fortran/13432
1224         * resolve.c (resolve_symbol): Allow assumed length function results.
1225
1226 2004-01-01  Steve Kargl  <sgk@troutmask.apl.washington.edu>
1227
1228         * match.c (gfc_match_pause): Fix spelling.
1229
1230 2004-01-01  Steven Bosscher  <stevenb@suse.de>
1231
1232         PR fortran/13251
1233         * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
1234         reference from the expression.
1235
1236 2003-12-26  Feng Wang  <fengwang@nudt.edu.cn>
1237
1238         * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
1239         dumping.
1240         * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
1241         (gfc_exec_op): New EXEC_LABEL_ASSIGN.
1242         (symbol_attribute):New variable attribute: assign.
1243         * io.c (resolve_tag):Integer variable is allowed.
1244         (match_dt_format): Add ASSIGN statement. Set assign flag.
1245         * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
1246         (gfc_match_assign): Add ASSIGN statement. Set assign flag.
1247         (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
1248         * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
1249         (next_statement): Add ST_LABEL_ASSIGNMENT.
1250         (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
1251         * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
1252         (resolve_blocks): Resolve ASSIGNED GOTO statement label list.
1253         * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
1254         * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
1255         assign.  Put them into the stuct lang_decl.
1256         * trans-io.c (set_string): Add the assign statement.
1257         * trans-stmt.c (gfc_trans_label_assign): New function.
1258         (gfc_trans_goto): Translate ASSIGNED GOTO statement.
1259         * trans-stmt.h (gfc_trans_label_assign): Added function prototype.
1260         * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
1261         * trans.h (lang_decl):Add shadow variable decl tree needed by assign.
1262         (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
1263         (GFC_DECL_ASSIGN(node)): New macro to access flag.
1264
1265 2003-12-31  Huang Chun <chunhuang73@hotmail.com>
1266
1267         PR fortran/13434
1268         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in 
1269         minval/maxval.
1270
1271 2003-12-22  Toon Moene  <toon@moene.indiv.nluug.nl>
1272
1273         * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
1274         that arguments to subroutines/functions can't alias themselves, nor global
1275         memory.
1276
1277 2003-12-20  Steven Bosscher  <stevenb@suse.de>
1278
1279         * trans-expr.c (gfc_conv_expr_op): Fold the result expression.
1280         * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise.
1281
1282 2003-12-12  Huang Chun <chunhuang73@hotmail.com>
1283
1284         * primary.c (match_substring): Fix substring bug for start point
1285         or end point is NULL.
1286         * trans-expr.c (gfc_conv_substring): Ditto
1287         * trans-types.c (gfc_sym_type): Get correct type of scalar 
1288         character variables.
1289         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in 
1290         derived type.
1291
1292 2003-12-10  Richard Henderson  <rth@redhat.com>
1293
1294         * options.c (gfc_post_options): Don't ever use rtl inlining.
1295
1296 2003-12-05  Canqun Yang  <canqun@nudt.edu.cn>
1297
1298         * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists.
1299         * trans-equivalence.c: Remove.
1300         * trans-decl.c (gfc_get_symbol_decl): Update to match.
1301         (gfc_generate_function_code): Ditto.
1302         * trans-array.c (gfc_conv_array_parameter): Ditto.
1303         * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o
1304         (F95_ADDITIONAL_OBJS): Add stor-layout.o
1305         * trans.h (gfc_trans_equivalence): Remove.
1306         * gfortran.h (struct gfc_equiv): Add used field.
1307         (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring,
1308         equiv_offset fields.
1309
1310 2003-12-05  Richard Henderson  <rth@redhat.com>
1311
1312         * trans.c (gfc_build_addr_expr): New.
1313         (gfc_build_indirect_ref, gfc_build_array_ref): New.
1314         * trans.h: Declare them.
1315         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
1316         trans-stmt.c, trans.c (*): Use them.
1317
1318         * f95-lang.c (gfc_post_options): Remove dead prototype.
1319         * trans-array.c (gfc_trans_deferred_vars): Remove unused variable.
1320         * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list
1321         allocation size.
1322
1323 2003-12-01  Feng Wang  <fengwang@nudt.edu.cn>
1324
1325         * io.c (gfc_match_format): Check for missing format label.
1326
1327 2003-11-30 Huang Chun <chunhuang73@hotmail.com>
1328
1329         PR fortran/13155
1330         * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols
1331         from interfaces in modules.
1332
1333 2003-11-30  Paul Brook  <paul@nowt.org>
1334
1335         * trans-array.c (gfc_trans_g77_array): Make non-static.
1336         (gfc_trans_assumed_size): Remove.
1337         (gfc_trans_dummy_array_bias): Explicitly free temporary.
1338         * trans-array.h (gfc_trans_g77_array): Add prototype.
1339         (gfc_trans_assumed_size): Remove.
1340         * trans-decls.c (gfor_fndecl_push_context): Remove.
1341         (gfor_fndecl_pop_context): Remove.
1342         (gfc_build_function)decls): Don't create them.
1343         (gfc_trans_deferred_vars): Update to match. Remove dead code.
1344         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp.
1345
1346 2003-11-30  Kejia Zhao  <kejia_zh@nudt.edu.cn>
1347
1348         * trans-array.c (gfc_conv_array_parameter): Simplify
1349         array argument passing for array name actual argument.
1350         * trans-expr.c (gfc_conv_function_call): Ditto
1351         * trans-types.c (gfc_is_nodesc_array):Ditto.
1352
1353 2003-11-30  Paul Brook  <paul@nowt.org>
1354
1355         * f95-lang.c (gfc_post_options): Move ...
1356         * options.c (gfc_post_options): .. to here.  Handle inlining options.
1357         * gfortran.h (gfc_post_options): Add prototype.
1358
1359 2003-11-28  Richard Henderson  <rth@redhat.com>
1360
1361         * trans.c (gfc_create_var_np): Use create_tmp_var_raw.
1362
1363 2003-11-28 Huang Chun <chunhuang73@hotmail.com>
1364
1365         * trans.h (has_alternate_specifier): New global variable.
1366         * match.c (gfc_match_call): Handle actual arguments associated with
1367         alternate return indicators.
1368         * trans-expr.c (gfc_conv_function_call): Ditto
1369         * trans-stmt.c (gfc_trans_call): Ditto
1370         (gfc_trans_return): Handle return statement with value.
1371         * trans-decl.c (gfc_generate_function_code): Handle functions with
1372         asterisk dummy.
1373         (gfc_get_fake_result_decl): Ditto
1374         * trans-types.c (gfc_get_function_type): Ditto
1375         * resolve.c (resolve_actual_arglist): Check alternate return indicators.
1376         (resolve_formal_arglist): Check asterisk dummy.
1377
1378 2003-11-27  Paul Brook  <paul@nowt.org>
1379
1380         * trans-array.c (gfc_tran_allocate_array_storage): Use new memory
1381         allocation interface.
1382         (gfc_conv_ array_parameter): Ditto.
1383         (gfc_trans_auto_array_allocation): Ditto. Also free the memory.
1384         * trans-array.c: Update prototype.
1385         * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes.
1386         (gfc_trans_auto_character_variable): Use new memory alloc interface.
1387         * trans-expr.c (gfc_conv_string_tmp): Ditto.
1388         (gfc_conv_function_call): Use gfc_conv_string_tmp.
1389         * trans-stmt.c (gfc_do_allocate):  Use new memory alloc interface.
1390         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto.
1391         * trans.h (gfc_ss_info): Remove unused pdata field.
1392         * trans.c (gfc_create_var_np): Change T to V.
1393
1394 2003-11-26  Richard Henderson  <rth@redhat.com>
1395
1396         * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ...
1397         * trans-intrinsic.c (gfc_intrinsic_map): ... here.  Add SCALE,
1398         FRACTION, NEAREST, SET_EXPONENT.
1399         (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant.
1400         Fix GTY marking.  Remove unnecessary const's.
1401         (LIBM_FUNCTION): Rename from I_LIB.
1402         (LIBF_FUNCTION): New.
1403         (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming
1404         conventions.  Assume the expr signature is correct.  Mark const.
1405         (gfc_conv_intrinsic_exponent): Use library functions.
1406         (gfc_conv_intrinsic_set_exponent): Remove.
1407         (gfc_conv_intrinsic_scale): Remove.
1408         (gfc_conv_intrinsic_nearest): Remove.
1409         (gfc_conv_intrinsic_fraction): Remove.
1410         (gfc_conv_intrinsic_function): Update.
1411         * trans-decl.c (gfor_fndecl_math_exponent4): New.
1412         (gfor_fndecl_math_exponent8): New.
1413         (gfc_build_intrinsic_function_decls): Set them.
1414         * trans.h: Declare them.
1415
1416 2003-11-25  Canqun Yang  <canqun@nudt.edu.cn>
1417
1418         * trans-common.c (gfc_layout_global_equiv): Locate the error for
1419         underflow COMMON block.
1420         (gfc_trans_one_common): Fix bug for size of COMMON block containing
1421         EQUIVALENCE object. Also fix typo in an error message.
1422
1423 2003-11-25  Diego Novillo  <dnovillo@redhat.com>
1424
1425         * Make-lang.in: Add check-gfortran to lang_checks.
1426         (check-f95): Alias for check-gfortran.
1427
1428 2003-11-25  Jason Merrill  <jason@redhat.com>
1429
1430         * Make-lang.in (f95.tags): Create TAGS.sub files in each
1431         directory and TAGS files that include them for each front end.
1432
1433 2003-11-24  Paul Brook  <paul@nowt.org>
1434
1435         PR fortran/13154
1436         * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks.
1437
1438 2003-11-24  Paul Brook  <paul@nowt.org>
1439
1440         * expr.c (simplify_const_ref): Return SUCCESS for things we don't
1441         handle.
1442         * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape.
1443
1444 2003-11-24  Paul Brook  <paul@nowt.org>
1445
1446         PR fortran/13105
1447         * array.c (gfc_array_ref_shape): Handle elemental dimensions.
1448         * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup.
1449
1450 2003-11-20  Richard Henderson  <rth@redhat.com>
1451
1452         * trans-array.c (gfc_trans_allocate_array_storage): Use convert.
1453         (gfc_conv_array_base): Likewise.
1454         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
1455         * trans-expr.c (gfc_conv_string_tmp): Likewise.
1456         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise.
1457         * trans-stmt.c (gfc_trans_character_select): Likewise.
1458
1459 2003-11-13  Paul Brook  <paul@nowt.org>
1460
1461         * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals.
1462
1463 2003-11-13  Canqun Yang  <canqun@nudt.edu.cn>
1464
1465         * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects.
1466         (resolve_equivalence): New function.
1467         (resolve_equivalence_derived): New function.
1468
1469 2003-11-12  Richard Henderson  <rth@redhat.com>
1470
1471         * trans.c (gfc_trans_code): Use annotate_with_locus instead of
1472         annotate_all_with_locus.
1473
1474 2003-11-11  Canqun Yang  <canqun@nudt.edu.cn>
1475  
1476         * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768.
1477         * trans-decl.c (gfc_finish_var_decl): Modified.
1478
1479 2003-11-08  Paul Brook  <paul@nowt.org>
1480
1481         PR fortran/12704
1482         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size
1483         arrays.
1484
1485 2003-11-06  Paul Brook  <paul@nowt.org>
1486
1487         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos.
1488
1489 2003-11-02  Canqun Yang  <canqun@nudt.edu.cn>
1490
1491         * match.c (gfc_match_stopcode): Assign '0' to stop_code.
1492
1493 2003-10-27  Anthony Green  <green@redhat.com>
1494
1495         * Make-lang.in (f95.stageprofile): Use tabs, not spaces.
1496         (f95.stagefeedback): Ditto.
1497
1498 2003-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
1499
1500         PR fortran/12682
1501         * Make-lang.in (f95.stageprofile): Add.
1502         (f95.stagefeedback): Add.
1503
1504 2003-10-23  Richard Henderson  <rth@redhat.com>
1505
1506         * f96-lang.c (gfc_gimplify_expr): Remove.
1507         (LANG_HOOKS_GIMPLIFY_EXPR): Remove.
1508         (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New.
1509
1510 2003-10-23  Richard Henderson  <rth@redhat.com>
1511
1512         * f95-lang.c (gfc_gimplify_expr): Return gimplify_status.
1513
1514 2003-10-20  Paul Brook  <paul@nowt.org>
1515
1516         * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node.
1517         * trans-stmt.c (gfc_trans_do_while): Ditto.
1518
1519 2003-10-17  Paul Brook  <paul@nowt.org>
1520
1521         * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size.
1522
1523 2003-10-17  Paul Brook  <paul@nowt.org>
1524
1525         * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC.
1526
1527 2003-10-17  Feng Wang  <wf_cs@yahoo.com>
1528
1529         * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type.
1530         (gfc_resolve_minloc): Ditto.
1531         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types.
1532         Return the value after subtracting the lower bound.
1533
1534 2003-10-16  Richard Henderson  <rth@redhat.com>
1535
1536         * f95-lang.c (expand_function_body): Don't check flag_disable_gimple.
1537
1538 2003-10-16  Steven Bosscher  <steven@gcc.gnu.org>
1539
1540         * lang.c: Remove -M option for now, it's in the way for C.
1541
1542 2003-10-14  Jason Merrill  <jason@redhat.com>
1543
1544         * Make-lang.in (f95.tags): New rule.
1545
1546 2003-10-13  Richard Henderson  <rth@redhat.com>
1547
1548         * trans.c (gfc_trans_code): Use annotate_all_with_locus.
1549
1550 2003-10-13  Paul Brook  <paul@nowt.org>
1551
1552         * trans-decl.c (generate_local_decl): Don't create junk variables.
1553
1554 2003-10-13  Paul Brook  <paul@nowt.org>
1555
1556         * resolve.c (resolve_formal_arglist): Use function result decl in
1557         preference to function decl.
1558
1559 2003-10-12  Richard Henderson  <rth@redhat.com>
1560
1561         * f95-lang.c (gfc_define_builtin): New const_p argument.  Set
1562         TREE_READONLY.  Update all callers.
1563
1564 2003-10-12  Feng Wang  <wf_cs@yahoo.com>
1565
1566         * iresolve.c (gfc_resolve_cshift): Change to match implementation.
1567         * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT.
1568         (gfc_is_intrinsic_libcall): Add CSHIFT.
1569
1570 2003-10-12  Richard Henderson  <rth@redhat.com>
1571
1572         * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT.
1573         (gfc_trans_array_constructor_value): Likewise.
1574         (gfc_conv_array_initializer): Likewise.
1575         * trans-stmt.c (gfc_trans_character_select): Likewise.
1576
1577 2003-11-12  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1578
1579         * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove.
1580
1581 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
1582
1583         * check.c (gfc_check_repeat): Check arguments are scalar.
1584         (gfc_check_trim): New function.
1585         * intrinsic.h (gfc_check_trim): Add prototype.
1586         * intrinsic.c (add_functions): Use it.
1587         * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat):
1588         Decalare.
1589         * trans-decl.c: Ditto.
1590         (gfc_build_intrinsic_fucntion_decls): Set them.
1591         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars.
1592         (gfc_conv_intrinsic_trim): New function.
1593         (gfc_conv_intrinsic_repeat): New function.
1594         (gfc_conv_intrinsic_function): Use them.
1595
1596 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
1597
1598         * trans-types.c (gfc_sym_type): Handle result variables.
1599
1600 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
1601
1602         * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use
1603         gfc_get_character_type.
1604
1605 2003-10-11  Feng Wang  <wf_cs@yahoo.com>
1606
1607         * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl.
1608
1609 2003-10-11  Paul Brook  <paul@nowt.org>
1610
1611         * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions.
1612         (gfc_resolve_dprod): New function.
1613         (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type.
1614         * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare.
1615         (gfc_resolve_dprod): Declare.
1616         * intrinsic.c (add_functions): Use them.
1617         * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg.
1618
1619 2003-10-06  Richard Henderson  <rth@redhat.com>
1620
1621         * f95-lang.c (gfc_init_builtin_functions): Add clzll.
1622         * trans-intrinsic.c (call_builtin_clz): Use it.
1623
1624 2003-10-05  Paul Brook  <paul@nowt.org>
1625
1626         * f95-lang.c (expand_function_body): Call (push|pop)_function_context.
1627         * trans-decl.c (gfc_generate_function_code): Set
1628         cfun->function_end_locus.
1629
1630 2003-09-24  Jason Merrill  <jason@redhat.com>
1631
1632         * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of
1633         TREE_LOCUS.
1634
1635 2003-09-21  Lifang Zeng  <zlf605@hotmail.com>
1636         Paul Brook  <paul@nowt.org>
1637
1638         * Make-lang.in (F95_OBJS): Add fortran/data.o.
1639         * array.c (gfc_inser_constructor): New function.
1640         (gfc_get_constructor): New function.
1641         (gfc_free_constructor): Initialize offset and repeat.
1642         (iterator_stack): Remove.
1643         (expand_info): Add offset, component and repeat fields.
1644         (expand_constructor): Set them.
1645         (expand): Set new fields.
1646         (gfc_copy_constructor): Ditto. Avoid recursion.
1647         * gfortran.h: Add prototypes for new functions.
1648         (gfc_constructor): Add offset, component and repeat.
1649         (iteratio_stack): Move to here.
1650         * resolve.c (check_data_variable): Convert data values into variable
1651         initializers.
1652         (traverse_data_list): Build implicit loop chain.
1653         (gfc_resolve): Ditto.
1654         * trans-array.c (gfc_conv_array_intializer): Handle repeat count.
1655         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure.
1656         * trans-expr.c (gfc_conv_structure): Handle array initializers.
1657         (gfc_conv_expr): Update to match.
1658         * trans.h (gfc_conv_structure): Declare.
1659         * data.c: New file.
1660
1661 2003-09-20  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1662  
1663         * trans.h: Add declarations for gfor_fndecl_si_kind and
1664         gfor_fndecl_sr_kind.
1665         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
1666         * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function.
1667         (g95_conv_intrinsic_sr_kind): New function.
1668         (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and
1669         SELECTED_REAL_KIND.
1670
1671 2003-09-17  Lars Segerlund  <Lars.Segerlund@comsys.se>
1672
1673         * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8
1674         instead of _4 and _8 as postfix for libgfortran calls.
1675
1676 2003-09-16  Paul Brook  <paul@nowt.org>
1677
1678         * array.c (compare_bounds): New function.
1679         (gfc_compare_array_spec): Use it.
1680
1681 2003-09-14  Paul Brook  <paul@nowt.org>
1682
1683         * primary.c (gfc_match_rvalue): Make sure sym->result is set.
1684         * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs.
1685
1686 2003-09-14  Paul Brook  <paul@nowt.org>
1687
1688         * check.c (dim_rank_check): Allow assumed bounds if requested.
1689         (gfc_check_lbound): Call it.
1690         (gfc_check_ubound): Ditto.
1691         (gfc_check_size): Change to match.
1692         * simplify.c (gfc_simplify_bound): New function.
1693         (gfc_simplify_lbound): New function.
1694         (gfc_simplify_ubound): New function.
1695         * intrinsic.h: Declare them.
1696         * intrinsic.c (add_functions): Use them.
1697
1698 2003-09-14  Paul Brook  <paul@nowt.org>
1699
1700         * io.c (format_lex): Initialize negative_flag.
1701         (check_format): Intialize repeat.
1702         * trans-io.c (gfc_new_nml_name_expr): Declare static.
1703         (gfc_new_var_expr): Ditto.
1704
1705 2003-09-14  Paul Brook  <paul@nowt.org>
1706
1707         * trans-array.c (gfc_conv_array_initializer): Handle derived types.
1708         * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values.
1709
1710 2003-09-12  Paul Brook  <paul@nowt.org>
1711
1712         * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold.
1713
1714 2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1715
1716         * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr
1717         for a correct expression.
1718
1719 2003-09-10  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1720
1721         * trans-intrinsic.c (real_compnt_info): New struct.
1722         (prepare_arg_info): New function.
1723         (gfc_conv_intrinsic_set_exponent): New function.
1724         (gfc_conv_intrinsic_scale): New function.
1725         (gfc_conv_intrinsic_nearest): New function.
1726         (gfc_conv_intrinsic_fraction): New function.
1727         (gfc_conv_intrinsic_exponent): New function.
1728         (gfc_conv_intrinsic_spacing): New function.
1729         (gfc_conv_intrinsic_rrspacing): New function.
1730         (gfc_conv_intrinsic_function): Use them.
1731
1732 2003-08-24 XiaoQiang Zhang  (zhangapache@yahoo.com>
1733
1734         * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for 
1735         build_int_2 changed from (high, low) to (low, high).
1736         * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len,
1737         ioparm_namelist_read_mode, iocall_set_nml_val_int,
1738         iocall_set_nml_val_float, iocall_set_nml_val_char,
1739         iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration.
1740         (gfc_build_io_library_fndecls): Add variable initialization.
1741         (gfc_new_nml_name_expr, get_new_var_expr): New function.
1742         (build_dt): Add namelist support.
1743         * io.c (value): New variable.
1744         (check_format): Support FMT_H now.
1745
1746 2003-09-07  Paul Brook  <paul@nowt.org>
1747
1748         * io.c (gfc_resolve_dt): Error if format label is not defined.
1749
1750 2003-09-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1751
1752         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is 
1753         about case_switch's break. The other is about building the condition 
1754         statement tree, which judges the argument in the range of the 
1755         corresponding integer type.
1756         * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work
1757         for the large values.
1758  
1759 2003-09-05  Paul Brook  <paul@nowt.org>
1760
1761         * f95-lang.c (expand_function_body): Gimplify the function.
1762
1763 2003-09-04  Jeff Law  <law@redhat.com>
1764
1765         * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at
1766         index zero!
1767
1768 2003-09-04  Paul Brook  <paul@nowt.org>
1769
1770         * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls.
1771         (gfc_expand_stmt): New function.
1772         (LANG_HOOKS_RTL_EXPAND_STMT): Define.
1773         (expand_function_body): Use tree_rest_of_compilation.
1774         * trans-decl.c (gfc_generate_function_code): Don't free cfun.
1775
1776 2003-09-03  Jeff Law  <law@redhat.com>
1777
1778         * f95-lang.c (gfc_init_builtin_functions): C arrays start at
1779         index zero!
1780
1781 2003-08-30  Paul Brook  <paul@nowt.org>
1782
1783         * f95-lang.c (builtin_function): Remove #if 0 code.
1784         (gfc_define_builtin): New function.
1785         (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def.
1786         * mathbuiltins.def: New file.
1787         * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields.
1788         (gfc_intrinsic_map): Use mathbuiltins.def.
1789         (gfc_intrinsic_builtin_t): Remove.
1790         (gfc_build_intrinsic_lib_fndecls): Update.
1791         * trans-types.c (gfc_init_types): Remove redundant initilaization of
1792         signed_size_type_node.
1793
1794 2003-08-29  Paul Brook  <paul@nowt.org>
1795
1796         * arith.c (gfc_real_kinds): Use correct minimum exponents.
1797
1798 2003-08-22  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1799
1800         * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO.
1801         (gfc_conv_intrinsic_function): Add MODULO.
1802
1803 2003-08-22  Jason Merrill  <jason@redhat.com>
1804
1805         * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates.
1806
1807 2003-08-22  Andreas Jaeger  <aj@suse.de>
1808
1809         * Make-lang.in (f95.install-common): Add DESTDIR support.
1810         * (f95.install-info): Likewise.
1811         (f95.uninstall): Likewise.
1812
1813 2003-08-19  Diego Novillo  <dnovillo@redhat.com>
1814
1815         * trans-types.c (gfc_init_types): Initialize
1816         signed_size_type_node with size_type_node.
1817
1818 2003-08-18  Paul Brook  <paul@nowt.org>
1819
1820         * dependency.c (gfc_dependency): New enum.
1821         (check_another_array_ref): Remove.
1822         (gfc_get_array_from_component): Remove.
1823         (get_x): Remove.
1824         (get_range): Remove.
1825         (get_no_of_elements): Use mpz_t, not mpf_t.
1826         (transform_sections): New function.
1827         (gfc_check_range_range): Rename ...
1828         (gfc_check_section_vs_section): ... to this.  Use new function.
1829         (gfc_is_inside_range): Rewrite to match.
1830         (gfc_check_element_vs_section): Ditto.
1831         (gfc_check_element_vs_element): Ditto.
1832         (get_deps): Ditto.
1833         (gfc_dep_resolver): Ditto.  Remove unused parameter.
1834         * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section,
1835         gfc_check_element_vs_element, gfc_is_inside_range,
1836         gfc_get_array_from_component): Remove prototypes for static functions.
1837         (gfc_dep_resolver): Update prototype.
1838         * trans-array.c (gfc_conv_resolve_dependencies): Change to match.
1839
1840 2003-08-15  Paul Brook  <paul@nowt.org>
1841
1842         * trans-decl.c (gfc_build_qualified_array): Don't add symbols for
1843         return values to parent scope.
1844         (gfc_build_dummy_array_decl): Ditto.
1845
1846 2003-08-14  Paul Brook  <paul@nowt.org>
1847
1848         * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the
1849         size of the type, not the pointer.
1850         * resolve.c (resolve_symbol): Give more accurate error message.
1851
1852 2003-08-10  Paul Brook  <paul@nowt.org>
1853
1854         * trans-decl.c (gfc_build_function_decl): Only mangle global symbols.
1855
1856 2003-08-10  Paul Brook  <paul@nowt.org>
1857
1858         * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived
1859         type components.
1860
1861 2003-08-10  Chun Huang  <compiler@sohu.com>
1862  
1863         * resolve.c (resolve_formal_arglist): Resolve STATEMENT function.
1864         (resolve_symbol): Ditto.
1865         * trans-expr.c (gfc_conv_statement_function): New function.
1866         (gfc_conv_function_expr): Use it.
1867
1868 2003-08-10  Paul Brook  <paul@nowt.org>
1869
1870         * trans-array.c (gfc_conv_ss_startstride): Handle functions.
1871         (walk_function_expr): Set section rank.
1872         * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
1873
1874 2003-08-10  Paul Brook  <paul@nowt.org>
1875
1876         * intrinsic.c (add_sym): Prefix names with correct string.
1877         (add_sym_0s): New function.
1878         (add_subroutines): Register abort.
1879
1880 2003-08-10  Erik Schnetter  <schnetter@uni-tuebingen.de>
1881
1882         * gfortran.h: Introduce options to control the mangling.
1883         * lang.opt: Likewise.
1884         * options.c (gfc_init_options): Handle the options.
1885         * trans-common.c (gfc_sym_mangled_common_id): New function.
1886         (gfc_build_common_decl): Call it.
1887         * trans-decl.c (gfc_sym_mangled_function_id): New function.
1888         (gfc_get_extern_function_decl, gfc_build_function_decl): Call it.
1889
1890 2003-08-09  Paul Brook  <paul@nowt.org>
1891
1892         * module.c (mio_symbol): Always ouput a namespace for formal args.
1893         (load_needed): Namespace now belong to their proper symbol.
1894         (gfc_dump_module): Change G95=>GFORTRAN.
1895
1896 2003-08-05  Paul Brook  <paul@nowt.org>
1897
1898         * options.c: Force -fg77-calls.
1899
1900 2003-08-02  Paul Brook  <paul@nowt.org>
1901
1902         * Makelang.in: Rename G95_* to GFORTRAN_*.
1903         * All sources: Rename G95_* to GFC_*.
1904
1905 2003-08-01  Paul Brook  <paul@nowt.org>
1906
1907         * fortran/Make-lang.in: Use GMPLIBS.
1908         * fortran/config-lang.in: Set need_gmp.
1909         * trans-expr.c (gfc_conv_variable): Remove incorrect assertion.
1910
1911 2003-07-27  Andreas Jaeger  <aj@suse.de>
1912
1913         * trans-decl.c (gfc_generate_constructors): Convert prototype to
1914         ISO C90.
1915         * trans-const.c (gfc_init_constants): Likewise.
1916         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise.
1917
1918         * gfortranspec.c: Convert to ISO C90.
1919         (lang_specific_driver): Correct copyright, remove ALT_LIBM usage.
1920
1921 2003-07-26  Paul Brook  <paul@nowt.org>
1922
1923         * lang.opt: Add -fdump-parse-tree.
1924         * options.c (gfc_handle_option): Ditto.
1925         * resolve.c (resolve_forall_iterators): Convert to proper type.
1926         * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type.
1927
1928 2003-07-26  Paul Brook  <paul@nowt.org>
1929
1930         * Makefile.in: Add build dependencies on files common with rest of gcc.
1931
1932 2003-07-26  Lifang Zeng  <zlf605@hotmail.com>
1933
1934         * trans.h: Declare g95_trans_pointer_assignment.
1935         * trans-expr.c (g95_trans_pointer_assignment): New function.
1936         (g95_trans_pointer_assign): Use it.
1937         * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment.
1938         (g95_trans_pointer_assign_need_temp): New function.
1939
1940 2003-07-26  Paul Brook  <paul@nowt.org>
1941
1942         * gfortran.texi: Replace references to g95.
1943
1944 2003-07-26  Paul Brook  <paul@nowt.org>
1945
1946         Rename g95_* to gfc_*.
1947
1948 2003-07-25  Paul Brook  <paul@nowt.org>
1949         
1950         * gfortran.h: Rename from g95.h.
1951         * trans-types.c (boolean_type_node, booelan_true_node,
1952         boolean_false_node): Remove.
1953         * trans-types.h: Ditto.
1954
1955 2003-07-25  Chun Huang  <compiler@sohu.com>
1956
1957         * parse.c (accept_statement): Implement BLOCK DATA statement.
1958         * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer
1959         variables.
1960
1961 2003-07-24  Lifang Zeng  <zlf605@hotmail.com>
1962
1963         * trans-stmt.c (temporary_list): Define.
1964         (g95_trans_assign_need_temp): New function.
1965         (g95_trans_forall_1): Modified for WHERE.
1966         (g95_trans_where_assign): Modified.
1967         (g95_trans_where_2): Modified.
1968         (g95_evaluate_where_mask): Modified.
1969         (g95_trans_where): Modified.
1970         (g95_get_temp_expr): Removed.
1971         (g95_add_to_where_stmt_list): Removed.
1972         (compute_overall_iter_number): Modified for WHERE.
1973         * trans.h: Remove where_stmt_list.
1974
1975 2003-07-24  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1976
1977         * lang.opt: Correct description of options -J and -M.
1978
1979 2003-07-23  Steven Bosscher   <steven@gcc.gnu.org>
1980
1981         * lang.opt: Move help text to here.
1982         * lang-options.h: Remove.
1983
1984 2003-07-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1985         * iresolve.c (g95_resolve_transpose): Proper variable in switch.
1986         * simplify.c (g95_simplify_nearest): Fix typo and use a correct test
1987         on kind.
1988
1989 2003-07-22  Steven Bosscher  <steven@gcc.gnu.org>
1990         Paul Brook  <paul@nowt.org>
1991
1992         * check.c (check_rest): Use global pedantic flag.
1993         * io.c (data_desc): Ditto.
1994         * error.c (g95_warning, g95_warning_now): Use global flag.
1995         * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE.
1996         (expand_function_body): Update to new prototypes.
1997         (g95_init): Use new option names.
1998         * g95.h (g95_option_t): Standardize names.
1999         (g95_init_options, g95_handle_option): Update prototypes.
2000         * interface.c: Use new option names.
2001         * match.c: Ditto.
2002         * module.c: Ditto.
2003         * parse.c: Ditto.
2004         * primary.c: Ditto.
2005         * resolve.c: Ditto.
2006         * scanner.c: Ditto.
2007         * simplify.c: Ditto.
2008         * symbol.c: Ditto.
2009         * trans-array.c: Ditto.
2010         * trans-expr.c: Ditto.
2011         * trans-types.c: Ditto.
2012         * trans-decl.c: Ditto.
2013         (g95_build_library_function_decl): Remove obsolete VPARAMS.
2014         * trans.h: Ditto.
2015         * options.c (g95_display_help): Remove.
2016         (g95_init_options): Convert to new scheme.
2017         (set_Wall): Ditto
2018         (g95module_option): Ditto, rename from g95_parse_arg.
2019         (g95_handle_module_path_options): New function.
2020         * trans-equivalence.c: Fix error message.
2021         * lang.opt: Corrections.
2022
2023 2003-07-21  Steven Bosscher  <steven@gcc.gnu.org>
2024
2025         * lang.opt: New file.
2026
2027 2003-07-21  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2028
2029         * decl.c (match_attr_spec): Set colon_seen.
2030
2031 2003-07-14  Paul Brook  <paul@nowt.org>
2032
2033         * trans-array.c: Update comment.
2034         (g95_trans_array_constructor_subarray): Cleanup loopinfo data.
2035         * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith,
2036         minmaxloc,minmaxval): Ditto.
2037         * trans-io.c (g95_trans_transfer): Ditto.
2038         * trans-stmt.c: Remove unneeded prototypes.
2039         (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain.
2040         (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo.
2041         (compute_inner_temp_size): Remove bits of dead code. Add comments.
2042         Don't share loopinfo.
2043         (compute_overall_iter_number): Declare as static.
2044         (allocate_temp_for_forall_nest): Ditto.
2045         (g95_trans_forall_1): Don't pass shared loopinfo.
2046         * trans.c (g95_start_block): Expand comment.
2047
2048 2003-07-12  Paul Brook  <paul@nowt.org>
2049
2050         * arith.c (g95_index_integer_kind): Remove unused initializer.
2051         * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array
2052         index by size of element.
2053         (generate_loop_for_rhs_to_temp): Ditto.
2054         (allocate_temp_for_forall_nest): Use element size, not index size.
2055
2056 2003-07-11  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2057
2058         * arith.c (g95_index_integer_kind): Add a TODO.
2059         * simplify.c (g95_simplify_nearest): Add a TODO.
2060
2061 2003-07-09  Chun Huang  <compiler@sohu.com>
2062
2063         * trans.h: Add declarations for gfor_fndecl_string_scan and
2064         gfor_fndecl_string_verify.
2065         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
2066         * trans-intrinsic.c (g95_conv_intrinsic_scan): New function.
2067         (g95_conv_intrinsic_verify): New function.
2068         (g95_conv_intrinsic_function): Add SCAN and VERIFY.
2069         * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case
2070         of parameter 'BACK=.TRUE.'
2071
2072 2003-07-05  Lifang Zeng  <zlf605@hotmail.com>
2073
2074         * trans-stmt.c (iter_info, forall_info): Define.
2075         (g95_trans_forall_block): Remove.
2076         (g95_trans_forall_loop): Use forall info blocks.
2077         (g95_trans_nested_forall_loop): New function.
2078         (g95_do_allocate): Handle things other than logical masks.
2079         (generate_loop_for_temp_to_lhs): New function.
2080         (generate_loop_for_rsh_to_temp): New function.
2081         (compute_inner_temp_size): New function.
2082         (compute_overall_iter_number): New function.
2083         (allocate_temp_for_forall_nest): New function.
2084         (g95_trans_forall): Move body ...
2085         (g95_trans_forall_1): ... to here.  Handle loops with temporaries.
2086
2087 2003-07-02  Paul Brook  <paul@nowt.org>
2088
2089         * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars
2090         in correct scope.  Change callers to match.
2091         * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays.
2092         * iresolve.c (g95_resolve_reshape): Only use constant shapes.
2093
2094 2003-07-02  Paul Brook  <paul@nowt.org>
2095
2096         * trans-array.c (g95_conv_loop_setup): Remove dead var.  Use
2097         expression shape for all expressions.
2098         * trans-decl.c (g95_symbol_init): Allow adding at very end of list.
2099
2100 2003-07-03  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2101
2102         * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options,
2103         g95_parse_arg), intrinsic.c (g95_convert_type): support of
2104         -Wconversion.
2105         * intrinsic.c, g95.h: Add g95_convert_type_warn,
2106         * resolve.c (g95_resolve_index): Call it.
2107
2108 2003-07-02  Paul Brook  <paul@nowt.org>
2109
2110         * iresolve.c (g95_resolve_reshape): Set expression shape.
2111         (g95_resolve_shape): Ditto.
2112         * simplify.c (g95_simplify_shape): Move common code outside condition.
2113         * trans-array.c (g95_conv_array_initializer): Teach it how to count.
2114
2115 2003-07-01  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2116
2117         * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve
2118         conformance checks.
2119
2120 2003-06-29  Paul Brook  <paul@nowt.org>
2121
2122         * array.c (g95_simplify_iterator_var): Don't bother with return value.
2123         * expr.c (find_array_element, find_component_ref): New functions.
2124         (remove_subobject_ref): New function.
2125         (simplify_const_ref): Use them.  Rename from simplify_component_ref.
2126         (simplify_ref_chain): New function.
2127         (g95_simplify_expr): Use it.  Simplify parameter variable subobjects.
2128         (g95_specification_expr): Simplify the expression.
2129         * resolve.c (resolve_operator): Check simplifications return code.
2130         (g95_resolve_expr): Ditto.
2131
2132 2003-06-26  Paul Brook  <paul@nowt.org>
2133
2134         * expr.c (simplify_component_ref): New function.
2135         (g95_simplify_expr): Use it.
2136         * resolve.c (resolve_structure_cons): Handle references.
2137
2138 2003-06-25  Paul Brook  <paul@nowt.org>
2139
2140         * trans-io.c (build_dt): Handle internal units.
2141
2142 2003-06-25  Canqun Yang  <canqun@yahoo.com.cn>
2143
2144         * trans-common.c (g95_build_common_decl): Array index range starts at 0.
2145         (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common):
2146         Use g95_array_index_type instead of integer_type_node.
2147         (g95_build_common_decl, g95_set_common_master_type): Use
2148         g95_character1_type_node instead of char_type_node.
2149         * trans-equivalence.c (g95_layout_local_equiv): As above.
2150
2151 2003-06-24  Steven G. Kargl  <kargls@attbi.com>
2152
2153         * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg):
2154         remove last remains of -fquiet.
2155
2156 2003-06-22  Paul Brook  <paul@nowt.org>
2157
2158         * resolve.c (resolve_operator): Don't fail if we can't simplify.
2159         (g95_resolve_expr): Ditto.
2160         (resolce_code): Mark as static.
2161         * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the
2162         gimplifer doesn't (yet).
2163
2164 2003-06-20  Paul Brook  <paul@nowt.org>
2165
2166         * g95.h: Add ST_PAUSE and EXEC_PAUSE.
2167         * match.c (g95_match_if): Add ST_PAUSE.
2168         (g95_match_stopcode): New function.
2169         (g95_match_pause, g95_match_stop): Use it.
2170         * parse.c (g95_ascii_statement): Handle ST_PAUSE.
2171         (decode_stmt, next_statement, parse_executable): Ditto.
2172         * resolve.c (resolve_code): Ditto.
2173         * st.c (g95_free_statement): Ditto.
2174         * trans-stmt.c (g95_trans_pause): New function.
2175         * trans-stmt.h: Declare it.
2176         * trans.c (g95_trans_code): Use it.
2177         * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string):
2178         Declare.
2179         (g95_build_builtin_function_decls): Initialize them.
2180         * trans.h: Ditto.
2181         * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE.
2182
2183 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2184
2185         * io.c (g95_match_open , g95_match_close, g95_match_inquire,
2186         match_filepos): Fix error handling.
2187
2188 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2189
2190         * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size):
2191         Add assertions on arguments.
2192         * resolve.c (expression_shape): Remove useless &.
2193         * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits,
2194         g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset,
2195         g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent,
2196         g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range
2197         g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing,
2198         g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions.
2199         (g95_simplify_not, g95_simplify_scale): Add assertions.
2200
2201 2003-06-15  Paul Brook  <paul@nowt.org>
2202
2203         Clean up stuff to work with the ssa optimizers.
2204         * convert.c (convert): Handle BOOLEAN_TYPEs.
2205         * f95-lang.c (g95_truthvalue_conversion): Implement.
2206         * trans-array.c (g95_trans_array_constructor_value): Group multiple
2207         scalar values.
2208         * trans.h (g95_truthvalue_conversion): Declare.
2209         * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants.
2210         * trans-stmt.c (g95_trans_character_select): Don't create array
2211         assignments.  Mark labels as indirect jump targets.
2212         * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes.
2213         (g95_get_dtype_cst): Handle LOGICAL types.
2214
2215 2003-06-14  Paul Brook  <paul@nowt.org>
2216
2217         * f95-lang.c (g95_gimplify_expr): New function.
2218         * trans-array.c (g95_trans_array_constructor_value): Don't create
2219         array assignments.
2220         (g95_conv_expr_descriptor): Rename simple->gimple.
2221         * trans-expr.c (conv_expr_op): Use proper logical operators.
2222         * trans-intrinsic.c (build_fixbound_expr): New function.
2223         (build_fix_expr): Ditto.
2224         (g95_conv_intinsic_aint): Use them. Use builtin functions.
2225         (g95_conv_intrinsic_function): Add FLOOR and CEILING.
2226
2227 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2228
2229         * array.c (g95_compare_array_spec): Remove unreachable code.
2230         * expr.c (g95_copy_expr): Likewise.
2231         * intrinsic.c (g95_convert_type): Likewise.
2232         * misc.c (g95_code2string): Likewise.
2233         * simplify.c (g95_simplify_ishft, g95_simplify_real,
2234         g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise.
2235         * trans-stmt.c (g95_trans_select): Likewise.
2236         * primary.c (extend_ref): Add an assertion.
2237         * simplify.c (g95_convert_constant): Add const.
2238         * intrinsic.h: Remove g95_check_x_ni.
2239         * f95-lang.c (g95_finish): Call g95_release_include_path.
2240
2241 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2242
2243         * resolve.c (resolve_contained_functions): Fix typo introduced on
2244         2003-01-13.
2245
2246 2003-06-09  Paul Brook  <paul@nowt.org>
2247
2248         * g95.h: Include system.h not hwint.h.
2249         * many: use safe-ctype.h not ctype.h.  Change isalpha -> ISALPHA, etc.
2250         * misc.c (g95_getmem): Use xmalloc/memset instead of calloc.
2251
2252 2003-06-09  Paul Brook  <paul@nowt.org>
2253
2254         * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables.
2255         * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE.
2256         * trans-decl.c (g95_add_decl_to_functions): Make non-static.
2257         (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects.
2258         (g95_generate_function_code): Translate COMMON and EQUIVALENCE
2259         objects.
2260         * trans.h (g95_trans_equivalence, g95_trans_common,
2261         g95_add_decl_to_function): Declare.
2262         * trans-common.c, trans-equivalence.c: New files.
2263
2264 2003-06-08  Steven Bosscher  <steven@gcc.gnu.org>
2265
2266         * intrinsic.c (g95_intrinsic_extension): Remove.
2267         (add_functions): Substitute g95_check_x for g95_check_x_ni
2268         everywhere.
2269         (g95_init_expr_extensions): New function.
2270         (g95_intrinsic_func_interface): Use it.
2271         * intrinsic.h: Remove extern decl for g95_intrinsic_extension.
2272         * check.c (g95_check_digit, g95_check_huge, g95_check_kind,
2273         g95_check_precision, g95_check_present, g95_check_radix,
2274         g95_check_range, g95_check_selected_real_kind): Do not set
2275         g95_intrinsic_extension.
2276         (g95_check_x_ni): Remove now duplicate of g95_check_x.
2277
2278         * expr.c (check_inquiry): Add FIXME, fixup some code style.
2279
2280 2003-06-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2281
2282         * g95.h (ref_type): Name this type explicitly.
2283         * module.c (MIO_NAME): Add specialisations of mio_name.
2284         (mio_symbol_attribute, mio_typespec, mio_array_ref,
2285         mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them.
2286         (ab_attribute): Name this type explicitly.
2287         (mio_symbol_attribute, mio_expr): Add cast to call to find_enum.
2288
2289 2003-06-05  Kejia Zhao  <kejia_zh@yahoo.com.cn>
2290
2291         * trans-intrinsic.c (g95_conv_allocated): New function.
2292         (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work.
2293
2294 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
2295
2296         * f95-lang.c: Don't include g95-support.h
2297         (g95_mark_addressable): Add prototype.
2298         (g95_init_decl_processing): Remove C front end hack.
2299         * f95-tree.c: Remove file.
2300         * support.c: Remove file.
2301         * g95-support.h: Remove file.
2302         * trans-types.c (g95_init_types): Set up boolean
2303         type related tree nodes.
2304         * Make-lang.in: Remove rules for dead files and
2305         dependencies on them.
2306
2307 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
2308
2309         * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final
2310         C front end dependency.  Also, convert.c does not depend on
2311         g95-support.h anymore.
2312         * convert.c: Don't include c-common.h and g95-support.h
2313         * f95-lang.c: Don't inlude c-common.h and c-common.def (3x).
2314         (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p,
2315         stmts_are_full_exprs_p, current_stmt_tree,
2316         current_scope_stmt_stack): Remove.
2317         * g95-support.h (unsigned_conversion_warning): Kill proto.
2318         (boolean_type_node, boolean_true_node, boolean_false_node):
2319         Don't define here.  Instead, make then true tree nodes in
2320         trans-types.
2321         * support.c (c_global_trees): Die, C front end, die!!!
2322         (g95_init_c_decl_hacks): Don't touch intmax_type_node,
2323         uintmax_type_node, string_type_node and const_string_type_node.
2324         (decl_constant_value, overflow_warning): Make static functions.
2325         They are in death row too, though.
2326         (default_conversion, c_expand_asm_operands): Remove.
2327         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c,
2328         trans.c: Don't include c-common.h.
2329         * trans-types.c (boolean_type_node, boolean_true_node,
2330         boolean_false_node): Make them real tree nodes.
2331         * trans-types.h (intmax_type_node, string_type_node,
2332         const_string_type_node): Hack to work around C dependencies
2333         in builtin-types.def.
2334
2335 2003-06-04  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2336
2337         * decl.c (decl_types): Add some iterators-like sentinels.
2338         * decl.c (match_attr_spec): Use them.
2339         Use "decl_types" instead of "int".
2340         Add cast in call to g95_match_strings.
2341         * dump-parse-tree.c (g95_show_namespace):  Use "g95_intrinsic_op"
2342         instead of "int".
2343         * g95.h (g95_intrinsic_op): Add some iterators-like sentinels.
2344         (g95_interface_info): Use "g95_intrinsic_op".
2345         * dump-parse-tree.c (g95_show_namespace): Use them.
2346         * interface.c (g95_check_interfaces): Use them.
2347         * module.c (read_module, write_module): Use them.
2348         * symbol.c (g95_get_namespace, g95_free_namespace): Use them.
2349         Use "g95_intrinsic_op".
2350         * interface.c (check_operator_interface): Use "g95_intrinsic_op".
2351         Add a default case in switch statement.
2352         * intrinsic.h (g95_generic_isym_id): Moved to...
2353         * g95.h (g95_generic_isym_id): here.
2354         (g95_intrinsic_sym): Use "g95_generic_isym_id".
2355         * intrinsic.c (make_generic): Use "g95_generice_isym_id".
2356         * trans-intrinsic.c (g95_intrinsic_map_t,
2357          g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id".
2358         * match.c (g95_match_intrinsic_op): Add cast in call to
2359         g95_match_strings.
2360
2361 2003-06-03  Steven Bosscher  <steven@gcc.gnu.org>
2362
2363         * support.c (skip_evaluation, warn_conversion, lvalue_p,
2364         lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment,
2365         constant_fits_type_p, convert_and_check,
2366         unsigned_conversion_warning): Remove these ugly remnants
2367         we inherited from the C front end.
2368         (function_types_compatible): Remove '#if 0'-edcode.
2369         (build_modify_expr): Likewise.
2370         (convert_for_assignment): Don't use the deceased functions.
2371         The parameter fundecl is now unused.
2372         (decl_constant_value): Always just return decl.  In fact
2373         this function is not used at present, but it might be in
2374         the future, when we start using the tree inliner.
2375         (overflow_warning, default_conversion, c_expand_asm_operands):
2376         Abort when these are called, they are part of the C type
2377         checking implementation and therefore poison to Fortran.
2378
2379 2003-06-04  Steven Bosscher  <steven@gcc.gnu.org>
2380
2381         * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on
2382         c-pretty-print.o and c-dump.o.  Add a comment on why we
2383         depend on c-semantics.c.
2384         * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN):
2385         Don't use the C front end tree dumper hook to dump the
2386         language specific tree representation -- we don't have
2387         one.  So instead, inherit the default langhook.
2388
2389 2003-06-02  Paul Brook  <paul@nowt.org>
2390
2391         * trans-expr.c (g95_conv_variable): Remove incorrent assertion.
2392
2393 2003-06-02  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2394
2395         * check.c (g95_check_associated): Use proper types.  Remove
2396         extraneous argument in call to g95_error().
2397
2398 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
2399
2400         * resolve.c (resolve_operator): Make logical operands convert to the
2401         type with higher kind.
2402
2403 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
2404
2405         * check.c (g95_check_associated): Make sure both pointer and target has
2406         the same type and rank. Null pointer or array section with vector
2407         subscript as target are not allowed.
2408         * trans.h: Declare gfor_fndecl_associated.
2409         * trans-decl.c: (g95_build_builtin_function_decls): Initialize
2410         gfor_fndecl_associated.
2411         * trans-intrinsic.c (g95_conv_associated): New function.
2412         (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work.
2413
2414 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
2415
2416         * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER
2417         according to POINTER itself rather than TARGET.
2418         (g95_conv_expr_descriptor): Make lbound start at 1.
2419         * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify.
2420
2421 2003-06-01  Paul Brook  <paul@nowt.org>
2422
2423         * expr.c (g95_type_convert_binary): Make it match the standard.
2424         * g95.texi: Remove dead link.
2425
2426 2003-06-01  Steven Bosscher  <steven@gcc.gnu.org>
2427
2428         * g95.texi: Cleanup somewhat in preparation for inclusion
2429         in GCC CVS.
2430
2431 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2432             Canqun Yang  <canqun@yahoo.com.cn>
2433
2434         * resolve.c (compare_bound_int, resolve_where_shape): Proper return
2435         type.
2436         (g95_find_forall_index): Return proper value.
2437         (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to
2438         compare the return value from g95_find_forall_index.
2439
2440 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2441         * g95.h, io.c (g95_st_label): Remove "length".
2442         (g95_symtree): Remove "link".
2443         (g95_case): Remove "code".
2444         * arith.c, arith.h (g95_compare_string, g95_convert_integer,
2445         g95_convert_real): Make an argument pointer to const.
2446         * decl.c (colon_seen): Add a TODO.
2447         * interface.c (g95_compare_types): Fix typo.
2448         * interface.c (compare_interfaces): Preserve value of "p".
2449         * intrinsic.c (sort_actual): Remove "i".
2450         * match.c (g95_match_assign): Proper type in call to g95_match().
2451         * parse.c (next_free): Avoid duplicate call due to macro.
2452         * parse.c (check_statement_label): wrong type in call to g95_error.
2453         * primary.c (match_real_constant): Add a TODO.
2454         * resolve.c (resolve_select):  Remove useless conditional.
2455         * simplify.c (g95_simplify_repeat): Proper assignment to
2456         "value.character.string".
2457         * simplify.c (g95_simplify_reshape): Wrong variable in call to
2458         g95_error.
2459
2460 2003-05-20  Canqun Yang  <canqun@yahoo.com.cn>
2461
2462         * trans-stmt.c: Remove unnecessary include file defaults.h.
2463
2464 2003-05-19  Lifang Zeng  <zlf605@hotmail.com>
2465
2466         * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative
2467         stride.
2468         (g95_trans_forall): Allow arbitrary number of FORALL indexes and
2469         actual variables used as FORALL indexes.
2470
2471 2003-05-15  Paul Brook  <paul@nowt.org>
2472
2473         * trans-array.c (g95_trans_static_array_pointer): Use
2474         null_pointer_node.
2475         (g95_trans_deferred_array): Initialize static array pointers.
2476         * trans-expr.c (g95_conv_function_call): Use formal arglist to
2477         correctly pass POINTER and absent CHARACTER arguments.
2478
2479 2003-05-14  Lifang Zeng  <zlf605@hotmail.com>
2480
2481         * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement.
2482         (g95_resolve_forall_body): Resolve FORALL body.
2483         (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL.
2484         (g95_resolve_assign_in_forall): Resolve assignment inside FORALL.
2485         (g95_find_forall_index): Check whether the FORALL index appears in
2486         the expression or not.
2487         (resolve_code): Modified.
2488
2489 2003-05-14  Paul Brook  <paul@nowt.org>
2490
2491         * iresolve.c (g95_resolve_spread): Convert ncopies to index_type.
2492
2493 2003-05-13  Paul Brook  <paul@nowt.org>
2494
2495         * trans-types.c (g95_max_array_element_size): Now a tree node.
2496         (g95_init_types): Work out max size properly.
2497         (g95_get_dtype_cst): Modify to match.
2498
2499 2003-05-11  Paul Brook  <paul@nowt.org>
2500
2501         * trans-io.c (add_case): Create a label decl for case labels.
2502
2503 2003-05-11  Paul Brook  <paul@nowt.org>
2504
2505         * arith.c (g95_integer_index_kind): New variable.
2506         * f95-lang.c (g95_init): Move frontend initialization here ...
2507         (g95_post_options): ... from here.
2508         * g95.h (g95_index_integer_kind, g95_resolve_index): Declare.
2509         * intrinsic.c (add_functions): Use index kinds.
2510         * iresolve.c: Convert to index_kind where needed.
2511         * resolve.c (g95_resolve_index): Make public, use index_kind.
2512         (resolve_array_ref): Adjust to match.
2513         * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind.
2514         * trans-stmt.c: Ditto.
2515         * trans-types.c: Ditto.
2516         * trans-types.h (g95_array_index_kind): Remove declaration.
2517         * trans-expr.c (g95_conv_expr_present): Use null_pointer_node.
2518
2519 2003-05-07  Paul Brook  <paul@nowt.org>
2520
2521         * trans-const.c (g95_conv_mpz_to_tree): Typecast constant.
2522         * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type
2523         of bound indices.
2524
2525 2003-05-07  Paul Brook  <paul@nowt.org>
2526
2527         * trans-array.c (trans_static_array_pointer,
2528         g95_trans_array_constructor_value, g95_conv_array_initializer,
2529         g95_conv_structure): CONSTRUCTOR nodes only have one operand.
2530         (g95_add_loop_ss_code): Convert subscripts to the correct type.
2531         * trans-stmt.c (g95_trans_character_select): Ditto.
2532         * trans-types.c (g95_init_types): Ditto.
2533
2534 2003-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2535
2536         * f95-lang.c (expand_function_body): Use input_line, not lineno.
2537         * trans-decl.c (g95_generate_function_code,
2538         g95_generate_constructors): Likewise.
2539         * trans.c (g95_trans_runtime_check, g95_add_block_to_block,
2540         g95_get_backend_locus, g95_set_backend_locus, g95_trans_code):
2541         Likewise.
2542
2543 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
2544         * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type
2545         with components point to the DERIVED type itself, and two DERIVED
2546         type with components point to each other.
2547         * trans-expr.c (g95_conv_componet_ref): Modified
2548
2549 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
2550         * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into
2551         null_pointer_node.
2552         (g95_trans_pointer_assign): Implement Nullify.
2553
2554 2003-05-01  Paul Brook  <paul@nowt.org>
2555
2556         * trans-array.c (g95_walk_function_expr): Cope with NULL esym.
2557         * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions.
2558
2559 2003-05-01  Paul Brook  <paul@nowr.org>
2560
2561         * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c,
2562         trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and
2563         IS_EMPTY_STMT.
2564
2565 2003-05-01  Canqun Yang  <canqun@yahoo.com.cn>
2566
2567         * trans-stmt.c (g95_trans_integer_select): Add a parameter to build
2568         CASE_LABEL_EXPR.
2569
2570 2003-04-28  Paul Brook  <paul@nowt.org>
2571
2572         * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big
2573         as their kind suggests.
2574         (g95_resolve_reshape): Ditto.
2575
2576 2003-04-28  Chun Huang  <compiler@sohu.com>
2577
2578         * trans-expr.c (g95_conv_substring_expr): New function.
2579         (g95_conv_expr): Use it.
2580
2581 2003-04-28  Paul Brook  <paul@nowt.org>
2582
2583         * iresolve.c (g95_resolve_transpose): Make it match the
2584         implementation.
2585         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE.
2586
2587 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
2588
2589         * trans-types.c (g95_add_field_to_struct): New function to
2590         add a field to a UNION_TYPE or RECORD_TYPE.
2591         * trans-types.h (g95_add_field_to_struct): Prototype.
2592         (g95_get_derived_type): Use g95_add_field_to_struct to add
2593         components.
2594         * trans-io.c (g95_add_field): Remove.
2595         (ADD_FIELD): Use new g95_add_field_to_struct function.
2596         (ADD_STRING): Likewise.
2597         * trans-stmt.c (g95_trans_select): Likewise.
2598         (g95_add_field): Remove duplicated function.
2599
2600 2003-04-18  Canqun Yang  <canqun@yahoo.com.cn>
2601
2602         Port implementation for CHARACTER SELECT from Andy's tree.
2603         * trans-stmt.c (g95_trans_character_select): Implement character
2604         select. (g95_add_field): New function.
2605         * trans-decl.c: Declare 'gfor_gndecl_select_string'.
2606         (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'.
2607         * g95.h (struct g95_case): Add field 'int n'.
2608         * trans.h: Declare 'gfor_fndecl_select_string'.
2609
2610 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
2611
2612         * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove.
2613         (g95_insert_bbd): Die on duplicates.
2614         * g95.h (g95_insert_bbt_with_overlap): Delete prototype.
2615
2616 2003-04-14  Steven Bosscher  <steven@gcc.gnu.org>
2617
2618         * g95.texi: Require GMP 4.0 -- like we actually
2619         do.  Explain the testsuite and what-goes-where.
2620         Don't use undefined texinfo symbol.  Break very
2621         long line.  Remove finished item from the list
2622         of open projects.
2623
2624 2003-04-11  Canqun Yang  <canqun@yahoo.com.cn>
2625
2626         * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries
2627         LOGICAL type.
2628
2629 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
2630
2631         * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL.
2632         (g95_trans_forall_body): New function.
2633
2634 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
2635
2636         * resolve.c (resove_where): New function.
2637         (resolve_where_shape): New function.
2638         (resolve_code): Add call to 'resolve_where'
2639         * trans-stmt.c (g95_trans_where): Modified.
2640         (g95_trans_where_2): New function.
2641         (g95_trans_where_assign): New function.
2642         (g95_evaluate_where_mask): New function.
2643         (g95_add_to_stmt_list): New function.
2644         (g95_get_temp_expr): New function.
2645         * trans.h (where_stmt_list): New structure.
2646
2647 2003-04-10  Paul Brook  <paul@nowt.org>
2648
2649         * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
2650         (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto.
2651
2652 2003-04-10  Steven Bosscher  <steven@gcc.gnu.org>
2653
2654         Update after mainline -> tree-ssa-branch merge.
2655         * f95-lang.c (g95_mark_addressable): Update put_var_into_stack
2656         call.
2657         (g95_init): Update for new lang_hooks definition.
2658         (g95_post_options): New langhook.
2659         (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options.
2660         * scanner.c (g95_new_file): Comment update.
2661
2662 2003-04-09  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2663
2664         * g95.h, lang-options.h: Add -Wimplicit-interface.
2665         * options.c (g95_init_options, g95_parse_arg): Set it.
2666         * interface.c (check_intents): Warn about call with implicit
2667         interface.
2668         * resolve.c (resolve_unknown_f, resolve_unknown_s): Call
2669         g95_procedure_use.
2670
2671 2003-04-05  Paul Brook  <paul@nowt.org>
2672
2673         * iresolve.c (g95_resolve_spread): Don't resole based on type.
2674         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD.
2675
2676 2003-03-29  Paul Brook  <paul@nowt.org>
2677
2678         * iresolve.c (g95_resolve_pack): Don't bother resolving based on type.
2679         (g95_resolve_unpack): Ditto.
2680         * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function.
2681         (g95_conv_intrinsic_function): Use it.  Remove PACK and UNPACK.
2682         (g95_is_intrinsic_libcall): Add PACK and UNPACK.
2683
2684 2003-03-25  Paul Brook  <paul@nowt.org>
2685
2686         * arith.c (g95_unary_user, g95_user): Remove dead functions.
2687         * arith.h: Ditto.
2688         * array.c (g95_free_array_ref): Ditto.
2689         * g95.h: Ditto.
2690         * symbol.c (g95_use_derived_tree): Ditto.
2691         * intrinsic.c (add_functions): Use simplification for SCALE.
2692         * primary.c (g95_match_rvalue): Test sym, not symtree.
2693
2694 2003-03-25  Paul Brook  <paul@nowt.org>
2695
2696         * trans-decl.c (build_function_decl): Add parameter before it gets
2697         turned into a constant.
2698         * iresolve.c (g95_resolve_eoshift): Resolve to a useful name.
2699         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT.
2700         * trans-decl.c (g95_create_module_variable): Don't pushdecl constants.
2701
2702 2003-03-22  Paul Brook  <paul@nowt.org>
2703
2704         * trans-array.c (g95_conv_array_initializer): Allow scalar
2705         expressions.
2706         * trans-decl.c (g95_finish_var_decl): Result variables are not
2707         module variables.
2708         * trans-intrinsic.c (g95_conv_intrinsic_transfer): New function.
2709         (g95_conv_intrinsic_function): Use it.
2710         * trans-types.h (g95_type_spec): Remove dead declaration.
2711
2712 2003-03-21  Paul Brook  <paul@nowt.org>
2713
2714         * trans-decl.c (g95_build_function_decl): Mark string parameters.
2715
2716 2003-03-20  Paul Brook  <paul@nowt.org>
2717
2718         * trans-decl.c (g95_build_function_decl): Put character length
2719         parameters at the end of the function declaration.
2720         * trans-expr.c (g95_conv_function_call): Ditto.
2721         * trans-types.c (g95_get_function_type): Ditto.
2722
2723 2003-03-20  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2724
2725         * resolve.c (resolve_formal_arglist): Don't impose intent for
2726         procedure arguments of pure functions.
2727         (resolve_select): Remove redundant assignment.
2728
2729 2003-03-19  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2730
2731         * arith.c (validate_logical), g95.h, options.c (g95_init_options):
2732         Remove option l1.
2733         * g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const.
2734         * iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add
2735         const.
2736         * lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls.
2737         Order list.
2738         * symbol.c (g95_add_type): Fix typo in comment.
2739
2740
2741 2003-03-16  Paul Brook  <paul@nowt.org>
2742
2743         * dump-parse-tree.c (g95_show_code_node): Print resolved sym name.
2744         * expr.c (g95_build_call): Remove.
2745         * f95-lang.c (puchdecl_top_level): New function.
2746         * g95.h (g95_code): Store resolved symbol, not just the name.
2747         * intrinsic.c (g95_intrinsic_namespace): New global namespace.
2748         (g95_intirinsic_init_1, g95_intrinsic_done_1): Use it.
2749         (g95_get_intrinsic_sub_symbol): New function.
2750         * iresolve.c (g95_resolve_cpu_time): Use it.
2751         (g95_resolve_random_number): Ditto.
2752         * resolve.c: Set code->resolved_sym instead of code->sub_name.
2753         * trans-decl.c (g95_get_extern_function_decl): Give external decls
2754         the correct DECL_CONTEXT.  Add global symbold to the global scope.
2755         * trans-stmt.c (g95_trans_code): Remove hacks now the fronted is
2756         fixed.
2757
2758 2003-03-16  Paul Brook  <paul@nowt.org>
2759
2760         * g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays.
2761         * options.c (g95_parse_arg): Ditto.
2762         * module.c (mio_symbol_attribute): Handle the always_explicit bit.
2763         * resolve.c (resolve_formal_arglist): The always_explicit sould be set
2764         for the procedure, not the parameter.
2765         * trans-array.c (g95_trans_g77_array): New function.
2766         (g95_trans_assumed_size): Use it.
2767         (g95_trans_dummy_array_bias): Ditto.
2768         (g95_conv_array_parameter): Handle g77 arrays. Move existing body ...
2769         (g95_conv_expr_descriptor): ... to here.  Update callers.
2770         * trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays.
2771         (g95_get_symbol_decl): Avoid processing g77 arrays multiple times.
2772         * trans-expr.c (g95_conv_function_call): Handle g77 arrays.
2773         * trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays.
2774         * trans-types.c (g95_is_nodesc_array): Handle g77 arrays.
2775         (g95_sym_type): Ditto.
2776
2777 2003-03-15  Paul Brook  <paul@nowt.org>
2778
2779         * trans-array.c (g95_walk_elemental_function_args): Don't amputate the
2780         first chain.
2781         * trans-expr.c (g95_conv_function_call): Use the resolved symbol.
2782
2783 2003-03-14  Paul Brook  <paul@nowt.org>
2784
2785         * trans-array.c (g95_array_is_packed): Remove.
2786         (g95_conv_array_base): Correctly handle all descriptorless cases.
2787         (g95_conv_array_stride): Use descriptorless strides.
2788         (g95_trans_dummy_array_bias): Don't always repack the array.
2789         (g95_build_dummy_array_decl): Automatic dummy arrays are only partial
2790         packed.
2791         * trans-types.c (g95_get_nodesc_array_type): Differentiate between
2792         dummy and non-dummy arrays...
2793         (g95_sym_type, g95_get_derived_type): ... like these.
2794         (g95_get_array_type_bounds): Allow discontiguous arrays.
2795
2796 2003-03-12  Paul Brook  <paul@nowt.org>
2797
2798         * array.c (g95_resolve_array_spec): Fix comment.
2799         * g95.h (symbol_attributes): New flag always_explicit.
2800         * resolve.c (resolve_formal_arglist): Set it always_explicit.
2801         * iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify.
2802         * trans-array.c (g95_conv_descriptor_dimension): Remove dead assert.
2803         (g95_trans_array_bounds): Allow assumed shape arrays.
2804         (g95_trans_repack_array): Remove.
2805         (g95_trans_dummy_array_bias): Rewite to use descriptorless arrays.
2806         * trans-decl.c (g95_build_qualified_array): Only ignore absent
2807         bounds for assumed size arrays.
2808         (g95_build_dummy_array_decl): Use descriptorless arrays.
2809         * trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays.
2810         (g95_trans_pointer_assign): Fix typo.
2811         * trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead
2812         code.
2813         (g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays.
2814         * trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays.
2815         Also modify callers.
2816         * trans-types.h (g95_get_nodesc_array_type): Modify prototype.
2817
2818 2003-03-08  Paul Brook  <paul@nowt.org>
2819
2820         * trans-array.c (g95_walk_elemental_functions): Don't reverse the SS.
2821         (g95_conv_array_ubound): Provide dummy value for assumed size arrays.
2822         * resolve.c (compare_spec_to_ref): Allow full array sections.
2823
2824 2003-03-08  Paul Brook  <paul@nowt.org>
2825
2826         * expr.c (g95_simplify_expr): Also simplify array index and
2827         substring expressions.
2828         * resolve.c (compare_spec_to_ref): Check for assumed size bounds.
2829         * trans-array.c (g95_trans_array_bounds): New function.
2830         (g95_trans_auto_array_allocation): Use it.
2831         (g95_trans_assumed_size): Rewrite.
2832         * trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
2833         (gfor_fndecl_repack): Remove.
2834         (g95_build_qualified_array): Handle absent upper bounds.
2835         (g95_build_dummy_array_decl): Assumed shape arrays are descriptorless.
2836         (g95_get_symbol_decl): Update.
2837         (g95_build_intrinsic_function_decls): Initialize new decls.
2838         * trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
2839         (gfor_fndecl_repack): Remove.
2840         * trans-io.c (g95_build_io_library_fndecls): Correct prototypes.
2841         * trans-types.c: (g95_build_array_type): Merge duplicated code..
2842         (g95_get_nodesc_array_type): Handle absent bounds.
2843         * trans-types.h (g95_get_nodesc_array_type): Declare.
2844
2845 2003-03-04  Paul Brook  <paul@nowt.org>
2846
2847         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including
2848         builtin-types.def.
2849
2850 2003-03-02  Paul Brook  <paul@nowt.org>
2851
2852         * options.c (g95_init_options): Drfault to 1.
2853         (g95_pasrse_arg): Add -frepack-arrays, use strcmp.
2854         * trans-array.c (g95_conv_array_data, g95_conv_array_base,
2855         g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound):
2856         Handle non-constant size automatic arrays.
2857         (g95_conv_section_upper_bound, g95_conv_section_startstride): Use
2858         generic bound functions.
2859         (g95_trans_auto_array_allocation): Don't create a descriptor.
2860         (g95_trans_assumed_size): New function (broken).
2861         (g95_trans_dummy_array_bias): Remove unused var.
2862         * trans-array.h (g95_trans_assumed_size): Declare.
2863         * trans-decl.c (create_index_var): New fuction.
2864         (g95_build_qualified_array): New function.
2865         (g95_get_symbol_decl): Use it.
2866         (g95_trans_deferred_vars): Handle assumed shape seperately.
2867         * trans-types.c (get_element_type): Handle heap allocated arrays.
2868         (g95_is_nodesc_array): Include non-const size arrays.
2869         (g95_get_nodesc_array_type): Ditto.
2870
2871 2003-02-23  Paul Brook  <paul@nowt.org>
2872
2873         * trans-array.c (g95_array_init_size): Should use stride, not size of
2874         last dimension.
2875
2876 2003-02-18  Paul Brook  <paul@nowt.org>
2877
2878         * trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check
2879         after intrinsic function check.
2880
2881 2003-02-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2882
2883         * io.c (match_io): Fix missing return value and remove useless
2884         assignment.
2885         * match.c (g95_match): Remove useless assignment.
2886         * module.c (parse_string):  Remove useless post increment.
2887         * simplify.c (g95_simplify_verify): Remove useless assignment.
2888
2889 2003-02-15  Paul Brook  <paul@nowt.org>
2890
2891         * expr.c (restricted_intrinsic): Handle bad values gracefully.
2892         * g95.h (symbol_attribute): Add referenced member.
2893         (g95_symbol): Add dummy_order member.
2894         (g95_set_sym_referenced): Declare.
2895         * match.c (g95_match_assignment, g95_match_call): Use it
2896         * primary.c (match_actual_arg, g95_match_rvalue,
2897         g95_match_variable): Ditto.
2898         * symbol.c (next_dummy_order): New variable.
2899         (g95_set_sym_referenced): New function.
2900         (check_done): New function.
2901         (g95_add_*): Use it.
2902         * trans-decl.c: Make formatting conform to GCC standards.
2903         (g95_defer_symbol_init): Add dummy variables in the right order.
2904         (g95_get_symbol_decl): Only accept referenced variables.
2905         (g95_create_module_variable): Module variables are always required.
2906         (generatr_local_decls): New function.
2907         (generate_local_vars): New function.
2908         (g95_generate_function_code): Use it.
2909
2910 2003-02-13  Paul Brook  <paul@nowt.org>
2911
2912         * trans-decl.c (g95_conv_struct_cons): Remove.
2913         (g95_get_symbol_decl): Use g95_conv_expr for structure initializers.
2914         * trans-expr.c (g95_conv_structure): New function.
2915         (g95_conv_expr): Use it.
2916
2917 2003-02-09  Paul Brook  <paul@nowt.org>
2918
2919         * trans-array.c (g95_array_init_size): Don't evaluate the linit
2920         expressions multiple times.
2921         (g95_trans_auto_arry_allocation): Use pointer not tmp.
2922
2923 2003-02-08  Paul Brook  <paul@nowt.org>
2924
2925         * module.c (mio_symtree_ref): Declare as static.
2926         (mio_expr): Remove dead code.
2927         (read_module): Set the symtree link for fixups.
2928         * trans-intrinsic.c (g95_conv_intrinsic_round): Rename...
2929         (build_round_expr): ... to this.
2930         (g95_conv_intrinsic_aint): New function.
2931         (g95_conv_intrinsic_function): Use it.
2932
2933 2003-02-08  Paul Brook  <paul@nowt.org>
2934
2935         * trans-array.c (g95_trans_array_constructor_value): Use the acutal
2936         offset after modificaton, not the increment expression.
2937         * dependency.c: Kill excess whitespace.
2938
2939 2003-02-07  Sanjiv Gupta  <sanjivg@noida.hcltech.com>
2940
2941         * dependency.h: Remove some function declarations.
2942         * dependency.c (get_no_of_elements): Change this function not to
2943         return int.
2944         * other: Add comments for all modified functions.
2945
2946 2003-02-06  Paul Brook  <paul@nowt.org>
2947
2948         * g95spec.c (lang_specific_functions): Fix initializer warning.
2949         * dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree
2950         for structure type names.
2951         * trans-decl.c (g95_cons_structure_cons): New function.
2952         (g95_get_symbol_decl): Use it.
2953         * trans-expr.c (g95_conv_component_ref): Remove duplicate pointer
2954         referencing code.
2955
2956 2003-02-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2957
2958         * resolve.c (compare_cases): Add const to casts.
2959
2960 2003-01-30  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2961
2962         * g95.h (g95_check_f): Change a1 to f1m.
2963         * intrinsic.c (add_sym_1m, check_specific,
2964         g95_intrinsic_func_interface): Use it.
2965
2966         * module.c (init_pi_tree): Remove useless cast.
2967         (fp2): Fix argument type.
2968
2969         * parse.c (parse_select_block): Add comment.
2970
2971 2003-02-05  Toon Moene  <toon@moene.indiv.nluug.nl>
2972
2973         * lang-options.h: Fix warning involving C90 concatenated
2974         strings.
2975
2976 2003-02-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2977             Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2978
2979         * io.c (format_asterisk): Complete initializer to kill warning.
2980         * arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND,
2981         DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines.
2982         (g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the
2983         new defines to complete initializers.  Kills all warnings.
2984
2985         * Make-lang.in: Comment cleanup.
2986
2987 2003-02-05  Paul Brook  <paul@nowt.org>
2988
2989         * array.c (g95_free_constructor): Handle NULL expressions.
2990         * resolve.c (resolve_structure_cons): Ditto.
2991         * decl.c (g95_match_null): New Function.
2992         (variable_decl): Use it.
2993         * module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE.
2994         * primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE.
2995         * trans-types.c (g95_set_decl_attributes): Remove empty function.
2996
2997 2003-02-05  Paul Brook  <paul@nowt.org>
2998
2999         * trans.h (build1_v): New macro.
3000         (build_v): Remove pointless and incorrect prototype.
3001         * various: Use build1_v for GOTO_EXPR and LABEL_EXPRs.
3002         * f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args.
3003
3004 2003-02-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3005
3006         * Make-lang.in (F95_OBJS): Remove one more dead file.
3007
3008 2003-02-01  Paul Brook  <paul@nowt.org>
3009
3010         * lang-specs.h: Don't pass -ffixed-form to the linker.
3011         * trans-decl.c (g95_generate_function_code): Clear saved decl chain.
3012
3013 2003-02-01  Paul Brook  <paul@nowt.org>
3014
3015         * Make-lang.in (F95_OBJS): Remove dead files.
3016         * trans-array.c (g95_array_init_size): Do the right thing when
3017         ubound=NULL.
3018         * trans-decl.c (g95_generate_function_code): Initialize deffered
3019         symbol list before translating contained subroutines.
3020         * trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute
3021         scalar invariant values here...
3022         (g95_conv_variable, g95_conv_function_call): ... instead of here ...
3023         * trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here.
3024
3025 2003-01-29  Paul Brook  <paul@nowt.org>
3026
3027         * trans-array.c (g95_add_loop_code): Put pre code in the right block.
3028         (g95_walk_elemental_function_args): Reverse chains before adding.
3029         (g95_reverse_ss): Move about a bit.
3030         * trans-expr.c (g95_conv_function_call): Handle scalar intrinsic
3031         function arguments.
3032
3033 2003-01-28  Paul Brook  <paul@nowt.org>
3034
3035         * intrinsic.c (resolve_intrinsic): Use correct union member.
3036         * trans-array.c (g95_trans_dummy_array_bias): Don't touch absent
3037         parameters.
3038         * trans-decl.c (g95_get_symbol_decl): Don't translate initializers for
3039         use associated variables.
3040         * trans-intrinsic.c (g95_conv_intrinsic_present): Move body ...
3041         * trans-expr.c (g95_conv_expr_present): ... to here.
3042         * trans.h: Declare it.
3043         * trans-types.c (g95_sym_type): Assume subroutine if not specified.
3044
3045 2003-01-28  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3046
3047         * array.c (expand_iterator): Suppress useless assignment.
3048         * decl.c (match_char_spec): Ditto.
3049         * io.c (match_io_iterator): Ditto.
3050         * primary.c (match_real_constant): Ditto.
3051         * interface.c (fold_unary, g95_free_interface, g95_extend_expr):
3052         Ditto.  Also, use g95_intrinsic_op not int for intrinsic operators.
3053         * matchexp.c (match_add_operand, match_level_5): Likewise.
3054         * module.c (parse_atom, find_enum): Likewise.
3055         * resolve.c: move #include <string.h>
3056         (resolve_select): Fix serious typo.
3057
3058 2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.n>
3059
3060         * Make-lang.in: Don't build with broken tree-ssa-pre.
3061
3062 2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3063
3064         * resolve.c (resolve_index): Add a TODO.
3065         * symbol.c: Remove useless "#include <ctype.h>".
3066
3067 2003-01-27  Paul Brook  <paul@nowt.org>
3068
3069         * check.c (check_rest): Allow different type kinds as an extension.
3070         * g95.h (g95_resolve_f): Add f1m.
3071         * intrinsic.c (add_sym_1m, resolve_intrinsic): Use it.
3072         * intrinsic.h: Chenge prototypes for MIN and MAX.
3073         * iresolve.c (g95_resolve_minmax): New function.
3074         (g95_resolve_min, g95_resolve_max): Use it.
3075         * trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate
3076         arguments once.
3077         (g95_conv_intrinsic_present): Fix logic.
3078
3079 2003-01-27  Steven Bossche  <s.bosscher@student.tudelft.nl>
3080
3081         * g95.h (g95_case): Don't be a tree, be a double linked list.
3082         * match.c (match_case_selector): Remove redundant semantics check.
3083         Clean up a few goto's to make it a tiny little bit faster.
3084         * resolve.c (case_tree): Die.
3085         (compare_cases): Accept and compare unbounded cases too.
3086         (check_case_overlap): Don't build a tree.  Instead, merge-sort the
3087         whole list of g95_cases passed from resolve_select.
3088         (sane_logical_select): Die.
3089         (check_case_expr): Return FAILURE if a CASE label is of the wrong
3090         type kind.
3091         (resolve_select): Fixup case expression for computed GOTOs, put it
3092         in expr, not expr2, for easier handing in the parse tree dumper and
3093         the code generator.  Rewrite the rest of the function: Kill
3094         unreachable case labels and unreachable case blocks.
3095         * dump-parse-tree.c (g95_show_code_node): Always dump expr for
3096         an EXEC_SELECT, not case2 anymore.
3097         * trans-const.c (g95_conv_constant_to_tree): New function.
3098         (g95_conv_constant): Use it.
3099         * trans-const.h: Declare prototype for the new function.
3100         * trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select,
3101         g95_trans_character_select): New static functions.
3102         (g95_trans_select): Rewrite.
3103
3104 2003-01-26  Paul Brook  <paul@nowt.org>
3105
3106         * intrinsic.c (add_fnctions): Properly add dreal.
3107         * trans-intrinsic.c (g95_conv_intrinsic_present): New function.
3108         (g95_conv_intrinsic_function): Use it.
3109         * trans-io.c (build_dt): Abort on internal files (unimplemented).
3110
3111 2003-01-26  Paul Brook  <paul@nowt.org>
3112
3113         Widespread changes to the handling of symbols in expressions.  These
3114         are now linked via g95_symtree nodes.
3115         * parse.c (g95_fixup_sibling symbols): New function.
3116         (parse_contained): Use it.
3117         * g95.h (symbol_attribute): Add contained.  Indicates a symbol is a
3118         contained procedure that has bee correctly fixed up.
3119         (g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol.
3120
3121 2003-01-24  Paul Brook  <paul@nowt.org>
3122
3123         * trans-array.c (g95_walk_expr): Function result attributes are in
3124         sym->result.
3125         * trans-expr.c (g95_conv_function_call,
3126         g95_trans_arrayfunc_assign): Ditto.
3127         * trans-decl.c (g95_get_symbol_for_expr): Set sym->result.
3128
3129 2003-01-23  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3130
3131         * expr.c (check_restricted): Fix error message.
3132         * symbol.c (free_st_labels): Plug memleak.
3133
3134 2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3135
3136         * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca,
3137         reduce_binary_aa, reduce_binary, eval_intrinsic,
3138         eval_intrinsic_f2): Use typesafe prototypes for eval functions.
3139         * g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions
3140         for typesafe intrinsics helper functions.
3141         (g95_intrinsic_sym): Use them.
3142         * intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1,
3143         add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4,
3144         add_sym_5, add_conv, resolve_intrinsic, do_simplify,
3145         check_specific, g95_intrinsic_func_interface,
3146         g95_intrinsic_sub_interface): Adjust all calls to intrinsics
3147         helper functions.
3148         * trans-decl.c (g95_get_extern_function_decl): Likewise.
3149         * Make-lang.in: Don't disable warnings for strict prototypes
3150         any longer, everything is typesafe now.
3151
3152 2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3153
3154         * bbt.c (duplicate_node): Make static.
3155         * module.c (module_name): Make static.
3156         * scanner.c (include_dirs): Make static.
3157
3158 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3159
3160         Hard coded _gfor_'s should not show up anymore.
3161         * g95.h (PREFIX): New macro.
3162         * iresolve.c (g95_resolve_cpu_time): Use PREFIX, not
3163         hard-coded "_gfor".
3164         (g95_resolve_random_number): Likewise.
3165         * trans-decl.c (g95_build_intrinsic_function_decls): Likewise.
3166         * trans-io.c: Remove 'prefix' macro.  Replace all uses with
3167         the new PREFIX macro from g95.h.
3168
3169 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3170
3171         The troubles of forking... Andy implemented this just now too.
3172         Let's stick to that and keep the trees close.
3173         * g95.h (g95_st_label): 'format' member is now a g95_expr.
3174         * io.c: Revert previous changes.
3175         (g95_match_format): Match the format string as a character
3176         literal expression.
3177         * match.h (g95_statement_label): Declare external.
3178         * parse.c: Revert previous changes.
3179         * symbol.c (g95_free_st_label): Free a g95_expr instead
3180         if a 'char *'.
3181         * trans-io.c: Revert previous changes.
3182         (build_dt): Use set_string to set the format string.
3183
3184 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3185
3186         * io.c (format_string): Make non-static.
3187         (g95_match_format): Remember the format string.
3188         (terminate_io): Add I/O termination for empty I/O lists.
3189         * match.h: Declare external format_string.
3190         * parse.c (check_statement_label): Attack the format string
3191         to a format label for FORMAT statements.
3192         * trans-io.c (g95_add_field): Define prefix macro.  Replace
3193         all uses of PREFIX define with a use of this macro.
3194         (build_dt): Implement formatted I/O for format labels.
3195
3196 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3197
3198         * lang-options.h: Kill "-std=F".
3199         * options.c: Remove unimplemented "-std=F".  Modify
3200         web address.
3201         * misc.c (g95_terminal_width): New function.
3202         * error.c (g95_error_init_1): Use g95_terminal_width.
3203         * g95.h: Add prototype for g95_terminal_width, remove
3204         fmode flag.
3205
3206 2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3207
3208         * Make-lang.in: Fix typo.
3209
3210 2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3211
3212         * g95.h (struct g95_case): Remove unused cruft, new member
3213         'where' to keep track of the locus of the default case.
3214         * match.c (g95_match_case): Add locus to the current case.
3215         (match_case_selector): Likewise.
3216         * parse.c (parse_select_block): Move semantics check for
3217         multiple DEFAULT cases out of here to...
3218         * resolve.c (check_case_overlap): ...here.  Return sooner
3219         when possible.
3220         (check_case_expr): Take two g95_cases now, use to sure the
3221         expression kinds are the same.
3222         (resolve_select): Cleanup.
3223
3224 2003-01-18  Paul Brook  <paul@nowt.org>
3225
3226         * trans-io.c: Fix typos in ported IO work (set_fla[tg]).
3227         * trans-decl.c (g95_set_symbol_decl): Handle non-array result
3228         variables.
3229         (g95_get_extern_function_decl): Put decls in the correct context.
3230
3231 2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3232
3233         * trans-io.c: Port changes from Andy to set ERR flag.
3234
3235 2003-01-17  Paul Brook  <paul@nowt.org>
3236
3237         * trans-array.c: Add various comments.
3238         (g95_ss_terminator): Declare as const.
3239         (g95_walk_expr): Remove first parameter and update all callers.
3240         (g95_walk_op_expr): Initialize scalar SS properly.
3241         * trans-array.h (g95_walk_expr): Update prototype.
3242         * trans-expr.c: Update for new g95_walk_expr.
3243         * trans-intrinsic.c: Ditto.
3244         * trans-io.c: Ditto.
3245         * trans.h: Various comments for SS chains.
3246
3247 2003-01-17  Paul Brook  <paul@nowt.org>
3248
3249         * intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING
3250         and RRSPACING.
3251         * intrinsic.c (add_functions): Use them.
3252         * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto.
3253         * trans-expr.c (g95_conv_expr_lhs): Abort on impossible error.
3254
3255 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3256
3257         Fallout of a small merge conflict:
3258         * intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE).
3259
3260 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3261
3262         * initrinsic.c: New add_sym_* functions for strong typing.
3263         (add_conv): Make prototype strict.
3264         * dump-parse-tree.c, dependency.c: Include config.h
3265         * resolve.c, trans-io.c: Fix typos.
3266
3267 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3268
3269         * dump-parse-tree.c (g95_show_code_node): Show the
3270         condition for a computed GOTO that was transformed
3271         to a SELECT CASE construct.
3272         * resolve.c (check_case_overlap): Revert previous switch
3273         to treaps, it was too slow and didn't catch all trouble.
3274         (resolve_symbol): Be more flexible about module procedures.
3275         * symbol.c (check_conflict): Point to relevant section in
3276         the standard for dubious conflict.  Allow procedure
3277         dummy arguments to be optional again.
3278         * trans-io (add_field): Rename to g95_add_field.  Change
3279         all callers.
3280         * trans-stmt (trans_select): Handle unbounded cases for
3281         integer SELECT CASE constructs.  Fix/add more comment.
3282
3283 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3284
3285         * g95.h: Uses GCC's function attribute macros.
3286         * error.c, module.c, parse.c, g95.h: More function attributes.
3287
3288 2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3289         Forgot a file...
3290         * trans-decl.c (get_label_decl): Use TREE_LINENO instead
3291         of DECL_SOURCE_LINE, and TREE_FILENAME instead of
3292         DECL_SOURCE_FILE.
3293
3294 2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3295
3296         * f95-lang.c (pushdecl): Use TREE_LINENO instead of
3297         DECL_SOURCE_LINE.
3298         * trans.c (g95_trans_code): Use annotate_all_with_file_line
3299         instead of nowdead wrap_all_with_wfl.
3300
3301 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3302
3303         * parse.c (g95_parse_file): In verbose mode, dump the parse tree
3304         before generating code, so we can still see it even if the code
3305         generation phase dies.
3306
3307 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3308
3309         * decl.c (build_sym): Split out initialization expression parts...
3310         (add_init_expr_to_sym): ...to here.
3311         (variable_decl): Add the symbol following an attribute list to the
3312         symbol tree before parsing the optional initialization expression
3313         if the symbol is not of a derived type.
3314         * primary.c (g95_match_rvalue): Don't assume a symbol always has
3315         a value if it is a PARAMETER.
3316
3317 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3318
3319         * misc.c: Don't #include <mcheck.h>
3320         * module.c: Ditto.  Kill uses of mtrace, muntrace.  If there
3321         ever was a glibc bug, then either this was never reported to
3322         glibc people, or it has been fixed for so long that there's
3323         no information you can find about it, anywhere.
3324
3325 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3326
3327         Fix warnings:
3328         * module.c (attr_bits, bt_types, array_spec_types):
3329         Switch 'const' and 'static'.
3330         * iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'.
3331
3332         GNU'ify source code:
3333         * trans-io.c: Numerous fixes, one fixed warning and a few
3334         TODO markers so that we don't forget about them.
3335
3336 2003-01-13  Paul Brook  <paul@nowt.org>
3337
3338         * intrinsic.c (add_functions): Add G95_ISYM_SCALE.
3339         * intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT.
3340         Add G95_ISYM_SCALE.
3341         * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto
3342         * match.c (g95_match_stop): Fix dumb == -> != error.
3343
3344 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3345
3346         * dump-parse-tree.c (show_indent): Add line breaks.  This
3347         whole dumping process needs cleanups.
3348         * f95-lang.c (g95_mark_addressable): Fix prototype to match
3349         the langhook.  Fix 'return's accordingly.
3350         * g95-support.h: Adjust prototype.
3351         * g95.h: Add 'no_backend' member to 'g95_option_t' struct.
3352         * lang-options.h: Add '-fsyntax-only'.
3353         * options.c (g95_init_options): Init 'no_backend'.
3354         (g95_parse_arg): Deal with '-fsyntax-only'.
3355         * parse.c (g95_parse_file): Do not generate code if 'no_backend'
3356         is set.
3357
3358 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3359         Patch from Arnaud
3360         * resolve.c (resolve_symbol): Assumed shape arrays must be dummy
3361         arguments.  Also make sure that if a symbol is marked INTRINSIC,
3362         an intrinsic with the symbol's name actually exists.
3363         (check_conflict): Make EXTERNAL and DIMENSION attributes conflict.
3364         Do not allow PROCEDURES to have the SAVE, POINTER, TARGET,
3365         ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute.
3366
3367 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3368
3369         * resolve.c (resolve_contained_fun