OSDN Git Service

566d01f0c0840efc9ce6841cfdbcbeb344472bf9
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2
3         * Make-lang.in, dump-parse-tree.c, invoke.texi, lang.opt,
4         match.h, trans-array.h: Update copyright.
5
6 2005-04-29  Tom Tromey  <tromey@redhat.com>
7
8         * f95-lang.c (poplevel): Updated for change to build_block.
9
10 2005-04-29  Jakub Jelinek  <jakub@redhat.com>
11
12         PR fortran/13082
13         PR fortran/18824
14         * trans-expr.c (gfc_conv_variable): Handle return values in functions
15         with alternate entry points.
16         * resolve.c (resolve_entries): Remove unnecessary string termination
17         after snprintf.  Set result of entry master.
18         If all entries have the same type, set entry master's type
19         to that common type, otherwise set mixed_entry_master attribute.
20         * trans-types.c (gfc_get_mixed_entry_union): New function.
21         (gfc_get_function_type): Use it for mixed_entry_master functions.
22         * gfortran.h (symbol_attribute): Add mixed_entry_master bit.
23         * decl.c (gfc_match_entry): Set entry->result properly for
24         function ENTRY.
25         * trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over
26         __entry argument.
27         (build_entry_thunks): Handle return values in entry thunks.
28         Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not
29         shared between multiple contexts.
30         (gfc_get_fake_result_decl): Use DECL_ARGUMENTS from
31         current_function_decl instead of sym->backend_decl.  Skip over
32         entry master's entry id argument.  For mixed_entry_master entries or
33         their results, return a COMPONENT_REF of the fake result.
34         (gfc_trans_deferred_vars): Don't warn about missing return value if
35         at least one entry point uses RESULT.
36         (gfc_generate_function_code): For entry master returning
37         CHARACTER, copy ts.cl->backend_decl to all entry result syms.
38         * trans-array.c (gfc_trans_dummy_array_bias): Don't consider return
39         values optional just because they are in entry master.
40
41 2005-04-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
42
43         * gfortran.h (gfc_namespace): Add seen_implicit_none field,
44         Tobias forgot this in previous commit.
45         
46 2005-04-29  Paul Brook   <paul@codesourcery.com>
47
48         * trans-expr.c (gfc_conv_expr_present): Fix broken assert.  Update
49         comment.
50
51 2005-04-29  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
52
53         * gfortran.h (gfc_namespace): Add seen_implicit_none field.
54         * symbol.c (gfc_set_implicit_none): Give error if there's a previous
55         IMPLICIT NONE, set seen_implicit_none.
56         (gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement.
57
58 2005-04-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
59
60         * gfortran.h (gfc_gsymbol): Make name a const char *.
61         * symbol.c (gfc_get_gsymbol): Allocate gsymbol name via
62         gfc_get_string.
63
64 2005-04-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
65
66         PR fortran/20865
67         * resolve.c (resolve_actual_arglist): Issue an error if a statement
68         functions is used as actual argument.
69
70 2005-04-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
71
72         PR fortran/21177
73         * interface.c (compare_parameter): Ignore type for EXPR_NULL
74         only if type is BT_UNKNOWN.
75
76 2005-04-25  Paul Brook  <paul@codesourcery.com>
77         Steven G. Kargl  <kargls@comcast.net>
78
79         PR fortran/20879
80         * check.c (gfc_check_ichar_iachar): New function.
81         * instinsic.h (gfc_check_ichar_iachar): Add prototype.
82         * intrinsic.c (add_functions): Use it.
83         * primary.c (match_varspec, gfc_match_rvalue): Clear incorrect
84         character expression lengths.
85
86 2005-04-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
87
88         PR fortran/20059
89         * trans-common.c (translate_common): Cast offset and
90         common_segment->offset to type int for warning message.
91
92 2005-04-23  DJ Delorie  <dj@redhat.com>
93
94         * trans-decl.c: Adjust warning() callers.
95
96 2005-04-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
97
98         * trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as
99         intermediate representation.  Fix typo in comment.
100
101 2005-04-21  Steven G. Kargl  <kargls@comcast.net>
102
103         * trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation;
104         simplify logic; Add a gcc_assert.
105
106 2005-04-19  Steven G. Kargl  <kargls@comcast.net>
107
108         * trans-const.c (gfc_conv_mpz_to_tree): Fix comment.
109
110 2005-04-19  Arnaud Desitter  <arnaud.desitter@ouce.ox.ac.uk>
111             Steven G. Kargl  <kargls@comcast.net>
112
113         * invoke.texi: Update -Waliasing description
114
115 2005-04-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
116
117         PR fortran/16861
118         * resolve.c (resolve_variable): If e->symtree is not set, this
119         ought to be a FAILURE, and not a segfault.
120
121 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
122
123         PR fortran/17472
124         PR fortran/18209
125         PR fortran/18396
126         PR fortran/19467
127         PR fortran/19657
128         * fortran/trans-io.c (gfc_build_io_library_fndecls): Create
129         declaration for st_set_nml_var and st_set_nml_var_dim. Remove
130         declarations of old namelist functions.
131         (build_dt): Simplified call to transfer_namelist_element.
132         (nml_get_addr_expr): Generates address expression for start of 
133         object data. New function.
134         (nml_full_name): Qualified name for derived type components. New 
135         function.
136         (transfer_namelist_element): Modified for calls to new functions 
137         and improved derived type handling.
138
139 2005-04-17  Richard Guenther  <rguenth@gcc.gnu.org>
140
141         * scanner.c (gfc_next_char_literal): Reset truncation flag
142         for lines ending in a comment for both fixed and free form.
143         (load_line): Do not set truncated flag if only truncating
144         the EOL marker.
145
146 2005-04-15  Richard Guenther  <rguenth@gcc.gnu.org>
147
148         PR fortran/14569
149         * gfortran.h (gfc_linebuf): Add truncated field.
150         * parse.c (next_statement): Handle warning for truncated
151         lines.
152         * scanner.c (load_line): Return if line was truncated.
153         No longer warn for truncated lines.  Remove unused parameters.
154         (load_file): Store load_line return value to linebuf.
155         (gfc_error_recovery): Do not advance line at the end.
156
157 2005-04-14  Steven G. Kargl  <kargls@comcast.net>
158
159         * gfortran.h (gfc_real_info): Add subnormal struct member.
160         * arith.c (gfc_arith_init_1): Set it.
161         (gfc_check_real_range): Use it.
162         * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
163
164 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
165
166         * simplify.c: Fix a comment typo.
167
168 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
169
170         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
171
172 2005-04-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
173
174         * simplify.c (gfc_simplify_nearest): Overhaul.
175
176 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
177
178         * interface.c: Fix a comment typo.
179
180 2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
181
182         * match.c (match_arithmetic_if): Arithmetic IF is obsolete in
183         Fortran 95.
184
185 2005-04-09  Steven G. Kargl  <kargls@comcast.net>
186
187         * simplify.c (gfc_simplify_anint): Use mpfr_round()
188         (gfc_simplify_dnint): ditto.
189         (gfc_simplify_nint): ditto.
190
191 2005-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
192
193         PR fortran/13257
194         * io.c (check_format): Allow an optional comma
195         between descriptors.
196
197 2005-04-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
198
199         * match.c (match_arithmetic_if): Remove gfc_ prefix and correct
200         comment according to GNU coding style.
201         (gfc_match_if): Remove gfc_ prefix in call to
202         match_arithmetic_if.
203
204 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
205
206         * match.c (gfc_match_arithmetic_if): Declare static.
207
208 2005-04-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
209
210         PR fortran/17229
211         * match.c (gfc_match_arithmetic_if): New function to match an
212         arithmetic IF statement.
213         (gfc_match_if): Use gfc_match_arithmetic_if to match an
214         arithmetic IF statement embedded in a simple IF statement.
215
216 2005-04-07  Steven G. Kargl  <kargls@comcast.net>
217
218         * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x))
219
220 2005-04-06  Steven G. Kargl  <kargls@comcast.net>
221
222         * invoke.texi: Remove documentation of -std=f90 
223
224 2005-04-06  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
225
226         * expr.c (gfc_check_assign): Don't allow NULL as rhs in a
227         non-pointer assignment.
228
229 2005-04-05  Feng Wang  <fengwang@nudt.edu.cn>
230
231         PR fortran/15959
232         PR fortran/20713
233
234         * array.c (resolve_character_array_constructor): New function. Set
235         constant character array's character length.
236         (gfc_resolve_array_constructor): Use it.
237         * decl.c (add_init_expr_to_sym): Set symbol and initializer character
238         length.
239         (gfc_set_constant_character_len): New function. Set constant character
240         expression according the given length.
241         * match.h (gfc_set_constant_character_len): Add prototype.
242
243 2005-04-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
244
245         * intrinsic.texi: BES?? functions are not in the f95 standard.
246
247 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
248
249         * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN.
250
251 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
252
253         * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1,
254         BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.
255
256 2005-04-02  Steven G. Kargl  <kargls@comcast.net>
257
258         * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; fix typos
259
260 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
261
262         * decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c,
263         trans.h: Fix comment typos.
264
265 2005-03-29  Steven G. Kargl  <kargls@comcast.net>
266
267         * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
268         flag_default_integer, flag_default_real
269         * invoke.texi: Update documentation
270         * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8   
271         fdefault-integer-8, and fdefault-real-8 definitions.
272         * options.c (gfc_init_options): Set option defaults
273         (gfc_handle_option): Handle command line options.
274         * trans-types.c (gfc_init_kinds): Use options.
275
276 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
277
278         * f95-lang.c (builtin_function): Process the attrs parameter
279         and apply the "const" attribute to the builtin if found.
280
281 2005-03-27  Steven G. Kargl  <kargls@comcast.net>
282
283         * intrinsic.texi: Document AIMAG, AINT, ALL
284
285 2005-03-26  Steven G. Kargl  <kargls@comcast.net>
286
287         * arith.c (check_result): Fix illogical logic.
288
289 2005-03-26  Canqun Yang  <canqun@nudt.edu.cn>
290
291         * trans-common.c (create_common): Build RECORD_NODE for common blocks
292         contain no equivalence objects.
293         (add_equivalences): New argument saw_equiv.
294         (trans_common): New local variable saw_equiv.
295         (finish_equivalences): Add a local variable dummy, Always pass true
296         for the 3rd parameter to create_common.
297
298 2005-03-25  Steven G. Kargl  <kargls@comcast.net>
299
300         * intrinsic.texi: Fix "make dvi"
301
302 2005-03-24  Steven G. Kargl  <kargls@comcast.net>
303
304         * intrinsic.texi: New file.
305         * gfortran.texi: Include it; white space change; fix typo.
306
307 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
308
309         * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
310
311 2005-03-23  Steven Bosscher  <stevenb@suse.de>
312
313         * convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
314         * trans-array.c (gfc_trans_allocate_array_storage,
315         gfc_trans_allocate_temp_array gfc_trans_array_constructor_value,
316         gfc_conv_array_index_ref, gfc_trans_array_bound_check,
317         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
318         gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride,
319         gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds,
320         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
321         gfc_conv_expr_descriptor): Likewise.
322         * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp,
323         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
324         * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound,
325         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign,
326         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
327         gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop,
328         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
329         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc,
330         gfc_conv_intrinsic_merge, prepare_arg_info,
331         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise.
332         * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while,
333         gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs,
334         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
335         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
336         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign):
337         Likewise.
338         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise.
339         * trans.c (gfc_add_modify_expr): Likewise.
340
341 2005-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
342
343         * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
344         gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
345         gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
346         gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
347         gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
348         gfc_check_perror): new functions to check newly implemented
349         g77 intrinsics.
350         * gfortran.h: adding symbols for new intrinsics.
351         * intrinsic.c (add_functions): adding new intrinsics.
352         (add_subroutines): adding new intrinsics.
353         * intrinsic.h: prototype for all checking and resolving
354         functions.
355         * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
356         gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
357         gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
358         gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
359         gfc_resolve_kill_sub, gfc_resolve_link_sub,
360         gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
361         gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
362         gfc_resolve_perror): new functions to resolve intrinsics.
363         * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
364         for new symbols.
365
366 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
367
368         * dump-parse-tree.c (gfc_show_expr): Dump name of namespace
369         in which the variable is declared.
370
371         PR fortran/18525
372         * resolve.c (was_declared): Also check for dummy attribute.
373
374 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
375
376         * gfortran.h (arith): Remove ARITH_0TO0.
377         * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
378         (gfc_arith_power): Remove special casing of zero to integral
379         power zero.
380
381 2005-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
382
383         * Make-lang.in (fortran-warn): Remove -Wno-error.
384         (expr.o-warn, resolve.o-warn, simplify.o-warn,
385         trans-common.o-warn): Specify -Wno-error.
386
387 2005-03-17  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
388
389         * trans-array.c (gfc_trans_static_array_pointer,
390         get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix
391         comment and formatting typos.
392
393 2005-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
394
395         * invoke.texi: Fix typos.
396
397 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
398
399         * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
400
401 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
402
403         * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
404         to zero on label_tree.
405
406 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
407
408         PR fortran/18827
409         * io.c (resolve_tag): Add checking on assigned label.
410         (match_dt_format): Does not set symbol assign attribute.
411         * match.c (gfc_match_goto):Does not set symbol assign attribute.
412         * resolve.c (resolve_code): Add checking on assigned label.
413         * trans-common.c (build_field): Deals with common variable assigned
414         a label.
415         * trans-stmt.c (gfc_conv_label_variable): New function.
416         (gfc_trans_label_assign): Use it.
417         (gfc_trans_goto): Ditto.
418         * trans-io.c (set_string): Ditto.
419         * trans.h (gfc_conv_label_variable): Add prototype.
420
421 2005-03-14  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
422
423         PR fortran/20467
424         * symbol.c (check_conflict): A dummy argument can't be a statement
425         function.
426
427 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
428
429         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
430         the argument of the shift to the unsigned type.
431
432 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
433
434         PR fortran/16907
435         * resolve.c (gfc_resolve_index): Allow REAL indices as an extension.
436
437 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
438
439         PR fortran/20323
440         * resolve.c (gfc_resolve): Check if character lengths are
441         specification expressions.
442
443 2005-03-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
444
445         PR fortran/20361
446         * trans-array.c (gfc_stack_space_left): Remove unused variable.
447         (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
448         code.
449         * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
450         Remove declaration / prototype.
451         * trans-common.c (build_equiv_decl): Give union a name.  Check if
452         it can be put on the stack.
453         * trans-decl.c (gfc_stack_space_left): Move function here.
454         (gfc_build_qualified_array): Fix comment typo.
455         * trans.h (gfc_put_var_on_stack): Add prototype.
456
457 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
458
459         * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
460         * decl.c, trans.c: Don't use C++ style comments.
461         * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access,
462         ifsrc): Give names to enums and use ENUM_BITFIELD.
463         (gfc_access): Remove trailing comma.
464
465 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
466
467         PR 19936
468         * primary.c (match_complex_constant): Mangled complex constant may
469         be an implied do-loop.  Give implied do-loop matcher a chance.
470
471 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
472
473         PR fortran/19754
474         * resolve.c (compare_shapes):  New function.
475         (resolve_operator): Use it.
476
477 2005-03-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
478
479         * trans-const.c (gfc_conv_constant_to_tree): Use correct tree
480         type for COMPLEX constants.
481
482 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
483
484         PR fortran/19673
485         * trans-expr.c (gfc_conv_function_call): Correctly dereference
486         argument from a pointer function also if it has a result clause.
487
488 2005-03-04  Steven G. Kargl  <kargls@comcast.net>
489
490         * expr.c (gfc_copy_shape_excluding): Change && to ||.
491
492 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
493
494         * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
495         clarify comment.
496
497 2005-02-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
498         (port from g95)
499
500         PR fortran/19479
501         * simplify.c (gfc_simplify_bound): Rename to ...
502         (simplify_bound): ... this and overhaul.
503
504 2005-02-28  Steven G. Kargl  <kargl@gcc.gnu.org>
505
506         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
507         (gfc_conv_intrinsic_function): update function calls
508
509 2005-02-27  Steven G. Kargl  <kargl@gcc.gnu.org>
510
511         PR fortran/20058
512         * trans-types.c (gfc_max_integer_kind): Declare
513         (gfc_init_kinds): Initialize it.
514         * gfortran.h (gfc_max_integer_kind): extern it.
515         * primary.c (match_boz_constant): Use it; remove gfortran extension
516         of kind suffixes on BOZ literal constants
517
518
519 2005-02-27  Steven G. Kargl  <kargls@comcast.net>
520
521         * arith.c (gfc_check_real_range):  Remove multiple returns
522         (check_result): New function.
523         (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
524         gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.
525
526
527 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
528
529         * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
530
531
532 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-meunchen.de>
533
534         Unrevert previously reverted patch.  Adding this fix:
535         * module.c (find_true_name): Deal with NULL module.
536
537 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
538
539         Revert yesterday's patch:
540         2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
541
542                 * gfortran.h (gfc_component, gfc_actual_arglist, ...
543                 ... argument.  Copy string instead of pointing to it.
544
545 2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
546
547         * gfortran.h (gfc_get_namespace): Add second argument to prototype.
548         * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
549         gfc_get_namespace.
550         * module.c (mio_namespace_ref, load_needed): Likewise.
551         * parse.c (parse_interface, parse_contained): Likewise.  Here the
552         correct second argument matters.
553         * symbol.c (gfc_get_namespace): Add parent_types argument, only copy
554         parent's implicit types if this is set.
555         (gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
556         * trans-common.c (build_common_decl): Likewise.
557
558         * gfortran.h (symbol_attribute): New 'untyped' field, fix comment
559         formatting.
560         * symbol.c (gfc_set_default_type): Issue error only once, by setting
561         and checking 'untyped' attribute.
562
563         * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
564         fields into new struct 'op' inside the 'value' union.
565         * arith.c (eval_intrinsic): Adapt all users.
566         * dependency.c (gfc_check_dependency): Likewise.
567         * dump-parse-tree.c (gfc_show_expr): Likewise.
568         * expr.c (gfc_get_expr): Don't clear removed fields.
569         (free_expr0, gfc_copy_expr, gfc_type_convert_binary,
570         gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
571         check_intrinsic_op): Adapt to new field names.
572         * interface.c (gfc_extend_expr): Likewise.  Also explicitly
573         nullify 'esym' and 'isym' fields of new function call.
574         * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
575         Adapt to renamed structure fields.
576         * matchexp.c (build_node, match_level_1, match_expr): Likewise.
577         * module.c (mio_expr): Likewise.
578         * resolve.c (resolve_operator): Likewise.
579         (gfc_find_forall_index): Likewise.  Only look through operands
580         if dealing with EXPR_OP
581         * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
582         * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
583         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
584
585         [ Reverted ]
586         * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
587         'name' a 'const char *'.
588         (gfc_symbol): Likewise, also for 'module'.
589         (gfc_symtree): Make 'name' a 'const char *'.
590         (gfc_intrinsic_sym): Likewise, also for 'lib_name'.
591         (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
592         'char *' argument.
593         (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
594         initialize 'SYM->module'.
595         * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
596         pointer instead of empty string.
597         * dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
598         * interface.c (gfc_compare_types): Adapt check to account for possible
599         NULL pointer.
600         (compare_actual_formal): Check for NULL pointer instead of empty
601         string.
602         * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
603         Add 'const' qualifier.
604         (conv_name): Return a heap allocated string.
605         (find_conv): Add 'const' qualifier to 'target'.
606         (add_sym): Use 'gfc_get_string' instead of 'strcpy'.
607         (make_generic): Check for NULL pointer instead of empty string.
608         (make_alias): Use 'gfc_get_string' instead of 'strcpy'.
609         (add_conv): No need to strcpy result from 'conv_name'.
610         (sort_actual): Check for NULL pointer instead of empty  string.
611         * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
612         Adapt prototype.
613         * module.c (compare_true_names): Compare pointers instead of strings
614         for 'module' member.
615         (find_true_name): Initialize string fields with gfc_get_string.
616         (mio_pool_string): New function.
617         (mio_internal_string): Adapt comment.
618         (mio_component_ref, mio_component, mio_actual_arg): Use
619         'mio_pool_string' instead of 'mio_internal_string'.
620         (mio_symbol_interface): Add 'const' qualifier to string arguments.
621         Add level of indirection. Use 'mio_pool_string' instead of
622         'mio_internal_string'.
623         (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
624         (write_common, write_symbol): Use 'mio_pool_string' instead of
625         'mio_internal_string'.
626         (write_symbol0, write_symbol1): Likewise, also check for NULL pointer
627         instead of empty string.
628         (write_operator, write_generic): Pass correct type variable to
629         'mio_symbol_interface'.
630         (write_symtree): Use 'mio_pool_string' instead of
631         'mio_internal_string'.
632         * primary.c (match_keyword_arg): Adapt check to possible
633         case of NULL pointer.  Use 'gfc_get_string' instead of 'strcpy'.
634         * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
635         gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
636         'strcpy'.
637         (ambiguous_symbol): Check for NULL pointer instead of empty string.
638         (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
639         arguments.
640         * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
641         pointer instead of empty string.
642         * trans-decl.c (gfc_sym_mangled_identifier,
643         gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
644         gfc_get_symbol_decl): Likewise.
645         * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
646         argument.  Copy string instead of pointing to it.
647
648 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
649
650         * intrinsic.h, st.c: Update copyright.
651
652 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
653
654         * symbol.c: Typos in comments.
655
656 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
657
658         * expr.c (gfc_type_convert_binary): Typo in comment.
659
660 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
661
662         * check.c (gfc_check_selected_int_kind): New function.
663         * intrinsic.h: Prototype it.
664         * intrinsic.c (add_function): Use it.
665         * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
666           BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
667
668 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
669
670         * check.c (gfc_check_int): improve checking of optional kind
671         * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER
672
673 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
674
675         * check.c (gfc_check_achar): New function
676         * intrinsic.h: Prototype it.
677         * intrinsic.c (add_function): Use it.
678
679 2005-02-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
680
681         * trans-stmt.c (generate_loop_for_temp_to_lhs,
682         generate_loop_for_rhs_to_temp): Remove if whose condition is
683         always true.
684
685 2005-02-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
686
687         * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
688         (gfc_use_derived): ... this function.
689
690 2005-02-09  Richard Henderson  <rth@redhat.com>
691
692         * f95-lang.c (gfc_init_builtin_functions): Call
693         build_common_builtin_nodes; do not define any functions handled
694         by it.
695
696 2005-02-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
697
698         * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for
699         EXPR_SUBSTRING.
700         (gfc_is_constant_expr): Check 'ref' to determine if substring
701         reference is constant.
702         (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'.
703         (check_init_expr, check_restricted): Check 'ref' instead of 'op1'
704         and 'op2'.
705         * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'.
706
707 2005-02-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
708
709         * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save,
710         gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data,
711         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
712         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
713         gfc_add_procedure): Add argument.
714         * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name,
715         gfc_match_null, match_type_spec, match_attr_spec,
716         gfc_match_formal_arglist, match_result, gfc_match_function_decl):
717         Update callers to match.
718         (gfc_match_entry) : Likewise, fix comment typo.
719         (gfc_match_subroutine, attr_decl1, gfc_add_dimension,
720         access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc,
721         gfc_match_derived_decl): Update callers.
722         * interface.c (gfc_match_interface): Likewise.
723         * match.c (gfc_match_label, gfc_add_flavor,
724         gfc_match_call, gfc_match_common, gfc_match_block_data,
725         gfc_match_namelist, gfc_match_module, gfc_match_st_function):
726         Likewise.
727         * parse.c (parse_derived, parse_interface, parse_contained),
728         primary.c (gfc_match_rvalue, gfc_match_variable): Likewise.
729         * resolve.c (resolve_formal_arglist, resolve_entries): Update callers.
730         * symbol.c (check_conflict, check_used): Add new 'name' argument,
731         use when printing error message.
732         (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy,
733         gfc_add_generic, gfc_add_in_common, gfc_add_data,
734         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
735         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
736         gfc_add_procedure): Add new 'name' argument.  Pass along to
737         check_conflict and check_used.
738         (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic,
739         gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental,
740         gfc_add_pure, gfc_add_recursive, gfc_add_intent,
741         gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new
742         argument in calls to any of the modified functions.
743
744 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
745
746         * gfortran.texi: Don't give last update date.
747
748 2006-01-30  Richard Henderson  <rth@redhat.com>
749
750         * options.c (gfc_init_options): Zero flag_errno_math.
751
752 2005-01-29  Paul Brook  <paul@codesourcery.com>
753
754         PR fortran/18565
755         * check.c (real_or_complex_check): New function.
756         (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions.
757         * intrinsic.c (add_functions): Use new check functions.
758         * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc):
759         Add prototypes.
760
761 2005-01-29  Steven G. Kargl  <kargls@comcast.net>
762
763         PR fortran/19589
764         * expr.c (gfc_check_assign):  Check for conformance of logical operands
765
766 2004-01-27  Steven Bosscher  <stevenb@suse.de>
767
768         * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
769         TREE_USED for all labels.
770         (gfc_trans_entry_master_switch): Use it instead of building a
771         label by hand.
772         * trans-io.c (add_case): Likewise.
773         * trans-stmt.c (gfc_trans_integer_select): Likewise.
774
775 2004-01-23  Paul Brook  <paul@codesourcery.com>
776         Steven G. Kargl  <kargls@comcast.net>
777
778         PR fortran/17941
779         * arith.c (gfc_convert_real): Remove sign handling.
780         * primary.c (match_digits): Allow whitespace after initial sign.
781         (match_real_const): Handle signs here.  Allow whitespace after
782         initial sign.  Remove dead code.
783         (match_const_complex_part): Remove.
784         (match_complex_part): Use match_{real,integer}_const.
785         (match_complex_constant): Cross-promote integer types.
786
787 2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
788
789         PR fortran/19294
790         * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
791         transpose_c8 for complex types.
792
793 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
794
795         * data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
796         trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
797         trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
798         Follow spelling conventions.
799
800 2005-01-22  Bud Davis  <bdavis9659@comcast.net>
801
802         PR fortran/19313
803         * trans-io.c (gfc_trans_inquire): Added code to support
804         pad.
805
806 2005-01-22  Steven G. Kargl  <kargls@comcast.net>
807
808         * intrinsic.c (make_alias):  Add standard argument.
809         (add_functions): Update make_alias calls.
810
811 2005-01-22  Paul Brook  <paul@codesourcery.com>
812
813         * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
814
815 2005-01-22  Paul Brook  <paul@codesourcery.com>
816
817         * gfortran.h (gfc_check_access): Add prototype.
818         * match.c (gfc_match_namelist): Remove TODO.
819         * module.c (check_access): Rename ...
820         (gfc_check_access): ... to this.  Boolify.  Update callers.
821         * resolve.c (resolve_symbol): Check for private objects in public
822         namelists.
823
824 2005-01-22  Paul Brook  <paul@codesourcery.com>
825
826         * primary.c (gfc_match_rvalue): Only apply implicit type if variable
827         does not have an explicit type.
828         (gfc_match_variable): Resolve implicit derived types in all cases.
829         Resolve contained function types from their own namespace, not the
830         parent.
831         * resolve.c (resolve_contained_fntype): Remove duplicate sym->result
832         checking.  Resolve from the contained namespace, not the parent.
833
834 2005-01-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
835
836         PR fortran/19543
837         * trans-const.c (gfc_conv_constant_to_tree): Give logical
838         constants the correct type.
839
840         PR fortran/19194
841         * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
842         length parameters.
843         (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
844         pointer fields.
845
846 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
847
848         * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
849         gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
850         match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
851         scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
852         trans-io.c, trans-stmt.c, trans.c: Update copyright.
853
854 2005-01-17  Ira Rosen  <irar@il.ibm.com>
855
856         * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
857
858 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
859
860         PR fortran/19182
861         * error.c (error_char): Line-buffer errors / warnings.
862
863 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
864
865         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
866         unsigned issue.  Use build_int_cst instead of converting
867         integer_zero_node.  Remove unnecessary conversion.
868
869         * trans-types.c (gfc_get_character_type_len): : Use
870         gfc_charlen_type_node as basic type for the range field.
871
872         * trans-intrinsic.c (build_fixbound_expr,
873         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
874         gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
875         gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
876         of converting 'integer_zero_node' or 'integer_one_node'
877         respectively.
878         (gfc_conv_intrinsic_ishftc): Same, but store in local variable to
879         evade re-building.
880         (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
881         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
882         'build_int_cst' instead of converting 'integer_zero_node' or
883         'integer_one_node' respectively.
884
885         * trans-intrinsic.c (gfc_conv_intrinsic_index,
886         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
887         'gfc'-prefix from local variable, remove dead code, use correct
888         type when inserting argument.
889
890         * trans-intrinsic.c, trans-types.c: Update copyright years.
891
892 2005-01-16  Steven G. Kargl  <kargls@comcast.net>
893
894         PR 19168
895         * resolve.c (check_case_overlap): Typo in comment.
896         (validate_case_label_expr):  Fix up kinds of case values
897         (resolve_select): Properly handle kind mismatches.
898
899 2004-01-16  Paul Brook  <paul@codesourcery.com>
900
901         PR fortran/17675
902         * trans-common.c (translate_common): Remove duplicate function call.
903         (finish_equivalences): Preserve alignment when biasing offsets.
904
905 2005-01-15  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de
906
907         * primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
908         ASCII-like character encoding.
909
910 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
911
912         * resolve.c (compare_case): Cleanup.
913
914 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
915
916         * resolve.c (compare_case): Give arguments correct type.
917
918 2005-01-13  Kazu Hirata  <kazu@cs.umass.edu>
919
920         * iresolve.c, trans-common.c, trans-types.c: Fix comment
921         typos.
922
923 2005-01-09  Paul Brook  <paul@codesourcery.com>
924
925         PR fortran/17675
926         * trans-common.c (current_common, current_offset): Remove.
927         (create_common): Add head argument.
928         (align_segment): New function.
929         (apply_segment_offset): New function.
930         (translate_common): Merge code from new_segment.  Handle alignment.
931         (new_segment): Remove.
932         (finish_equivalences): Ensure proper alignment.
933
934 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
935
936         * trans-const.c: Don't include unused math.h.
937
938         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
939         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
940         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
941         trailing whitespace.
942         (prepare_arg_info): Fix formatting, indenting and remove trailing
943         whitespace.
944         (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
945         trailing whitespace.
946
947         * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
948         gfc_constant_result, gfc_range_check, gfc_arith_power,
949         eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
950         gfc_real2complex, gfc_complex2int, gfc_complex2real,
951         gfc_complex2complex): Fix whitespace issues.
952         * check.c (must_be, type_check, numeric_check, int_or_real_check,
953         logical_array_check, array_check, scalar_check, nonoptional_check,
954         variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
955         gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
956         gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
957         gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
958         gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
959         gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
960         gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
961         gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
962         gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
963         gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
964         gfc_check_lbound, gfc_check_logical, min_max_args,
965         gfc_check_min_max_integer, gfc_check_min_max_real,
966         gfc_check_min_max_double, gfc_check_matmul,
967         gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
968         gfc_check_pack, gfc_check_precision, gfc_check_radix,
969         gfc_check_range, gfc_check_real, gfc_check_repeat,
970         gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
971         gfc_check_set_exponent): Fix formatting issues.
972         (gfc_check_size, gfc_check_sign): Alphabetize function order,
973         remove whitespace-only line.
974         (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
975         gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
976         gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
977         gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
978         gfc_check_random_number, gfc_check_random_seed,
979         gfc_check_second_sub, gfc_check_system_clock,
980         gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
981         gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
982         gfc_check_unlink_sub): Fix formatting issues.
983
984 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
985
986         * gfortran.h: Remove outdated comment.  Don't include stdio.h
987         explicitly.
988
989 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
990
991         * gfortranspec.c (lang_specific_driver): Change year to 2005 in
992         output of 'gfortran --version'.
993
994 2005-01-03  Steven G. Kargl  <kargls@comcast.net>
995
996         * arith.c: Add system.h; remove string.h
997         * decl.c: Ditto
998         * matchexp.c: Ditto
999         * parse.c: Ditto
1000         * resolve.c: Ditto
1001         * st.c: Ditto
1002         * check.c: Remove stdlib.h and stdarg.h
1003         * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
1004         * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
1005         * f95-lang.c: Add system.h; remove stdio.h
1006         * interface.c: Add system.h; remove stdlib.h and string.h
1007         * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
1008         * io.c: Remove string.h
1009         * simplify.c: Ditto
1010         * match.c: Remove stdarg.h and string.h
1011         * misc.c: Update copyright; add system.h; remove stdlib.h,
1012         string.h, and sys/stat.h
1013         * module.c: Add system.h; remove string.h, stdio.h, errno.h,
1014         unistd.h, and time.h
1015         * option.c: Remove string.h and stdlib.h
1016         * primary.c: Ditto
1017         * scanner.c: Update copyright; add system.h; remove stdlib.h,
1018         stdio.h, string.h, and strings.h
1019         * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
1020         * trans-array.c: Remove stdio.h and gmp.h
1021         * trans-const.c: Ditto
1022         * trans-expr.c: Ditto
1023         * trans-io.c: Ditto
1024         * trans-stmt.c: Ditto
1025         * trans.c: Ditto
1026         * trans-intrinsic.c: Remove stdio.h and string.h
1027
1028 2004-12-29  Steven G. Kargl  <kargls@comcast.net>
1029
1030         * gfortran.h (gfc_case): fix typo in comment.
1031
1032 2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1033
1034         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
1035         logical shift.  Call fold.  Remove 0-bit shift shortcut.
1036         (gfc_conv_intrinsic_ishftc): Convert first argument to at least
1037         4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
1038         result if width(arg 1) < 4 bytes.  Call fold.
1039
1040         PR fortran/19032
1041         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
1042         in front of function to match the standard.  Correct handling
1043         of MODULO.
1044
1045 2004-12-27  Andrew Pinski  <pinskia@physics.uc.edu>
1046
1047         * trans-expr.c (gfc_conv_cst_int_power): Only check for
1048         flag_unsafe_math_optimizations if we have a float type.
1049
1050 2004-12-23  Steven G. Kargl  <kargls@comcast.net>
1051
1052         * gfortran.texi: Fix typo.
1053
1054 2004-12-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1055
1056         * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
1057         comment typo.
1058
1059 2004-12-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1060
1061         PR fortran/18993
1062         * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
1063         (gfc_match_nullify): Make sure that ')' is in front of the end of
1064         statement.
1065
1066         * scanner.c (skip_fixed_comments): Fix typo in comment preceding
1067         function.
1068
1069 2004-12-14  Richard Henderson  <rth@redhat.com>
1070
1071         * gfortran.h (gfc_expr.function.name): Make const.
1072         (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
1073         (gfc_get_string): Update prototype.
1074         * iresolve.c: Include tree.h.
1075         (string_node, HASH_SIZE, string_head, hash): Remove.
1076         (gfc_get_string): Use vsnprintf, get_identifier.
1077         (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
1078         * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
1079         (gfc_done_1): Don't call gfc_iresolve_done_1.
1080         * module.c (mio_allocated_string): Take and return const char *,
1081         instead of modifying char**.
1082         (mio_expr): Update to match.
1083         * resolve.c (pure_function): Constify name argument.
1084         (resolve_function): Constify name.
1085         * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
1086
1087 2004-12-12  Richard Henderson  <rth@redhat.com>
1088
1089         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
1090         gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
1091         gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
1092         gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
1093         gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
1094         gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
1095         gfc_resolve_unpack: Use PREFIX.
1096
1097 2004-12-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1098
1099         PR fortran/18869
1100         * match.c (gfc_match_common): Skip whitespace.
1101
1102 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
1103
1104         PR fortran/16581
1105         * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
1106         gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
1107         integer kind check; Issue error for -std=f95 when needed.
1108         * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
1109         GFC_STD_F95.
1110         * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
1111         Promote arguments to same kind.
1112
1113 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
1114         Paul Brook  <paul@codesourcery.com>
1115
1116         PR fortran/16222
1117         * resolve.c (gfc_resolve_iterator_expr): New function.
1118         (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
1119         start, end and stride to correct type.
1120         (resolve_code): Pass extra argument.
1121         * array.c (resolve_array_list): Pass extra argument.
1122         * gfortran.h (gfc_resolve): Add prototype.
1123         * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
1124         Handle real type iterators.
1125
1126 2004-12-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1127
1128         PR fortran/17175
1129         * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
1130         same kind as C's 'int'.
1131         (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
1132
1133 2004-12-08  Richard Henderson  <rth@redhat.com>
1134
1135         * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
1136         to the output expression.
1137         * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
1138         warning conversion.
1139         (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
1140         to index kind.
1141
1142 2004-12-08  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1143
1144         PR fortran/18826
1145         * resolve.c (resolve_code): Impose correct restrictions on
1146         assigned variable.
1147
1148         * decl.c (gfc_match_end): Use locus of END when eos is an error.
1149
1150 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
1151         Paul Brook  <paul@codesourcery.com>
1152
1153         * check.c (gfc_check_flush, gfc_check_fnum): New functions.
1154         (gfc_check_fstat, gfc_check_fstat_sub): New functions.
1155         (gfc_check_stat, gfc_check_stat_sub): New functions.
1156         * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
1157         * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
1158         fstat, and stat to intrinsics symbol tables.
1159         * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
1160         (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
1161         * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
1162         (gfc_resolve_stat, gfc_resolve_flush): New functions.
1163         (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
1164         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
1165
1166 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
1167
1168         * intrinsic.c: Fix and add comments, fix function declarations
1169         (OPTIONAL,REQUIRED): New symbols
1170         (add_functions,add_subroutines): Use symbols
1171         (gmp.h): Remove unused include
1172
1173 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1174
1175         * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
1176         in diagnostics.
1177
1178 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1179
1180         * options.c (gfc_post_options): Don't clear flag_inline_functions.
1181
1182 2004-11-20  Steven G. Kargl  <kargls@comcast.net>
1183
1184         * check.c (gfc_check_getcwd_sub): Fix seg fault.
1185
1186         * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
1187         gfc_check_unlink,gfc_check_unlink_sub): New functions
1188         * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
1189         * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
1190         exit to intrinsics symbol tables.
1191         * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
1192         gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
1193         gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
1194         gfc_resolve_unlink_sub): Add and sort prototypes.
1195         * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
1196         gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
1197         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
1198
1199 2004-11-16  Paul Brook  <paul@codesourcery.com>
1200
1201         PR fortran/13010
1202         * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
1203         (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
1204         * trans-types.c (gfc_get_dtype): Accept array type rather than element
1205         type.
1206         (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
1207         (gfc_get_array_type_bounds): Ditto.
1208         (gfc_get_derived_type): Recurse into derived type pointers.
1209         * trans-types.h (gfc_get_dtype): Add prototype.
1210         * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
1211
1212 2004-11-15  Paul Brook  <paul@codesourcery.com>
1213
1214         * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
1215
1216 2004-11-10  Paul Brook  <paul@codesourcery.com>
1217
1218         PR fortran/18375
1219         * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
1220         * trans-io.c (transfer_array_component): Ditto.
1221
1222 2004-11-10  Paul Brook  <paul@codesourcery.com>
1223
1224         * invoke.texi: Fix typo.
1225
1226 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1227
1228         * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
1229         gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
1230         module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
1231         trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
1232         trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
1233
1234 2004-11-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1235
1236         PR fortran/18023
1237         * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
1238
1239 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1240
1241         * gfortranspec.c: Replace GNU CC with GCC.
1242
1243 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1244
1245         * gfortranspec.c (lang_specific_driver): Change year to 2004.
1246
1247 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1248
1249         PR fortran/18111
1250         *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
1251         hidden parameters.
1252
1253 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1254
1255         PR fortran/15164
1256         * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
1257         module procedures as if they were module variables.
1258
1259 2004-11-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1260
1261         PR fortran/17535
1262         PR fortran/17583
1263         PR fortran/17713
1264         * module.c (write_symbol1): Set module_name for dummy arguments.
1265
1266 2004-11-02  Paul Brook  <paul@codesourcery.com>
1267
1268         * intrinsic.c (check_intrinsic_standard): Include error locus.
1269         Remove VLA.
1270         (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
1271         locus to check_intrinsic_standard.
1272
1273 2004-10-31  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1274
1275         PR fortran/17590
1276         * gfortran.h: Change GFC_STD_* flags to more appropriate
1277         ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
1278         gfc_option_t): Add field for warning about use of nonstandard
1279         intrinsics.
1280         * intrinsic.c (add_sym): Add parameter for standard version, check
1281         this against current standard.
1282         (add_sym_0): Pass standard parameter to add_sym.
1283         (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
1284         (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
1285         (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
1286         (make_generic): Add parameter for standard, check this
1287         against currently selected standard.
1288         (add_functions, add_subroutines): Add parameter to tell which
1289         standard an intrinsic belongs to.
1290         (check_intrinsic_standard): New function.
1291         (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
1292         (gfc_intrinsic_sub_interface): Ditto.
1293         * lang.opt: Add Wnonstd-intrinsics option.
1294         * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
1295         init new warning.
1296         (set_Wall): Add warning about nonstd intrinsics.
1297         (gfc_handle_option): Change to use new GFC_STD_* flags,
1298         handle new warning.
1299         * invoke.texi: Update manual to include -Wnonstd-intrinsics.
1300
1301 2004-10-30  Andrew Pinski  <pinskia@physics.uc.edu>
1302
1303         * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
1304
1305 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1306
1307         * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
1308
1309 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1310
1311         * trans.c (gfc_trans_code): Set global locus after recursing. Fix
1312         comment typo.
1313
1314 2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>
1315
1316         * check.c (gfc_check_rand): Allow missing optional argument.
1317         (gfc_check_irand): Ditto.
1318         * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
1319
1320 2004-10-28  Scott Robert Ladd  <scott.ladd@coyotegulch.com>
1321
1322         PR fortran/13490, PR fortran/17912
1323         * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
1324         * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
1325         * gcc/fortran/arith.c: Added support for an "asymmetric integer"
1326         warning when compiling with pedantic.
1327         * gcc/fortran/arith.c: Set minimum integer values to reflect
1328         realities of two's complement signed integers. Added
1329         pedantic minimum.
1330
1331 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1332
1333         * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
1334         (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
1335         link it in.
1336
1337 2004-10-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1338
1339         * trans-decl.c (generate_local_decl): Simplify logic, fix comment
1340         typo.
1341         (gfc_generate_function_code): Fix formatting issue.
1342
1343 2004-10-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1344
1345         * module.c: Fix formatting issues.
1346
1347 2004-10-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1348
1349         * module.c (mio_interface_rest): Set where member of interface
1350         while loading.
1351
1352 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1353
1354         PR fortran/17901
1355         * options.c (gfc_handle_option): Add break after handing the
1356         J/M option.
1357
1358 2004-10-08  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
1359
1360         * arith.c: Fix formatting issues.
1361
1362 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1363
1364         PR fortran/17676
1365         * resolve.c (resolve_operator): Use correct operator name in message.
1366
1367 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1368
1369         * primary.c (match_boz_constant): Allow kind parameter suffixes.
1370         Move standard warning further to the front.
1371
1372 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1373
1374         * trans-stmt.c: Fix a comment typo.
1375
1376 2004-10-07  Paul Brook  <paul@codesourcery.com>
1377
1378         PR fortran/17678
1379         * trans-array.c (gfc_trans_deferred_array): Leave use associated
1380         variables alone.
1381
1382 2004-10-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1383
1384         PR fortran/17568
1385         * simplify.c (twos_complement): New function.
1386         (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
1387
1388         * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
1389
1390 2004-10-06  Paul Brook  <paul@codesourcery.com>
1391
1392         * trans-stmt.c (gfc_trans_simple_do): New function.
1393         (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
1394         loop.  Update comments.
1395
1396 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1397
1398         PR fortran/17283
1399         * iresolve.c (gfc_resolve_pack): Choose function depending if mask
1400         is scalar.
1401
1402         PR fortran/17631
1403         * intrinsic.c (add_sym_5): Remove.
1404         (add_subroutines): Add resolution function for MVBITS.
1405         * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
1406         MVBITS
1407         * iresolve.c (gfc_resolve_mvbits): New function.
1408         (gfc_resolve_random_number): Remove empty line at end of function.
1409
1410         * trans-const.c (gfc_build_cstring_const): New function.
1411         (gfc_init_cst): Use new function.
1412         * trans-const.h (gfc_build_cstring_const): Add prototype.
1413         * trans-io.c (set_string, set_error_locus): Use new function.
1414         * trans-stmt.c (gfc_trans_goto): Use new function.
1415
1416         PR fortran/17708
1417         * parse.c (accept_statement): Don't treat END DO like END IF and
1418         END SELECT.
1419         (parse_do_block): Generate possible END DO label inside END DO
1420         block.
1421
1422         PR fortran/17776
1423         * check.c (gfc_check_system_sub): New function.
1424         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
1425         * intrinsic.c (add_functions): Add 'system'.
1426         (add_subroutines): Add 'system'.
1427         * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
1428         Move prototypes to other suborutines.
1429         (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
1430         Add prototype.
1431         (gfc_resolve_system_clock): Fix formatting of prototype.
1432         * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
1433         functions.
1434         * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
1435         GFC_ISYM_SYSTEM.
1436
1437 2004-10-04  Erik Schnetter  <schnetter@aei.mpg.de>
1438
1439         * scanner.c (preprocessor_line): Accept preprocessor lines without
1440         file names.  Check file names for closing quotes.  Handle escaped
1441         quotes in file names.
1442
1443 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1444         Paul Brook  <paul@codesourcery.com>
1445
1446         * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
1447         Use gfc_get_expr_charlen.
1448         * trans-expr.c (gfc_get_expr_charlen): New function.
1449         * trans.h (gfc_get_expr_charlen): Add prototype.
1450
1451 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
1452
1453         * trans-intrinsic.c: Fix a comment typo.
1454
1455 2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1456
1457         * simplify.c (range_check): Remove blank line at beginning of function.
1458         (gfc_simplify_dint): Same at end of function.
1459         (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
1460         (gfc_simplify_bound): Fix indentation.
1461         (gfc_simplify_log10): Simplify calculation.
1462         (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
1463         of function.
1464         (gfc_simplify_nearest): Same at end of function.
1465         (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
1466         function.
1467         (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
1468         gfc_simplify_spacing): Simplify calulations.
1469
1470 2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>
1471
1472         * trans-intrinsic.c: Fix comments on spacing and rrspacing
1473         (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
1474
1475 2004-10-01  Jan Hubicka  <jh@suse.cz>
1476
1477         * f95-lang.c (gfc_expand_function): Update call of
1478         tree_rest_of_compilation.
1479         * trans-decl.c (gfc_generate_constructors): Likewise.
1480
1481 2004-09-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1482
1483         * trans-intrinsic.c: Comment fixes.
1484
1485 2004-09-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1486
1487         * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
1488
1489 2004-09-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1490
1491         * trans-types.c (gfc_return_by_reference): Remove superfluous
1492         assertion.
1493
1494         * intrinsic.h (gfc_resolve_getcwd): Update prototype.
1495         * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
1496
1497         PR fortran/17615
1498         * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
1499         function to determine return type.
1500
1501 2004-09-20  Jan Hubicka  <jh@suse.cz>
1502
1503         * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
1504         tree.
1505         (gfc_generate_function_code): Likewise.
1506
1507 2004-09-20  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1508
1509         PR fortran/15957
1510         * simplify.c (gfc_simplify_reshape): Set shape of return value
1511         correctly.
1512
1513 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
1514             Zack Weinberg  <zack@codesourcery.com>
1515
1516         * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
1517         enumeration constants.
1518
1519 2004-09-17  Paul Brook  <paul@codesourcery.com>
1520
1521         * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
1522         (gfc_linebuf_header_size): Define.
1523         * scanner.c (load_file): Use it.
1524
1525 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
1526
1527         * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
1528         interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
1529         resolve.c, scanner.c, trans-array.c, trans-array.h,
1530         trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
1531         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
1532         trans.h: Fix comment typos.  Follow spelling conventions.
1533
1534 2004-09-16  Victor Leikehman  <lei@il.ibm.com>
1535
1536         PR/15364
1537         * trans-io.c (transfer_array_component): New function.
1538         (transfer_expr): For array fields, call transfer_array_component.
1539
1540 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
1541
1542         * gfortran.texi: Fix a typo.
1543
1544 2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1545
1546         * parse.c (eof_buf): Rename eof to eof_buf.
1547         (unexpected_eof): Same.
1548         (gfc_parse_file): Same.
1549
1550 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
1551
1552         * check.c (gfc_check_getcwd_sub): New function.
1553         * gfortran.h (GFC_ISYM_GETCWD): New symbol.
1554         * intrinsic.c (add_functions): Add function definition;
1555         Use symbol.
1556         * intrinsic.c (add_subroutines): Add subroutine definitions.
1557         * intrinsic.h: Add prototypes.
1558         * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
1559         New functions.
1560         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
1561
1562 2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1563
1564         PR fortran/16485
1565         * module.c (write_symbol): Don't fill in module name here.
1566         (write_symbol0): Fill in here instead.
1567
1568 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
1569
1570         * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
1571         trans-array.c, trans-common.c, trans-expr.c,
1572         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
1573         comment typos.  Follow spelling conventions.
1574
1575 2004-09-09  Paul Brook  <paul@codesourcery.com>
1576
1577         * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
1578
1579 2004-09-08  Paul Brook  <paul@codesourcery.com>
1580
1581         * array.c: Don't include assert.h.
1582         * data.c: Don't include assert.h.  Replace assert and abort with
1583         gcc_assert and gcc_unreachable.
1584         * dependency.c: Ditto.
1585         * f95-lang.c: Ditto.
1586         * iresolve.c: Ditto.
1587         * resolve.c: Ditto.
1588         * simplify.c: Ditto.
1589         * symbol.c: Ditto.
1590         * trans-array.c: Ditto.
1591         * trans-common.c: Ditto.
1592         * trans-const.c: Ditto.
1593         * trans-decl.c: Ditto.
1594         * trans-expr.c: Ditto.
1595         * trans-intrinsic.c: Ditto.
1596         * trans-io.c: Ditto.
1597         * trans-stmt.c: Ditto.
1598         * trans-types.c: Ditto.
1599         * trans.c: Ditto.
1600
1601 2004-09-07  Per Bothner  <per@bothner.com>
1602         Paul Brook  <paul@codesourcery.com>
1603
1604         * error.c (show_locus): Handle mapped locations.
1605         * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
1606         * gfortran.h: Include input.h.
1607         (struct gfc_linebuf): Use source_location.
1608         * scanner.c (get_file): Initialize linemap.
1609         (preprocessor_line): Pass extra argument to get_file.
1610         (load_file): Ditto.  Setup linemap.
1611         (gfc_new_file): Handle mapped locations.
1612         * trans-common.c (build_field, build_equiv_decl, build_common_decl):
1613         Set decl source locations.
1614         (gfc_trans_common): Set blank common block location.
1615         * trans-decl.c (gfc_set_decl_location): New function.
1616         (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
1617         (trans_function_start): Move call to gfc_set_backend_locus..
1618         (build_function_decl): ... to here.
1619         (build_entry_thunks): Set and restore the backend locus.
1620         (gfc_generate_constructors): Remove excess arguments to
1621         init_function_start.
1622         (gfc_generate_block_data): Add comments.  Set the decl locus.
1623         * trans-io.c (set_error_locus): Handle mapped locations.
1624         * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
1625         (gfc_trans_code): Use SET_EXPR_LOCATION.
1626         (gfc_generate_code): Override the location of the new symbol.
1627         * trans.h (gfc_set_decl_location): Add prototype.
1628
1629 2004-08-31  Paul Brook  <paul@codesourcery.com>
1630
1631         * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
1632
1633 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1634
1635         PR fortran/15327
1636         * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
1637         strings.
1638
1639 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1640
1641         PR fortran/16400
1642         PR fortran/16404
1643         (port from g95)
1644         * resolve.c (resolve_transfer): New function.
1645         (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
1646
1647 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1648
1649         PR fortran/16579
1650         * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
1651         unsigned char.
1652
1653 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1654
1655         * CONTRIB, NEWS, README, TODO: Remove obsolete files.
1656
1657 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1658
1659         PR fortran/17244
1660         * trans-types.c (gfc_return_by_reference): Remove TODO error,
1661         add comment pointing out possible issue WRT compatibility with g77.
1662
1663 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1664
1665         * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
1666         all occurences of 'gfc_strlen_type_node' by
1667         'gfc_charlen_type_node'.
1668         * trans-types.h: Same. Also update comment accordingly.
1669
1670 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1671
1672         * primary.c: Update copyright boilerplate to say GCC.
1673         * f95-lang.c: Change initial comment to say gfortran.
1674
1675 2004-08-31  Paul Brook  <paul@codesourcery.com>
1676
1677         * trans-types.h: Add comments.
1678         (intmax_type_node, string_type_node, const_string_type_node): Remove.
1679
1680 2004-08-30  Richard Henderson  <rth@redhat.com>
1681
1682         * Make-lang.in (fortran/f95-lang.o): Update dependencies.
1683         (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
1684         * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
1685         c_long, c_long_long.
1686         (gfc_logical_info): Add c_bool.
1687         (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
1688         * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
1689         rather than gfc_int[48]_type_node for allocate choice.
1690         * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
1691         local copies of some kind type nodes.
1692         (gfc_build_builtin_function_decls): Likewise.
1693         * trans-expr.c (gfc_conv_power_op): Likewise.
1694         * trans-intrinsic.c (gfc_conv_intrinsic_index,
1695         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
1696         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
1697         * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
1698         gfc_trans_character_select, gfc_trans_allocate): Likewise.
1699         * trans-io.c (gfc_pint4_type_node): Move into ...
1700         (gfc_build_io_library_fndecls): ... here.  Cache local copies of
1701         some kind type nodes.
1702         * trans-types.c (gfc_type_nodes): Remove.
1703         (gfc_character1_type_node, gfc_strlen_type_node): New.
1704         (gfc_integer_types, gfc_logical_types): New.
1705         (gfc_real_types, gfc_complex_types): New.
1706         (gfc_init_kinds): Fill in real mode_precision.
1707         (gfc_build_int_type, gfc_build_real_type): New.
1708         (gfc_build_complex_type, gfc_build_logical_type): New.
1709         (c_size_t_size): New.
1710         (gfc_init_types): Loop over kinds.
1711         (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
1712         (gfc_get_complex_type, gfc_get_logical_type): Likewise.
1713         (gfc_get_character_type_len): Likewise.
1714         (gfc_type_for_size): Loop over kinds; use a reduced set of
1715         unsigned type nodes.
1716         (gfc_type_for_mode): Loop over kinds.
1717         (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
1718         (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
1719         * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
1720         F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
1721         F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
1722         F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
1723         F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
1724         F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
1725         gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
1726         gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
1727         gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
1728         gfc_complex8_type_node, gfc_complex16_type_node,
1729         gfc_logical1_type_node, gfc_logical2_type_node,
1730         gfc_logical4_type_node, gfc_logical8_type_node,
1731         gfc_logical16_type_node, gfc_strlen_kind): Remove.
1732         (gfc_character1_type_node): Turn in to a variable.
1733         (gfc_strlen_type_node): Likewise.
1734
1735 2004-08-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1736
1737         * gfortran.h (gfc_namespace): Add new field is_block_data.
1738         * parse.c (accept_statement): Remove special handling for BLOCK DATA.
1739         (parse_block_data): Record BLOCK DATA name, set is_block_data field.
1740         * trans.c (gfc_generate_code): Handle BLOCK DATA units.
1741         * trans.h (gfc_generate_block_data): Add prototype.
1742         * trans-decl.c (gfc_generate_block_data): New function.
1743
1744 2004-08-29  Richard Henderson  <rth@redhat.com>
1745
1746         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
1747         * trans-types.c (gfc_init_kinds): Reject integer kinds larger
1748         than two HOST_WIDE_INT.
1749
1750 2004-08-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1751
1752         PR fortran/13910
1753         * decl.c (free_variable, free_value, gfc_free_data, var_list,
1754         var_element, top_var_list, match_data_constant, top_val_list,
1755         gfc_match_data): Move here from match.c.
1756         (match_old_style_init): New function.
1757         (variable_decl): Match old-style initialization.
1758         * expr.c (gfc_get_variable_expr): New function.
1759         * gfortran.h (gfc_get_variable_expr): Add prototype.
1760         * gfortran.texi: Start documentation for supported extensions.
1761         * match.c: Remove the functions moved to decl.c.
1762         * match.h (gfc_match_data): Move prototype to under decl.c.
1763         * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
1764         comments.
1765
1766 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
1767         Paul Brook  <paul@codesourcery.com>
1768
1769         * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
1770         * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
1771         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
1772         (build_builtin_fntypes): New function.
1773         (gfc_init_builtin_functions): Use it.
1774         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
1775         and GFC_ISYM_ERF{,C}.
1776         (gfc_c_int_kind): Declare.
1777         * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
1778         * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
1779         gfc_resolve_g77_math1): Add prototypes.
1780         * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
1781         * mathbuiltins.def: Add comment.  Change third argument.  Use
1782         DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
1783         * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
1784         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
1785         * trans-types.c (gfc_c_int_kind): Declare.
1786         (gfc_init_kinds): Set it.
1787
1788 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
1789         Paul Brook  <paul@codesourcery.com>
1790
1791         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
1792         (gfc_check_f, gfc_simplify_f): Add f0.
1793         * intrinsic.c (do_check): Call f0.  Flatten.
1794         (add_sym_0): Fix prototype.  Set f0.
1795         (add_functions): Add getgid, getgid and getuid.
1796         (resolve_intrinsic): Remove obsolete comment.
1797         (do_simplify): Call f0.
1798         * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
1799         gfc_resolve_getuid): Add prototypes.
1800         * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
1801         gfc_resolve_getuid): New functions.
1802         * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
1803         GFC_ISYM_GET?ID.
1804
1805 2004-08-28  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1806
1807         * error.c (gfc_error_init_1): Remove blank line in front of
1808         function body. Add missing blank.
1809         (gfc_buffer_error, error_char, error_string): Remove blank line in
1810         front of function body.
1811         (show_locus): Add comma in comment.
1812         (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
1813         gfc_push_error, gfc_pop_error): Remove blank line in front of
1814         function body.
1815         (gfc_get_errors): Typo fix in comment in front of function. Remove
1816         blank line in front of function body.
1817
1818 2004-08-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1819
1820         * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
1821         variable declaration of same name.
1822         * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
1823         intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
1824         resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
1825         Replace all calls to gfc_default_*_kind with variable accesses.
1826         * trans-types.c: Same as above.
1827         (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
1828         static qualifier. Replace all occurences.
1829         (gfc_default_*_kind): Remove functions.
1830
1831 2004-08-26  Richard Henderson  <rth@redhat.com>
1832
1833         * arith.c: Include system.h, not real system headers.
1834         (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
1835         DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
1836         GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
1837         GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
1838         (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
1839         gfc_index_integer_kind, gfc_default_integer_kind,
1840         gfc_default_real_kind,gfc_default_double_kind,
1841         gfc_default_character_kind, gfc_default_logical_kind,
1842         gfc_default_complex_kind, validate_integer, validate_real,
1843         validate_logical, validate_character,
1844         gfc_validate_kind): Move to trans-types.c.
1845         (gfc_set_model_kind): Use gfc_validate_kind.
1846         (gfc_set_model): Just copy the current precision to default.
1847         (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
1848         * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
1849         * gfortran.h: Update file commentary.
1850         * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
1851         (gfc_default_integer_kind_1, gfc_default_real_kind_1,
1852         gfc_default_double_kind_1, gfc_default_character_kind_1,
1853         gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
1854         (gfc_init_kinds): New.
1855         (gfc_init_types): Don't set gfc_index_integer_kind here.
1856         * trans-types.h (gfc_init_kinds): Declare.
1857         * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
1858
1859 2004-08-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1860
1861         * check.c (gfc_check_atan2): New function.
1862         * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
1863         * intrinsic.h (gfc_check_atan2): Add prototype.
1864
1865 2004-08-25  Richard Henderson  <rth@redhat.com>
1866
1867         * arith.c (gfc_validate_kind): Add may_fail argument; abort if
1868         false and we don't validate the kind.
1869         (gfc_check_integer_range, gfc_check_real_range): Update to match.
1870         * check.c (kind_check): Likewise.
1871         * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
1872         (match_char_spec, match_logical_spec): Likewise.
1873         * gfortran.h (gfc_validate_kind): Likewise.
1874         * options.c (gfc_handle_option): Likewise.
1875         * primary.c (match_integer_constant, match_real_constant,
1876         match_string_constant, match_logical_constant,
1877         match_const_complex_part): Likewise.
1878         * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
1879         gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
1880         gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
1881         gfc_simplify_maxexponent, gfc_simplify_minexponent,
1882         gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
1883         gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
1884         gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
1885         gfc_simplify_tiny): Likewise.
1886         * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
1887         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
1888         prepare_arg_info): Likewise.
1889
1890 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1891
1892         * expr.c (gfc_check_assign): Add comment. Add new warning.
1893         * trans-expr.c (gfc_conv_function_call): Correctly dereference
1894         result of pointer valued function when not in pointer assignment.
1895
1896 2004-08-25  Paul Brook  <paul@codesourcery.com>
1897
1898         * config-lang.in: Remove dead commented line.
1899         * module.c: Replace g95 with gfortran in comment.
1900
1901 2004-08-25  Paul Brook  <paul@codesourcery.com>
1902
1903         PR fortran/17190
1904         * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
1905
1906 2004-08-25  Paul Brook  <paul@codesourcery.com>
1907
1908         PR fortran/17144
1909         * trans-array.c (gfc_trans_allocate_temp_array): Remove
1910         string_length argument.
1911         (gfc_trans_array_ctor_element): New function.
1912         (gfc_trans_array_constructor_subarray): Use it.
1913         (gfc_trans_array_constructor_value): Ditto.  Handle constant
1914         character arrays.
1915         (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
1916         (gfc_trans_array_constructor): Use them.
1917         (gfc_add_loop_ss_code): Update to new gfc_ss layout.
1918         (gfc_conv_ss_descriptor): Remember section string length.
1919         (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
1920         (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
1921         (gfc_conv_expr_descriptor): Ditto.
1922         (gfc_conv_loop_setup): Ditto.  Spelling fixes.
1923         * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
1924         * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
1925         * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
1926         (gfc_conv_variable): Set string_length from section.
1927         (gfc_conv_function_call): Remove extra argument.
1928         (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
1929         * trans-types.c (gfc_get_character_type_len): New function.
1930         (gfc_get_character_type): Use it.
1931         (gfc_get_dtype): Return zero for internal types.
1932         * trans-types.h (gfc_get_character_type_len): Add prototype.
1933         * trans.h (struct gfc_ss): Move string_length out of union.
1934
1935 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1936
1937         * trans.h (build2_v, build3_v): New macros.
1938         (build_v): Remove.
1939         * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
1940         build.
1941         * trans-array.c (gfc_conv_descriptor_data,
1942         gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
1943         gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
1944         gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
1945         gfc_trans_allocate_temp_array,
1946         gfc_trans_array_constructor_subarray,
1947         gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
1948         gfc_trans_array_bound_check, gfc_conv_array_index_offset,
1949         gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
1950         gfc_conv_array_ref, gfc_trans_preloop_setup,
1951         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
1952         gfc_conv_loop_setup, gfc_array_init_size,
1953         gfc_conv_array_initializer, gfc_trans_array_bounds,
1954         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
1955         gfc_conv_expr_descriptor, gfc_conv_array_parameter,
1956         gfc_trans_deferred_array): Use buildN and buildN_v macros instead
1957         of build and build_v as appropriate.
1958         * trans-common.c (create_common): Same.
1959         * trans-decl.c (gfc_trans_auto_character_variable,
1960         gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
1961         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
1962         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
1963         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
1964         gfc_conv_expr_op, gfc_conv_function_call,
1965         gfc_trans_structure_assign): Same.
1966         * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
1967         gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
1968         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
1969         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
1970         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
1971         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
1972         gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
1973         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
1974         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
1975         gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
1976         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
1977         gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
1978         gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
1979         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
1980         gfc_conv_intrinsic_iargc): Same.
1981         * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
1982         set_flag, add_case, io_result, transfer_namelist_element,
1983         transfer_expr): Same.
1984         * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
1985         gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
1986         gfc_trans_integer_select, gfc_trans_logical_select,
1987         gfc_trans_character_select, gfc_trans_forall_loop,
1988         gfc_trans_nested_forall_loop, gfc_do_allocate,
1989         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
1990         compute_inner_temp_size, compute_overall_iter_number,
1991         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
1992         gfc_trans_forall_1, gfc_evaluate_where_mask,
1993         gfc_trans_where_assign, gfc_trans_allocate): Same.
1994         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
1995         * trans.c (gfc_add_modify_expr, gfc_finish_block,
1996         gfc_build_array_ref, gfc_build_function_call,
1997         gfc_trans_runtime_check): Same.
1998
1999 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2000
2001         * trans-const.c (gfc_conv_mpz_to_tree): Change call to
2002         build_int_cst to build_int_cst_wide in accordance to Nathan's
2003         previous patch.
2004
2005 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
2006
2007         * trans-array.c (gfc_trans_array_constructor_value): Adjust
2008         build_int_cst calls.
2009         * trans-const.c (gfc_build_string_const, gfc_init_constants,
2010         gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
2011         * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
2012         gfc_trans_entry_master_switch): Likewise.
2013         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
2014         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
2015         * trans-io.c (add_case, set_error_locus,
2016         transfer_namelist_element, transfer_expr): Likewise.
2017         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
2018         gfc_trans_stop, gfc_trans_character_select): Likewise.
2019         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
2020         * trans.c (gfc_trans_runtime_check): Likewise.
2021
2022 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2023
2024         * trans-decl.c, trans-types.c: Add and remove blank lines as
2025         required.
2026
2027 2004-08-24  Richard Henderson  <rth@redhat.com>
2028
2029         * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
2030
2031 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2032
2033         * resolve.c (merge_argument_lists): Revert unintentionally
2034         committed change.
2035
2036 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2037
2038         * trans-decl.c (build_function_decl): Fix spelling in comment.
2039         (build_entry_thunks): Remove code with no function.
2040         (gfc_build_intrinsic_function_decls): Remove empty line.
2041
2042         * resolve.c (resolve_entries): Fix a bunch of comment typos.
2043
2044 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
2045
2046         * f95-lang.c (gfc_init_decl_processing): Adjust
2047         build_common_tree_nodes call.
2048
2049 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2050
2051         * trans-types.c: Spelling and formatting fixes.
2052
2053 2004-08-23  Richard Henderson  <rth@redhat.com>
2054
2055         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
2056         of going through an intermediate string.  Fix 32/64 int/long bug.
2057
2058 2004-08-23  Eric Christopher  <echristo@redhat.com>
2059
2060         * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
2061         usage. Use build_vector_type_for_mode for vector types.
2062
2063 2004-08-22  Richard Henderson  <rth@redhat.com>
2064
2065         PR 13465
2066         * data.c (find_con_by_offset): Search ordered list; handle
2067         elements with repeat counts.
2068         (gfc_assign_data_value_range): New.
2069         * gfortran.h (struct gfc_data_value): Make repeat unsigned.
2070         (gfc_assign_data_value_range): Declare.
2071         * match.c (top_val_list): Extract repeat count into a temporary.
2072         * resolve.c (values): Make left unsigned.
2073         (next_data_value): Don't decrement left.
2074         (check_data_variable): Use gfc_assign_data_value_range.
2075
2076 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2077
2078         * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
2079
2080 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2081
2082         * check.c (gfc_check_reduction): Rename to ...
2083         (check_reduction): ... this. Make static. Don't check type of
2084         first argument.
2085         (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
2086         * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
2087         SUM to use new check functions.
2088         (check_specific): Change logic to call new functions.
2089         * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
2090         Add prototypes.
2091         (gfc_check_reduction): Remove prototype.
2092
2093 2004-08-20  Paul Brook  <paul@codesourcery.com>
2094         Canqun Yang  <canqun@nudt.edu.cn>
2095
2096         PR fortran/17077
2097         * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
2098         for automatic arrays.
2099         * trans-types.c (gfc_get_nodesc_array_type): Add comment.
2100
2101 2004-08-19  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2102         (Port from g95)
2103
2104         PR fortran/17074
2105         * match.c (match_simple_forall, match_simple_where): Forward-declare.
2106         (gfc_match_if): Order statement list alphabetically, add WHERE and
2107         FORALL, remove double PAUSE.
2108         (gfc_match_simple_where, match_forall_header,
2109         gfc_match_simple_forall): New functions.
2110         (gfc_match_forall): Use match_forall_header.
2111
2112 2004-08-19  Paul Brook  <paul@codesourcery.com>
2113
2114         PR fortran/17091
2115         * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
2116         * symbol.c (gfc_clear_attr): Use memset.
2117
2118 2004-08-19  Paul Brook  <paul@codesourcery.com>
2119
2120         PR fortran/14976
2121         PR fortran/16228
2122         * data.c (assign_substring_data_value): Remove.
2123         (create_character_intializer): New function.
2124         (gfc_assign_data_value): Track the typespec for the current
2125         subobject.  Use create_character_intializer.
2126
2127 2004-08-19  Erik Schnetter  <schnetter@aei.mpg.de>
2128
2129         PR fortran/16946
2130         * check.c (gfc_check_reduction): New function.
2131         (gfc_check_minval_maxval): Removed.
2132         (gfc_check_product): Removed.
2133         (gfc_check_sum): Removed.
2134         * intrinsic.h: Add/remove declarations for these.
2135         * gfortran.h: Add field f3red to union gfc_check_f.
2136         * intrinsic.c (add_sym_3red): New function.
2137         (add_functions): Register maxval, minval, product, and sum intrinsics
2138         through add_sym_3red.
2139         (check_specific): Handle f3red union field.
2140         * iresolve.c: Whitespace change.
2141
2142 2004-08-18  Paul Brook  <paul@codesourcery.com>
2143
2144         * trans-types.c (gfc_sym_type): Use pointer types for optional args.
2145
2146 2004-08-18  Victor Leikehman  <lei@il.ibm.com>
2147
2148         PR fortran/13278
2149         * trans-io.c (transfer_namelist_element): New. Recursively handle
2150         derived-type variables.  Pass string lengths.
2151         (build_dt): Code moved to build_namelist, with some
2152         changes and additions.
2153         (gfc_build_io_library_fndecls): Declare the fifth
2154         argument in st_set_nml_var_char -- string_length.
2155
2156 2004-08-17  Paul Brook  <paul@codesourcery.com>
2157         Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2158
2159         PR fortran/13082
2160         * decl.c (get_proc_name): Update mystery comment.
2161         (gfc_match_entry): Check for errors earlier.  Add entry point to list.
2162         * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
2163         * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
2164         (struct gfc_entry_list): Define.
2165         (gfc_get_entry_list): Define.
2166         (struct gfc_namespace): Add refs and entries.
2167         (enum gfc_exec_op): Add EXEC_ENTRY.
2168         (struct gfc_code): Add ext.entry.
2169         * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
2170         (mio_symbol_attribute): Don't save/reture addr->entry.
2171         (mio_namespace_ref): Refcount namespaces.
2172         * parse.c (accept_statement): Handle ST_ENTRY.
2173         (gfc_fixup_sibling_symbols): Mark symbol as referenced.
2174         (parse_contained): Fixup sibling references to entry points
2175         after parsing the procedure body.
2176         * resolve.c (resolve_contained_fntype): New function.
2177         (merge_argument_lists, resolve_entries): New functions.
2178         (resolve_contained_functions): Use them.
2179         (resolve_code): Handle EXEC_ENTRY.
2180         (gfc_resolve): Call resolve_entries.
2181         * st.c (gfc_free_statement): Handle EXEC_ENTRY.
2182         * symbol.c (gfc_get_namespace): Refcount namespaces.
2183         (gfc_free_namespace): Ditto.
2184         * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
2185         optional when multiple entry points are present.
2186         * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
2187         (gfc_get_extern_function_decl): Add assertion.  Fix coment.
2188         (create_function_arglist, trans_function_start, build_entry_thunks):
2189         New functions.
2190         (gfc_build_function_decl): Rename ...
2191         (build_function_decl): ... to this.
2192         (gfc_create_function_decl): New function.
2193         (gfc_generate_contained_functions): Use it.
2194         (gfc_trans_entry_master_switch): New function.
2195         (gfc_generate_function_code): Use new functions.
2196         * trans-stmt.c (gfc_trans_entry): New function.
2197         * trans-stmt.h (gfc_trans_entry): Add prototype.
2198         * trans-types.c (gfc_get_function_type): Add entry point argument.
2199         * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
2200         (gfc_generate_module_code): Call gfc_create_function_decl.
2201         * trans.h (gfc_build_function_decl): Remove.
2202         (gfc_create_function_decl): Add prototype.
2203
2204 2004-08-15  Andrew Pinski  <apinski@apple.com>
2205
2206         PR fortran/17030
2207         * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
2208         for cabs{,f} and copysign{,f}.
2209         * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
2210         (gfor_fndecl_math_cabs): Delete.
2211         (gfor_fndecl_math_sign4): Delete.
2212         (gfor_fndecl_math_sign8): Delete.
2213         (gfc_build_intrinsic_function_decls): Remove the
2214         initializing of cabs{,f} and copysign{,f} functions.
2215         * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
2216         instead of the functions definitions.
2217         (gfc_conv_intrinsic_sign): Likewise.
2218         * trans.h (gfor_fndecl_math_cabsf): Delete.
2219         (gfor_fndecl_math_cabs): Delete.
2220         (gfor_fndecl_math_sign4): Delete.
2221         (gfor_fndecl_math_sign8): Delete.
2222
2223 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
2224
2225         * trans-array.c (gfc_trans_array_constructor_value): Use
2226         build_int_cst.
2227         * trans-const.c (gfc_build_string_const,
2228         gfc_init_constants, gfc_conv_mpz_to_tree,
2229         gfc_conv_constant_to_tree): Likewise.
2230         * trans-decl.c (gfc_get_symbol_decl): Likewise.
2231         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
2232         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
2233         * trans-io.c (add_case, set_error_locus, build_dt,
2234         transfer_expr): Likewise.
2235         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
2236         gfc_trans_stop, gfc_trans_character_select): Likewise.
2237         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
2238         * trans.c (gfc_trans_runtime_check): Likewise.
2239
2240 2004-08-14  Paul Brook  <paul@codesourcery.com>
2241
2242         * trans-decl.c (gfc_build_function_decl): Remove dead code.
2243
2244 2004-08-14  Paul Brook  <paul@codesourcery.com>
2245
2246         * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
2247
2248 2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2249
2250         * gfortran.h: Add comments.
2251         * parse.c (parse_contained): Fix comment typo.
2252         * resolve.c (was_declared): Ditto.
2253         * symbol.c: Ditto.
2254
2255 2004-08-11  Paul Brook  <paul@codeourcery.com>
2256
2257         PR fortran/16917
2258         * intrinsic.c (add_functions): Add dfloat as an alias for dble.
2259
2260 2004-08-10  Richard Henderson  <rth@redhat.com>
2261
2262         * f95-lang.c (gfc_init_builtin_functions): Remove
2263          __builtin_stack_alloc, add __builtin_alloca.
2264         * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
2265         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
2266
2267 2004-08-10  Paul Brook  <paul@codesourcery.com>
2268
2269         * trans-io.c (transfer_expr): Handle pointters.
2270
2271 2004-08-10  Paul Brook  <paul@codesourcery.com>
2272
2273         PR fortran/16919
2274         * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
2275         (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
2276         (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
2277         Handle GFC_SS_COMPONENT.
2278         (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
2279         (gfc_conv_loop_setup): Tweak commends. Remove dead code.
2280         Use ss->shape.
2281         (gfc_conv_array_initializer): Call specific initializer routines.
2282         * trans-expr.c (gfc_trans_structure_assign): New function.
2283         (gfc_trans_subarray_assign): New function.
2284         (gfc_trans_subcomponent_assign): New fucntion
2285         (gfc_conv_structure): Use them.
2286         * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
2287         (gfc_ss): Add shape.
2288
2289 2004-08-08  Victor Leikehman  <lei@il.ibm.com>
2290
2291         * simplify.c (gfc_simplify_shape): Bugfix.
2292         * expr.c (gfc_copy_shape_excluding): New function.
2293         * gfortran.h (gfc_get_shape): Bugfix.
2294         (gfc_copy_shape_excluding): Added declaration.
2295         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
2296         gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
2297         gfc_resolve_ubound, gfc_resolve_transpose): Added compile
2298         time resolution of shape.
2299
2300 2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2301
2302         * intrinsic.c (add_subroutines): Add getenv and
2303         get_environment_variable. (add_sym_5s): New function.
2304         * intrinsic.h (gfc_resolve_get_environment_variable): Add
2305         prototype.
2306         * iresolve.c (gfc_resolve_get_environment_variable): New
2307         function.
2308
2309 2004-08-06  Feng Wang  <fengwang@nudt.edu.cn>
2310
2311         * f95-lang.c (gfc_init_builtin_functions): Fix the number of
2312         __builtin_pow[f] arguments.
2313
2314 2004-08-06  Steven G. Kargl  <kargls@comcast.net>
2315
2316         * arith.c: Add #define for model numbers.  Remove global GMP variables.
2317         (natural_logarithm,common_logarithm,exponential,sine,
2318         cosine,arctangent,hypercos,hypersine ): Remove.
2319         (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
2320         (arctangent2,gfc_arith_init_1,gfc_arith_done_1
2321         gfc_check_real_range, gfc_constant_result, gfc_range_check,
2322         gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
2323         gfc_arith_divide,complex_reciprocal,complex_pow_ui,
2324         gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
2325         gfc_convert_complex,gfc_int2real,gfc_int2complex,
2326         gfc_real2int,gfc_real2real,gfc_real2complex,
2327         gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
2328         to MPFR, use new functions.
2329         * arith.h: Remove extern global variables.
2330         (natural_logarithm,common_logarithm,exponential, sine, cosine,
2331         arctangent,hypercos,hypersine): Remove prototypes.
2332         (arctangent2): Update prototype from GMP to MPFR.
2333         (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
2334         * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
2335         * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
2336         * gfortran.h (GFC_REAL_BITS): Remove.
2337         (arith): Add ARITH_NAN.
2338         Include mpfr.h.  Define GFC_RND_MODE.
2339         Rename GCC_GFORTRAN_H GFC_GFC_H.
2340         (gfc_expr): Convert GMP to MPFR.
2341         * module.c: Add arith.h, correct type in comment.
2342         (mio_gmp_real): Convert GMP to MPFR.
2343         (mio_expr):  Use gfc_set_model_kind().
2344         * primary.c:  Update copyright date with 2004.
2345         (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
2346         * simplify.c: Remove global GMP variables
2347         (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
2348         gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
2349         gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
2350         gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
2351         gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
2352         gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
2353         gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
2354         gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
2355         gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
2356         gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
2357         gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
2358         gfc_simplify_rrspacing,gfc_simplify_scale,
2359         gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
2360         gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
2361         gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
2362         gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
2363         Use new functions.
2364         * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
2365         gfc_conv_mpf_to_tree.  Convert it to use MPFR
2366         (gfc_conv_constant_to_tree): Use it.
2367         * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
2368         * trans-intrinsic.c: Add arith.h, remove gmp.h
2369         (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
2370
2371 2004-08-06  Victor Leikehman  <lei@il.ibm.com>
2372         Paul Brook  <paul@codesourcery.com>
2373
2374         * trans-array.c (gfc_trans_allocate_array_storage,
2375         gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
2376         gfc_conv_loop_setup): For functions, if the shape of the result
2377         is not known in compile-time, generate an empty array descriptor for
2378         the result and let the callee to allocate the memory.
2379         (gfc_trans_dummy_array_bias): Do nothing for pointers.
2380         (gfc_conv_expr_descriptor): Use function return values directly.
2381         * trans-expr.c (gfc_conv_function_call): Always add byref call
2382         insn to pre chain.
2383         (gfc_trans_pointer_assignment): Add comments.
2384         (gfc_trans_arrayfunc_assign): Don't chain on expression.
2385
2386 2004-08-01  Roger Sayle  <roger@eyesopen.com>
2387
2388         * options.c (gfc_init_options): Don't warn about the use GNU
2389         extensions by default.
2390         (gfc_post_options): Warn about GNU extensions with -pedantic.
2391         (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
2392
2393 2004-07-30  Richard Henderson  <rth@redhat.com>
2394
2395         * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
2396         for TREE_CONSTANTs.
2397
2398 2004-07-25  Richard Henderson  <rth@redhat.com>
2399
2400         * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
2401         and DECL_IGNORED_P on RESULT_DECL.
2402         (gfc_generate_constructors): Likewise.
2403
2404 2004-07-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2405
2406         PR fortran/16465
2407         * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
2408         options.
2409         (ffixed-line-length-80, ffixed-line-length-132): Remove.
2410         * options.c (gfc_handle_options): Deal with changed options.
2411         * scanner.c (load_line): Change second arg to 'char **',
2412         allocate if pointing to NULL. Keep track of buffer's length.
2413         Adapt buffer size to overlong lines. Pad lines to full length
2414         in fixed form.
2415         (load_file): Adapt to new interface of load_line.
2416
2417 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
2418
2419         * trans.h (builtin_function): Declare.
2420
2421 2004-07-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2422
2423         PR fortran/16404
2424         (parts ported from g95)
2425         * parse.h (gfc_state_data): New field do_variable.
2426         (gfc_check_do_variable): Add prototype.
2427         * parse.c (push_state): Initialize field 'do_variable'.
2428         (gfc_check_do_variable): New function.
2429         (parse_do_block): Remember do iterator variable.
2430         (parse_file): Initialize field 'do_variable'.
2431         * match.c (gfc_match_assignment, gfc_match_do,
2432         gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
2433         Add previously missing checks.
2434         (gfc_match_return): Reformat error message.
2435         * io.c (match_out_tag): New function.
2436         (match_open_element, match_close_element,
2437         match_file_element, match_dt_element): Call match_out_tag
2438         instead of match_vtag where appropriate.
2439         (match_io_iterator, match_io_element): Add missing check.
2440         (match_io): Reformat error message.
2441         (match_inquire_element): Call match_out_tag where appropriate.
2442
2443         * parse.c (gfc_check_do_variable): Fix error locus.
2444
2445 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2446
2447         PR fortran/15129
2448         * trans-decl.c (gfc_build_function_decl): Create a new chardecl
2449         for every assumed length character dummy argument.
2450
2451         PR fortran/15140
2452         * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
2453
2454         PR fortran/13792
2455         * simplify.c (gfc_simplify_bound): Copy the bound expression.
2456
2457 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2458
2459         PR fortran/15324
2460         * trans-array.c gfc_trans_g77_array,
2461         gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
2462         for assumed length characters.
2463         (gfc_conv_expr_descriptor): Set se->string_length if dealing
2464         with a character expression.
2465         (gfc_cvonv_array_parameter): Pass string length when passing
2466         character array according to g77 conventions.
2467
2468 2004-07-12  Paul Brook  <paul@codesourcery.com>
2469
2470         * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
2471         * trans-array.c (gfc_trans_auto_array_allocation): Remove
2472         initialization code.
2473         * trans-common.c (create_common): Use gfc_conv_initializer.
2474         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
2475         * trans-expr.c (gfc_conv_initializer): New function.
2476         (gfc_conv_structure): Use it.
2477         * trans.h (gfc_conv_initializer): Add prototype.
2478
2479 2004-07-11  Paul Brook  <paul@codesourcery.com>
2480
2481         PR fortran/15986
2482         * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
2483         variables.
2484         (parse_contained): Mark contained symbols as referenced.
2485
2486 2004-07-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2487
2488         PR fortran/16455
2489         * module.c (gfc_dump_module, gfc_use_module): Print locus
2490         when opening of module file fails.
2491
2492         PR fortran/16404
2493         * io.c (match_io): Flag 'WRITE(...), ...' as extension.
2494
2495         PR fortran/16404
2496         * match.c (gfc_match_program): A program name is obligatory.
2497         (gfc_match_return): RETURN in main program is an extension.
2498         (gfc_match_block_data): A space is required before a block data
2499         name.
2500
2501         PR fortran/16433
2502         * primary.c (match_boz_constant): Call gfc_notify_std only if
2503         we actually have a non-standard boz-literal-constant.
2504
2505         PR fortran/15754
2506         * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
2507         warning if assigning NULL().
2508
2509 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
2510
2511         * f95-lang.c (set_block): Remove.
2512         (gfc_clear_binding_stack): New.
2513         (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
2514         (struct binding_level): Remove block_created_by_back_end.
2515         (clear_binding_level): Likewise.
2516         (poplevel): Don't handle block_created_by_back_end.
2517
2518 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2519
2520         * trans-decl.c (gfc_create_module_variable): Nothing to do if
2521         symbol is in common, because we ...
2522         (gfc_generate_module_vars): Call gfc_trans_common.
2523
2524 2004-07-10  Paul Brook  <paul@codesourcery.com>
2525
2526         * trans-array.c (gfc_build_null_descriptor): New function.
2527         (gfc_trans_static_array_pointer): Use it.
2528         * trans-array.h (gfc_build_null_descriptor): Add prototype.
2529         * trans-expr.c (gfc_conv_structure): Handle array pointers.
2530
2531 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2532
2533         PR fortran/16336
2534         * decl.c (gfc_match_save): Use-associated common block
2535         doesn't collide.
2536         * gfortran.h (gfc_common_head): Add new field 'name'.
2537         Fix typo in comment after #endif.
2538         * match.c (gfc_get_common): Add new argument from_common,
2539         mangle name if flag is set, fill in new field in structure
2540         gfc_common_head.
2541         (match_common): Set new arg in call to gfc_get_common,
2542         use-associated common block doesn't collide.
2543         * match.h (gfc_get_common): Adapt prototype.
2544         * module.c (load_commons): Set new arg in call to
2545         gfc_get_common.
2546         * symbol.c (free_common_tree): New function.
2547         (gfc_free_namespace): Call new function.
2548         * trans-common.c (several functions): Remove argument
2549         'name', use name from gfc_common_head instead.
2550
2551 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2552
2553         * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
2554         and RHS match. Return early if the RHS is NULL().
2555
2556         PR fortran/16336
2557         * match.c (match_common): Fix error reporting for used common.
2558
2559         PR fortran/15969
2560         * trans-expr.c (gfc_conv_structure): Handle initialization
2561         of scalar pointer components.
2562
2563         * parse.c (decode_statement): Fix matching of BLOCK DATA.
2564
2565         * trans-decl.c (generate_local_decl): Remove workaround obsoleted
2566         by fix for PR 15481.
2567
2568 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2569
2570         * trans-common.c: Fix whitespace issues, make variable names
2571         more readable.
2572         (create_common): Additionally, make loop logic more obvious.
2573
2574 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2575         Paul Brook  <paul@codesourcery.com>
2576
2577         PR fortran/13415
2578         * trans-common.c (calculate_length): Remove ...
2579         (get_segment_info): Merge into here.  Save field type.
2580         (build_field): Use saved type.
2581         (create_common, new_condition, new_segment, finish_equivalences):
2582         Use new get_segment_info.
2583         * trans-types.c: Update comment.
2584
2585 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2586
2587         PR fortran/14077
2588         * moduele.c (mio_symbol): Don't I/O initial values unless
2589         symbol is a parameter.
2590
2591 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2592
2593         PR fortran/13201
2594         * resolve.c (resolve_symbol): Verify that the shape of a
2595         parameter array is not only explicit, but also constant.
2596         * array.c (gfc_is_compile_time_shape): New function.
2597         * gfortran.h (gfc_is_compile_time_shape): Add prototype.
2598
2599 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2600
2601         PR fortran/15481
2602         PR fortran/13372
2603         PR fortran/13575
2604         PR fortran/15978
2605         * module.c (write_symbol, write_symtree): Remove workaround.
2606         * primary.c (match_actual_arglist): Enhance comment.
2607         (gfc_match_rvalue): Handle function call with first argument
2608         a keyword argument correctly.
2609         * resolve.c (resolve_symbol): Change call to
2610         gfc_set_default_type to issue error if no implicit type
2611         can be found.
2612         * trans-decl.c (gfc_create_module_variable): Remove workaround.
2613
2614 2004-07-08  Paul Brook  <paul@codesourcery.com>
2615
2616         * intrinsic.c (add_sym_4s): New function.
2617         (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
2618
2619 2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2620         Paul Brook  <paul@codesourcery.com>
2621
2622         PR fortran/15280
2623         PR fortran/15665
2624         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
2625         GFC_ISYM_COMMAND_ARGUMENT_COUNT.
2626         * intrinsic.c (add_functions):  Identify iargc.  Add
2627         command_argument_count.
2628         (add_subroutines): Resolve getarg.  Add get_command and
2629         get_command_argument.
2630         * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
2631         gfc_resolve_get_command_argument): Add prototypes.
2632         * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
2633         gfc_resolve_get_command_argument): New functions.
2634         * trans-decl.c (gfor_fndecl_iargc): New variable.
2635         (gfc_build_intrinsic_function_decls): Set it.
2636         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
2637         (gfc_conv_intrinsic_function): Use it.
2638         * trans.h (gfor_fndecl_iargc): Declare.
2639
2640 2004-07-04  Matthias Klose  <doko@debian.org>
2641
2642         * Make-lang.in: Generate and install gfortran man page.
2643         * invoke.texi: Remove extra '@c man end'.
2644
2645 2004-07-04  Richard Henderson  <rth@redhat.com>
2646
2647         * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
2648
2649 2004-07-04  Paul Brook  <paul@codesourcery.com>
2650
2651         * decl.c (gfc_match_implicit_range): Don't use typespec.
2652         (gfc_match_implicit): Handle character selectors.
2653         * gfortran.h (gfc_set_implicit): Remove prototype.
2654         (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
2655         * parse.c (accept_statement): Don't call gfc_set_implicit.
2656         * symbol.c (new_ts): Remove.
2657         (gfc_set_implicit_none): Use same loop bounds as other functions.
2658         (gfc_set_implicit): Remove.
2659         (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
2660         (gfc_merge_new_implicit): Combine with gfc_set_implicit.
2661
2662 2004-06-30  Richard Henderson  <rth@redhat.com>
2663
2664         * match.c (var_element): Remove unused variable.
2665
2666         * trans-decl.c (gfc_generate_function_code): Don't set
2667         x_whole_function_mode_p.
2668         (gfc_generate_constructors): Likewise.
2669
2670 2004-06-30  Richard Henderson  <rth@redhat.com>
2671
2672         * trans-decl.c (gfc_generate_function_code): Don't set
2673         immediate_size_expand.
2674         (gfc_generate_constructors): Likewise.
2675
2676 2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2677
2678         PR fortran/16161
2679         * decl.c (gfc_match_type_spec): Rename second argument to
2680         'implicit_flag', reverse meaning. Don't match_char_spec if
2681         'implicit_flag' is set. Rename to ...
2682         (match_type_spec): ... this.
2683         (gfc_match_implicit_none, match_implicit_range): Move here
2684         from match.c.
2685         (gfc_match_implicit): Move here from match.c, try to
2686         match_char_len if match_implicit_range doesn't succeed for
2687         CHARACTER implicits. Call renamed fucntion match_type_spec.
2688         (gfc_match_data_decl, match_prefix): Call renamed function
2689         match_type_spec.
2690         * match.c (gfc_match_implicit_none, match_implicit_range,
2691         gfc_match_implicit): Move to decl.c.
2692         * match.h (gfc_match_implicit_none, gfc_match_implicit):
2693         Move protoypes to section 'decl.c'.
2694         (gfc_match_type_spec): Remove prototype.
2695
2696 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2697
2698         * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
2699         copyright years.
2700
2701 2004-06-29  Steven Bosscher  <stevenb@suse.de>
2702
2703         Make sure types in assignments are compatible.  Mostly mechanical.
2704         * trans-const.h (gfc_index_one_node): New define.
2705         * trans-array.c (gfc_trans_allocate_array_storage,
2706         gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
2707         gfc_trans_array_constructor_value, gfc_trans_array_constructor,
2708         gfc_conv_array_ubound, gfc_conv_array_ref,
2709         gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
2710         gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
2711         gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
2712         gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
2713         types in assignments, conversions and conditionals for expressions.
2714         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
2715         gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
2716         gfc_conv_function_call, gfc_trans_pointer_assignment,
2717         gfc_trans_scalar_assign): Likewise.
2718         * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
2719         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
2720         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
2721         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
2722         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
2723         gfc_conv_allocated, gfc_conv_associated,
2724         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
2725         * trans-io.c (set_string): Likewise.
2726         * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
2727         gfc_do_allocate, generate_loop_for_temp_to_lhs,
2728         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
2729         compute_overall_iter_number, gfc_trans_assign_need_temp,
2730         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
2731         gfc_evaluate_where_mask, gfc_trans_where_assign,
2732         gfc_trans_where_2): Likewise.
2733         * trans-types.c (gfc_get_character_type, gfc_build_array_type,
2734         gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
2735
2736         * trans.c (gfc_add_modify_expr): Add sanity check that types
2737         for the lhs and rhs are the same for scalar assignments.
2738
2739 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2740
2741         * dump-parse-tree.c (show_common): New function.
2742         (gfc_show_namespace): Show commons.
2743
2744 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2745         Andrew Vaught  <andyv@firstinter.net>
2746
2747         PR fortran/13249
2748         PR fortran/15481
2749         * decl.c (gfc_match_save): Adapt to new common structures,
2750         don't allow saving USE-associated common.
2751         * dump-parse-tree (gfc_show_attr): (saved_)common are not
2752         symbol attributes any longer.
2753         (gfc_show_symbol): Don't show old-style commons any longer.
2754         (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
2755         interface.
2756         * gfortran.h (symbol_attribute): Remove common and saved_common
2757         attributes.
2758         (gfc_symbol): Remove common_head element.
2759         (gfc_common_head): New struct.
2760         (gfc_get_common_head): New macro.
2761         (gfc_symtree): Add field 'common' to union.
2762         (gfc_namespace): Add field 'common_root'; change type of field
2763         'blank_common' to blank_common.
2764         (gfc_add_data): New prototype.
2765         (gfc_traverse_symtree): Expect a symtree as first argument
2766         instead of namespace.
2767         * match.c (gfc_get_common): New function.
2768         (match_common_name): Change to take char * as argument, adapt,
2769         fix bug with empty name.
2770         (gfc_match_common): Adapt to new data structures. Disallow
2771         redeclaration of USE-associated COMMON-block. Fix bug with
2772         empty common.
2773         (var_element): Adapt to new common structures.
2774         * match.h (gfc_get_common): Declare.
2775         * module.c: Add 2004 to copyright years, add commons to module
2776         file layout description.
2777         (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
2778         for removed attributes.
2779         (mio_symbol): Adapt to new way of storing common relations.
2780         (load_commons): New function.
2781         (read_module): Skip common list on first pass, load_commons at
2782         second.
2783         (write_commons): New function.
2784         (write_module): Call write_commons().
2785         * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
2786         functions related to removed attributes.
2787         (gfc_add_data): New function.
2788         (gfc_clear_attr): Don't set removed attributes.
2789         (gfc_copy_attr): Don't copy removed attributes.
2790         (traverse_symtree): Remove.
2791         (gfc_traverse_symtree): Don't traverse symbol
2792         tree of the passed namespace, but require a symtree to be passed
2793         instead. Unify with traverse_symtree.
2794         (gfc_traverse_ns): Call gfc_traverse_symtree according to new
2795         interface.
2796         (save_symbol): Remove setting of removed attribute.
2797         * trans-common.c (gfc_sym_mangled_common_id): Change to
2798         take 'char *' argument instead of 'gfc_symbol'.
2799         (build_common_decl, new_segment, translate_common): Adapt to new
2800         data structures, add new
2801         argument name.
2802         (create_common): Adapt to new data structures, add new
2803         argument name. Fix typo in intialization of derived types.
2804         (finish_equivalences): Add second argument in call to
2805         create_common.
2806         (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
2807         (gfc_trans_common): Adapt to new data structures.
2808         * trans-decl.c (gfc_create_module_variables): Remove test for
2809         removed attribute.
2810
2811 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2812
2813         * io.c: Add 2004 to copyright years.
2814
2815 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2816         Andrew Vaught  <andyv@firstinter.net>
2817
2818         * gfortran.h (gfc_gsymbol): New typedef.
2819         (gfc_gsym_root): New variable.
2820         (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
2821         * parse.c (global_used): New function.
2822         (parse_block_data): Check for double empty BLOCK DATA,
2823         use global symbol table.
2824         (parse_module): Use global symbol table.
2825         (add_global_procedure, add_global_program): New functions.
2826         (gfc_parse_file): Use global symbol table.
2827         * symbol.c (gfc_gsym_root): New variable.
2828         (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
2829         functions.
2830
2831 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2832
2833         * module.c (mio_gmp_real): Correct writing of negative numbers.
2834
2835 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2836
2837         PR fortran/15963
2838         * expr.c (check_intrinsic_op): Allow comparison of characters.
2839         Make logic easier.
2840
2841 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2842         Andrew Vaught  <andyv@firstinter.net>
2843
2844         * decl.c (contained_procedure): New function.
2845         (match_end): Verify correctness of END STATEMENT in
2846         all cases.
2847
2848 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2849         Andrew Vaught  <andyv@firstinter.net>
2850
2851         PR fortran/15190
2852         * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
2853         (decode_statement): Enforce required space in free-form.
2854
2855 2004-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2856
2857         * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
2858         * trans-array.c (gfc_conv_descriptor_data): Add operand
2859         for COMPONENT_REF.
2860         (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
2861         (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
2862         (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
2863         * trans-common.c (create_common): Likewise.
2864         * trans-expr.c (gfc_conv_component_ref): Likewise.
2865         * trans-io.c (set_parameter_value): Likewise.
2866         (set_parameter_ref, set_string, set_flag, io_result): Likewise.
2867         (transfer_expr): Likewise.
2868         * trans-decl.c (gfc_trans_auto_character_variable):
2869         Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
2870         (gfc_gimplify_function): New function.
2871         (gfc_generate_function-code): Properly handle nested functions.
2872         * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
2873
2874 2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2875
2876         PR fortran/15750
2877         * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
2878         (gfc_resolve_inquire): Resolve the iolength tag.  Return
2879         SUCCESS at end of function if no failure has occured.
2880         * resolve.c (resolve_code): Resolve if iolength is encountered.
2881         * trans-io.c: (ioparm_iolength, iocall_iolength,
2882         iocall_iolength_done): New variables.
2883         (last_dt): Add IOLENGTH.
2884         (gfc_build_io_library_fndecls ): Set iolength related variables.
2885         (gfc_trans_iolength): Implement.
2886         (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
2887
2888 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de
2889
2890         PR fortran/15511
2891         * scanner.c (load_line): Don't truncate preprocessor lines.
2892         Reformat error message.
2893         (preprocessor_line): Issue warning in case of malformed
2894         preprocessor line.
2895
2896 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2897
2898         * resolve.c (resolve_symbol): Add comment in function body.
2899         (check_data_variable): Change type of mark to ar_type, adapt code
2900         accordingly.
2901
2902 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2903
2904         * array.c (gfc_insert_constructor): Avoid redundant call to
2905         mpz_comp. Add 2004 to copyright years.
2906
2907 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2908
2909         * trans.h (stmtblock_t): Change has_scope to unsigned int.
2910
2911 2004-06-20  Steven G. Kargl  <kargls@comcast.net>
2912
2913         * arith.c (gfc_range_check): correct complex underflow.
2914
2915 2004-06-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2916
2917         PR fortran/15962
2918         * match.c (match_case_selector): Call gfc_match_init_expr
2919         instead of gfc_match_expr.
2920         * resolve.c (validate_case_label_expr): No need to check for
2921         constant, since it wouldn't have been matched with the fix to
2922         match.c.
2923
2924 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2925
2926         PR fortran/15211
2927         * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
2928         of strings.
2929
2930 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2931
2932         PR fortran/15510
2933         * trans-deecl.c (generate_local_decl): Do not issue warning for
2934         unused variables if they're use associated.
2935
2936 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2937         Andrew Vaught <andyv@firstinter.net>
2938
2939         PR fortran/14928
2940         * gfortran.h (gfc_check_f): Add new field f3ml.
2941         * check.c (gfc_check_minloc_maxloc): Take argument list instead
2942         of individual arguments, reorder if necessary.
2943         * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
2944         * intrinsic.c (add_sym_3ml): New function.
2945         (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
2946         (check_specific): Catch special case MINLOC, MAXLOC.
2947
2948 2004-06-14  Paul Brook  <paul@codesourcery.com>
2949
2950         * intrinsic.c (add_sym_2s): Use correct function types.
2951
2952 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2953
2954         * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
2955         * data.c (gfc_get_section_index):  Remove dependency on trans.h.
2956
2957 2004-06-12  Steven G. Kargl  <kargls@comcast.net>
2958
2959         * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
2960         gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
2961         * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
2962         GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
2963         * trans-intrinsic.c:  Use symbols.
2964         * intrinsic.c (add_sym_2s): New function.
2965         * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
2966         * intrinsic.h: Function prototypes.
2967         * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
2968         gfc_resolve_srand):  New functions.
2969
2970 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2971
2972         PR fortran/14957
2973         * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
2974         contained procedure.
2975
2976 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2977
2978         PR fortran/12841
2979         * interface.c (compare_parameter, compare_actual_formal): Don't
2980         check types and array shapes for NULL()
2981         * trans-expr.c (conv_function_call): No double indirection for
2982         NULL()
2983
2984 2004-06-09  Toon Moene  <toon@moene.indiv.nluug.nl>
2985
2986         * trans-expr.c (gfc_conv_cst_int_power): Compute
2987         x**(-n) by converting it to (1/x)**n instead of
2988         1/x**n.
2989
2990 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2991
2992         PR fortran/13372
2993         * module.c (write_symbol, write_symtree): Don't write symbols
2994         wrongly added to namespace.
2995         * trans-decl.c (gfc_create_module_variable): Don't create a
2996         backend decl for a symbol incorrectly added to namespace.
2997
2998 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2999
3000         PR fortran/13201
3001         * resolve.c (resolve_symbol): Verify that parameter array has an
3002         explicit shape. Fix typos and coding style issues in surrounding
3003         lines.
3004
3005 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3006
3007         PR fortran/15478
3008         * gfortran.texi: The documentation doesn't contain infomration on
3009         how to report bugs, and shouldn't, so remove the line which
3010         says it does.
3011
3012 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3013
3014         * intrinsic.c (sort_actual): Keep track of type of missing
3015         arguments. (Missing from previous commit.)
3016
3017 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3018
3019         * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
3020         * interface.c (compare_actual_formal): Keep type of omitted
3021         optional arguments.
3022         * trans-expr.c (gfc_conv_function_call): Add string length
3023         argument for omitted string argument.
3024
3025 2004-06-03  Paul Brook  <paul@codesourcery.com>
3026
3027         * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
3028         lists instead of compound expr chains.
3029         (gfc_trans_code): Annotate statement lists.
3030
3031 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3032
3033         * trans-array.c: Fix spelling in comments.
3034
3035 2004-06-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3036
3037         PR fortran/15557
3038         * data.c (assign_substring_data_value): New function.
3039         (gfc_assign_data_value): Call the new function if we're dealing
3040         with a substring LHS.
3041
3042 2004-06-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3043
3044         PR fortran/15477
3045         * gfortran.h (GFC_VERSION): Remove.
3046         * gfortran.texi (version-gfortran): Remove, replace by version-GCC
3047         where used.
3048
3049 2004-05-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3050
3051         * trans-types.c: Fix spelling & layout in comments.
3052
3053 2004-05-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3054
3055         PR fortran/14067
3056         * trans-const.c (gfc_conv_string_init): Allow variable string
3057         length lower than initialization string length.
3058
3059 2004-05-30  Paul Brook  <paul@codesourcery.com>
3060
3061         PR fortran/15620
3062         * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
3063         * trans-expr.c (gfc_trans_string_copy): New function.
3064         (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
3065         character lengths.
3066         (gfc_conv_string_parameter): Use gfc_trans_string_copy.
3067         * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
3068         * trans.h (struct gfc_saved_var): Define.
3069         (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
3070
3071 2004-05-30  Steven G. Kargl  <kargls@comcast.net>
3072
3073         * iresolve.c (gfc_resolve_random_number): Clean up conditional.
3074
3075 2004-05-29  Steven G. Kargl  <kargls@comcast.net>
3076
3077         * simplify.c (gfc_simplify_log): Remove useless line of code.
3078
3079 2004-05-29  Paul Brook  <paul@codesourcery.com>
3080
3081         * trans-common.c (find_equivalence): Find multiple rules.
3082
3083 2004-05-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3084
3085         * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
3086         (gfc_current_locus): Declare new global variable.
3087         * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
3088         (gfc_current_locus1): Rename ...
3089         (gfc_current_locus): ... to this.
3090         (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
3091         skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
3092         gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
3093         gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
3094         and gfc_current_locus(), respectively.
3095         * array.c (match_subscript, gfc_match_array_ref, match_array_list,
3096         match_array_cons_element, gfc_match_array_constructor):
3097         Read/modify gfc_current_locus instead of calling gfc_set_locus()
3098         and gfc_current_locus().
3099         * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
3100         match_attr_spec, gfc_match_function_decl, gfc_match_end,
3101         attr_decl1, gfc_match_save): Likewise.
3102         * error.c (error_print, gfc_internal_error): Likewise.
3103         * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
3104         * interface.c (gfc_add_interface): Likewise.
3105         * io.c (gfc_match_format, match_dt_format, match_dt_element,
3106         match_io_iterator, match_io): Likewise.
3107         * match.c (gfc_match_space, gfc_match_eos,
3108         gfc_match_small_literal_int, gfc_match_st_label,
3109         gfc_match_strings, gfc_match_name, gfc_match_iterator,
3110         gfc_match_char, gfc_match, gfc_match_assignment,
3111         gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
3112         gfc_match_nullify, gfc_match_call, match_implicit_range,
3113         gfc_match_implicit, gfc_match_data, match_case_selector,
3114         gfc_match_case, match_forall_iterator): Likewise.
3115         * matchexp.c (gfc_match_defined_op_name, next_operator,
3116         match_level_1, match_mult_operand, match_ext_mult_operand,
3117         match_add_operand, match_ext_add_operand, match_level_2,
3118         match_level_3, match_level_4, match_and_operand, match_or_operand,
3119         match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
3120         * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
3121         * parse.c (match_word, decode_statement, next_free, next_fixed,
3122         add_statement, verify_st_order, parse_if_block, gfc_parse_file):
3123         Likewise.
3124         * primary.c (match_digits, match_integer_constant,
3125         match_boz_constant, match_real_constant, match_substring,
3126         next_string_char, match_charkind_name, match_string_constant,
3127         match_logical_constant, match_const_complex_part,
3128         match_complex_constant, match_actual_arg, match_keyword_arg,
3129         gfc_match_actual_arglist, gfc_match_structure_constructor,
3130         gfc_match_rvalue, gfc_match_variable): Likewise.
3131         * st.c (gfc_get_code): Likewise.
3132         * symbol.c (check_conflict, check_used, check_done,
3133         duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
3134         gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
3135         gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
3136
3137 2004-05-26  Roger Sayle  <roger@eyesopen.com>
3138
3139         * io.c (format_asterisk): Silence compiler warnings by correcting
3140         the number of elements of a "locus" initializer.
3141
3142 2004-05-25  Roger Sayle  <roger@eyesopen.com>
3143
3144         PR fortran/13912
3145         * matchexp.c: Allow unary operators after arithmetic operators
3146         as a GNU extension.
3147         (match_ext_mult_operand, match_ext_add_operand): New functions.
3148         (match_mult_operand): Tweak to call match_ext_mult_operand.
3149         (match_add_operand): Tweak to call match_ext_mult_operand.
3150         (match_level_2): Rearrange to call match_ext_add_operand.
3151
3152 2004-05-25  Paul Brook  <paul@codesourcery.com>
3153
3154         * expr.c (check_inquiry): Remove bogus tests.
3155
3156 2004-05-23  Paul Brook  <paul@codesourcery.com>
3157
3158         PR fortran/13773
3159         * expr.c (restricted_args): Remove redundant checks/argument.
3160         (external_spec_function): Update to match.
3161         (restricted_intrinsic): Rewrite.
3162
3163 2004-05-23  Paul Brook  <paul@codesourcery.com>
3164         Victor Leikehman  <lei@haifasphere.co.il>
3165
3166         * gfortran.h (struct gfc_symbol): Add equiv_built.
3167         * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
3168         messages.
3169         (current_length): Remove.
3170         (add_segments): New function.
3171         (build_equiv_decl): Create initialized common blocks.
3172         (build_common_decl): Always add decl to bindings.
3173         (create_common): Create initializers.
3174         (find_segment_info): Reformat to match coding conventions.
3175         (new_condition): Use add_segments.
3176         (add_condition, find_equivalence, add_equivalences): Move iteration
3177         inside functions.  Only process each segment once.
3178         (new_segment, finish_equivalences, translate_common): Simplify.
3179
3180 2004-05-23  Steven G. Kargl  <kargls@comcast.net>
3181
3182         * check.c (gfc_check_random_seed): Issue for too many arguments.
3183
3184 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
3185
3186         * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
3187
3188 2004-05-22  Paul Brook  <paul@codesourcery.com>
3189
3190         * dump-parse-tree.c (gfc_show_equiv): New function.
3191         (gfc_show_namespace): Use it.
3192
3193 2004-05-22  Victor Leikehman  <lei@haifasphere.co.il>
3194
3195         PR fortran/13249
3196         * symbol.c (gfc_add_common): Disable checks to work around other more
3197         fundamental inadequacies.
3198
3199 2004-05-22  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
3200
3201         * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
3202         only for functions.
3203         (gfc_build_function_decl): Likewise.
3204
3205 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
3206
3207         * check.c (gfc_check_system_clock): New function.
3208         * intrinsic.c (add_sym_3s): New function.
3209         (add_subroutines): Use it.
3210         * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
3211         Add prototypes.
3212         * iresolve.c (gfc_resolve_system_clock): New function.
3213
3214 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
3215
3216         * invoke.texi: Document -Wunderflow and spell check.
3217         * lang.opt: Add Wunderflow.
3218         * gfortran.h (gfc_option_t): Add warn_underflow option.
3219         * options.c (gfc_init_options, set_Wall): Use it.
3220         * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
3221         * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
3222         gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
3223         gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
3224         * arith.c (common_logarithm): Fix typo in comment.
3225
3226 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3227
3228         * io.c (check_format): As a GNU extension, allow the comma after a
3229         string literal to be optional in a format.  Use gfc_notify_std to
3230         issue an error/warning as appropriate.
3231
3232 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3233
3234         * io.c (check_format): Use gfc_notify_std to determine whether to
3235         issue an error/warning for omitting the digits from the X format.
3236
3237 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3238
3239         * io.c (check_format): Allow the number before the X format to
3240         be optional when not -pedantic.
3241
3242 2004-05-18  Feng Wang  <fengwang@nudt.edu.cn>
3243         Paul Brook  <paul@codesourcery.com>
3244
3245         * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
3246         Create decls for __builtin_pow{,f}.
3247         * gfortran.h (PREFIX_LEN): Define.
3248         * trans-decl.c (gfor_fndecl_math_powi): Add.
3249         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
3250         (gfc_build_intrinsic_function_decls): Create decls for powi.
3251         * trans-expr.c (powi_table): Add.
3252         (gfc_conv_integer_power): Remove.
3253         (gfc_conv_powi): New function.
3254         (gfc_conv_cst_int_power): New function.
3255         (gfc_conv_power_op): Use new powi routines.
3256         * trans.h (struct gfc_powdecl_list): Add.
3257         (gfor_fndecl_math_powi): Add.
3258         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
3259
3260 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3261
3262         * trans.c, trans-decl.c: Fix comment typos.
3263
3264 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3265
3266         * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
3267
3268 2004-05-18  Steve Kargl  <kargls@comcast.net>
3269
3270         * arith.c (gfc_int2complex): Fix incorrect range checking.
3271
3272 2004-05-18  Paul Brook  <paul@codesourcery.com>
3273
3274         PR fortran/13930
3275         * decl.c (add_init_expr_to_sym): Remove incorrect check.
3276         (default_initializer): Move to expr.c.
3277         (variable_decl): Don't assign default initializer to variables.
3278         * expr.c (gfc_default_initializer): Move to here.
3279         * gfortran.h (gfc_default_initializer): Add prototype.
3280         * resolve.c (resolve_symbol): Check for illegal initializers.
3281         Assign default initializer.
3282
3283 2004-05-17  Steve Kargl  <kargls@comcast.net>
3284
3285         * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
3286
3287 2004-05-17  Steve Kargl  <kargls@comcast.net>
3288
3289         * arith.c (gfc_real2complex): Range checking wrong part of complex
3290         number.
3291
3292 2004-05-16  Paul Brook  <paul@codesourcery.com>
3293
3294         * options.c (gfc_handle_module_path_options): Fix buffer overrun.
3295
3296 2004-05-16  Paul Brook  <paul@codesourcery.com>
3297
3298         * arith.c (gfc_range_check): Fix logic error.
3299
3300 2004-05-16  Steve Kargl  <sgk@troutmask.apl.washington.edu>
3301
3302         * arith.c: Fix comment typos.
3303
3304 2004-05-15  Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3305
3306         PR fortran/13742
3307         * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
3308         not initialized in a disallowed fashion.
3309         * match.c (gfc_match_common): Likewise.
3310         (var_element): Verify that variable is not in the blank COMMON,
3311         if it is in a common.
3312
3313 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3314
3315         * Make-lang.in (f95.generated-manpages): Remove.
3316         (f95.srcextra): New.
3317         (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
3318         f95.maintainer-clean): Generate info and dvi files in objdir/doc.
3319         (f95.dvi): Remove.
3320         (dvi): New.
3321         (f95.install-info): Remove.
3322         (install-info): New.
3323
3324 2004-05-15  Victor Leikehman  <lei@haifasphere.co.il>
3325
3326         * decl.c (add_init_expr_to_sym): Check for variable size arrays.
3327
3328 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3329
3330         * primary.c (match_boz_constant): Use gfc_notify_std() for
3331         issuing a warning or an error.
3332
3333 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3334
3335         PR fortran/13826
3336         * primary.c (match_structure_constructor): Rename ...
3337         (gfc_match_structure_constructor): ... to this. Make non-static.
3338         (gfc_match_rvalue): Call renamed function.
3339         * match.h (gfc_match_structure_constructor): Declare.
3340         * match.c (gfc_match_data_constant): Handle structure
3341         constructor.
3342
3343 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3344
3345         PR fortran/13702
3346         (Port from g95)
3347         * gfortran.h (gfc_linebuf): New typedef.
3348         (linebuf): Remove.
3349         (gfc_file): Revamped, use new gfc_linebuf.
3350         (locus): Revamped, use new types.
3351         (gfc_current_file): Remove.
3352         (gfc_current_form, gfc_source_file): New global variables.
3353         * match.c (gfc_match_space, gfc_match_strings): Use
3354         gfc_current_form to find source form.
3355         * module.c (gfc_dump_module): Use gfc_source_file when printing
3356         module header.
3357         * error.c (show_locus, show_loci) Use new data structures to print
3358         locus.
3359         * scanner.c (first_file, first_duplicated_file, gfc_current_file):
3360         Remove.
3361         (file_head, current_file, gfc_current_form, line_head, line_tail,
3362         gfc_current_locus1, gfc_source_file): New global variables.
3363         (gfc_scanner_init1): Set new global variables.
3364         (gfc_scanner_done1): Free new data structures.
3365         (gfc_current_locus): Return pointer to gfc_current_locus1.
3366         (gfc_set_locus): Set gfc_current_locus1.
3367         (gfc_at_eof): Set new variables.
3368         (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
3369         to new locus structure.
3370         (gfc_check_include): Remove.
3371         (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
3372         (gfc_skip_comments): Use gfc_current_form, find locus with
3373         gfc_current_locus1.
3374         (gfc_next_char): Use gfc_current_form.
3375         (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
3376         (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
3377         comment formatting.
3378         (get_file): New function.
3379         (preprocessor_line, include_line): New functions.
3380         (load_file): Move down, rewrite to match new data structures.
3381         (gfc_new_file): Rewrite to match new data structures.
3382         * parse.c (next_statement): Remove code which is now useless. Use
3383         gfc_source_form and gfc_source_file where appropriate.
3384         * trans-decl.c (gfc_get_label_decl): adapt to new data structures
3385         when determining locus of frontend code.
3386         * trans-io.c (set_error_locus): Same.
3387         * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
3388         * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
3389         preprocessor flags.
3390         (all): Add missing initializers.
3391
3392 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3393
3394         * Make-lang.in (trans-common.o): Remove redundant dependency.
3395         (data.c): Replace object file name ...
3396         (data.o): ... by the correct one.
3397
3398 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3399
3400         * dump-parse-tree.c (gfc_show_array_ref): Print colon only
3401         for ranges when dumping array references.
3402
3403 2004-05-14  Victor Leikehman  <lei@haifasphere.co.il>
3404
3405         * decl.c (variable_decl): Always apply default initializer.
3406
3407 2004-05-08  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3408
3409         PR fortran/15206
3410         * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
3411         handle zero correctly.
3412
3413 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3414
3415         * match.c (gfc_match): Eliminate dead code.
3416
3417 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3418
3419         * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
3420         Detect bad continuation line in fixed form sources.
3421
3422 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3423
3424         PR fortran/15205
3425         * iresolve.c (gfc_resolve_nearest): Add new function.
3426         * intrinsic.h: ... declare it here.
3427         * intrinsic.c (add_functions): ... add it as resolving function
3428         for NEAREST.
3429
3430 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3431
3432         PR fortran/14066
3433         * match.c (gfc_match_do): Allow infinite loops with
3434         label-do-stmt. Do not enforce space after comma.
3435
3436 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3437
3438         PR fortran/15051
3439         * parse.c (parse_interface): Allow empty INTERFACE, remove
3440         seen_body.
3441
3442 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3443
3444         * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
3445         decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
3446         expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
3447         intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
3448         matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
3449         primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
3450         trans-array.c, trans-array.h, trans-common.c, trans-const.c,
3451         trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
3452         trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
3453         trans-types.h, trans.c, trans.h: Update copyright years and
3454         boilerplate.
3455         * data.c: Likewise, also removed two whitespace-only lines.
3456         * gfortranspec.c, lang.opt: Update copyright years.
3457
3458 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3459
3460         PR fortran/14568
3461         * trans-decl.c (generate_local_decl): Don't warn for unused
3462         variables which are in common blocks.
3463
3464 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3465
3466         * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
3467         trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
3468         trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
3469
3470 2004-05-13  Victor Leikehman  <lei@haifasphere.co.il>
3471
3472         PR fortran/15314
3473         * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
3474
3475 2004-05-13  Joseph S. Myers  <jsm@polyomino.org.uk>
3476
3477         * gfortran.texi: Use @table @emph instead of @itemize @emph.
3478         Remove "set DEVELOPMENT".
3479         (Compiling GFORTRAN): Remove.
3480
3481 2004-05-09  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
3482
3483         * array.c (match_subscript, match_array_ref): Add comments
3484         explaining argument 'init'.
3485         * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
3486         trans-expr.c, trans.c: Fix some typos in comments.
3487         * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
3488         * primary.c (match_digits, match_integer_constant): Add comment
3489         explaining signflag.
3490
3491 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3492
3493         PR fortran/13940
3494         * primary.c: Include system.h and flags.h, needed for pedantic.
3495         (match_boz_constant): Allow "x" for hexadecimal constants, warn if
3496         pedantic is set.
3497
3498 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3499
3500         PR fortran/13940
3501         * match.c (match_data_constant): Handle case where
3502         gfc_find_symbol sets sym to NULL
3503
3504 2004-04-28  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3505
3506         * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
3507         dependency on mathbuiltins.def
3508
3509 2004-04-24  Victor Leikehman  <lei@il.ibm.com>
3510
3511         * trans-io.c (transfer_expr): Implemented recursive printing
3512         of derived types.
3513
3514 2004-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
3515
3516         * gfortranspec.c: Do not include multilib.h.
3517
3518 2004-04-24  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
3519
3520         * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
3521         2004 to copyright years.
3522         * trans-expr.c, trans-decl.c: Comment update, we now generate
3523         GENERIC, not SIMPLE. Add 2004 to copyright years.
3524
3525 2004-04-24  Paul Brook  <paul@codesourcery.com>
3526
3527         * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
3528
3529 2004-04-24  Feng Wang  <fengwang@nudt.edu.cn>
3530
3531         PR 14817
3532         * arith.c (gfc_arith_divide): Fix complex divide.
3533
3534 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
3535
3536         * gfortranspec.c: Include the target headers.
3537
3538 2004-04-18  Feng Wang  <fengwang@nudt.edu.cn>
3539
3540         PR fortran/14921
3541         PR fortran/14540
3542         * arith.c (arctangent2): New function.
3543         * arith.h (arctangent2): Add function prototype.
3544         * simplify.c (gfc_simplify_atan2): Use it.
3545         (gfc_simplify_log): Use it.
3546
3547 2004-04-12  Diego Novillo  <dnovillo@redhat.com>
3548
3549         * fortran/f95-lang.c (gfc_expand_stmt): Remove.
3550         (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
3551
3552 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
3553
3554         PR fortran/14872
3555         * trans-io.c (build_dt): Change REC to value.
3556
3557 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
3558
3559         PR 14394
3560         * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
3561         the real value when converting mpf to string.
3562
3563 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
3564
3565         PR 14395
3566         * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
3567         the result.
3568
3569 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
3570
3571         PR fortran/14377
3572         * simplify.c (simplify_min_max): Convert the type of the result.
3573
3574 2004-04-11  Paul Brook  <paul@codesourcery.com>
3575
3576         * gfortran.texi: Use full target triplet.
3577
3578 2004-04-11  Paul Brook  <paul@codesourcery.com>
3579
3580         * Make-lang.in (GFORTRAN_TEXI): Set it.
3581         (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
3582         (fortran/gfortran.info): Ditto.
3583         * gfortran.texi: Major update.
3584         * invoke.texi: New file.
3585
3586 2004-04-10  Paul Brook  <paul@codesourcery.com>
3587
3588         * trans-array.c (gfc_trans_allocate_temp_array,
3589         gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
3590         * trans-decl.c (gfc_build_dummy_array_decl,
3591         gfc_get_symbol_decl, gfc_build_function_decl,
3592         gfc_create_module_variable): Ditto.
3593         * trans-expr.c (gfc_conv_variable): Ditto.
3594         * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
3595         * trans.h (GFC_DECL_STRING): Remove.
3596         (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
3597         GFC_DECL_ASSIGN): Renumber flags.
3598
3599 2004-04-05  Paul Brook  <paul@codesourcery.com>
3600
3601         PR 13252
3602         PR 14081
3603         * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
3604         and stack_restore.
3605         * gfortran.h (struct gfc_charlen): Add backend_decl.
3606         * trans-array.c (gfc_trans_allocate_temp_array,
3607         gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
3608         (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
3609         Remove old, broken string handling.
3610         (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
3611         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
3612         gfc_trans_deferred_array): Handle character arrays.
3613         * trans-const.c (gfc_conv_const_charlen): New function.
3614         * trans-const.h (gfc_conv_const_charlen): Add prototype.
3615         * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
3616         as static.
3617         (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
3618         (gfc_create_string_length): New function.
3619         (gfc_get_symbol_decl): Create lengths for character variables.
3620         (gfc_get_fake_result_decl): Ditto.
3621         (gfc_build_function_decl): Only set length for assumed length
3622         character arguments.
3623         (gfc_trans_dummy_character): New function.
3624         (gfc_trans_auto_character_variable): Rewrite.
3625         (gfc_trans_deferred_vars): Handle more types of character variable.
3626         (gfc_create_module_variable): String lengths have moved.
3627         (gfc_generate_function_code): Initialize deferred var chain earlier.
3628         * trans-expr.c (gfc_conv_init_string_length): Rename ...
3629         (gfc_trans_init_string_length):  ... to this.
3630         (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
3631         gfc_conv_function_call): Update to new format for character variables.
3632         (gfc_conv_string_length): Remove.
3633         (gfc_conv_string_parameter): Update assertion.
3634         * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
3635         * trans-io.c (set_string): Use new macro names.
3636         * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
3637         * trans-types.c (gfc_get_character_type): Use existing length expr.
3638         (gfc_is_nodesc_array): Make public.
3639         (gfc_get_dtype_cst): Rename ...
3640         (gfc_get_dtype): ... to this.  Handle unknown size arrays.
3641         (gfc_get_nodesc_array_type): Use new name.
3642         (gfc_sym_type): New character variable code.
3643         (gfc_get_derived_type): Ditto.
3644         (gfc_get_function_type): Evaluate character variable lengths.
3645         * trans-types.h (gfc_strlen_kind): Define.
3646         (gfc_is_nodesc_array): Add prototype.
3647         * trans.h: Update prototypes.
3648         (struct lang_type): Update comments.
3649         (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
3650         (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
3651
3652 2004-04-04  Paul Brook  <paul@codesourcery.com>
3653
3654         * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
3655         * options.c (gfc_init.options, gfc_handle_option): Ditto.
3656         * trans-expr.c (gfc_conv_function_call): Ditto.
3657         * trans-types.c (gfc_is_nodesc_array): Ditto
3658         * lang.opt (fg77-calls): Remove.
3659
3660 2004-04-04  Paul Brook  <paul@codesourcery.com>
3661
3662         * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
3663         (gfc_conv_descriptor_base): Rename ...
3664         (gfc_conv_descriptor_offset): ... to this.
3665         (gfc_trans_allocate_array_storage): Set offset to zero.
3666         (gfc_conv_array_base): Rename ...
3667         (gfc_conv_array_offset): ... to this.
3668         (gfc_conv_array_index_ref): Add offset parameter.
3669         (gfc_conv_array_ref): Include offset.
3670         (gfc_trans_preloop_setup): Use existing offset.
3671         (gfc_trans_allocate_temp_array,  gfc_array_allocate,
3672         gfc_trans_auto_array_allocation, gfc_trans_g77_array,
3673         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
3674         gfc_conf_ss_descriptor): Set offset.
3675         * trans-array.h: Rename prototypes.
3676         * trans-const.h (gfc_index_zero_node): Define.
3677         * trans-decl.c (gfc_build_qualified_array): Change base to offset.
3678         * trans-types.c (gfc_get_array_type_bounds): Ditto.
3679         (gfc_get_nodesc_array_type): Calculate offset before upper bound.
3680
3681 2004-03-25  Diego Novillo  <dnovillo@redhat.com>
3682
3683         * convert.c (convert): Don't handle WITH_RECORD_EXPR.
3684
3685 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3686
3687         PR 14055
3688         * arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
3689         before conversion by gmp library call.
3690
3691 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3692
3693         PR 12921
3694         * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
3695
3696 2004-02-24  Richard Henderson  <rth@redhat.com>
3697
3698         * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
3699
3700 2004-02-19  Loren J. Rittle  <ljrittle@acm.org>
3701
3702         * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
3703         (fortran/gfortran.info): ... to here.
3704         (f95.srcinfo): New.
3705
3706 2004-02-16  Richard Henderson  <rth@redhat.com>
3707
3708         * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
3709         * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
3710         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
3711         (gfc_expand_function): Rename from expand_function_body, make static,
3712         don't do anything except invoke tree_rest_of_compilation.
3713         (gfc_be_parse_file): Invoke cgraph.
3714         (gfc_expand_decl): Remove.
3715         (gfc_init_builtin_functions): Add __builtin_init_trampoline and
3716         __builtin_adjust_trampoline.
3717         * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
3718         (gfc_finalize): New.
3719         (gfc_generate_function_code): Use it.  Lower nested functions.
3720         * trans-expr.c (gfc_conv_function_call): Add static chain operand
3721         to call_expr.
3722         * trans.c (gfc_build_function_call): Likewise.
3723         * trans.h (expand_function_body): Remove.
3724
3725 2004-02-15  Victor Leikehman  <lei@il.ibm.com>
3726
3727         PR gfortran/13433
3728         * trans-decl.c (gfc_build_function_decl) For functions
3729         returning CHARACTER pass an extra length argument,
3730         following g77 calling conventions.
3731         * trans-types.c (gfc_get_function_type) Ditto.
3732         * trans-expr.c (gfc_conv_function_call) Ditto.
3733
3734 2004-02-14  Paul Brook  <paul@codesourcery.com>
3735
3736         * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
3737
3738 2004-02-12  Paul Brook  <paul@nowt.org>
3739
3740         * BUGS: Remove.
3741
3742 2004-02-08  Steve Kargl  <sgk@troutmask.apl.washington.edu>
3743
3744         * gfortran.texi: Fix typos.
3745
3746 2004-02-07  Bud Davis  <bdavis9659@comcast.net>
3747
3748         PR gfortran/13909
3749         * intrinsic.c (add_conversions) Use logical conversion instead
3750         of real.
3751         * trans-types.c (gfc_get_logical_type) implemented logical*1
3752         and logical*2.
3753
3754 2004-01-17  Paul Brook  <paul@codesourcery.com>
3755
3756         * lang-specs.h: Remove %<fixed-form.
3757
3758 2004-01-15  Toon Moene  <toon@moene.indiv.nluug.nl>
3759
3760         * lang-specs.h: Enable preprocessing of source files
3761         ending in .F, .fpp, .FPP, .F90 and .F95.
3762
3763 2004-01-13  Toon Moene  <toon@moene.indiv.nluug.nl>
3764
3765         PR fortran/12912
3766         * lang-specs.h: Enable compilation of files ending
3767         in .f, .for and .FOR.
3768
3769 2004-01-11  Paul Brook  <paul@codesourcery.com>
3770
3771         * trans-stmt.c (gfc_trans_if_1): New function.
3772         (gfc_trans_if): Use it.
3773
3774 2004-01-11  Erik Schnetter  <schnetter@uni-tuebingen.de>
3775
3776         * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
3777         (gfc_option_t): Add max_identifier_length.
3778         * lang.opt: Add fmax-identifier-length.
3779         * match.c (parse_name): Use limit.
3780         * options.c (gfc_init_options): Set max_identifier_length.
3781         (gfc_handle_option): Ditto.
3782
3783 2004-01-11  Feng Wang  <fengwang@nudt.edu.cn>
3784
3785         * intrinsic.c (add_functions): Add resolve function to dcmplx.
3786         * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
3787         * iresolve.c (gfc_resolve_dcmplx): New function.
3788
3789 2004-01-10  Paul Brook  <paul@codesourcery.com>
3790
3791         * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
3792         * trans-types.c (gfc_sym_type): Handle external dummy procedures.
3793         (gfc_return_by_reference): Correct condition.
3794         (gfc_get_function_type): Ditto.
3795
3796 2004-01-10  Paul Brook  <paul@codesourcery.com>
3797
3798         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
3799         types.
3800
3801 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
3802
3803         * iresolve.c: Use correct kind.
3804
3805 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
3806
3807         PR fortran/13467
3808         * trans-decl.c (gfc_create_module_variable):  Output array valued
3809         parameters.
3810
3811 2004-01-10  Paul Brook  <paul@codesourcery.com>
3812
3813         * resolve.c (resolve_branch): Get error message right way round.
3814
3815 2004-01-10  Canqun Yang <canqun@nudt.edu.cn>
3816
3817         * trans-array (gfc_conv_loop_setup): Adjust comment to track
3818         reality.
3819         (gfc_array_allocate): Don't count size of element twice.
3820
3821 2004-01-04  Paul Brook  <paul@codesourcery.com>
3822
3823         * lang.opt (i8, r8, std=*): Remove RejectNegative.
3824
3825 2004-01-04  Paul Brook  <paul@codesourcery.com>
3826
3827         * error.c (gfc_notify_std): New function.
3828         * gfortran.h (gfc_notify_std): Declare.
3829         (GFC_STD_*): Define.
3830         (gfc_option_t): Add warn_std and allow_std.
3831         * intrinsic.c (gfc_init_expr_extensions): Fix logic.
3832         (gfc_intrinsic_func_interface): Use gfc_notify_std.
3833         * check.c (check_rest): Use gfc_notify_std.
3834         * match.c (gfc_match_pause): Ditto.
3835         (gfc_match_assign): Ditto.
3836         (gfc_match_goto): Ditto.
3837         * resolve.c (resolve_branch): Ditto.
3838         * lang.opt: Add std=<foo> and w.
3839         * options.c (gfc_init_options): Set allow_std and warn_std.
3840         (gfc_handle_option): Handle OPT_std_* and OPT_w.
3841
3842 2004-01-01  Paul Brook  <paul@codesourcery.com>
3843
3844         * array.c (gfc_append_constructor): Take constructor, not expression.
3845         * data.c (struct gfc_expr_stack): Remove.
3846         (expr_stack): Remove.
3847         (find_con_by_offset): Rename from find_expr_in_con.
3848         (find_con_by_component): Rename from find_component_in_con.
3849         (gfc_get_expr_stack): Remove.
3850         (gfc_assign_data_value): Rewrite.
3851         (gfc_expr_push): Remove.
3852         (gfc_expr_pop): Remove.
3853         (gfc_advance_section): Rename from
3854         gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
3855         (gfc_get_section_index): Handle unbounded sections.
3856         * gfortran.h: Update prototypes.
3857         * resolve.c (check_data_variable): Array section maight not be the
3858         last ref.
3859
3860 2004-01-01  Paul Brook  <paul@codesourcery.com>
3861
3862         PR fortran/13432
3863         * resolve.c (resolve_symbol): Allow assumed length function results.
3864
3865 2004-01-01  Steve Kargl  <sgk@troutmask.apl.washington.edu>
3866
3867         * match.c (gfc_match_pause): Fix spelling.
3868
3869 2004-01-01  Steven Bosscher  <stevenb@suse.de>
3870
3871         PR fortran/13251
3872         * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
3873         reference from the expression.
3874
3875 2003-12-26  Feng Wang  <fengwang@nudt.edu.cn>
3876
3877         * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
3878         dumping.
3879         * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
3880         (gfc_exec_op): New EXEC_LABEL_ASSIGN.
3881         (symbol_attribute):New variable attribute: assign.
3882         * io.c (resolve_tag):Integer variable is allowed.
3883         (match_dt_format): Add ASSIGN statement. Set assign flag.
3884         * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
3885         (gfc_match_assign): Add ASSIGN statement. Set assign flag.
3886         (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
3887         * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
3888         (next_statement): Add ST_LABEL_ASSIGNMENT.
3889         (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
3890         * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
3891         (resolve_blocks): Resolve ASSIGNED GOTO statement label list.
3892         * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
3893         * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
3894         assign.  Put them into the stuct lang_decl.
3895         * trans-io.c (set_string): Add the assign statement.
3896         * trans-stmt.c (gfc_trans_label_assign): New function.
3897         (gfc_trans_goto): Translate ASSIGNED GOTO statement.
3898         * trans-stmt.h (gfc_trans_label_assign): Added function prototype.
3899         * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
3900         * trans.h (lang_decl):Add shadow variable decl tree needed by assign.
3901         (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
3902         (GFC_DECL_ASSIGN(node)): New macro to access flag.
3903
3904 2003-12-31  Huang Chun <chunhuang73@hotmail.com>
3905
3906         PR fortran/13434
3907         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in
3908         minval/maxval.
3909
3910 2003-12-22  Toon Moene  <toon@moene.indiv.nluug.nl>
3911
3912         * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
3913         that arguments to subroutines/functions can't alias themselves, nor global
3914         memory.
3915
3916 2003-12-20  Steven Bossche