OSDN Git Service

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