OSDN Git Service

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