OSDN Git Service

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