OSDN Git Service

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