OSDN Git Service

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