OSDN Git Service

2005-12-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2005-12-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2
3         PR fortran/24268
4         * io.c (format_lex): Allow whitespace within text of format specifier.
5
6 2005-12-16  Steven G. Kargl <kargls@comcast.net>
7  
8         PR fortran/25106
9         PR fortran/25055
10         * match.c (gfc_match_small_literal_int): Add cnt argument;
11         (gfc_match_st_label,gfc_match_stopcode): Account for cnt argument.
12         * match.h (gfc_match_small_literal_int): Update prototype.
13         * decl.c (match_char_length,gfc_match_old_kind_spec): Account for cnt.
14         * parse.c (next_free): Ditto.
15         * primary.c (match_kind_param): Ditto.
16
17 2005-12-16  Richard Guenther  <rguenther@suse.de>
18
19         * trans.h (tree): Remove declaration of gfc_build_function_call.
20         * trans.c (gfc_build_function_call): Remove.
21         (gfc_build_array_ref): Use build_function_call_expr.
22         (gfc_trans_runtime_check): Likewise.
23         * trans-array.c (gfc_trans_allocate_array_storage): Likewise.
24         (gfc_grow_array): Likewise.
25         (gfc_trans_array_ctor_element): Likewise.
26         (gfc_trans_array_constructor_value): Likewise.
27         (gfc_array_allocate): Likewise.
28         (gfc_array_deallocate): Likewise.
29         (gfc_trans_auto_array_allocation): Likewise.
30         (gfc_trans_dummy_array_bias): Likewise.
31         (gfc_conv_array_parameter): Likewise.
32         * trans-expr.c (gfc_conv_power_op): Likewise.
33         (gfc_conv_string_tmp): Likewise.
34         (gfc_conv_concat_op): Likewise.
35         (gfc_conv_expr_op): Likewise.
36         (gfc_trans_string_copy): Likewise.
37         * trans-decl.c (build_entry_thunks): Likewise.
38         (gfc_generate_function_code): Likewise.
39         (gfc_generate_constructors): Likewise.
40         * trans-io.c (gfc_trans_open): Likewise.
41         (gfc_trans_close): Likewise.
42         (build_filepos): Likewise.
43         (gfc_trans_inquire): Likewise.
44         (transfer_namelist_element): Likewise.
45         (build_dt): Likewise.
46         (gfc_trans_dt_end): Likewise.
47         (transfer_expr): Likewise.
48         (transfer_array_desc): Likewise.
49         * trans-stmt.c (gfc_trans_pause): Likewise.
50         (gfc_trans_stop): Likewise.
51         (gfc_trans_character_select): Likewise.
52         (gfc_do_allocate): Likewise.
53         (gfc_trans_assign_need_temp): Likewise.
54         (gfc_trans_pointer_assign_need_temp): Likewise.
55         (gfc_trans_forall_1): Likewise.
56         (gfc_trans_where): Likewise.
57         (gfc_trans_allocate): Likewise.
58         (gfc_trans_deallocate): Likewise.
59         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Likewise.
60         (gfc_conv_intrinsic_lib_function): Likewise.
61         (gfc_conv_intrinsic_exponent): Likewise.
62         (gfc_conv_intrinsic_abs): Likewise.
63         (gfc_conv_intrinsic_sign): Likewise.
64         (gfc_conv_intrinsic_ctime): Likewise.
65         (gfc_conv_intrinsic_fdate): Likewise.
66         (gfc_conv_intrinsic_ttynam): Likewise.
67         (gfc_conv_intrinsic_ishftc): Likewise.
68         (gfc_conv_intrinsic_len_trim): Likewise.
69         (gfc_conv_intrinsic_index): Likewise.
70         (gfc_conv_intrinsic_size): Likewise.
71         (gfc_conv_intrinsic_strcmp): Likewise.
72         (gfc_conv_intrinsic_adjust): Likewise.
73         (gfc_conv_associated): Likewise.
74         (gfc_conv_intrinsic_scan): Likewise.
75         (gfc_conv_intrinsic_verify): Likewise.
76         (call_builtin_clz): Likewise.
77         (gfc_conv_intrinsic_si_kind): Likewise.
78         (gfc_conv_intrinsic_sr_kind): Likewise.
79         (gfc_conv_intrinsic_trim): Likewise.
80         (gfc_conv_intrinsic_repeat): Likewise.
81         (gfc_conv_intrinsic_iargc): Likewise.
82
83 2005-12-16  Richard Guenther  <rguenther@suse.de>
84
85         * trans.h (gfc_build_indirect_ref): Remove declaration.
86         * trans.c (gfc_build_indirect_ref): Remove.
87         * trans-array.c (gfc_trans_array_ctor_element): Use
88         build_fold_indirect_ref instead of gfc_build_indirect_ref.
89         (gfc_trans_array_constructor_value): Likewise.
90         (gfc_conv_array_index_offset): Likewise.
91         (gfc_conv_scalarized_array_ref): Likewise.
92         (gfc_conv_array_ref): Likewise.
93         (gfc_trans_dummy_array_bias): Likewise.
94         (gfc_conv_expr_descriptor): Likewise.
95         (gfc_conv_array_parameter): Likewise.
96         * trans-decl.c (gfc_finish_cray_pointee): Likewise.
97         (gfc_get_symbol_decl): Likewise.
98         * trans-expr.c (gfc_conv_substring): Likewise.
99         (gfc_conv_component_ref): Likewise.
100         (gfc_conv_variable): Likewise.
101         (gfc_add_interface_mapping): Likewise.
102         (gfc_conv_function_call): Likewise.
103         * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Likewise.
104         (gfc_conv_intrinsic_transfer): Likewise.
105         * trans-io.c (nml_get_addr_expr): Likewise.
106         (transfer_namelist_element): Likewise.
107         (transfer_expr): Likewise.
108         * trans-stmt.c (gfc_trans_nested_forall_loop): Likewise.
109         (allocate_temp_for_forall_nest_1): Likewise.
110         (gfc_trans_forall_1): Likewise.
111
112 2005-12-16  Richard Guenther  <rguenther@suse.de>
113
114         * trans-array.c (gfc_conv_descriptor_data_addr): Use
115         build_fold_addr_expr where appropriate.
116         (gfc_trans_allocate_array_storage): Likewise.
117         (gfc_trans_array_constructor_value): Likewise.
118         (gfc_conv_array_data): Likewise.
119         (gfc_conv_expr_descriptor): Likewise.
120         (gfc_conv_array_parameter): Likewise.
121         * trans-expr.c (gfc_conv_variable): Likewise.
122         (gfc_conv_function_val): Likewise.
123         (gfc_conv_function_call): Likewise.
124         (gfc_conv_expr_reference): Likewise.
125         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Likewise.
126         (gfc_conv_intrinsic_fdate): Likewise.
127         (gfc_conv_intrinsic_ttynam): Likewise.
128         (gfc_conv_intrinsic_si_kind): Likewise.
129         (gfc_conv_intrinsic_trim): Likewise.
130         * trans-io.c (set_parameter_ref): Likewise.
131         (gfc_convert_array_to_string): Likewise.
132         (gfc_trans_open): Likewise.
133         (gfc_trans_close): Likewise.
134         (build_filepos): Likewise.
135         (gfc_trans_inquire): Likewise.
136         (nml_get_addr_expr): Likewise.
137         (transfer_namelist_element): Likewise.
138         (build_dt): Likewise.
139         (gfc_trans_dt_end): Likewise.
140         (transfer_array_component): Likewise.
141         (transfer_expr): Likewise.
142         (transfer_array_desc): Likewise.
143         (gfc_trans_transfer): Likewise.
144         * trans-stmt.c (gfc_trans_allocate): Likewise.
145         (gfc_trans_deallocate): Likewise.
146
147 2005-12-16  Kazu Hirata  <kazu@codesourcery.com>
148
149         * dependency.c, resolve.c, trans-array.c: Fix comment typos.
150         * gfortran.texi: Fix typos.
151
152 2005-12-14  Erik Edelmann  <eedelman@gcc.gnu.org>
153
154         PR fortran/18197
155         * resolve.c (resolve_formal_arglist): Remove code to set
156         the type of a function symbol from it's result symbol.
157
158 2005-12-13  Richard Guenther  <rguenther@suse.de>
159
160         * trans-expr.c (gfc_conv_substring): Use fold_build2 and
161         build_int_cst.
162
163 2005-12-13  Richard Sandiford  <richard@codesourcery.com>
164
165         * Make-lang.in (fortran/trans-resolve.o): Depend on
166         fortran/dependency.h.
167         * gfortran.h (gfc_expr): Add an "inline_noncopying_intrinsic" flag.
168         * dependency.h (gfc_get_noncopying_intrinsic_argument): Declare.
169         (gfc_check_fncall_dependency): Change prototype.
170         * dependency.c (gfc_get_noncopying_intrinsic_argument): New function.
171         (gfc_check_argument_var_dependency): New function, split from
172         gfc_check_fncall_dependency.
173         (gfc_check_argument_dependency): New function.
174         (gfc_check_fncall_dependency): Replace the expression parameter with
175         separate symbol and argument list parameters.  Generalize the function
176         to handle dependencies for any type of expression, not just variables.
177         Accept a further argument giving the intent of the expression being
178         tested.  Ignore intent(in) arguments if that expression is also
179         intent(in).
180         * resolve.c: Include dependency.h.
181         (find_noncopying_intrinsics): New function.
182         (resolve_function, resolve_call): Call it on success.
183         * trans-array.h (gfc_conv_array_transpose): Declare.
184         (gfc_check_fncall_dependency): Remove prototype.
185         * trans-array.c (gfc_conv_array_transpose): New function.
186         * trans-intrinsic.c (gfc_conv_intrinsic_function): Don't use the
187         libcall handling if the expression is to be evaluated inline.
188         Add a case for handling inline transpose()s.
189         * trans-expr.c (gfc_trans_arrayfunc_assign): Adjust for the new
190         interface provided by gfc_check_fncall_dependency.
191
192 2005-12-12  Steven G. Kargl  <kargls@comcast.net>
193
194         PR fortran/25078
195         * match.c (gfc_match_equivalence):  Count number of objects.
196
197 2005-12-11  Aldy Hernandez  <aldyh@redhat.com>
198
199         * lang.opt: Add RejectNegative to ffixed-form and ffree-form.
200
201 2005-12-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
202
203         PR fortran/25068
204         * io.c (resolve_tag): Add correct diagnostic for F2003 feature.
205
206 2005-12-10  Thomas Koenig  <Thomas.Koenig@online.de>
207
208         PR fortran/23815
209         * io.c (top level):  Add convert to io_tag.
210         (resolve_tag):  convert is GFC_STD_GNU.
211         (match_open_element):  Add convert.
212         (gfc_free_open):  Likewise.
213         (gfc_resolve_open):  Likewise.
214         (gfc_free_inquire):  Likewise.
215         (match_inquire_element):  Likewise.
216         * dump-parse-tree.c (gfc_show_code_node):  Add
217         convet for open and inquire.
218         gfortran.h: Add convert to gfc_open and gfc_inquire.
219         * trans-io.c (gfc_trans_open):  Add convert.
220         (gfc_trans_inquire):  Likewise.
221         * ioparm.def:  Add convert to open and inquire.
222         * gfortran.texi:  Document CONVERT.
223
224 2005-12-09  Roger Sayle  <roger@eyesopen.com>
225
226         PR fortran/22527
227         * f95-lang.c (gfc_truthvalue_conversion): Use a zero of the correct
228         integer type when building an inequality.
229
230 2005-12-09  Richard Guenther  <rguenther@suse.de>
231
232         * f95-lang.c (build_builtin_fntypes): Use correct
233         return types, as indicated by comments.
234
235 2005-12-08  Erik Edelmann  <eedelman@gcc.gnu.org>
236
237         PR fortran/25292
238         * check.c (gfc_check_associated): Allow function results
239         as actual arguments to ASSOCIATED.  Moved a misplaced
240         comment.
241
242 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
243
244         * Make-lang.in (fortran.all.build, fortran.install-normal): Remove.
245
246 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
247
248         * Make-lang.in: Remove all dependencies on s-gtype, except for
249         gt-fortran-trans.h.
250
251 2005-12-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
252
253         PR fortran/25106
254         * parse.c (next_free): Use new prototype for gfc_match_st_label.
255         Correctly emit hard error if a label is zero.
256         * match.c (gfc_match_st_label): Never allow zero as a valid
257         label.
258         (gfc_match, gfc_match_do, gfc_match_goto): Use new prototype for
259         gfc_match_st_label.
260         * primary.c (): Use new prototype for gfc_match_st_label.
261         * io.c (): Likewise.
262         * match.h: Likewise.
263
264 2005-12-02  Richard Guenther  <rguenther@suse.de>
265
266         * trans.h (build1_v): Use build1, not build to build the
267         void typed tree.
268
269 2005-12-01  Erik Schnetter  <schnetter@aei.mpg.de>
270
271         * decl.c (gfc_match_old_kind_spec):  Improve handling of old style
272         COMPLEX*N
273
274 2005-12-01  Paul Thomas  <pault@gcc.gnu.org>
275
276         PR fortran/24789
277         * trans-decl.c (gfc_get_symbol_decl):  Move the expression for
278         unit size of automatic character length, dummy pointer array
279         elements down a few lines from the version that fixed PR15809.
280
281 2005-11-30  Bernhard Fischer <rep.nop@aon.at>
282
283         PR fortran/21302
284         * lang.opt: New options -ffree-line-length- and -ffree-line-length-none.
285         * gfortran.h: Add free_line_length and add description of
286         free_line_length and fixed_line_length.
287         * options.c (gfc_init_options, gfc_handle_option): Initialize
288         and set free_line_length and fixed_line_length.
289         * scanner.c (load_line): Set free_line_length to 132 and
290         fixed_line_length to 72 or user requested values.
291         * scanner.c: Typo in comment.
292         * invoke.texi: Document -ffree-line-length- and
293         -ffree-line-length-none
294
295 2005-11-30  Paul Thomas  <pault@gcc.gnu.org>
296
297         PR fortran/15809
298         * trans-decl.c (gfc_get_symbol_decl):  In the case of automatic
299         character length, dummy pointer arrays, build an expression for
300         unit size of the array elements, to be picked up and used in the
301         descriptor dtype.
302         * trans-io.c (gfc_trans_transfer):  Modify the detection of
303         components of derived type arrays to use the gfc_expr references
304         instead of the array descriptor dtype.  This allows the latter
305         to contain expressions.
306
307 2005-11-30  Erik Edelmann  <erik.edelmann@iki.fi>
308
309         PR fortran/15809
310         * trans-array.c (gfc_trans_deferred_array):  Allow PARM_DECLs past
311         in addition to VAR_DECLs.
312
313 2005-11-29  Jakub Jelinek  <jakub@redhat.com>
314
315         * io.c (gfc_resolve_open): RESOLVE_TAG access field as well.
316
317 2005-11-27 Bernhard Fischer <rep.nop@aon.at>
318
319         * gfortran.h: remove superfluous whitespace and use GNU
320         comment-style for the documentation of backend_decl.
321
322 2005-11-27  Steven G. Kargl  <kargls@comcast.net>
323
324         PR fortran/24917
325         * primary.c (match_boz_constant):  Implement postfix BOZ constants;
326         (match_string_constant): Peek for b, o, z, and x
327
328 2005-11-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
329
330         PR fortran/23912
331         * iresolve.c (gfc_resolve_dim, gfc_resolve_mod,
332         gfc_resolve_modulo): When arguments have different kinds, fold
333         the lower one to the largest kind.
334         * check.c (gfc_check_a_p): Arguments of different kinds is not
335         a hard error, but an extension.
336         * simplify.c (gfc_simplify_dim, gfc_simplify_mod,
337         gfc_simplify_modulo): When arguments have different kinds, fold
338         the lower one to the largest kind.
339
340 2005-11-21  Jakub Jelinek  <jakub@redhat.com>
341
342         PR fortran/14943
343         PR fortran/21647
344         * Make-lang.in (fortran/trans-io.o): Depend on fortran/ioparm.def.
345         * dump-parse-tree.c (gfc_show_code_node): Dump c->block for
346         EXEC_{READ,WRITE,IOLENGTH} nodes.
347         * io.c (terminate_io, match_io, gfc_match_inquire): Put data
348         transfer commands into EXEC_{READ,WRITE,IOLENGTH}'s code->block.
349         * resolve.c (resolve_blocks): Handle EXEC_{READ,WRITE,IOLENGTH}.
350         * trans-io.c (ioparm_unit, ioparm_err, ioparm_end, ioparm_eor,
351         ioparm_list_format, ioparm_library_return, ioparm_iostat,
352         ioparm_exist, ioparm_opened, ioparm_number, ioparm_named,
353         ioparm_rec, ioparm_nextrec, ioparm_size, ioparm_recl_in,
354         ioparm_recl_out, ioparm_iolength, ioparm_file, ioparm_file_len,
355         ioparm_status, ioparm_status_len, ioparm_access, ioparm_access_len,
356         ioparm_form, ioparm_form_len, ioparm_blank, ioparm_blank_len,
357         ioparm_position, ioparm_position_len, ioparm_action,
358         ioparm_action_len, ioparm_delim, ioparm_delim_len, ioparm_pad,
359         ioparm_pad_len, ioparm_format, ioparm_format_len, ioparm_advance,
360         ioparm_advance_len, ioparm_name, ioparm_name_len,
361         ioparm_internal_unit, ioparm_internal_unit_len,
362         ioparm_internal_unit_desc, ioparm_sequential, ioparm_sequential_len,
363         ioparm_direct, ioparm_direct_len, ioparm_formatted,
364         ioparm_formatted_len, ioparm_unformatted, ioparm_unformatted_len,
365         ioparm_read, ioparm_read_len, ioparm_write, ioparm_write_len,
366         ioparm_readwrite, ioparm_readwrite_len, ioparm_namelist_name,
367         ioparm_namelist_name_len, ioparm_namelist_read_mode, ioparm_iomsg,
368         ioparm_iomsg_len, ioparm_var): Remove.
369         (enum ioparam_type, enum iofield_type, enum iofield,
370         enum iocall): New enums.
371         (gfc_st_parameter_field, gfc_st_parameter): New typedefs.
372         (st_parameter, st_parameter_field, iocall): New variables.
373         (ADD_FIELD, ADD_STRING): Remove.
374         (dt_parm, dt_post_end_block): New variables.
375         (gfc_build_st_parameter): New function.
376         (gfc_build_io_library_fndecls): Use it.  Initialize iocall
377         array rather than ioparm_*, add extra first arguments to
378         the function types.
379         (set_parameter_const): New function.
380         (set_parameter_value): Add type argument, return a bitmask.
381         Changed to set a field in automatic structure variable rather
382         than set a field in a global _gfortran_ioparm variable.
383         (set_parameter_ref): Likewise.  If requested var has different
384         size than what field should point to, call with a temporary and
385         then copy into the user variable.  Add postblock argument.
386         (set_string): Remove var_len argument, add type argument, return
387         a bitmask.  Changed to set fields in automatic structure variable
388         rather than set a field in a global _gfortran_ioparm variable.
389         (set_internal_unit): Remove iunit, iunit_len, iunit_desc arguments,
390         add var argument.  Return a bitmask.  Changed to set fields in
391         automatic structure variable rather than set a field in a global
392         _gfortran_ioparm variable.
393         (set_flag): Removed.
394         (io_result): Add var argument.  Changed to read common.flags field
395         from automatic structure variable and bitwise AND it with 3.
396         (set_error_locus): Add var argument.  Changed to set fields in
397         automatic structure variable rather than set a field in a global
398         _gfortran_{filename,line} variables.
399         (gfc_trans_open): Use gfc_start_block rather than gfc_init_block.
400         Create a temporary st_parameter_* structure.  Adjust callers of
401         all above mentioned functions.  Pass address of the temporary
402         variable as first argument to the generated function call.
403         Use iocall array rather than ioparm_* separate variables.
404         (gfc_trans_close, build_filepos, gfc_trans_inquire): Likewise.
405         (build_dt): Likewise.  Change first argument to tree from tree *.
406         Don't dereference code->ext.dt if last_dt == INQUIRE.  Emit
407         IOLENGTH argument setup here.  Set dt_parm/dt_post_end_block
408         variables and gfc_trans_code the nested data transfer commands
409         in code->block.
410         (gfc_trans_iolength): Just set last_dt and call build_dt immediately.
411         (transfer_namelist_element): Pass address of dt_parm variable
412         to generated functions.  Use iocall array rather than ioparm_*
413         separate variables.
414         (gfc_trans_backspace, gfc_trans_endfile, gfc_trans_rewind,
415         gfc_trans_flush, gfc_trans_read, gfc_trans_write): Use iocall array
416         rather than ioparm_* separate variables.
417         (gfc_trans_dt_end): Likewise.  Pass address of dt_parm variable
418         as first argument to generated function.  Adjust io_result caller.
419         Prepend dt_post_end_block before io_result code.
420         (transfer_expr): Use iocall array rather than ioparm_* separate
421         variables.  Pass address of dt_parm variables as first argument
422         to generated functions.
423         * ioparm.def: New file.
424
425 2005-11-21  Paul Thomas  <pault@gcc.gnu.org>
426
427         PR fortran/24223
428         * resolve.c (resolve_contained_fntype) Error if an internal
429         function is assumed character length.
430
431         PR fortran/24705
432         * trans-decl.c (gfc_create_module_variable) Skip ICE in
433         when backend decl has been built and the symbol is marked
434         as being in an equivalence statement.
435
436 2005-11-20  Toon Moene  <toon@moene.indiv.nluug.nl>
437
438         * invoke.texi: Remove superfluous @item.
439
440 2005-11-19  Janne Blomqvist  <jb@gcc.gnu.org>
441
442         PR fortran/24862
443         * trans-io.c (gfc_trans_transfer): Handle arrays of derived type.
444
445 2005-11-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
446
447         PR fortran/20811
448         * scanner.c (gfc_open_included_file): Add an extra include_cwd
449         argument. Only include files in the current working directory if
450         its value is true.
451         * gfortran.h: Change prototype for gfc_open_included_file.
452         (load_file): Don't search for include files in the current working
453         directory.
454         * options.c (gfc_post_options): Add the directory of the source file
455         to the list of paths for included files.
456         * module.c (gfc_use_module): Look for module files in the current
457         directory.
458
459 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
460
461         PR fortran/24096
462         * trans-types.c (gfc_init_kinds): Use one less for max_exponent
463         of IBM extended double format.
464
465 2005-11-13  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
466
467         * intrinsic.c (add_functions): Add COMPLEX, FTELL, FGETC, FGET,
468         FPUTC, FPUT, AND, XOR and OR intrinsic functions.
469         (add_subroutines): Add FGETC, FGET, FPUTC, FPUT and FTELL intrinsic
470         subroutines.
471         * gfortran.h: Add GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET,
472         GFC_ISYM_FGETC, GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL,
473         GFC_ISYM_OR, GFC_ISYM_XOR.
474         * iresolve.c (gfc_resolve_and, gfc_resolve_complex,
475         gfc_resolve_or, gfc_resolve_fgetc, gfc_resolve_fget,
476         gfc_resolve_fputc, gfc_resolve_fput, gfc_resolve_ftell,
477         gfc_resolve_xor, gfc_resolve_fgetc_sub, gfc_resolve_fget_sub,
478         gfc_resolve_fputc_sub, gfc_resolve_fput_sub, gfc_resolve_ftell_sub):
479         New functions.
480         * check.c (gfc_check_complex, gfc_check_fgetputc_sub,
481         gfc_check_fgetputc, gfc_check_fgetput_sub, gfc_check_fgetput,
482         gfc_check_ftell, gfc_check_ftell_sub, gfc_check_and): New functions.
483         * simplify.c (gfc_simplify_and, gfc_simplify_complex, gfc_simplify_or,
484         gfc_simplify_xor): New functions.
485         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for
486         GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET, GFC_ISYM_FGETC,
487         GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL, GFC_ISYM_OR and
488         GFC_ISYM_XOR.
489         * intrinsic.h: Add prototypes for all functions added to iresolve.c,
490         simplify.c and check.c.
491
492 2005-11-10  Paul Thomas  <pault@gcc.gnu.org>
493             Steven G. Kargl <kargls@comcast.net>
494
495         PR fortran/15976
496         * resolve.c (resolve_symbol): Disallow automatic arrays in module scope.
497
498 2005-11-10  Paul Thomas  <pault@gcc.gnu.org>
499
500         PR fortran/24655
501         PR fortran/24755
502         * match.c (recursive_stmt_fcn): Add checks that symtree exists
503         for the expression to weed out inline intrinsic functions and
504         parameters.
505
506         PR fortran/24409
507         * module.c (mio_symtree_ref): Correct the patch of 0923 so that
508         a symbol is not substituted for by a the symbol for the module
509         itself and to prevent the promotion of a formal argument.
510
511 2005-11-10  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
512
513         PR fortran/24643
514         * primary.c (match_varspec): Check for implicitly typed CHARACTER
515         variables before matching substrings.
516
517 2005-11-09  Steven G. Kargl  <kargls@comcast.net>
518
519         * trans-intrinsic.c: Typo in comment.
520
521 2005-11-09  Erik Edelmann  <eedelman@gcc.gnu.org>
522
523         PR fortran/22607
524         * trans-decl.c(build_function_decl): Don't set
525         DECL_IS_PURE (fndecl) = 1 for return-by-reference
526         functions.
527
528 2005-11-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
529
530         * dump-parse-tree.c: Fix comment typo, add a few blank lines.
531
532 2005-11-07  Steven G. Kargl  <kargls@comcast.net>
533
534         * error.c: Use flag_fatal_error.
535         * invoke.texi:  Remove -Werror from list of options.
536
537 2005-11-06  Paul Thomas  <pault@gcc.gnu.org>
538
539         PR fortran/24534
540         * resolve.c (resolve_symbol): Exclude case of PRIVATE declared
541         within derived type from error associated with PRIVATE type
542         components within derived type.
543
544         PR fortran/20838
545         PR fortran/20840
546         * gfortran.h: Add prototype for gfc_has_vector_index.
547         * io.c (gfc_resolve_dt): Error if internal unit has a vector index.
548         * expr.c (gfc_has_vector_index): New function to check if any of
549         the array references of an expression have vector inidices.
550         (gfc_check_pointer_assign): Error if internal unit has a vector index.
551
552         PR fortran/17737
553         * data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE
554         and replace by a standard dependent warning/error if overwriting an
555         existing initialization.
556         * decl.c (gfc_data_variable): Remove old error for already initialized
557         variable and the unused error check for common block variables.  Add
558         error for hots associated variable and standard dependent error for
559         common block variables, outside of blockdata.
560         * symbol.c (check_conflict): Add constraints for DATA statement.
561
562 2005-11-06  Janne Blomqvist <jb@gcc.gnu.org>
563
564         PR fortran/24174
565         PR fortran/24305
566         * fortran/trans-io.c (gfc_build_io_library_fndecls): Add kind
567         argument to transfer_array.
568         (transfer_array_desc): Add kind argument.
569
570 2005-11-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
571
572         * intrinsic.c (add_functions): Add ctime and fdate intrinsics.
573         (add_subroutines): Likewise.
574         * intrinsic.h: Prototypes for gfc_check_ctime,
575         gfc_check_ctime_sub, gfc_check_fdate_sub, gfc_resolve_ctime,
576         gfc_resolve_fdate, gfc_resolve_ctime_sub, gfc_resolve_fdate_sub.
577         * gfortran.h: Add GFC_ISYM_CTIME and GFC_ISYM_FDATE.
578         * iresolve.c (gfc_resolve_ctime, gfc_resolve_fdate,
579         gfc_resolve_ctime_sub, gfc_resolve_fdate_sub): New functions.
580         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
581         gfor_fndecl_fdate and gfor_fndecl_ctime.
582         * check.c (gfc_check_ctime, gfc_check_ctime_sub,
583         gfc_check_fdate_sub): New functions.
584         * trans-intrinsic.c (gfc_conv_intrinsic_ctime,
585         gfc_conv_intrinsic_fdate): New functions.
586         (gfc_conv_intrinsic_function): Add cases for GFC_ISYM_CTIME
587         and GFC_ISYM_FDATE.
588         * intrinsic.texi: Documentation for the new CTIME and FDATE
589         intrinsics.
590         * trans.h: Declarations for gfor_fndecl_ctime and gfor_fndecl_fdate.
591
592 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
593
594         * decl.c, trans-decl.c: Fix comment typos.
595         * gfortran.texi: Fix a typo.
596
597 2005-11-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
598
599         * intrinsic.c (add_functions): Add function version of TTYNAM.
600         * intrinsic.h: Add prototypes for gfc_check_ttynam and
601         gfc_resolve_ttynam.
602         * gfortran.h: Add case for GFC_ISYM_TTYNAM.
603         * iresolve.c (gfc_resolve_ttynam): New function.
604         * trans-decl.c (gfc_build_intrinsic_function_decls): Add a tree
605         for function call to library ttynam.
606         * check.c (gfc_check_ttynam): New function.
607         * trans-intrinsic.c (gfc_conv_intrinsic_ttynam): New function.
608         (): Call gfc_conv_intrinsic_ttynam.
609         * trans.h: Add prototype for gfor_fndecl_ttynam.
610
611 2005-11-04  Steven G. Kargl <kargls@comcast.net>
612
613         PR fortran/24636
614         * match.c (gfc_match_stopcode):  Set stop_code = -1.
615
616 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
617
618         PR fortran/18452
619         * lang-specs.h: Pass -lang-fortran to the preprocessor.
620
621 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
622
623         PR fortran/18157
624         * trans-array.c (gfc_conv_resolve_dependencies): Use the correct
625         type for the temporary array.
626         * trans-expr.c (gfc_trans_assignment): Pass lss
627         instead of lss_section
628         to gfc_conv_resolve_dependencies to get the
629         correct type.
630
631 2005-11-02  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
632
633         * decl.c (gfc_match_entry): Function entries don't need an argument
634         list if there's no RESULT clause.
635
636 2005-11-01  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
637
638         PR fortran/24008
639         * decl.c (gfc_match_entry): Function entries need an argument list.
640
641 2005-11-01  Erik Edelmann  <eedelman@gcc.gnu.org>
642
643         PR 24245
644         * trans.c (gfc_generate_code): Move code to create a main
645         program symbol from here ...
646         * parse.c (main_program_symbol): ... to this new
647         function, setting the locus from gfc_current_locus
648         instead of ns->code->loc.
649         (gfc_parse_file):  Call main_program_symbol for main programs.
650
651 2005-11-01  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
652
653         PR fortran/24404
654         * resolve.c (resolve_symbol): Output symbol names in more error
655         messages, clarify error message.
656
657 2005-11-01  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
658
659         * dump-parse-tree.c (show_symtree): Revert change unintentionally
660         committed in r106246.
661
662 2005-11-01  Paul Thomas  <pault@gcc.gnu.org>
663
664         PR fortran/21565
665         * symbol.c (check_conflict): An object cannot be in a namelist and in
666         block data.
667
668         PR fortran/18737
669         * resolve.c (resolve_symbol): Set the error flag to
670         gfc_set_default_type, in the case of an external symbol, so that
671         an error message is emitted if IMPLICIT NONE is set.
672
673         PR fortran/14994
674         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SECNDS to enum.
675         * check.c (gfc_check_secnds): New function.
676         * intrinsic.c (add_functions): Add call to secnds.
677         * iresolve.c (gfc_resolve_secnds): New function.
678         * trans-intrinsic (gfc_conv_intrinsic_function): Add call to
679         secnds via case GFC_ISYM_SECNDS.
680         * intrinsic.texi: Add documentation for secnds.
681
682 2005-10-31  Andreas Schwab  <schwab@suse.de>
683
684         * Make-lang.in (GFORTRAN_TARGET_INSTALL_NAME): Define.
685         (GFORTRAN_CROSS_NAME): Remove.
686         (fortran.install-common): Correctly install a cross compiler.
687         (fortran.uninstall): Use GFORTRAN_TARGET_INSTALL_NAME instead of
688         GFORTRAN_CROSS_NAME.
689
690 2005-10-30  Erik Edelmann  <eedelman@gcc.gnu.org>
691
692         * gfortran.texi: Update contributors.
693
694 2005-10-30  Erik Edelmann  <eedelman@gcc.gnu.org>
695
696         PR fortran/18883
697         * trans-decl.c (gfc_finish_var_decl): Add decl to the
698         current function, rather than the parent.  Make
699         assertion accept fake result variables.
700         * trans-expr.c (gfc_conv_variable): If the character
701         length of an ENTRY isn't set, get the length from
702         the master function instead.
703
704 2005-10-30  Thomas Koenig  <Thomas.Koenig@online.de>
705
706         * gfortran.texi:  Remove reservations about I/O usability.  Document
707         that array intrinsics mostly work.
708
709 2005-10-30  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
710
711         * gfortran.texi: Move license stuff to back.  Add information
712         on ENUM and ENUMERATOR.
713         * invoke.texi: Document -fshort-enums.
714
715 2005-10-30  Gaurav Gautam  <gauravga@noida.hcltech.com>
716             Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
717
718         * arith.c (gfc_enum_initializer): New function.
719         (gfc_check_integer_range): Made extern.
720         * decl.c (enumerator_history): New typedef.
721         (last_initializer, enum_history, max_enum): New variables.
722         (create_enum_history, gfc_free_enum_history): New functions.
723         (add_init_expr_to_sym): Call create_enum_history if parsing ENUM.
724         (variable_decl): Modified to parse enumerator definition.
725         (match_attr_spec): Add PARAMETER attribute to ENUMERATORs.
726         (gfc_match_data_decl): Issues error, if match_type_spec do not
727         return desired return values.
728         (set_enum_kind, gfc_match_enum, gfc_match_enumerator_def): New
729         functions.
730         (gfc_match_end): Deal with END ENUM.
731         * gfortran.h (gfc_statement): ST_ENUM, ST_ENUMERATOR, ST_END_ENUM
732         added.
733         (symbol_attribute): Bit field for enumerator added.
734         (gfc_options): Add fshort_enums.
735         (gfc_enum_initializer, gfc_check_integer_range): Add prototypes.
736         * options.c: Include target.h
737         (gfc_init_options): Initialize fshort_enums.
738         (gfc_handle_option): Deal with fshort_enums.
739         * parse.c (decode_statement): Match ENUM and ENUMERATOR statement.
740         (gfc_ascii_statement): Deal with the enumerator statements.
741         (parse_enum): New function to parse enum construct.
742         (parse_spec): Added case ST_ENUM.
743         * parse.h (gfc_compile_state): COMP_ENUM added.
744         (gfc_match_enum, gfc_match_enumerator_def, gfc_free_enum_history):
745         Prototype added.
746         * symbol.c (gfc_copy_attr): Copy enumeration attribute.
747         * lang.opt (fshort-enums): Option added.
748
749 2005-10-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
750
751         * check.c (gfc_check_malloc, gfc_check_free): New functions.
752         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_MALLOC.
753         * intrinsic.c (add_functions): Add symbols for MALLOC function.
754         (add_subroutines): Add symbol for FREE subroutine.
755         * intrinsic.h: Prototypes for gfc_check_malloc, gfc_check_free,
756         gfc_resolve_malloc and gfc_resolve_free.
757         * intrinsic.texi: Add doc for FREE and MALLOC intrinsics.
758         * iresolve.c (gfc_resolve_malloc, gfc_resolve_free): New
759         functions.
760         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add case for
761         GFC_ISYM_MALLOC.
762
763 2005-10-30  Steven Bosscher  <stevenb@suse.de>
764
765         * gfortran.texi: Update contributors.
766
767 2005-10-29  Steven Bosscher  <stevenb@suse.de>
768
769         * interface.c: Fix previous checkin (an incomplete patch
770         was commited for me).
771
772 2005-10-29  Joseph S. Myers  <joseph@codesourcery.com>
773
774         * intrinsic.texi: Remove empty @cindex line.
775
776 2005-10-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
777
778         * check.c (gfc_check_alarm_sub, gfc_check_signal,
779         gfc_check_signal_sub): New functions.
780         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIGNAL.
781         * intrinsic.c (add_functions): Add signal intrinsic.
782         (add_subroutines): Add signal and alarm intrinsics.
783         * intrinsic.texi: Document the new intrinsics.
784         * iresolve.c (gfc_resolve_signal, gfc_resolve_alarm_sub,
785         gfc_resolve_signal_sub): New functions.
786         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add case
787         for GFC_ISYM_SIGNAL.
788         * intrinsic.h: Add prototypes for gfc_check_alarm_sub,
789         gfc_check_signal, gfc_check_signal_sub, gfc_resolve_signal,
790         gfc_resolve_alarm_sub, gfc_resolve_signal_sub.
791
792 2005-10-28  Steven Bosscher  <stevenb@suse.de>
793
794         PR fortran/24545
795         * interface.c (gfc_match_end_interface): Fix typo in 
796         INTERFACE_USER_OP case.
797
798 2005-10-26  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
799
800         PR fortran/15586
801         * resolve.c (resolve_symbol): Remove the use of whynot, so that
802         error messages are not built from pieces.
803
804 2005-10-26  Paul Thomas  <pault@gcc.gnu.org>
805
806         PR fortran/24158
807         * decl.c (gfc_match_data_decl): Correct broken bit of code
808         that prevents undefined derived types from being used as
809         components of another derived type.
810         * resolve.c (resolve_symbol): Add backstop error when derived
811         type variables arrive here with a type that has no components.
812
813 2005-10-25  Jakub Jelinek  <jakub@redhat.com>
814
815         * trans.h (gfc_conv_cray_pointee): Remove.
816         * trans-expr.c (gfc_conv_variable): Revert 2005-10-24 change.
817         * trans-array.c (gfc_conv_array_parameter): Likewise.
818         * trans-decl.c (gfc_conv_cray_pointee): Remove.
819         (gfc_finish_cray_pointee): New function.
820         (gfc_finish_var_decl): Use it.  Don't return early for Cray
821         pointees.
822         (gfc_create_module_variable): Revert 2005-10-24 change.
823         * decl.c (cray_pointer_decl): Update comment.
824         * gfortran.texi: Don't mention Cray pointees aren't visible in the
825         debugger.
826
827         * symbol.c (check_conflict): Add conflict between cray_pointee
828         and in_common resp. in_equivalence.
829         * resolve.c (resolve_equivalence): Revert 2005-10-24 change.
830
831         * module.c (ab_attribute): Add AB_CRAY_POINTER and AB_CRAY_POINTEE.
832         (attr_bits): Likewise.
833         (mio_symbol_attribute): Save and restore cray_pointe{r,e} attributes.
834         (mio_symbol): For cray_pointee write/read cp_pointer reference.
835
836 2005-10-25  Feng Wang  <fengwang@nudt.edu.cn>
837
838         PR fortran/22290
839         * trans-decl.c (gfc_add_assign_aux_vars): New function. Add two
840         auxiliary variables.
841         (gfc_get_symbol_decl): Use it when a variable, including dummy
842         argument, is assigned a label.
843         (gfc_trans_assign_aux_var): New function. Set initial value of
844         the auxiliary variable explicitly.
845         (gfc_trans_deferred_vars): Use it.
846         * trans-stmt.c (gfc_conv_label_variable): Handle dummy argument.
847
848 2005-10-24  Asher Langton  <langton2@llnl.gov>
849
850         PR fortran/17031
851         PR fortran/22282
852         * check.c (gfc_check_loc): New function.
853         * decl.c (variable_decl): New variables cp_as and sym.  Added a
854         check for variables that have already been declared as Cray
855         Pointers, so we can get the necessary attributes without adding
856         a new symbol.
857         (attr_decl1): Added code to catch pointee symbols and "fix"
858         their array specs.
859         (cray_pointer_decl): New method.
860         (gfc_match_pointer): Added Cray pointer parsing code.
861         (gfc_mod_pointee_as): New method.
862         * expr.c (gfc_check_assign): Added a check to catch vector-type
863         assignments to pointees with an unspecified final dimension.
864         * gfortran.h: (GFC_ISYM_LOC): New.
865         (symbol_attribute): Added cray_pointer and cray_pointee bits.
866         (gfc_array_spec): Added cray_pointee and cp_was_assumed bools.
867         (gfc_symbol): Added gfc_symbol *cp_pointer.
868         (gfc_option): Added flag_cray_pointer.
869         (gfc_add_cray_pointee): Declare.
870         (gfc_add_cray_pointer ): Declare.
871         (gfc_mod_pointee_as): Declare.
872         * intrinsic.c (add_functions): Add code for loc() intrinsic.
873         * intrinsic.h (gfc_check_loc): Declare.
874         (gfc_resolve_loc): Declare.
875         * iresolve.c (gfc_resolve_loc): New.
876         * lang.opt: Added fcray-pointer flag.
877         * options.c (gfc_init_options): Initialized.
878         gfc_match_option.flag_cray_pointer.
879         (gfc_handle_option): Deal with -fcray-pointer.
880         * parse.c:(resolve_equivalence): Added code prohibiting Cray
881         pointees in equivalence statements.
882         * resolve.c (resolve_array_ref): Added code to prevent bounds
883         checking for Cray Pointee arrays.
884         (resolve_equivalence): Prohibited pointees in equivalence
885         statements.
886         * symbol.c (check_conflict): Added Cray pointer/pointee
887         attribute checking.
888         (gfc_add_cray_pointer): New.
889         (gfc_add_cray_pointee): New.
890         (gfc_copy_attr): New code for Cray pointers and pointees.
891         * trans-array.c (gfc_trans_auto_array_allocation): Added code to
892         prevent space from being allocated for pointees.
893         (gfc_conv_array_parameter): Added code to catch pointees and
894         correctly set their base address.
895         * trans-decl.c (gfc_finish_var_decl): Added code to prevent
896         pointee declarations from making it to the back end.
897         (gfc_create_module_variable): Same.
898         * trans-expr.c (gfc_conv_variable): Added code to detect and
899         translate pointees.
900         (gfc_conv_cray_pointee): New.
901         * trans-intrinsic.c (gfc_conv_intrinsic_loc): New.
902         (gfc_conv_intrinsic_function): Added entry point for loc
903         translation.
904         * trans.h (gfc_conv_cray_pointee): Declare.
905
906         * gfortran.texi: Added section on Cray pointers, removed Cray
907         pointers from list of proposed extensions.
908         * intrinsic.texi: Added documentation for loc intrinsic.
909         * invoke.texi: Documented -fcray-pointer flag.
910
911 2005-10-24  Asher Langton  <langton2@llnl.gov>
912
913         * decl.c (gfc_match_save): Changed duplicate SAVE errors to
914         warnings in the absence of strict standard conformance
915         * symbol.c (gfc_add_save): Same.
916
917 2005-10-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
918
919         PR fortran/15586
920         * arith.c (gfc_arith_error): Change message to include locus.
921         (check_result, eval_intrinsic, gfc_int2int, gfc_real2real,
922         gfc_real2complex, gfc_complex2real, gfc_complex2complex): Use
923         the new gfc_arith_error.
924         (arith_error): Rewrite full error messages instead of building
925         them from pieces.
926         * check.c (must_be): Removed.
927         (type_check, numeric_check, int_or_real_check, real_or_complex_check,
928         kind_check, double_check, logical_array_check, array_check,
929         scalar_check, same_type_check, rank_check, kind_value_check,
930         variable_check, gfc_check_allocated, gfc_check_associated,
931         gfc_check_cmplx, gfc_check_dcmplx, gfc_check_dot_product,
932         gfc_check_index, gfc_check_kind, gfc_check_matmul, gfc_check_null,
933         gfc_check_pack, gfc_check_precision, gfc_check_present,
934         gfc_check_spread): Rewrite full error messages instead of
935         building them from pieces.
936         * decl.c (gfc_match_entry): Rewrite full error messages instead
937         of building them from pieces.
938         * parse.c (gfc_state_name): Remove.
939         * parse.h: Remove prototype for gfc_state_name.
940
941 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
942
943         PR fortran/23635
944         * check.c (gfc_check_ichar_iachar): Move the code around so
945         that the check on the length is after check for
946         references.
947
948 2005-10-23  Asher Langton  <langton2@llnl.gov>
949
950         * decl.c (match_type_spec): Add a BYTE type as an extension.
951
952 2005-10-23  Paul Thomas  <pault@gcc.gnu.org>
953
954         PR fortran/18022
955         * trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL
956         if there is a component ref during an array ref to force
957         use of temporary in assignment.
958
959         PR fortran/24311
960         PR fortran/24384
961         * fortran/iresolve.c (check_charlen_present): New function to
962         add a charlen to the typespec, in the case of constant
963         expressions.
964         (gfc_resolve_merge, gfc_resolve_spread): Call.the above.
965         (gfc_resolve_spread): Make calls to library functions that
966         handle the case of the spread intrinsic with a scalar source.
967
968 2005-10-22  Erik Edelmann  <eedelman@gcc.gnu.org>
969
970         PR fortran/24426
971         * decl.c (variable_decl): Don't assign default initializers to
972         pointers.
973
974 2005-10-21  Jakub Jelinek  <jakub@redhat.com>
975
976         * interface.c (compare_actual_formal): Issue error when attempting
977         to pass an assumed-size array as assumed-shape array argument.
978
979 2005-10-20  Erik Edelmann  <erik.edelmann@iki.fi>
980
981         PR fortran/21625
982         * resolve.c (expr_to_initialize): New function.
983         (resolve_allocate_expr): Take current statement as new
984         argument. Add default initializers to variables of
985         derived types, if they need it.
986         (resolve_code): Provide current statement as argument to
987         resolve_allocate_expr().
988
989 2005-10-19  Paul Thomas  <pault@gcc.gnu.org>
990
991         PR fortran/24440
992         * resolve.c (resolve_symbol): Correct error in check for
993         assumed size array with default initializer by testing
994         for arrayspec before dereferencing it.
995
996 2005-10-17  Paul Thomas  <pault@gcc.gnu.org>
997
998         PR fortran/23446
999         * gfortran.h: Primitive for gfc_is_formal_arg.
1000         * resolve.c(gfc_is_formal_arg): New function to signal across
1001         several function calls that formal argument lists are being
1002         processed.
1003         (resolve_formal_arglist): Set/reset the flag for gfc_is_formal_arg.
1004         *expr.c(check_restricted): Add check, via gfc_is_formal_arg, if
1005         symbol is part of an formal argument declaration.
1006
1007         PR fortran/21459
1008         * decl.c (add_init_expr_to_sym): Make a new character
1009         length for each variable, when the expression is NULL
1010         and link to cl_list.
1011
1012         PR fortran/20866
1013         * match.c (recursive_stmt_fcn): New function that tests if
1014         a statement function resurses through itself or other other
1015         statement functions.
1016         (gfc_match_st_function): Call recursive_stmt_fcn to check
1017         if this is recursive and to raise error if so.
1018
1019         PR fortran/20849
1020         PR fortran/20853
1021         * resolve.c (resolve_symbol): Errors for assumed size arrays
1022         with default initializer and for external objects with an
1023         initializer.
1024
1025         PR fortran/20837
1026         * decl.c (match_attr_spec): Prevent PUBLIC from being used
1027         outside a module.
1028
1029 2005-10-16  Erik Edelmann  <erik.edelmann@iki.fi>
1030
1031         PR 22273
1032         * expr.c (check_inquiry): Add "len" to inquiry_function.
1033
1034 2005-10-14  Jakub Jelinek  <jakub@redhat.com>
1035
1036         * primary.c (match_boz_constant): Add missing break after gfc_error.
1037
1038 2005-10-12  Paul Thomas  <pault@gcc.gnu.org>
1039
1040         PR fortran/24092
1041         * trans-types.c (gfc_get_derived_type): Insert code to obtain backend
1042         declaration for derived types, building if necessary.  Return the
1043         derived type if the fields have been built by this process.  Otherwise,
1044         continue as before but using the already obtained backend_decls for the
1045         derived type components.  Change the gcc_assert to act on the field.
1046
1047 2005-10-12  Paul Thomas  <pault@gcc.gnu.org>
1048
1049         PR fortran/18082
1050         * decl.c (variable_decl): Make a new copy of the character
1051         length for each variable, when the expression is not a
1052         constant.
1053
1054 2005-10-12  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1055
1056         * gfortran.h: Add bitmasks for different FPE traps. Add fpe
1057         member to options_t.
1058         * invoke.texi: Document the new -ffpe-trap option.
1059         * lang.opt: Add -ffpe-trap option.
1060         * options.c (gfc_init_options): Initialize the FPE option.
1061         (gfc_handle_fpe_trap_option): New function to parse the argument
1062         of the -ffpe-trap option.
1063         (gfc_handle_option): Add case for -ffpe-trap.
1064         * trans-decl.c: Declare a tree for the set_fpe library function.
1065         (gfc_build_builtin_function_decls): Build this tree.
1066         (gfc_generate_function_code): Generate a call to set_fpe at
1067         the beginning of the main program.
1068         * trans.h: New tree for the set_fpe library function.
1069
1070 2005-10-12  Paul Thomas  <pault@gcc.gnu.org>
1071
1072         PR fortran/20847
1073         PR fortran/20856
1074         * symbol.c (check_conflict): Prevent common variables and
1075         function results from having the SAVE attribute,as required
1076         by the standard.
1077
1078 2005-10-12  Paul Thomas  <pault@gcc.gnu.org>
1079
1080         PR fortran/24207
1081         * resolve.c (resolve_symbol): Exclude use and host associated
1082         symbols from the test for private objects in a public namelist.
1083
1084 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
1085
1086         * trans-common.c (build_field): Fix comment typo.
1087         (create_common): Set backend_decl of COMMON or EQUIVALENCEd
1088         variables to a VAR_DECL with the COMPONENT_REF in
1089         DECL_HAS_VALUE_EXPR rather than COMPONENT_REF directly.
1090         * f95-lang.c (gfc_expand_function): Emit debug info for
1091         EQUIVALENCEd variables if the equiv union is going to be output.
1092
1093 2005-10-11  Steven G. Kargl  <kargls@comcast.net>
1094
1095         PR fortran/20786
1096         * iresolve.c (gfc_resolve_aint, gfc_resolve_anint): Type conversion
1097         of the argument.
1098
1099 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
1100
1101         * f95-lang.c (gfc_init_decl_processing): Initialize
1102         void_list_node.
1103
1104 2005-10-07  Erik Edelmann  <erik.edelmann@iki.fi>
1105
1106         PR 18568
1107         * resolve.c (find_array_spec): Search through the list of
1108         components in the symbol of the type instead of the symbol of the
1109         variable.
1110
1111 2005-10-05  Richard Guenther  <rguenther@suse.de>
1112
1113         PR fortran/24176
1114         * parse.c (gfc_parse_file): Exit early for empty files.
1115
1116 2005-10-03  Steve Ellcey  <sje@cup.hp.com>
1117
1118         * fortran/trans-types.c (gfc_init_kinds): Only pass float, double,
1119         and long double floating point types through to Fortran compiler.
1120
1121 2005-10-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1122
1123         PR fortran/20120
1124         * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long
1125         double builtin function.
1126         (gfc_init_builtin_functions): Add mfunc_longdouble,
1127         mfunc_clongdouble and func_clongdouble_longdouble trees. Build
1128         them for round, trunc, cabs, copysign and pow functions.
1129         * iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add
1130         case for kind 10 and 16.
1131         * trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16,
1132         exponent10 and exponent16.
1133         (gfc_build_intrinsic_function_decls): Build nodes for int16,
1134         real10, real16, complex10 and complex16 types. Build all possible
1135         combinations for function _gfortran_pow_?n_?n. Build function
1136         calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16.
1137         * trans-expr.c (gfc_conv_power_op): Add case for integer(16),
1138         real(10) and real(16).
1139         * trans-intrinsic.c: Add suppport for long double builtin
1140         functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION
1141         macros.
1142         (gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and
1143         real(16) kinds.
1144         (gfc_build_intrinsic_lib_fndecls): Add support for real10_decl
1145         and real16_decl in library functions.
1146         (gfc_get_intrinsic_lib_fndecl): Add cases for real and complex
1147         kinds 10 and 16.
1148         (gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16)
1149         kinds.
1150         (gfc_conv_intrinsic_sign): Likewise.
1151         (gfc_conv_intrinsic_ishftc): Add case for integer(16) kind.
1152         * trans-types.c (gfc_get_int_type, gfc_get_real_type,
1153         gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in
1154         the case of kinds not available.
1155         * trans.h: Declare trees for cpowl10, cpowl16, ishftc16,
1156         exponent10 and exponent16.
1157
1158 2005-10-01  Paul Thomas  <pault@gcc.gnu.org>
1159
1160         PR fortran/16404
1161         PR fortran/20835
1162         PR fortran/20890
1163         PR fortran/20899
1164         PR fortran/20900
1165         PR fortran/20901
1166         PR fortran/20902
1167         * gfortran.h: Prototype for gfc_add_in_equivalence.
1168         * match.c (gfc_match_equivalence): Make a structure component
1169         an explicit,rather than a syntax, error in an equivalence
1170         group.  Call gfc_add_in_equivalence to add the constraints
1171         imposed in check_conflict.
1172         * resolve.c (resolve_symbol): Add constraints: No public
1173         structures with private-type components and no public
1174         procedures with private-type dummy arguments.
1175         (resolve_equivalence_derived): Add constraint that prevents
1176         a structure equivalence member from having a default
1177         initializer.
1178         (sequence_type): New static function to determine whether an
1179         object is default numeric, default character, non-default
1180         or mixed sequence. Add corresponding enum typespec.
1181         (resolve_equivalence): Add constraints to equivalence groups
1182         or their members: No more than one initialized member and
1183         that different types are not equivalenced for std=f95.  All
1184         the simple constraints have been moved to check_conflict.
1185         * symbol.c (check_conflict): Simple equivalence constraints
1186         added, including those removed from resolve_symbol.
1187         (gfc_add_in_equivalence): New function to interface calls
1188         match_equivalence to check_conflict.
1189
1190 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
1191
1192         PR fortran/18518
1193         * trans-common.c (build_equiv_decl): Add IS_SAVED argument.
1194         If it is true, set TREE_STATIC on the decl.
1195         (create_common): If any symbol in equivalence has SAVE attribute,
1196         pass true as last argument to build_equiv_decl.
1197
1198 2005-09-24  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1199
1200         * trans-io.c (gfc_build_io_library_fndecls): Add entry
1201         iocall_x_array for transfer_array.
1202         (transfer_array_desc): New function.
1203         (gfc_trans_transfer): Add code to call transfer_array_desc.
1204
1205 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
1206
1207         PR fortran/23677
1208         * symbol.c (gfc_is_var_automatic): Return true if character length
1209         is non-constant rather than constant.
1210         * resolve.c (gfc_resolve): Don't handle !gfc_option.flag_automatic
1211         here.
1212         * options.c (gfc_post_options): Set gfc_option.flag_max_stack_var_size
1213         to 0 for -fno-automatic.
1214
1215 2005-09-23  Paul Thomas  <pault@gcc.gnu.org>
1216
1217         PR fortran/16861
1218         * module.c (mio_component_ref): Return if the symbol is NULL
1219         and wait for another iteration during module reads.
1220         (mio_symtree_ref): Suppress the writing of contained symbols,
1221         when a symbol is available in the main namespace.
1222         (read_module): Restrict scope of special treatment of contained
1223         symbols to variables only and suppress redundant call to
1224         find_true_name.
1225
1226 2005-09-22  Steven G. Kargl  <kargls@comcast.net>
1227
1228         PR fortran/24005
1229         * interface.c (check_interface1): Fix NULL dereference.
1230
1231 2005-09-22  Erik Edelmann  <erik.edelmann@iki.fi>
1232
1233         PR fortran/23843
1234         * resolve.c (derived_inaccessible): New function.
1235         (resolve_transfer): Use it to check for private
1236         components.
1237
1238 2005-09-22  Steven G. Kargl  <kargls@comcast.net>
1239
1240         PR fortran/23516
1241         * intrinsic.c (add_function): Add IMAG, IMAGPART, and REALPART
1242         intrinsics.
1243         * intrinsic.h: Prototypes for gfc_simplify_realpart and
1244         gfc_resolve_realpart.
1245         * intrinsic.texi: Document intrinsic procedures.
1246         * simplify.c (gfc_simplify_realpart): New function.
1247         * irseolve.c (gfc_resolve_realpart): New function.
1248
1249 2005-09-21  Erik Edelmann  <erik.edelmann@iki.fi>
1250
1251         PR fortran/19929
1252         * trans-stmt.c (gfc_trans_deallocate): Check if the
1253         object to be deallocated is an array by looking at
1254         expr->rank instead of expr->symtree->n.sym->attr.dimension.
1255
1256 2005-09-20  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1257
1258         PR fortran/23420
1259         * io.c (resolve_tag): Don't allow non-CHARACTER constants as formats.
1260         (match_io): Fix usage of gfc_find_symbol.
1261
1262 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
1263
1264         PR fortran/23663
1265         * primary.c (match_actual_arg): Handle ENTRY the same way
1266         as FUNCTION.
1267
1268 2005-09-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1269
1270         * Make-lang.in: Make check-fortran alias for check-gfortran.
1271
1272 2005-09-18  Andreas Jaeger  <aj@suse.de>
1273
1274         * module.c (read_module): Add missed line from last patch.
1275
1276 2005-09-18  Erik Edelmann  <erik.edelmann@iki.fi>
1277
1278         PR fortran/15975
1279         * resolve.c (resolve_symbol): Don't assign default
1280         initializer to pointers.
1281
1282 2005-09-18  Paul Thomas  <pault@gcc.gnu.org>
1283
1284         PR fortran/16861
1285         * module.c (read_module): Give symbols from module procedures
1286         different true_name entries to those from the module proper.
1287
1288 2005-09-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1289
1290         PR fortran/15586
1291         * arith.c (gfc_arith_error): Add translation support for error
1292         messages.
1293         * array.c (gfc_match_array_ref): Likewise.
1294         (gfc_match_array_spec): Likewise.
1295         * check.c (must_be): Add msgid convention to third argument.
1296         (same_type_check): Add translation support for error message.
1297         (rank_check): Likewise.
1298         (kind_value_check): Likewise.
1299         (gfc_check_associated): Correct typo.
1300         (gfc_check_reshape): Add translation support for error message.
1301         (gfc_check_spread): Likewise.
1302         * error.c (error_printf): Add nocmsgid convention to argument.
1303         (gfc_warning, gfc_notify_std, gfc_warning_now, gfc_warning_check)
1304         (gfc_error, gfc_error_now): Likewise.
1305         (gfc_status): Add cmsgid convention to argument.
1306         * expr.c (gfc_extract_int): Add translation support for error
1307         messages.
1308         (gfc_check_conformance): Add msgid convention to argument.
1309         (gfc_check_pointer_assign): Correct tabbing.
1310         * gfortran.h: Include intl.h header. Remove prototype for gfc_article.
1311         * gfortranspec.c: Include intl.h header.
1312         (lang_specific_driver): Add translation support for --version.
1313         * io.c (check_format): Add translation support for error message.
1314         (format_item_1): Likewise.
1315         (data_desc): Likewise.
1316         * matchexp.c: Likewise.
1317         * misc.c (gfc_article): Remove function.
1318         * module.c (bad_module): Use msgid convention. Add translation support
1319         for error messages.
1320         (require_atom): Add translation support for error messages.
1321         * parse.c (gfc_ascii_statement): Likewise.
1322         (gfc_state_name): Likewise.
1323         * primary.c (match_boz_constant): Reorganise error messages for
1324         translations.
1325         * resolve.c (resolve_entries): Likewise.
1326         (resolve_operator): Add translation support for error messages.
1327         (gfc_resolve_expr): Use msgid convention. Reorganise error messages
1328         for translations.
1329         (resolve_symbol): Add translation support for error messages.
1330         * symbol.c (gfc_add_procedure): Remove use of gfc_article function.
1331         * trans-const.c (gfc_build_string_const): Use msgid convention.
1332
1333 2005-09-16  Paul Brook  <paul@codesourcery.com>
1334
1335         PR fortran/23906
1336         * dependency.c (transform_sections): Divide by correct value.
1337         Elaborate comment.
1338
1339 2005-09-14  Paul Thomas  <pault@gcc.gnu.org>
1340
1341         PR fortran/21875 Internal Unit Array I/O, NIST
1342         * fortran/trans-io.c (gfc_build_io_library_fndecls): Add field for
1343         array descriptor to IOPARM structure.
1344         * fortran/trans-io.c (set_internal_unit): New function to generate code
1345         to store the character (array) and the character length for an internal
1346         unit.
1347         * fortran/trans-io (build_dt): Use the new function set_internal_unit.
1348
1349 2005-09-14  Paul Thomas  <pault@gcc.gnu.org>
1350
1351         PR fortran/19358
1352         * trans-array.c (gfc_trans_dummy_array_bias): correct the typo
1353         which uses dim[i].upper for lbound, rather than dim[i].lower.
1354
1355 2005-09-13  Erik Edelmann  <erik.edelmann@iki.fi>
1356
1357         PR fortran/17740
1358         * trans-expr.c (gfc_trans_arrayfunc_assign): Check value
1359         of attr.elemental for specific function instead of generic name.
1360
1361 2005-09-13  Richard Sandiford  <richard@codesourcery.com>
1362
1363         PR fortran/18899
1364         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Move initialization
1365         of argse.  Remove now-redundant want_pointer assignment.
1366         * trans-array.c (gfc_conv_expr_descriptor): When not assigning to
1367         a pointer, keep the original bounds of a full array reference.
1368
1369 2005-09-13  Richard Sandiford  <richard@codesourcery.com>
1370
1371         PR target/19269
1372         * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift)
1373         (gfc_resolve_pack, gfc_resolve_reshape, gfc_resolve_spread)
1374         (gfc_resolve_transpose, gfc_resolve_unpack): Add "_char" to the name
1375         for character-based operations.
1376         (gfc_resolve_pack): Remove ATTRIBUTE_UNUSED from array argument.
1377         (gfc_resolve_unpack): Copy the whole typespec from the vector.
1378         * trans-array.c (gfc_conv_expr_descriptor): In the EXPR_FUNCTION
1379         case, get the string length from the scalarization state.
1380
1381 2005-09-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1382
1383         * Make-lang.in: Change targets prefixes from f95 to fortran.
1384         * config-lang.in: Change language name to "fortran".
1385         * lang.opt: Change language name to "fortran".
1386         * options.c: Change CL_F95 to CL_Fortran.
1387
1388 2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
1389
1390         gfortran.texi:  Document IOSTAT= specifier.
1391
1392 2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
1393
1394         * gfortran.h:  Add iomsg to gfc_open, gfc_close, gfc_filepos,
1395         gfc_inquire and gfc_dt.
1396         * dump-parse-tree.c (gfc_show_code_node):  Add iomsg
1397         for open, close, file positioning, inquire and namelist.
1398         * io.c (io_tag):  Add tag_iomsg.
1399         (resolve_tag): Add standards warning for iomsg.
1400         (match_open_element):  Add iomsg.
1401         (gfc_free_open):  Add iomsg.
1402         (gfc_resolve_open):  Add iomsg.
1403         (gfc_free_close):  Add iomsg.
1404         (match_close_element):  Add iomsg.
1405         (gfc_resolve_close):  Add iomsg.
1406         (gfc_free_filepos):  Add iomsg.
1407         (match_file_element):  Add iomsg.
1408         (gfc_resolve_filepos):  Add iostat and iomsg.
1409         (match-dt_element):  Add iomsg.
1410         (gfc_free_dt):  Add iomsg.
1411         (gfc_resolve_dt):  Add iomsg.
1412         (gfc_free_inquire):  Add iomsg.
1413         (match_inquire_element):  Add iomsg.
1414         (gfc_resolve_inquire):  Add iomsg.
1415         * trans_io.c:  Add ioparm_iomsg and ioparm_iomsg_len.
1416         (gfc_build_io_library_fndecls):  Add iomsg as last field.
1417         (gfc_trans_open):  Add iomsg.
1418         (gfc_trans_close):  Add iomsg.
1419         (build_fileos):  Call set_string for iomsg.
1420         (gfc_trans_inquire):  Add iomsg.
1421         (build_dt):  Add iomsg.
1422
1423 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
1424
1425         * match.h (gfc_match_equiv_variable): Declare.
1426
1427 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
1428
1429         PR fortran/19239
1430         * Makefile.in (fortran/trans-expr.o): Depend on dependency.h.
1431         * dependency.h (gfc_ref_needs_temporary_p): Declare.
1432         * dependency.c (gfc_ref_needs_temporary_p): New function.
1433         (gfc_check_fncall_dependency): Use it instead of inlined check.
1434         By so doing, take advantage of the fact that character substrings
1435         within an array reference also need a temporary.
1436         * trans.h (GFC_SS_VECTOR): Adjust comment.
1437         * trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case.
1438         (gfc_set_vector_loop_bounds): New function.
1439         (gfc_add_loop_ss_code): Call it after evaluating the subscripts of
1440         a GFC_SS_SECTION.  Deal with the GFC_SS_VECTOR case by evaluating
1441         the vector expression and caching its descriptor for use within
1442         the loop.
1443         (gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete.
1444         (gfc_conv_array_index_offset): Handle scalar, vector and range
1445         dimensions as separate cases of a switch statement.  In the vector
1446         case, use the loop variable to calculate a vector index and use the
1447         referenced element as the dimension's index.  Perform bounds checking
1448         on this final index.
1449         (gfc_conv_section_upper_bound): Return null for vector indexes.
1450         (gfc_conv_section_startstride): Give vector indexes a start value
1451         of 0 and a stride of 1.
1452         (gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation.
1453         (gfc_conv_expr_descriptor): Expand comments.  Generalize the
1454         handling of the !want_pointer && !direct_byref case.  Use
1455         gfc_ref_needs_temporary_p to decide whether the variable case
1456         needs a temporary.
1457         (gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a
1458         GFC_SS_VECTOR index.
1459         * trans-expr.c: Include dependency.h.
1460         (gfc_trans_arrayfunc_assign): Fail if the target needs a temporary.
1461
1462 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
1463
1464         PR fortran/21104
1465         * trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
1466         from trans-expr.c.
1467         (gfc_init_interface_mapping, gfc_free_interface_mapping)
1468         (gfc_add_interface_mapping, gfc_finish_interface_mapping)
1469         (gfc_apply_interface_mapping): Declare.
1470         * trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
1471         (gfc_trans_allocate_temp_array): Add pre and post block arguments.
1472         * trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
1473         (gfc_trans_allocate_array_storage): Replace loop argument with
1474         separate pre and post blocks.
1475         (gfc_trans_allocate_temp_array): Add pre and post block arguments.
1476         Update call to gfc_trans_allocate_array_storage.
1477         (gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
1478         interface to gfc_trans_allocate_temp_array.
1479         * trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
1480         Moved to trans.h.
1481         (gfc_init_interface_mapping, gfc_free_interface_mapping)
1482         (gfc_add_interface_mapping, gfc_finish_interface_mapping)
1483         (gfc_apply_interface_mapping): Make extern.
1484         (gfc_conv_function_call): Build an interface mapping for array
1485         return values too.  Call gfc_set_loop_bounds_from_array_spec.
1486         Adjust call to gfc_trans_allocate_temp_array so that code is
1487         added to SE rather than LOOP.
1488
1489 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
1490
1491         PR fortran/12840
1492         * trans.h (gfor_fndecl_internal_realloc): Declare.
1493         (gfor_fndecl_internal_realloc64): Declare.
1494         * trans-decl.c (gfor_fndecl_internal_realloc): New variable.
1495         (gfor_fndecl_internal_realloc64): New variable.
1496         (gfc_build_builtin_function_decls): Initialize them.
1497         * trans-array.h (gfc_trans_allocate_temp_array): Add a fourth argument.
1498         * trans-array.c (gfc_trans_allocate_array_storage): Add an argument
1499         to say whether the array can grow later.  Don't allocate the array
1500         on the stack if so.  Don't call malloc for zero-sized arrays.
1501         (gfc_trans_allocate_temp_array): Add a similar argument here.
1502         Pass it along to gfc_trans_allocate_array_storage.
1503         (gfc_get_iteration_count, gfc_grow_array): New functions.
1504         (gfc_iterator_has_dynamic_bounds): New function.
1505         (gfc_get_array_constructor_element_size): New function.
1506         (gfc_get_array_constructor_size): New function.
1507         (gfc_trans_array_ctor_element): Replace pointer argument with
1508         a descriptor tree.
1509         (gfc_trans_array_constructor_subarray): Likewise.  Take an extra
1510         argument to say whether the variable-sized part of the constructor
1511         must be allocated using realloc.  Grow the array when this
1512         argument is true.
1513         (gfc_trans_array_constructor_value): Likewise.
1514         (gfc_get_array_cons_size): Delete.
1515         (gfc_trans_array_constructor): If the loop bound has not been set,
1516         split the allocation into a static part and a dynamic part.  Set
1517         loop->to to the bounds for static part before allocating the
1518         temporary.  Adjust call to gfc_trans_array_constructor_value.
1519         (gfc_conv_loop_setup): Allow any constructor to determine the
1520         loop bounds.  Check whether the constructor has a dynamic size
1521         and prefer to use something else if so.  Expect the loop bound
1522         to be set later.  Adjust call to gfc_trans_allocate_temp_array.
1523         * trans-expr.c (gfc_conv_function_call): Adjust another call here.
1524
1525 2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
1526
1527         PR fortran/18878
1528         * module.c (find_use_name_n): Based on original
1529         find_use_name. Either counts number of use names for a
1530         given real name or returns use name n.
1531         (find_use_name, number_use_names): Interfaces to the
1532         function find_use_name_n.
1533         (read_module): Add the logic and calls to these functions,
1534         so that mutiple reuses of the same real name are loaded.
1535
1536 2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
1537
1538         PR fortran/22304
1539         PR fortran/23270
1540         PR fortran/18870
1541         PR fortran/16511
1542         PR fortran/17917
1543         * gfortran.h: Move definition of BLANK_COMMON_NAME from trans-
1544         common.c so that it is accessible to module.c. Add common_head
1545         field to gfc_symbol structure. Add field for the equivalence
1546         name AND new attr field, in_equivalence.
1547         * match.c (gfc_match_common, gfc_match_equivalence): In loops
1548         that flag common block equivalences, emit an error if the
1549         common blocks are different, using sym->common_head as the
1550         common block identifier. Ensure that symbols that are equivalence
1551         associated with a common block are marked as being in_common.
1552         * module.c (write_blank_common): New.
1553         (write_common): Use unmangled common block name.
1554         (load_equiv): New function ported from g95.
1555         (read_module): Call load_equiv.
1556         (write_equiv): New function ported from g95. Correct
1557         string referencing for gfc functions. Give module
1558         equivalences a unique name.
1559         (write_module): Call write_equiv and write_blank_common.
1560         * primary.c (match_variable) Old gfc_match_variable, made
1561         static and third argument provided to indicate if parent
1562         namespace to be visited or not.
1563         (gfc_match_variable) New. Interface to match_variable.
1564         (gfc_match_equiv_variable) New. Interface to match_variable.
1565         * trans-common.c (finish_equivalences): Provide the call
1566         to create_common with a gfc_common_header so that
1567         module equivalences are made external, rather than local.
1568         (find_equivalences): Ensure that all members in common block
1569         equivalences are marked as used. This prevents the subsequent
1570         call to this function from making local unions.
1571         * trans-decl.c (gfc_generate_function_code): Move the call to
1572         gfc_generate_contained_functions to after the call to
1573         gfc_trans_common so the use-associated, contained common
1574         blocks produce the correct references.
1575         (gfc_create_module_variable): Return for equivalenced symbols
1576         with existing backend declaration.
1577
1578 2005-09-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1579
1580         PR fortran/23765
1581         * match.c (gfc_match_common): Remove unnecessary / wrong special
1582         cases for end-of-statement.
1583
1584 2005-09-08  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1585
1586         * gfortran.texi: Add section about implemented F2003 features.
1587
1588 2005-09-08  Richard Sandiford  <richard@codesourcery.com>
1589
1590         PR fortran/15326
1591         * trans-array.c (gfc_add_loop_ss_code): Set ss->string_length in
1592         the GFC_SS_FUNCTION case too.
1593         * trans-expr.c (gfc_conv_function_val): Allow symbols to be bound
1594         to function pointers as well as function decls.
1595         (gfc_interface_sym_mapping, gfc_interface_mapping): New structures.
1596         (gfc_init_interface_mapping, gfc_free_interface_mapping)
1597         (gfc_get_interface_mapping_charlen, gfc_get_interface_mapping_array)
1598         (gfc_set_interface_mapping_bounds, gfc_add_interface_mapping)
1599         (gfc_finish_interface_mapping, gfc_apply_interface_mapping_to_cons)
1600         (gfc_apply_interface_mapping_to_ref)
1601         (gfc_apply_interface_mapping_to_expr)
1602         (gfc_apply_interface_mapping): New functions.
1603         (gfc_conv_function_call): Evaluate the arguments before working
1604         out where the result should go.  Make the null pointer case provide
1605         the string length in parmse.string_length.  Cope with non-constant
1606         string lengths, using the above functions to evaluate such lengths.
1607         Use a temporary typespec; don't assign to sym->cl->backend_decl.
1608         Don't assign to se->string_length when returning a cached array
1609         descriptor.
1610
1611 2005-09-08  Richard Sandiford  <richard@codesourcery.com>
1612
1613         PR fortran/19928
1614         * trans-array.c (gfc_conv_array_ref): Call gfc_advance_se_ss_chain
1615         after handling scalarized references.  Make "indexse" inherit from
1616         "se" when handling AR_ELEMENTs.
1617         (gfc_walk_variable_expr): Add GFC_SS_SCALAR entries for each
1618         substring or scalar reference that follows an array section.
1619         * trans-expr.c (gfc_conv_variable): When called from within a
1620         scalarization loop, start out with "ref" pointing to the scalarized
1621         part of the reference.  Don't call gfc_advance_se_ss_chain here.
1622
1623 2005-09-07  Richard Sandiford  <richard@codesourcery.com>
1624
1625         PR fortran/23373
1626         * trans-expr.c (gfc_trans_pointer_assignment): Assign to a temporary
1627         descriptor if the rhs is not a null pointer or variable.
1628
1629 2005-09-07  Thomas Koenig  <Thomas.Koenig@online.de>
1630
1631         PR fortran/20848
1632         * symbol.c(check_conflict):  Add conflict for parameter/save,
1633
1634 2005-09-06  Richard Sandiford  <richard@codesourcery.com>
1635
1636         PR fortran/19269
1637         * simplify.c (gfc_simplify_transpose): Set the result's typespec from
1638         the source, not the first element of the return value.
1639
1640 2005-09-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1641
1642         PR fortran/23661
1643         * io.c (match_io): Correctly backup if PRINT followed by
1644         symbol which is not a namelist.  Force blank between PRINT
1645         and namelist in free form.
1646
1647 2005-08-31  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1648
1649         PR fortran/20592
1650         * gfortran.h (gfc_option_t): Add flag_automatic.
1651         * invoke.texi: Document the -fno-automatic option.
1652         * lang.opt: Add a -fautomatic option.
1653         * options.c (gfc_init_options): Default for -fautomatic is on.
1654         (gfc_handle_option): Add handling of -fautomatic option.
1655         * resolve.c (gfc_resolve): When -fno-automatic is used, mark
1656         needed variables as SAVE.
1657
1658 2005-08-27  Erik Edelmann  <erik.edelmann@iki.fi>
1659
1660         * trans-array.c (gfc_trans_deferred_array): Fix comments.
1661
1662 2005-08-27  Erik Schnetter  <schnetter@aei.mpg.de>
1663
1664         * primary.c (match_charkind_name): Fix typo in comment leading to
1665         function.
1666
1667 2005-08-25  Erik Edelmann  <eedelman@acclab.helsinki.fi>
1668
1669         PR fortran/20363
1670         * symbol.c (find_special): Remove.
1671         (build_sym, add_init_expr, attr_decl1): Remove calls to
1672         find_special in favor of calls to gfc_get_symbol.
1673
1674 2005-08-24  Thomas Koenig  <Thomas.Koenig@online.de>
1675
1676         PR fortran/17758
1677         * gfortran.h (symbol_attribute):  Add noreturn to the structure.
1678         (gfc_intrinsic_sym):  Add noreturn to the structure.
1679         * intrinsic.c (make_noreturn):  New function.
1680         (add_subroutines):  Mark subroutines abort and exit as noreturn.
1681         (gfc_intrinsic_sub_interface):  Copy noreturn attribute from
1682         isym to the resolved symbol.
1683         * trans-decl.c (gfc_get_extern_function_decl): Set function
1684         as VOLATILE (== noreturn) if the noreturn attribute is set.
1685
1686 2005-08-21  Steven G. Kargl  <kargls@comcast.net>
1687
1688         * decl.c: Typo in comment.
1689
1690 2005-08-21  Steven G. Kargl  <kargls@comcast.net>
1691
1692         * array.c: Bump GFC_MAX_AC_EXPAND from 100 to 65535.
1693
1694 2005-08-21  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1695
1696         * gfortran.h (gfc_option_t): Remove source field.  Add
1697         flag_d_lines field.
1698         (gfc_new_file): Remove arguments in prototype.
1699         (gfc_source_file): Make 'const char *'.
1700         * f95-lang.c (gfc_init): Use gfc_source_file instead of
1701         gfc_option.source.  Call gfc_new_file without arguments.
1702         * invoke.texi: Document new options '-fd-lines-as-code' and
1703         '-fd-lines-as-comment'.
1704         * lang.opt: Add new options.  Alphabetize.
1705         * options.c (gfc_init_options): Initialize gfc_source_file instead
1706         of gfc_option.source.  Initialize gfc_option.flag_d_lines.
1707         (form_from_filename): Move here from scanner.c.  Make
1708         'filename' argument 'const'.
1709         (gfc_post_options): Set gfc_source_file.  Determine source form.
1710         Warn if 'd-lines*' are used in free form.
1711         * scanner.c (gfc_source_file): Constify.
1712         (skip_fixed_comments): Deal with d-lines.
1713         (get_file): Constify argument 'name'.
1714         (load_file): Constify argument 'filename'.
1715         (form_from_filename): Moved to options.c.
1716         (gfc_new_file): Remove arguments.  Don't initialize
1717         gfc_source_file, don't determine source form.
1718         * trans-const.c (gfc_init_constants): Use gfc_source_file instead
1719         of gfc_option.source.
1720
1721 2005-08-19  Steven G. Kargl  <kargls@comcast.net>
1722
1723         PR fortran/23065
1724         * gfortran.h: Remove PATH_MAX definition.
1725         * module.c (write_module, gfc_dump_module): Use alloca to allocate
1726         buffers.
1727         * scanner.c (gfc_release_include_path, form_from_filename): Ditto.
1728
1729 2004-08-16  Huang Chun  <chunhuang73@hotmail.com>
1730
1731         * trans-expr.c (gfc_conv_power_op): Evaluate the expression before
1732         expand.
1733
1734 2005-08-14  Asher Langton  <langton2@llnl.gov>
1735
1736         * parse.c (match): Enclose macro in do...while(0) and braces.
1737
1738 2005-08-14  Paul Thomas  <pault@gcc.gnu.org>
1739
1740         PR fortran/21432.
1741         * gfortran.texi: Document PRINT namelist.
1742
1743 2005-08-14  Paul Thomas  <pault@gcc.gnu.org>
1744
1745         PR fortran/21432.
1746         * io.c (match_io): Add code to implement PRINT namelist.
1747
1748 2005-08-14  Canqun Yang  <canqun@nudt.edu.cn>
1749
1750         * trans-stmt.c (gfc_trans_arithmetic_if): Optimized in case of equal
1751         labels.
1752
1753 2005-08-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1754             Steven Bosscher  <stevenb@suse.de>
1755
1756         PR libfortran/20006
1757         * gfortran.h: Add is_main_program member to symbol_attribute.
1758         * trans-decl: Add a gfor_fndecl_set_std tree.
1759         (gfc_build_builtin_function_decls): Create it.
1760         (gfc_generate_function_code): Add this call at the beginning of
1761         the main program.
1762         * trans.c (gfc_generate_code): Move main_program and attr.
1763         * trans.h: Add declaration for gfor_fndecl_set_std.
1764
1765 2005-08-10  Thomas Koenig  <Thomas.Koenig@online.de>
1766
1767         PR libfortran/22143
1768         gfortran.h:  Declare new function gfc_resolve_dim_arg.
1769         resolve.c:  New function gfc_resolve_dim_arg.
1770         iresolve.c (gfc_resolve_all):  Use gfc_resolve_dim_arg.
1771         (gfc_resolve_any):  Likewise.
1772         (gfc_resolve_count):  Likewise.
1773         (gfc_resolve_cshift):  Likewise.  If the kind of shift is less
1774         gfc_default_integer_kind, convert it to default integer type.
1775         (gfc_resolve_eoshift):  Likewise.
1776         (gfc_resolve_maxloc):  Use gfc_resolve_dim_arg.
1777         (gfc_resolve_maxval):  Likewise.
1778         (gfc_resolve_minloc):  Likewise.
1779         (gfc_resolve_minval):  Likewise.
1780         (gfc_resolve_product):  Likewise.
1781         (gfc_resolve_spread):  Likewise.
1782         (gfc_resolve_sum):  Likewise.
1783
1784 2005-08-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1785
1786         * check.c (gfc_check_ttynam_sub, gfc_check_isatty): Add check
1787         functions for new intrinsics TTYNAM and ISATTY.
1788         * intrinsic.c (add_functions, add_subroutines): Add new
1789         intrinsics.
1790         * intrinsic.h: Add prototypes for new check and resolve
1791         functions.
1792         * iresolve.c (gfc_resolve_isatty, gfc_resolve_ttynam_sub): New
1793         resolve functions for intrinsics TTYNAM and ISATTY.
1794         * gfortran.h (gfc_generic_isym_id): Add symbol for ISATTY.
1795         * trans-intrinsic.c: Add case for GFC_ISYM_ISATTY.
1796
1797 2005-08-09  Jakub Jelinek  <jakub@redhat.com>
1798
1799         * scanner.c (preprocessor_line): Don't write beyond the end of flag
1800         buffer.
1801
1802 2005-08-07   Janne Blomqvist  <jblomqvi@cc.hut.fi>
1803
1804         PR fortran/22390
1805         * dump-parse-tree.c (gfc_show_code_node): Add case for FLUSH.
1806         * gfortran.h: Add enums for FLUSH.
1807         * io.c (gfc_free_filepos,match_file_element,match_filepos): Modify
1808         comment appropriately.  (gfc_match_flush): New function.
1809         * match.c (gfc_match_if): Add match for flush.
1810         * match.h: Add prototype.
1811         * parse.c (decode_statement): Add flush to 'f' case.
1812         (next_statement): Add case for flush. (gfc_ascii_statement): Likewise.
1813         * resolve.c (resolve_code): Add flush case.
1814         * st.c (gfc_free_statement): Add flush case.
1815         * trans-io.c: Add prototype for flush.
1816         (gfc_build_io_library_fndecls): Build fndecl for flush.
1817         (gfc_trans_flush): New function.
1818         * trans-stmt.h: Add prototype.
1819         * trans.c (gfc_trans_code): Add case for flush.
1820
1821 2005-08-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1822
1823         * primary.c (match_hollerith_constant): Fix typo.
1824
1825 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
1826
1827         * decl.c, dump-parse-tree.c, gfortran.texi, intrinsic.texi,
1828         invoke.texi, resolve.c, trans-array.c, trans-array.h,
1829         trans-common.c, trans-expr.c, trans-io.c, trans.h: Fix
1830         comment/doc typos.  Follow spelling conventions.
1831
1832 2005-08-06  Jakub Jelinek  <jakub@redhat.com>
1833
1834         PR fortran/18833
1835         PR fortran/20850
1836         * primary.c (match_varspec): If equiv_flag, don't look at sym's
1837         attributes, call gfc_match_array_ref up to twice and don't do any
1838         substring or component processing.
1839         * resolve.c (resolve_equivalence): Transform REF_ARRAY into
1840         REF_SUBSTRING or nothing if needed.  Check that substrings
1841         don't have zero length.
1842
1843 2005-08-05  Thomas Koenig  <Thomas.Koenig@online.de>
1844
1845         * trans-expr.c  (gfc_build_builtin_function_decls):  Mark
1846         stop_numeric and stop_string as non-returning.
1847
1848 2005-08-04  Paul Brook  <paul@codesourcery.com>
1849
1850         * trans-expr.c (gfc_conv_expr, gfc_conv_expr_type): Update comments.
1851         (gfc_conv_expr_lhs): Fix assertion.
1852         (gfc_conv_expr_val): Merge post block.  Set se.expr to new value.
1853
1854 2005-08-02  David Edelsohn  <edelsohn@gnu.org>
1855
1856         PR fortran/22491
1857         * expr.c (simplify_parameter_variable): Do not copy the subobject
1858         references if the expression value is a constant.
1859
1860         * expr.c (gfc_simplify_expr): Evaluate constant substrings.
1861
1862 2005-07-31  Jerry DeLisle  <jvdelisle@verizon.net>
1863
1864         * intrinsic.texi: Add documentation for exponent, floor, and fnum and
1865         fix description of ceiling in index.
1866
1867 2005-07-31  Steven Bosscher  <stevenb@suse.de>
1868
1869         * trans-decl.c (gfc_build_builtin_function_decls): Give the internal
1870         malloc functions the 'malloc' attribute.  Give runtime_error the
1871         'noreturn' attribute.
1872
1873 2005-07-31  Steven Bosscher  <stevenb@suse.de>
1874
1875         * trans-stmt.c (gfc_trans_goto): Jump to the known label instead
1876         of the assigned goto variable.
1877
1878 2005-07-29  Steven Bosscher  <stevenb@suse.de>
1879
1880         * trans-types.h (gfc_array_range_type): Add missing GTY decl for this.
1881
1882 2005-07-28  Andrew Pinski  <pinskia@physics.uc.edu>
1883
1884         * fortran/f95-lang.c (language_function): Remove
1885         named_labels, shadowed_labels, returns_value, returns_abnormally,
1886         warn_about_return_type, and extern_inline fields.
1887         (named_labels): Remove variable.
1888         (gfc_init_decl_processing): Remove setting of named_labels.
1889
1890 2005-07-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1891
1892         PR fortran/22503
1893         * resolve.c (resolve_operator): Improve diagnostic for comparison
1894         of logicals with invalid operator.
1895
1896 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
1897
1898         PR fortran/20063
1899         * data.c (gfc_assign_data_value_range): Call
1900         create_character_initializer if last_ts is a character type.
1901
1902 2005-07-22  Manfred Hollstein  <mh@suse.com>
1903
1904         * match.c (gfc_match_symbol): Fix uninitialised warnings.
1905         * matchexp.c (gfc_match_expr): Likewise.
1906
1907 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
1908
1909         Make CONSTRUCTOR use VEC to store initializers.
1910         * trans-array.c (gfc_build_null_descriptor,
1911         gfc_trans_array_constructor_value, gfc_conv_array_initializer):
1912         Update to cope with VEC in CONSTRUCTOR_ELTS.
1913         * trans-common.c (create_common): Likewise.
1914         * trans-expr.c (gfc_conv_structure): Likewise.
1915         * trans-stmt.c (gfc_trans_character_select): Use
1916         build_constructor_from_list instead of build_constructor.
1917
1918 2005-07-19  Paul Thomas  <pault@gcc.gnu.org>
1919
1920         PR fortran/16940
1921         * resolve.c (resolve_symbol): A symbol with FL_UNKNOWN
1922         is matched against interfaces in parent namespaces. If there
1923         the symtree is set to point to the interface.
1924
1925 2005-07-16  David Edelsohn  <edelsohn@gnu.org>
1926
1927         PR fortran/21730
1928         * decl.c (do_parm): Adjust character initializer to character length
1929         of symbol before assigning.
1930
1931 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
1932
1933         * trans-types.c (MAX_REAL_KINDS): Increase from 4 to 5.
1934
1935 2005-07-14  Jakub Jelinek  <jakub@redhat.com>
1936
1937         * gfortran.h (MAX_ERROR_MESSAGE): Remove.
1938         (gfc_error_buf): Add allocated and index fields.  Change message
1939         field from array to a pointer.
1940         * error.c (use_warning_buffer, error_ptr, warning_ptr): Remove.
1941         (cur_error_buffer): New variable.
1942         (error_char): Use cur_error_buffer->{message,index} instead of
1943         {warning,error}_{buffer.message,ptr}.  Reallocate message buffer
1944         if too small.
1945         (gfc_warning, gfc_notify_std, gfc_error, gfc_error_now): Setup
1946         cur_error_buffer and its index rather than {warning,error}_ptr
1947         and use_warning_buffer.
1948         (gfc_warning_check, gfc_error_check): Don't print anything if
1949         message is NULL.
1950         (gfc_push_error): Allocate saved message with xstrdup.
1951         (gfc_pop_error): Free saved message with gfc_free.
1952         (gfc_free_error): New function.
1953         * primary.c (match_complex_constant): Call gfc_free_error if
1954         gfc_pop_error will not be called.
1955         * match.c (gfc_match_st_function): Likewise.
1956
1957         PR fortran/22417
1958         * scanner.c (preprocessor_line): Don't treat flag 3 as the start of a new
1959         file.  Fix file left but not entered warning.
1960
1961 2005-07-14  Feng Wang  <fengwang@nudt.edu.cn>
1962         Steven G. Kargl  <kargls@comcast.net>
1963
1964         * array.c (resolve_character_array_constructor): Allocate gfc_charlen
1965         for the array and attach to namespace list for automatic deallocation.
1966
1967 2005-07-13  Andreas Schwab  <schwab@suse.de>
1968
1969         * Make-lang.in (fortran/dependency.o): Depend on
1970         $(GFORTRAN_TRANS_DEPS).
1971
1972 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
1973
1974         * trans-stmt.c (gfc_trans_forall_loop): Clear maskindex before
1975         the outermost loop.
1976         (gfc_trans_assign_need_temp, gfc_trans_pointer_assign_need_temp,
1977         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_2):
1978         Don't clear maskindexes here.
1979
1980 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
1981
1982         * trans-decl.c (create_function_arglist): DECL_ARG_TYPE_AS_WRITTEN
1983         is removed.
1984
1985 2005-07-08  Jakub Jelinek  <jakub@redhat.com>
1986
1987         * primary.c (gfc_match_rvalue): Handle ENTRY the same way
1988         as FUNCTION.
1989
1990 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
1991
1992         * scanner.c (load_line): Add pbuflen argument, don't make
1993         buflen static.  If maxlen == 0 or preprocessor_flag,
1994         don't truncate at buflen, but at maxlen.  In xrealloc add
1995         1 byte at the end for the terminating '\0'.  Don't fill
1996         with spaces up to buflen, but gfc_option.fixed_line_length.
1997         (load_file): Adjust load_line caller.  Add line_len variable.
1998
1999         * scanner.c (preprocessor_line): Only set current_file->line when errors
2000         have not been encountered.  Warn and don't crash if a file leave
2001         preprocessor line has no corresponding entering line.  Formatting.
2002
2003 2005-07-07  Steven Bosscher  <stevenb@suse.de>
2004
2005         * primary.c (match_hollerith_constant): Use int, not unsigned int,
2006         for the hollerith length.  Fix indentation.
2007
2008 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
2009
2010         PR fortran/16531
2011         PR fortran/15966
2012         PR fortran/18781
2013         * arith.c (gfc_hollerith2int, gfc_hollerith2real,
2014         gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
2015         New functions.
2016         (eval_intrinsic): Don't evaluate if Hollerith constant arguments exist.
2017         * arith.h (gfc_hollerith2int, gfc_hollerith2real,
2018         gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
2019         Add prototypes.
2020         * expr.c (free_expr0): Free memery allocated for Hollerith constant.
2021         (gfc_copy_expr): Allocate and copy string if Expr is from Hollerith.
2022         (gfc_check_assign): Enable conversion from Hollerith to other.
2023         * gfortran.h (bt): Add BT_HOLLERITH.
2024         (gfc_expr): Add from_H flag.
2025         * intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH.
2026         (add_conversions): Add conversions from Hollerith constant to other.
2027         (do_simplify): Don't simplify if  Hollerith constant arguments exist.
2028         * io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU.
2029         * misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH.
2030         (gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH.
2031         * primary.c (match_hollerith_constant): New function.
2032         (gfc_match_literal_constant): Add match Hollerith before Integer.
2033         * simplify.c (gfc_convert_constant): Add conversion from Hollerith
2034         to other.
2035         * trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to
2036         convert Hollerith constant to tree.
2037         * trans-io.c (gfc_convert_array_to_string): Get array's address and
2038         length to set string expr.
2039         (set_string): Deal with array assigned Hollerith constant and character
2040         array.
2041         * gfortran.texi: Document Hollerith constants as extention support.
2042
2043 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
2044
2045         PR fortran/22327
2046         * trans-array.c (gfc_trans_array_constructor_value): Fix index of data.
2047
2048 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
2049
2050         * decl.c (gfc_match_entry): Allow ENTRY without parentheses
2051         even in FUNCTIONs.
2052
2053 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
2054
2055         * gfortran.texi, intrinsic.texi: Fix typos.
2056         * symbol.c: Fix a comment typo.
2057
2058 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2059
2060         * error.c (error_printf, error_print): Use ATTRIBUTE_GCC_GFC.
2061         * gfortran.h (ATTRIBUTE_GCC_GFC): New.
2062         (gfc_warning, gfc_warning_now, gfc_error, gfc_error_now,
2063         gfc_fatal_error, gfc_internal_error, gfc_notify_std): Use
2064         ATTRIBUTE_GCC_GFC.
2065
2066 2005-07-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2067
2068         PR fortran/20842
2069         * io.c (match_dt_element): Do not allow END tag in PRINT or
2070         WRITE statement.
2071
2072 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
2073
2074         * lang.opt: Remove "." from end of help texts.
2075
2076 2005-07-01  Jerry DeLisle  <jvdelisle@verizon.net>
2077
2078         * gfortran.texi: Fix typos and grammar.
2079         * invoke.texi: Fix typos and grammar.
2080         * intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and
2081         exit. Fixed alignment of text for dtime syntax. Fixed a few line
2082         lengths.
2083
2084 2005-06-25  Jakub Jelinek  <jakub@redhat.com>
2085
2086         * trans-stmt.c (gfc_trans_forall_1): Prefer to use smaller logical
2087         type than boolean_type_node.
2088
2089 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
2090
2091         * all files: Update FSF address in copyright headers.
2092
2093 2005-06-24  Jerry DeLisle  <jvdelisle@verizon.net>
2094
2095         PR fortran/21915
2096         * gfortran.h: Add symbols for new intrinsic functions.
2097         * intrinsic.c: Add new functions acosh, asinh, and atanh.
2098         * intrinsic.h: Add prototypes for the new functions.
2099         * iresolve.c (gfc_resolve_acosh): New function.
2100         (gfc_resolve_asinh): New function.
2101         (gfc_resolve_atanh): New function.
2102         * mathbuiltins.def: Add defines.
2103         * simplify.c (gfc_simplify_acosh): New function.
2104         (gfc_simplify_asinh): New function.
2105         (gfc_simplify_atanh): New function.
2106
2107 2005-06-24  Feng Wang  <fengwang@nudt.edu.cn>
2108
2109         * simplify.c (gfc_simplify_modulo): Don't clear before get result.
2110
2111 2005-06-22  Paul Brook  <paul@codesourcery.com>
2112
2113         PR fortran/21034
2114         * symbol.c (gfc_is_var_automatic): New function.
2115         (save_symbol): Use it.
2116
2117 2005-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2118             Paul Thomas  <pault@gcc.gnu.org>
2119
2120         PR fortran/22010
2121         Port from g95.
2122         * module.c (mio_namelist): New function. Correct to set
2123         namelist_tail and to give error on renaming namelist by use
2124         association.
2125         (mio_symbol): Call mio_namelist.
2126
2127 2005-06-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2128
2129         * gfortran.h: Add flag_backslash compile-time option.
2130         * lang.opt: Add support for -fbackslash option.
2131         * options.c: Likewise.
2132         * primary.c: Implement behavior for -fno-backslash.
2133         * invoke.texi: Add doc for -fbackslash option.
2134         * gfortran.texi: Remove mention of -fno-backslash as a
2135         possible extension.
2136
2137 2005-06-20  Steven G. Kargl  <kargls@comcast.net>
2138         (port from g95)
2139
2140         PR fortran/21257
2141         * match.c (gfc_match_label): Detect duplicate labels.
2142
2143
2144 2005-06-20  Erik Edelmann  <erik.edelmann@iki.fi>
2145
2146         * intrinsic.c (check_intrinsic_standard): Fix spelling error
2147         in a warning message.
2148
2149 2005-06-18  Erik Edelman  <eedelman@acclab.helsinki.fi>
2150             Steven G. Kargl  <kargls@comast.net>
2151
2152         PR fortran/19926
2153         * primary.c (gfc_match_rvalue):  expr_type can be EXPR_CONSTANT
2154         for an array; check that sym->as is NULL.
2155
2156
2157 2005-06-18  Steven G. Kargl  <kargls@comcast.net>
2158
2159         * intrinsic.c (gfc_intrinsic_func_interface): Enable errors for generic
2160         functions whose simplification routine return FAILURE.
2161
2162 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
2163
2164         * Make-lang.in (fortran.install-man): Doesn't depend on installdirs.
2165         (rule for installing f95.1 manpage): Does depend on installdirs.
2166
2167 2005-06-13  Jakub Jelinek  <jakub@redhat.com>
2168
2169         PR fortran/22038
2170         * trans-stmt.c (gfc_trans_forall_loop): Only increment maskindex
2171         in the innermost loop.
2172
2173         * trans-expr.c (gfc_conv_function_call): Return int instead of
2174         void.  Use a local variable for has_alternate_specifier and
2175         return it.  Avoid modification of function type's return value
2176         in place, since it may be shared.
2177         * trans.h (has_alternate_specifier): Remove.
2178         (gfc_conv_function_call): Change return type.
2179         * trans-stmt.c (has_alternate_specifier): Remove.
2180         (gfc_trans_call): Add a local has_alternate_specifier variable,
2181         set it from gfc_conv_function_call return value.
2182
2183 2005-06-12  Richard Henderson  <rth@redhat.com>
2184
2185         * trans-array.c (gfc_conv_descriptor_data_get): Rename from
2186         gfc_conv_descriptor_data.  Cast the result to the DATAPTR type.
2187         (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): New.
2188         (gfc_trans_allocate_array_storage): Use them.
2189         (gfc_array_allocate, gfc_array_deallocate): Likewise.
2190         (gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor): Likewise.
2191         (gfc_trans_deferred_array): Likewise.
2192         * trans-expr.c (gfc_conv_function_call): Likewise.
2193         (gfc_trans_subcomponent_assign): Likewise.
2194         (gfc_trans_pointer_assignment): Likewise.
2195         * trans-intrinsic.c (gfc_conv_allocated): Likewise.
2196         * trans-types.c (gfc_array_descriptor_base): New.
2197         (gfc_get_element_type): Use GFC_TYPE_ARRAY_DATAPTR_TYPE.
2198         (gfc_get_array_descriptor_base): Break out from ...
2199         (gfc_get_array_type_bounds): ... here.  Create type variants.
2200         * trans-array.h (gfc_conv_descriptor_data_get): Declare.
2201         (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): Declare.
2202
2203 2005-06-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2204
2205         * trans-expr.c (gfc_conv_variable): POINTER results don't need f2c
2206         calling conventions.  Look at sym instead of sym->result.
2207         * trans-types.c (gfc_sym_type): Remove workaround for frontend bug.
2208         Remove condition which is always false with workaround removed.
2209         (gfc_return_by_reference): Always look at sym, never at sym->result.
2210
2211 2005-06-11  Steven G. Kargl  <kargls@comcast.net>
2212
2213         PR fortran/17792
2214         PR fortran/21375
2215         * trans-array.c (gfc_array_deallocate): pstat is new argument
2216         (gfc_array_allocate): update gfc_array_deallocate() call.
2217         (gfc_trans_deferred_array): ditto.
2218         * trans-array.h: update gfc_array_deallocate() prototype.
2219         * trans-decl.c (gfc_build_builtin_function_decls): update declaration
2220         * trans-stmt.c (gfc_trans_deallocate): Implement STAT= feature.
2221
2222 2005-06-07  Jerry DeLisle  <jvdelisle@verizon.net>
2223
2224         * intrinsic.texi: Add documentation for dcmplx, digits,
2225         dim, idim, ddim, dot_product, dprod, dreal, and dtime.
2226
2227 2005-06-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2228
2229         PR fortran/21912
2230         * trans-array.c (gfc_trans_array_constructor_value): Slightly reorder.
2231         Generate correct exit condition in case of negative steps in
2232         implied-do loops.
2233
2234         * invoke.texi: Fix description of flags required for compatibility
2235         with g77.
2236
2237 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2238         Erik Schnetter  <schnetter@aei.mpg.de>
2239
2240         PR fortran/19195
2241         * trans.c (gfc_get_backend_locus): Remove unnecessary adjustment,
2242         remove FIXME comment.
2243
2244 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2245
2246         * match.c (match_forall_iterator): Don't immediately give error if '='
2247         is not followed by an expression.
2248
2249 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2250         Erik Edelmann  <erik.edelmann@iki.fi>
2251
2252         * array.c (gfc_match_array_constructor): Disallow empty array
2253         constructor.
2254
2255 2005-06-03  Jerry DeLisle  <jvdelisle@verizon.net>
2256
2257         * fortran/intrinsic.texi: Add documentation for
2258         command_argument_count, conjg, dconjg, count,
2259         cpu_time, cshift, date_and_time, dble, dfloat.
2260
2261 2005-06-01  Roger Sayle  <roger@eyesopen.com>
2262
2263         * intrinsic.c (add_conv): No longer take a "simplify" argument as
2264         its always gfc_convert_constant, instead take a "standard" argument.
2265         (add_conversions): Change all existing calls of add_conv to pass
2266         GFC_STD_F77 as appropriate.  Additionally, if we're allowing GNU
2267         extensions support integer-logical and logical-integer conversions.
2268         (gfc_convert_type_warn): Warn about use the use of these conversions
2269         as a extension when appropriate, i.e. with -pedantic.
2270         * simplify.c (gfc_convert_constant): Add support for integer to
2271         logical and logical to integer conversions, using gfc_int2log and
2272         gfc_log2int.
2273         * arith.c (gfc_log2int, gfc_int2log): New functions.
2274         * arith.h (gfc_log2int, gfc_int2log): Prototype here.
2275         * gfortran.texi: Document this new GNU extension.
2276
2277 2005-06-01  Paul Thomas  <pault@gcc.gnu.org>
2278
2279         * fortran/trans-expr.c (gfc_conv_variable): Clean up bracketting.
2280         * fortran/trans-expr.c (gfc_conv_function_call): Insert spaces.
2281         Correct comments and replace convert of integer_one_node with
2282         build_int_cst.
2283
2284 2005-06-01  Jakub Jelinek  <jakub@redhat.com>
2285
2286         PR fortran/21729
2287         * resolve.c (resolve_contained_fntype): Use sym->attr.untyped
2288         to avoid giving error multiple times.
2289         (resolve_entries): Don't error about BT_UNKNOWN here.
2290         (resolve_unknown_f): Capitalize IMPLICIT for consistency.
2291         (resolve_fntype): New function.
2292         (gfc_resolve): Call resolve_fntype.
2293
2294 2005-06-01  Feng Wang  <fengwang@nudt.edu.cn>
2295
2296         PR fortran/20883
2297         * fortran/io.c (resolve_tag): Fix error message.
2298
2299 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2300
2301         * fortran/trans-decl.c: Don't include errors.h.
2302         * fortran/Make-lang.in: Updates dependencies.
2303
2304 2005-05-31  Paul Thomas  <pault@gcc.gnu.org>
2305
2306         PR fortran/18109
2307         PR fortran/18283
2308         PR fortran/19107
2309         * fortran/trans-array.c (gfc_conv_expr_descriptor): Obtain the
2310         string length from the expression typespec character length value
2311         and set temp_ss->stringlength and backend_decl. Obtain the
2312         tree expression from gfc_conv_expr rather than gfc_conv_expr_val.
2313         Dereference the expression to obtain the character.
2314         * fortran/trans-expr.c (gfc_conv_component_ref): Remove the
2315         dereference of scalar character pointer structure components.
2316         * fortran/trans-expr.c (gfc_trans_subarray_assign): Obtain the
2317         string length for the structure component from the component
2318         expression.
2319
2320 2005-05-30  Roger Sayle  <roger@eyesopen.com>
2321
2322         * gfortran.h (GFC_STD_LEGACY): New "standard" macro.  Reindent.
2323         * options.c (gfc_init_options): By default, allow legacy extensions
2324         but warn about them.
2325         (gfc_post_options): Make -pedantic warn about legacy extensions
2326         even with -std=legacy.
2327         (gfc_handle_option): Make -std=gnu follow the default behaviour
2328         of warning about legacy extensions, but allowing them. Make the
2329         new -std=legacy accept everything and warn about nothing.
2330         * lang.opt (std=legacy): New F95 command line option.
2331         * invoke.texi: Document both -std=f2003 and -std=legacy.
2332         * gfortran.texi: Explain the two types of extensions and document
2333         how they are affected by the various -std= command line options.
2334
2335 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2336
2337         * trans-expr.c: Remove trailing ^M.
2338
2339         * trans-expr.c: Fix comment typos.
2340
2341 2005-05-29  Paul Thomas  <pault@gcc.gnu.org>
2342
2343         PR fortran/16939
2344         PR fortran/17192
2345         PR fortran/17193
2346         PR fortran/17202
2347         PR fortran/18689
2348         PR fortran/18890
2349         * fortran/trans-array.c (gfc_conv_resolve_dependencies): Add string
2350         length to temp_ss for character pointer array assignments.
2351         * fortran/trans-expr.c (gfc_conv_variable): Correct errors in
2352         dereferencing of characters and character pointers.
2353         * fortran/trans-expr.c (gfc_conv_function_call): Provide string
2354         length as return argument for various kinds of handling of return.
2355         Return a char[]* temporary for character pointer functions and
2356         dereference the temporary upon return.
2357
2358 2005-05-29  Janne Blomqvist  <jblomqvi@vipunen.hut.fi>
2359             Steven G. Kargl  <kargls@comcast.net>
2360
2361         fortran/PR20846
2362         * io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage.
2363
2364 2005-05-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2365
2366         PR libfortran/20006
2367         * io.c (format_item_1): Add check and extension warning for
2368         $ edit descriptor.
2369
2370 2005-05-28  Steven G. Kargl  <kargls@comcast.net>
2371
2372         * arith.c (gfc_arith_init_1): Fix off by one problem;
2373         (gfc_check_integer_range): Chop extra bits in subnormal numbers.
2374
2375 2005-05-28  Jerry DeLisle   <jvdelisle@verizon.net>
2376             Steven G. Kargl  <kargls@comcast.net>
2377
2378         * intrinsic.texi: added documentation for BIT_SIZE, BTEST, CHAR, CEILING
2379         and CMPLX
2380
2381 2005-05-27  Steven G. Kargl  <kargls@comcast.net>
2382
2383         * trans-array.c (gfc_trans_deferred_array): Use build_int_cst to force
2384         like types in comparsion.
2385
2386 2005-05-26  Kazu Hirata  <kazu@cs.umass.edu>
2387
2388         * data.c, parse.c, trans-array.c, trans-decl.c,
2389         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
2390         trans.h: Fix comment typos.  Follow spelling conventions.
2391
2392 2005-05-22  Roger Sayle  <roger@eyesopen.com>
2393
2394         * gfortran.texi: Document some more GNU extensions.
2395
2396 2005-05-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2397
2398         * error.c (gfc_warning): Fix typo in comment.
2399
2400 2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>
2401
2402         PR libfortran/21127
2403         * fortran/iresolve.c (gfc_resolve_reshape): Add
2404         gfc_type_letter (BT_COMPLEX) for complex to
2405         to resolved function name.
2406
2407 2005-05-18  Erik Edelmann  <erik.edelmann@iki.fi>
2408
2409         * array.c (gfc_match_array_constructor): Support [ ... ]
2410         style array constructors.
2411
2412 2005-05-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2413
2414         * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_TRUNC
2415         and BUILT_IN_TRUNCF instead of BUILT_IN_FLOOR and BUILT_IN_FLOORF.
2416         * trans-intrinsic.c (build_fix_expr): Change 'op' argument
2417         to correct enum type.
2418         (gfc_conv_intrinsic_aint): Likewise.  Clarify comment in front of
2419         function.  Add default case to switch, deal with FIX_TRUNC_EXPR
2420         instead of FIX_FLOOR_EXPR.
2421
2422 2005-05-18  Feng Wang  <fengwang@nudt.edu.cn>
2423
2424         PR fortran/20954
2425         * trans-const.c (gfc_conv_const_charlen): Use gfc_charlen_type_node to
2426         build character length.
2427
2428 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2429
2430         * trans-types.c (gfc_array_range_type): New variable.
2431         (gfc_init_types): Initialize gfc_array_range_type.
2432         (gfc_get_array_type_bounds): Use gfc_array_range_type.
2433
2434 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
2435
2436         PR fortran/15080
2437         * trans-stmt.c (generate_loop_for_temp_to_lhs): Remove SIZE and COUNT2
2438         arguments.  If LSS is gfc_ss_terminator, increment COUNT1 by 1, instead
2439         of incrementing COUNT2 and using COUNT1+COUNT2 increment COUNT1 and use
2440         just that as index.
2441         (generate_loop_for_rhs_to_temp): Likewise.
2442         (compute_overall_iter_number): Add INNER_SIZE_BODY argument.
2443         It non-NULL, add it to body.
2444         (allocate_temp_for_forall_nest_1): New function, split from
2445         allocate_temp_for_forall_nest.
2446         (allocate_temp_for_forall_nest): Add INNER_SIZE_BODY argument,
2447         propagate it down to compute_overall_iter_number.  Use
2448         allocate_temp_for_forall_nest_1.
2449         (gfc_trans_assign_need_temp): Remove COUNT2.  Call
2450         compute_inner_temp_size into a new stmtblock_t.  Adjust calls to
2451         allocate_temp_for_forall_nest, generate_loop_for_rhs_to_temp
2452         and generate_loop_for_temp_to_lhs.
2453         (gfc_trans_pointer_assign_need_temp): Adjust calls to
2454         allocate_temp_for_forall_nest.
2455         (gfc_evaluate_where_mask): Call compute_inner_temp_size into a new
2456         stmtblock_t.  Call compute_overall_iter_number just once, then
2457         allocate_temp_for_forall_nest_1 twice with the same size.
2458         Initialize mask indexes if nested_forall_info != NULL.
2459         (gfc_trans_where_2): Initialize mask indexes before calling
2460         gfc_trans_nested_forall_loop.
2461
2462 2005-05-15  Feng Wang  <fengwang@nudt.edu.cn>
2463         Jerry DeLisle  <jvdelisle@verizon.net>
2464
2465         PR fortran/17432
2466         * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to
2467         resolve ICE on assign of format label.
2468         * trans-io.c (set_string): add fold-convert to properly
2469         handle assigned format label in write.
2470
2471 2005-05-13  Paul Brook  <paul@codesourcery.com>
2472
2473         * trans-stmt.c (gfc_trans_forall_1): Fix comment typo.
2474
2475 2005-05-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2476
2477         * trans-types.c (gfc_is_nodesc_array): Remove redundant check.
2478
2479 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2480
2481         PR fortran/21260
2482         * io.c (check_format): Look for literal characters inside
2483         hollerith constant.
2484
2485 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2486
2487         * resolve.c (resolve_symbol): Copy 'pointer' and 'dimension'
2488         attribute from result symbol to function symbol.
2489         * trans-expr.c (gfc_conv_function_call): Look at sym->attr.dimension
2490         instead of sym->result->attr.dimension.
2491
2492 2005-05-10  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2493
2494         PR fortran/20178
2495         * gfortran.h (gfc_option): Add flag_f2c.
2496         * invoke.texi: Document '-ff2c' command line option.  Adapt
2497         documentation for '-fno-second-underscore' and '-fno-underscoring'.
2498         * lang.opt (ff2c): New entry.
2499         * options.c (gfc-init_options): Set default calling convention
2500         to -fno-f2c.  Mark -fsecond-underscore unset.
2501         (gfc_post_options): Set -fsecond-underscore if not explicitly set
2502         by user.
2503         (handle_options): Set gfc_option.flag_f2c according to requested
2504         calling convention.
2505         * trans-decl.c (gfc_get_extern_function_decl): Use special f2c
2506         intrinsics where necessary.
2507         (gfc_trans_deferred_vars): Change todo error to assertion.
2508         * trans-expr.c (gfc_conv_variable): Dereference access
2509         to hidden result argument.
2510         (gfc_conv_function_call): Add hidden result argument to argument
2511         list if f2c calling conventions requested.  Slightly restructure
2512         tests.  Convert result of default REAL function to requested type
2513         if f2c calling conventions are used.  Dereference COMPLEX result
2514         if f2c cc are used.
2515         * trans-types.c (gfc_sym_type):  Return double for default REAL
2516         function if f2c cc are used.
2517         (gfc_return_by_reference): Slightly restructure logic.  Return
2518         COMPLEX by reference depending on calling conventions.
2519         (gfc_get_function_type): Correctly make hidden result argument a
2520         pass-by-reference argument for COMPLEX.  Remove old code which does
2521         this for derived types.
2522
2523 2005-05-09  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2524
2525         * match.c (gfc_match_return): Only require space after keyword when
2526         it is obligatory.  Only give stdwarn to after matching is successful.
2527         * dump-parse-tree.c (gfc_show_symbol): Deal with alternate returns.
2528
2529 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2530
2531         * intrinsic.texi: Fix typos.
2532
2533 2005-05-07  Steven G. Kargl  <kargls@comcast.net>
2534
2535         * intrinsic.texi:  Document ASSOCIATED and ATAN2.  Update Bessel function
2536         description to include information about scalar arguments.
2537
2538 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2539
2540         * Make-lang.in, dump-parse-tree.c, invoke.texi, lang.opt,
2541         match.h, trans-array.h: Update copyright.
2542
2543 2005-04-29  Tom Tromey  <tromey@redhat.com>
2544
2545         * f95-lang.c (poplevel): Updated for change to build_block.
2546
2547 2005-04-29  Jakub Jelinek  <jakub@redhat.com>
2548
2549         PR fortran/13082
2550         PR fortran/18824
2551         * trans-expr.c (gfc_conv_variable): Handle return values in functions
2552         with alternate entry points.
2553         * resolve.c (resolve_entries): Remove unnecessary string termination
2554         after snprintf.  Set result of entry master.
2555         If all entries have the same type, set entry master's type
2556         to that common type, otherwise set mixed_entry_master attribute.
2557         * trans-types.c (gfc_get_mixed_entry_union): New function.
2558         (gfc_get_function_type): Use it for mixed_entry_master functions.
2559         * gfortran.h (symbol_attribute): Add mixed_entry_master bit.
2560         * decl.c (gfc_match_entry): Set entry->result properly for
2561         function ENTRY.
2562         * trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over
2563         __entry argument.
2564         (build_entry_thunks): Handle return values in entry thunks.
2565         Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not
2566         shared between multiple contexts.
2567         (gfc_get_fake_result_decl): Use DECL_ARGUMENTS from
2568         current_function_decl instead of sym->backend_decl.  Skip over
2569         entry master's entry id argument.  For mixed_entry_master entries or
2570         their results, return a COMPONENT_REF of the fake result.
2571         (gfc_trans_deferred_vars): Don't warn about missing return value if
2572         at least one entry point uses RESULT.
2573         (gfc_generate_function_code): For entry master returning
2574         CHARACTER, copy ts.cl->backend_decl to all entry result syms.
2575         * trans-array.c (gfc_trans_dummy_array_bias): Don't consider return
2576         values optional just because they are in entry master.
2577
2578 2005-04-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2579
2580         * gfortran.h (gfc_namespace): Add seen_implicit_none field,
2581         Tobias forgot this in previous commit.
2582
2583 2005-04-29  Paul Brook   <paul@codesourcery.com>
2584
2585         * trans-expr.c (gfc_conv_expr_present): Fix broken assert.  Update
2586         comment.
2587
2588 2005-04-29  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2589
2590         * gfortran.h (gfc_namespace): Add seen_implicit_none field.
2591         * symbol.c (gfc_set_implicit_none): Give error if there's a previous
2592         IMPLICIT NONE, set seen_implicit_none.
2593         (gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement.
2594
2595 2005-04-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2596
2597         * gfortran.h (gfc_gsymbol): Make name a const char *.
2598         * symbol.c (gfc_get_gsymbol): Allocate gsymbol name via
2599         gfc_get_string.
2600
2601 2005-04-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2602
2603         PR fortran/20865
2604         * resolve.c (resolve_actual_arglist): Issue an error if a statement
2605         functions is used as actual argument.
2606
2607 2005-04-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2608
2609         PR fortran/21177
2610         * interface.c (compare_parameter): Ignore type for EXPR_NULL
2611         only if type is BT_UNKNOWN.
2612
2613 2005-04-25  Paul Brook  <paul@codesourcery.com>
2614         Steven G. Kargl  <kargls@comcast.net>
2615
2616         PR fortran/20879
2617         * check.c (gfc_check_ichar_iachar): New function.
2618         * instinsic.h (gfc_check_ichar_iachar): Add prototype.
2619         * intrinsic.c (add_functions): Use it.
2620         * primary.c (match_varspec, gfc_match_rvalue): Clear incorrect
2621         character expression lengths.
2622
2623 2005-04-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2624
2625         PR fortran/20059
2626         * trans-common.c (translate_common): Cast offset and
2627         common_segment->offset to type int for warning message.
2628
2629 2005-04-23  DJ Delorie  <dj@redhat.com>
2630
2631         * trans-decl.c: Adjust warning() callers.
2632
2633 2005-04-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2634
2635         * trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as
2636         intermediate representation.  Fix typo in comment.
2637
2638 2005-04-21  Steven G. Kargl  <kargls@comcast.net>
2639
2640         * trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation;
2641         simplify logic; Add a gcc_assert.
2642
2643 2005-04-19  Steven G. Kargl  <kargls@comcast.net>
2644
2645         * trans-const.c (gfc_conv_mpz_to_tree): Fix comment.
2646
2647 2005-04-19  Arnaud Desitter  <arnaud.desitter@ouce.ox.ac.uk>
2648             Steven G. Kargl  <kargls@comcast.net>
2649
2650         * invoke.texi: Update -Waliasing description
2651
2652 2005-04-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2653
2654         PR fortran/16861
2655         * resolve.c (resolve_variable): If e->symtree is not set, this
2656         ought to be a FAILURE, and not a segfault.
2657
2658 2005-04-17  Paul Thomas  <pault@gcc.gnu.org>
2659
2660         PR fortran/17472
2661         PR fortran/18209
2662         PR fortran/18396
2663         PR fortran/19467
2664         PR fortran/19657
2665         * fortran/trans-io.c (gfc_build_io_library_fndecls): Create
2666         declaration for st_set_nml_var and st_set_nml_var_dim. Remove
2667         declarations of old namelist functions.
2668         (build_dt): Simplified call to transfer_namelist_element.
2669         (nml_get_addr_expr): Generates address expression for start of
2670         object data. New function.
2671         (nml_full_name): Qualified name for derived type components. New
2672         function.
2673         (transfer_namelist_element): Modified for calls to new functions
2674         and improved derived type handling.
2675
2676 2005-04-17  Richard Guenther  <rguenth@gcc.gnu.org>
2677
2678         * scanner.c (gfc_next_char_literal): Reset truncation flag
2679         for lines ending in a comment for both fixed and free form.
2680         (load_line): Do not set truncated flag if only truncating
2681         the EOL marker.
2682
2683 2005-04-15  Richard Guenther  <rguenth@gcc.gnu.org>
2684
2685         PR fortran/14569
2686         * gfortran.h (gfc_linebuf): Add truncated field.
2687         * parse.c (next_statement): Handle warning for truncated
2688         lines.
2689         * scanner.c (load_line): Return if line was truncated.
2690         No longer warn for truncated lines.  Remove unused parameters.
2691         (load_file): Store load_line return value to linebuf.
2692         (gfc_error_recovery): Do not advance line at the end.
2693
2694 2005-04-14  Steven G. Kargl  <kargls@comcast.net>
2695
2696         * gfortran.h (gfc_real_info): Add subnormal struct member.
2697         * arith.c (gfc_arith_init_1): Set it.
2698         (gfc_check_real_range): Use it.
2699         * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
2700
2701 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
2702
2703         * simplify.c: Fix a comment typo.
2704
2705 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
2706
2707         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
2708
2709 2005-04-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2710
2711         * simplify.c (gfc_simplify_nearest): Overhaul.
2712
2713 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
2714
2715         * interface.c: Fix a comment typo.
2716
2717 2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2718
2719         * match.c (match_arithmetic_if): Arithmetic IF is obsolete in
2720         Fortran 95.
2721
2722 2005-04-09  Steven G. Kargl  <kargls@comcast.net>
2723
2724         * simplify.c (gfc_simplify_anint): Use mpfr_round()
2725         (gfc_simplify_dnint): ditto.
2726         (gfc_simplify_nint): ditto.
2727
2728 2005-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
2729
2730         PR fortran/13257
2731         * io.c (check_format): Allow an optional comma
2732         between descriptors.
2733
2734 2005-04-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2735
2736         * match.c (match_arithmetic_if): Remove gfc_ prefix and correct
2737         comment according to GNU coding style.
2738         (gfc_match_if): Remove gfc_ prefix in call to
2739         match_arithmetic_if.
2740
2741 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
2742
2743         * match.c (gfc_match_arithmetic_if): Declare static.
2744
2745 2005-04-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2746
2747         PR fortran/17229
2748         * match.c (gfc_match_arithmetic_if): New function to match an
2749         arithmetic IF statement.
2750         (gfc_match_if): Use gfc_match_arithmetic_if to match an
2751         arithmetic IF statement embedded in a simple IF statement.
2752
2753 2005-04-07  Steven G. Kargl  <kargls@comcast.net>
2754
2755         * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x))
2756
2757 2005-04-06  Steven G. Kargl  <kargls@comcast.net>
2758
2759         * invoke.texi: Remove documentation of -std=f90
2760
2761 2005-04-06  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2762
2763         * expr.c (gfc_check_assign): Don't allow NULL as rhs in a
2764         non-pointer assignment.
2765
2766 2005-04-05  Feng Wang  <fengwang@nudt.edu.cn>
2767
2768         PR fortran/15959
2769         PR fortran/20713
2770
2771         * array.c (resolve_character_array_constructor): New function. Set
2772         constant character array's character length.
2773         (gfc_resolve_array_constructor): Use it.
2774         * decl.c (add_init_expr_to_sym): Set symbol and initializer character
2775         length.
2776         (gfc_set_constant_character_len): New function. Set constant character
2777         expression according the given length.
2778         * match.h (gfc_set_constant_character_len): Add prototype.
2779
2780 2005-04-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2781
2782         * intrinsic.texi: BES?? functions are not in the f95 standard.
2783
2784 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2785
2786         * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN.
2787
2788 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2789
2790         * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1,
2791         BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.
2792
2793 2005-04-02  Steven G. Kargl  <kargls@comcast.net>
2794
2795         * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; fix typos
2796
2797 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2798
2799         * decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c,
2800         trans.h: Fix comment typos.
2801
2802 2005-03-29  Steven G. Kargl  <kargls@comcast.net>
2803
2804         * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
2805         flag_default_integer, flag_default_real
2806         * invoke.texi: Update documentation
2807         * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8
2808         fdefault-integer-8, and fdefault-real-8 definitions.
2809         * options.c (gfc_init_options): Set option defaults
2810         (gfc_handle_option): Handle command line options.
2811         * trans-types.c (gfc_init_kinds): Use options.
2812
2813 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
2814
2815         * f95-lang.c (builtin_function): Process the attrs parameter
2816         and apply the "const" attribute to the builtin if found.
2817
2818 2005-03-27  Steven G. Kargl  <kargls@comcast.net>
2819
2820         * intrinsic.texi: Document AIMAG, AINT, ALL
2821
2822 2005-03-26  Steven G. Kargl  <kargls@comcast.net>
2823
2824         * arith.c (check_result): Fix illogical logic.
2825
2826 2005-03-26  Canqun Yang  <canqun@nudt.edu.cn>
2827
2828         * trans-common.c (create_common): Build RECORD_NODE for common blocks
2829         contain no equivalence objects.
2830         (add_equivalences): New argument saw_equiv.
2831         (trans_common): New local variable saw_equiv.
2832         (finish_equivalences): Add a local variable dummy, Always pass true
2833         for the 3rd parameter to create_common.
2834
2835 2005-03-25  Steven G. Kargl  <kargls@comcast.net>
2836
2837         * intrinsic.texi: Fix "make dvi"
2838
2839 2005-03-24  Steven G. Kargl  <kargls@comcast.net>
2840
2841         * intrinsic.texi: New file.
2842         * gfortran.texi: Include it; white space change; fix typo.
2843
2844 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2845
2846         * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2847
2848 2005-03-23  Steven Bosscher  <stevenb@suse.de>
2849
2850         * convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
2851         * trans-array.c (gfc_trans_allocate_array_storage,
2852         gfc_trans_allocate_temp_array gfc_trans_array_constructor_value,
2853         gfc_conv_array_index_ref, gfc_trans_array_bound_check,
2854         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
2855         gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride,
2856         gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds,
2857         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
2858         gfc_conv_expr_descriptor): Likewise.
2859         * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp,
2860         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
2861         * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound,
2862         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign,
2863         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
2864         gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop,
2865         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
2866         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc,
2867         gfc_conv_intrinsic_merge, prepare_arg_info,
2868         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise.
2869         * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while,
2870         gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs,
2871         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
2872         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
2873         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign):
2874         Likewise.
2875         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise.
2876         * trans.c (gfc_add_modify_expr): Likewise.
2877
2878 2005-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2879
2880         * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
2881         gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
2882         gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
2883         gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
2884         gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
2885         gfc_check_perror): new functions to check newly implemented
2886         g77 intrinsics.
2887         * gfortran.h: adding symbols for new intrinsics.
2888         * intrinsic.c (add_functions): adding new intrinsics.
2889         (add_subroutines): adding new intrinsics.
2890         * intrinsic.h: prototype for all checking and resolving
2891         functions.
2892         * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
2893         gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
2894         gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
2895         gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
2896         gfc_resolve_kill_sub, gfc_resolve_link_sub,
2897         gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
2898         gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
2899         gfc_resolve_perror): new functions to resolve intrinsics.
2900         * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
2901         for new symbols.
2902
2903 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2904
2905         * dump-parse-tree.c (gfc_show_expr): Dump name of namespace
2906         in which the variable is declared.
2907
2908         PR fortran/18525
2909         * resolve.c (was_declared): Also check for dummy attribute.
2910
2911 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2912
2913         * gfortran.h (arith): Remove ARITH_0TO0.
2914         * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
2915         (gfc_arith_power): Remove special casing of zero to integral
2916         power zero.
2917
2918 2005-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2919
2920         * Make-lang.in (fortran-warn): Remove -Wno-error.
2921         (expr.o-warn, resolve.o-warn, simplify.o-warn,
2922         trans-common.o-warn): Specify -Wno-error.
2923
2924 2005-03-17  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2925
2926         * trans-array.c (gfc_trans_static_array_pointer,
2927         get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix
2928         comment and formatting typos.
2929
2930 2005-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2931
2932         * invoke.texi: Fix typos.
2933
2934 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
2935
2936         * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
2937
2938 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
2939
2940         * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
2941         to zero on label_tree.
2942
2943 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
2944
2945         PR fortran/18827
2946         * io.c (resolve_tag): Add checking on assigned label.
2947         (match_dt_format): Does not set symbol assign attribute.
2948         * match.c (gfc_match_goto):Does not set symbol assign attribute.
2949         * resolve.c (resolve_code): Add checking on assigned label.
2950         * trans-common.c (build_field): Deals with common variable assigned
2951         a label.
2952         * trans-stmt.c (gfc_conv_label_variable): New function.
2953         (gfc_trans_label_assign): Use it.
2954         (gfc_trans_goto): Ditto.
2955         * trans-io.c (set_string): Ditto.
2956         * trans.h (gfc_conv_label_variable): Add prototype.
2957
2958 2005-03-14  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2959
2960         PR fortran/20467
2961         * symbol.c (check_conflict): A dummy argument can't be a statement
2962         function.
2963
2964 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2965
2966         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
2967         the argument of the shift to the unsigned type.
2968
2969 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2970
2971         PR fortran/16907
2972         * resolve.c (gfc_resolve_index): Allow REAL indices as an extension.
2973
2974 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2975
2976         PR fortran/20323
2977         * resolve.c (gfc_resolve): Check if character lengths are
2978         specification expressions.
2979
2980 2005-03-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2981
2982         PR fortran/20361
2983         * trans-array.c (gfc_stack_space_left): Remove unused variable.
2984         (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
2985         code.
2986         * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
2987         Remove declaration / prototype.
2988         * trans-common.c (build_equiv_decl): Give union a name.  Check if
2989         it can be put on the stack.
2990         * trans-decl.c (gfc_stack_space_left): Move function here.
2991         (gfc_build_qualified_array): Fix comment typo.
2992         * trans.h (gfc_put_var_on_stack): Add prototype.
2993
2994 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2995
2996         * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
2997         * decl.c, trans.c: Don't use C++ style comments.
2998         * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access,
2999         ifsrc): Give names to enums and use ENUM_BITFIELD.
3000         (gfc_access): Remove trailing comma.
3001
3002 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
3003
3004         PR 19936
3005         * primary.c (match_complex_constant): Mangled complex constant may
3006         be an implied do-loop.  Give implied do-loop matcher a chance.
3007
3008 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
3009
3010         PR fortran/19754
3011         * resolve.c (compare_shapes):  New function.
3012         (resolve_operator): Use it.
3013
3014 2005-03-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3015
3016         * trans-const.c (gfc_conv_constant_to_tree): Use correct tree
3017         type for COMPLEX constants.
3018
3019 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3020
3021         PR fortran/19673
3022         * trans-expr.c (gfc_conv_function_call): Correctly dereference
3023         argument from a pointer function also if it has a result clause.
3024
3025 2005-03-04  Steven G. Kargl  <kargls@comcast.net>
3026
3027         * expr.c (gfc_copy_shape_excluding): Change && to ||.
3028
3029 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3030
3031         * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
3032         clarify comment.
3033
3034 2005-02-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3035         (port from g95)
3036
3037         PR fortran/19479
3038         * simplify.c (gfc_simplify_bound): Rename to ...
3039         (simplify_bound): ... this and overhaul.
3040
3041 2005-02-28  Steven G. Kargl  <kargl@gcc.gnu.org>
3042
3043         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
3044         (gfc_conv_intrinsic_function): update function calls
3045
3046 2005-02-27  Steven G. Kargl  <kargl@gcc.gnu.org>
3047
3048         PR fortran/20058
3049         * trans-types.c (gfc_max_integer_kind): Declare
3050         (gfc_init_kinds): Initialize it.
3051         * gfortran.h (gfc_max_integer_kind): extern it.
3052         * primary.c (match_boz_constant): Use it; remove gfortran extension
3053         of kind suffixes on BOZ literal constants
3054
3055
3056 2005-02-27  Steven G. Kargl  <kargls@comcast.net>
3057
3058         * arith.c (gfc_check_real_range):  Remove multiple returns
3059         (check_result): New function.
3060         (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
3061         gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.
3062
3063
3064 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3065
3066         * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
3067
3068
3069 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-meunchen.de>
3070
3071         Unrevert previously reverted patch.  Adding this fix:
3072         * module.c (find_true_name): Deal with NULL module.
3073
3074 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3075
3076         Revert yesterday's patch:
3077         2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3078
3079                 * gfortran.h (gfc_component, gfc_actual_arglist, ...
3080                 ... argument.  Copy string instead of pointing to it.
3081
3082 2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3083
3084         * gfortran.h (gfc_get_namespace): Add second argument to prototype.
3085         * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
3086         gfc_get_namespace.
3087         * module.c (mio_namespace_ref, load_needed): Likewise.
3088         * parse.c (parse_interface, parse_contained): Likewise.  Here the
3089         correct second argument matters.
3090         * symbol.c (gfc_get_namespace): Add parent_types argument, only copy
3091         parent's implicit types if this is set.
3092         (gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
3093         * trans-common.c (build_common_decl): Likewise.
3094
3095         * gfortran.h (symbol_attribute): New 'untyped' field, fix comment
3096         formatting.
3097         * symbol.c (gfc_set_default_type): Issue error only once, by setting
3098         and checking 'untyped' attribute.
3099
3100         * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
3101         fields into new struct 'op' inside the 'value' union.
3102         * arith.c (eval_intrinsic): Adapt all users.
3103         * dependency.c (gfc_check_dependency): Likewise.
3104         * dump-parse-tree.c (gfc_show_expr): Likewise.
3105         * expr.c (gfc_get_expr): Don't clear removed fields.
3106         (free_expr0, gfc_copy_expr, gfc_type_convert_binary,
3107         gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
3108         check_intrinsic_op): Adapt to new field names.
3109         * interface.c (gfc_extend_expr): Likewise.  Also explicitly
3110         nullify 'esym' and 'isym' fields of new function call.
3111         * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
3112         Adapt to renamed structure fields.
3113         * matchexp.c (build_node, match_level_1, match_expr): Likewise.
3114         * module.c (mio_expr): Likewise.
3115         * resolve.c (resolve_operator): Likewise.
3116         (gfc_find_forall_index): Likewise.  Only look through operands
3117         if dealing with EXPR_OP
3118         * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
3119         * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
3120         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
3121
3122         [ Reverted ]
3123         * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
3124         'name' a 'const char *'.
3125         (gfc_symbol): Likewise, also for 'module'.
3126         (gfc_symtree): Make 'name' a 'const char *'.
3127         (gfc_intrinsic_sym): Likewise, also for 'lib_name'.
3128         (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
3129         'char *' argument.
3130         (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
3131         initialize 'SYM->module'.
3132         * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
3133         pointer instead of empty string.
3134         * dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
3135         * interface.c (gfc_compare_types): Adapt check to account for possible
3136         NULL pointer.
3137         (compare_actual_formal): Check for NULL pointer instead of empty
3138         string.
3139         * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
3140         Add 'const' qualifier.
3141         (conv_name): Return a heap allocated string.
3142         (find_conv): Add 'const' qualifier to 'target'.
3143         (add_sym): Use 'gfc_get_string' instead of 'strcpy'.
3144         (make_generic): Check for NULL pointer instead of empty string.
3145         (make_alias): Use 'gfc_get_string' instead of 'strcpy'.
3146         (add_conv): No need to strcpy result from 'conv_name'.
3147         (sort_actual): Check for NULL pointer instead of empty  string.
3148         * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
3149         Adapt prototype.
3150         * module.c (compare_true_names): Compare pointers instead of strings
3151         for 'module' member.
3152         (find_true_name): Initialize string fields with gfc_get_string.
3153         (mio_pool_string): New function.
3154         (mio_internal_string): Adapt comment.
3155         (mio_component_ref, mio_component, mio_actual_arg): Use
3156         'mio_pool_string' instead of 'mio_internal_string'.
3157         (mio_symbol_interface): Add 'const' qualifier to string arguments.
3158         Add level of indirection. Use 'mio_pool_string' instead of
3159         'mio_internal_string'.
3160         (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
3161         (write_common, write_symbol): Use 'mio_pool_string' instead of
3162         'mio_internal_string'.
3163         (write_symbol0, write_symbol1): Likewise, also check for NULL pointer
3164         instead of empty string.
3165         (write_operator, write_generic): Pass correct type variable to
3166         'mio_symbol_interface'.
3167         (write_symtree): Use 'mio_pool_string' instead of
3168         'mio_internal_string'.
3169         * primary.c (match_keyword_arg): Adapt check to possible
3170         case of NULL pointer.  Use 'gfc_get_string' instead of 'strcpy'.
3171         * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
3172         gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
3173         'strcpy'.
3174         (ambiguous_symbol): Check for NULL pointer instead of empty string.
3175         (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
3176         arguments.
3177         * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
3178         pointer instead of empty string.
3179         * trans-decl.c (gfc_sym_mangled_identifier,
3180         gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
3181         gfc_get_symbol_decl): Likewise.
3182         * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
3183         argument.  Copy string instead of pointing to it.
3184
3185 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
3186
3187         * intrinsic.h, st.c: Update copyright.
3188
3189 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
3190
3191         * symbol.c: Typos in comments.
3192
3193 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
3194
3195         * expr.c (gfc_type_convert_binary): Typo in comment.
3196
3197 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
3198
3199         * check.c (gfc_check_selected_int_kind): New function.
3200         * intrinsic.h: Prototype it.
3201         * intrinsic.c (add_function): Use it.
3202         * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
3203           BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
3204
3205 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
3206
3207         * check.c (gfc_check_int): improve checking of optional kind
3208         * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER
3209
3210 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
3211
3212         * check.c (gfc_check_achar): New function
3213         * intrinsic.h: Prototype it.
3214         * intrinsic.c (add_function): Use it.
3215
3216 2005-02-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3217
3218         * trans-stmt.c (generate_loop_for_temp_to_lhs,
3219         generate_loop_for_rhs_to_temp): Remove if whose condition is
3220         always true.
3221
3222 2005-02-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3223
3224         * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
3225         (gfc_use_derived): ... this function.
3226
3227 2005-02-09  Richard Henderson  <rth@redhat.com>
3228
3229         * f95-lang.c (gfc_init_builtin_functions): Call
3230         build_common_builtin_nodes; do not define any functions handled
3231         by it.
3232
3233 2005-02-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3234
3235         * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for
3236         EXPR_SUBSTRING.
3237         (gfc_is_constant_expr): Check 'ref' to determine if substring
3238         reference is constant.
3239         (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'.
3240         (check_init_expr, check_restricted): Check 'ref' instead of 'op1'
3241         and 'op2'.
3242         * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'.
3243
3244 2005-02-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3245
3246         * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save,
3247         gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data,
3248         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
3249         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
3250         gfc_add_procedure): Add argument.
3251         * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name,
3252         gfc_match_null, match_type_spec, match_attr_spec,
3253         gfc_match_formal_arglist, match_result, gfc_match_function_decl):
3254         Update callers to match.
3255         (gfc_match_entry): Likewise, fix comment typo.
3256         (gfc_match_subroutine, attr_decl1, gfc_add_dimension,
3257         access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc,
3258         gfc_match_derived_decl): Update callers.
3259         * interface.c (gfc_match_interface): Likewise.
3260         * match.c (gfc_match_label, gfc_add_flavor,
3261         gfc_match_call, gfc_match_common, gfc_match_block_data,
3262         gfc_match_namelist, gfc_match_module, gfc_match_st_function):
3263         Likewise.
3264         * parse.c (parse_derived, parse_interface, parse_contained),
3265         primary.c (gfc_match_rvalue, gfc_match_variable): Likewise.
3266         * resolve.c (resolve_formal_arglist, resolve_entries): Update callers.
3267         * symbol.c (check_conflict, check_used): Add new 'name' argument,
3268         use when printing error message.
3269         (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy,
3270         gfc_add_generic, gfc_add_in_common, gfc_add_data,
3271         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
3272         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
3273         gfc_add_procedure): Add new 'name' argument.  Pass along to
3274         check_conflict and check_used.
3275         (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic,
3276         gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental,
3277         gfc_add_pure, gfc_add_recursive, gfc_add_intent,
3278         gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new
3279         argument in calls to any of the modified functions.
3280
3281 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
3282
3283         * gfortran.texi: Don't give last update date.
3284
3285 2006-01-30  Richard Henderson  <rth@redhat.com>
3286
3287         * options.c (gfc_init_options): Zero flag_errno_math.
3288
3289 2005-01-29  Paul Brook  <paul@codesourcery.com>
3290
3291         PR fortran/18565
3292         * check.c (real_or_complex_check): New function.
3293         (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions.
3294         * intrinsic.c (add_functions): Use new check functions.
3295         * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc):
3296         Add prototypes.
3297
3298 2005-01-29  Steven G. Kargl  <kargls@comcast.net>
3299
3300         PR fortran/19589
3301         * expr.c (gfc_check_assign):  Check for conformance of logical operands
3302
3303 2004-01-27  Steven Bosscher  <stevenb@suse.de>
3304
3305         * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
3306         TREE_USED for all labels.
3307         (gfc_trans_entry_master_switch): Use it instead of building a
3308         label by hand.
3309         * trans-io.c (add_case): Likewise.
3310         * trans-stmt.c (gfc_trans_integer_select): Likewise.
3311
3312 2004-01-23  Paul Brook  <paul@codesourcery.com>
3313         Steven G. Kargl  <kargls@comcast.net>
3314
3315         PR fortran/17941
3316         * arith.c (gfc_convert_real): Remove sign handling.
3317         * primary.c (match_digits): Allow whitespace after initial sign.
3318         (match_real_const): Handle signs here.  Allow whitespace after
3319         initial sign.  Remove dead code.
3320         (match_const_complex_part): Remove.
3321         (match_complex_part): Use match_{real,integer}_const.
3322         (match_complex_constant): Cross-promote integer types.
3323
3324 2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
3325
3326         PR fortran/19294
3327         * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
3328         transpose_c8 for complex types.
3329
3330 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
3331
3332         * data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
3333         trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
3334         trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
3335         Follow spelling conventions.
3336
3337 2005-01-22  Bud Davis  <bdavis9659@comcast.net>
3338
3339         PR fortran/19313
3340         * trans-io.c (gfc_trans_inquire): Added code to support
3341         pad.
3342
3343 2005-01-22  Steven G. Kargl  <kargls@comcast.net>
3344
3345         * intrinsic.c (make_alias):  Add standard argument.
3346         (add_functions): Update make_alias calls.
3347
3348 2005-01-22  Paul Brook  <paul@codesourcery.com>
3349
3350         * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
3351
3352 2005-01-22  Paul Brook  <paul@codesourcery.com>
3353
3354         * gfortran.h (gfc_check_access): Add prototype.
3355         * match.c (gfc_match_namelist): Remove TODO.
3356         * module.c (check_access): Rename ...
3357         (gfc_check_access): ... to this.  Boolify.  Update callers.
3358         * resolve.c (resolve_symbol): Check for private objects in public
3359         namelists.
3360
3361 2005-01-22  Paul Brook  <paul@codesourcery.com>
3362
3363         * primary.c (gfc_match_rvalue): Only apply implicit type if variable
3364         does not have an explicit type.
3365         (gfc_match_variable): Resolve implicit derived types in all cases.
3366         Resolve contained function types from their own namespace, not the
3367         parent.
3368         * resolve.c (resolve_contained_fntype): Remove duplicate sym->result
3369         checking.  Resolve from the contained namespace, not the parent.
3370
3371 2005-01-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3372
3373         PR fortran/19543
3374         * trans-const.c (gfc_conv_constant_to_tree): Give logical
3375         constants the correct type.
3376
3377         PR fortran/19194
3378         * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
3379         length parameters.
3380         (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
3381         pointer fields.
3382
3383 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3384
3385         * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
3386         gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
3387         match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
3388         scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
3389         trans-io.c, trans-stmt.c, trans.c: Update copyright.
3390
3391 2005-01-17  Ira Rosen  <irar@il.ibm.com>
3392
3393         * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
3394
3395 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3396
3397         PR fortran/19182
3398         * error.c (error_char): Line-buffer errors / warnings.
3399
3400 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3401
3402         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
3403         unsigned issue.  Use build_int_cst instead of converting
3404         integer_zero_node.  Remove unnecessary conversion.
3405
3406         * trans-types.c (gfc_get_character_type_len): Use
3407         gfc_charlen_type_node as basic type for the range field.
3408
3409         * trans-intrinsic.c (build_fixbound_expr,
3410         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
3411         gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
3412         gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
3413         of converting 'integer_zero_node' or 'integer_one_node'
3414         respectively.
3415         (gfc_conv_intrinsic_ishftc): Same, but store in local variable to
3416         evade re-building.
3417         (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
3418         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
3419         'build_int_cst' instead of converting 'integer_zero_node' or
3420         'integer_one_node' respectively.
3421
3422         * trans-intrinsic.c (gfc_conv_intrinsic_index,
3423         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
3424         'gfc'-prefix from local variable, remove dead code, use correct
3425         type when inserting argument.
3426
3427         * trans-intrinsic.c, trans-types.c: Update copyright years.
3428
3429 2005-01-16  Steven G. Kargl  <kargls@comcast.net>
3430
3431         PR 19168
3432         * resolve.c (check_case_overlap): Typo in comment.
3433         (validate_case_label_expr):  Fix up kinds of case values
3434         (resolve_select): Properly handle kind mismatches.
3435
3436 2004-01-16  Paul Brook  <paul@codesourcery.com>
3437
3438         PR fortran/17675
3439         * trans-common.c (translate_common): Remove duplicate function call.
3440         (finish_equivalences): Preserve alignment when biasing offsets.
3441
3442 2005-01-15  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de
3443
3444         * primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
3445         ASCII-like character encoding.
3446
3447 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
3448
3449         * resolve.c (compare_case): Cleanup.
3450
3451 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
3452
3453         * resolve.c (compare_case): Give arguments correct type.
3454
3455 2005-01-13  Kazu Hirata  <kazu@cs.umass.edu>
3456
3457         * iresolve.c, trans-common.c, trans-types.c: Fix comment
3458         typos.
3459
3460 2005-01-09  Paul Brook  <paul@codesourcery.com>
3461
3462         PR fortran/17675
3463         * trans-common.c (current_common, current_offset): Remove.
3464         (create_common): Add head argument.
3465         (align_segment): New function.
3466         (apply_segment_offset): New function.
3467         (translate_common): Merge code from new_segment.  Handle alignment.
3468         (new_segment): Remove.
3469         (finish_equivalences): Ensure proper alignment.
3470
3471 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3472
3473         * trans-const.c: Don't include unused math.h.
3474
3475         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
3476         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
3477         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
3478         trailing whitespace.
3479         (prepare_arg_info): Fix formatting, indenting and remove trailing
3480         whitespace.
3481         (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
3482         trailing whitespace.
3483
3484         * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
3485         gfc_constant_result, gfc_range_check, gfc_arith_power,
3486         eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
3487         gfc_real2complex, gfc_complex2int, gfc_complex2real,
3488         gfc_complex2complex): Fix whitespace issues.
3489         * check.c (must_be, type_check, numeric_check, int_or_real_check,
3490         logical_array_check, array_check, scalar_check, nonoptional_check,
3491         variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
3492         gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
3493         gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
3494         gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
3495         gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
3496         gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
3497         gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
3498         gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
3499         gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
3500         gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
3501         gfc_check_lbound, gfc_check_logical, min_max_args,
3502         gfc_check_min_max_integer, gfc_check_min_max_real,
3503         gfc_check_min_max_double, gfc_check_matmul,
3504         gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
3505         gfc_check_pack, gfc_check_precision, gfc_check_radix,
3506         gfc_check_range, gfc_check_real, gfc_check_repeat,
3507         gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
3508         gfc_check_set_exponent): Fix formatting issues.
3509         (gfc_check_size, gfc_check_sign): Alphabetize function order,
3510         remove whitespace-only line.
3511         (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
3512         gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
3513         gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
3514         gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
3515         gfc_check_random_number, gfc_check_random_seed,
3516         gfc_check_second_sub, gfc_check_system_clock,
3517         gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
3518         gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
3519         gfc_check_unlink_sub): Fix formatting issues.
3520
3521 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3522
3523         * gfortran.h: Remove outdated comment.  Don't include stdio.h
3524         explicitly.
3525
3526 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3527
3528         * gfortranspec.c (lang_specific_driver): Change year to 2005 in
3529         output of 'gfortran --version'.
3530
3531 2005-01-03  Steven G. Kargl  <kargls@comcast.net>
3532
3533         * arith.c: Add system.h; remove string.h
3534         * decl.c: Ditto
3535         * matchexp.c: Ditto
3536         * parse.c: Ditto
3537         * resolve.c: Ditto
3538         * st.c: Ditto
3539         * check.c: Remove stdlib.h and stdarg.h
3540         * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
3541         * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
3542         * f95-lang.c: Add system.h; remove stdio.h
3543         * interface.c: Add system.h; remove stdlib.h and string.h
3544         * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
3545         * io.c: Remove string.h
3546         * simplify.c: Ditto
3547         * match.c: Remove stdarg.h and string.h
3548         * misc.c: Update copyright; add system.h; remove stdlib.h,
3549         string.h, and sys/stat.h
3550         * module.c: Add system.h; remove string.h, stdio.h, errno.h,
3551         unistd.h, and time.h
3552         * option.c: Remove string.h and stdlib.h
3553         * primary.c: Ditto
3554         * scanner.c: Update copyright; add system.h; remove stdlib.h,
3555         stdio.h, string.h, and strings.h
3556         * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
3557         * trans-array.c: Remove stdio.h and gmp.h
3558         * trans-const.c: Ditto
3559         * trans-expr.c: Ditto
3560         * trans-io.c: Ditto
3561         * trans-stmt.c: Ditto
3562         * trans.c: Ditto
3563         * trans-intrinsic.c: Remove stdio.h and string.h
3564
3565 2004-12-29  Steven G. Kargl  <kargls@comcast.net>
3566
3567         * gfortran.h (gfc_case): fix typo in comment.
3568
3569 2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3570
3571         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
3572         logical shift.  Call fold.  Remove 0-bit shift shortcut.
3573         (gfc_conv_intrinsic_ishftc): Convert first argument to at least
3574         4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
3575         result if width(arg 1) < 4 bytes.  Call fold.
3576
3577         PR fortran/19032
3578         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
3579         in front of function to match the standard.  Correct handling
3580         of MODULO.
3581
3582 2004-12-27  Andrew Pinski  <pinskia@physics.uc.edu>
3583
3584         * trans-expr.c (gfc_conv_cst_int_power): Only check for
3585         flag_unsafe_math_optimizations if we have a float type.
3586
3587 2004-12-23  Steven G. Kargl  <kargls@comcast.net>
3588
3589         * gfortran.texi: Fix typo.
3590
3591 2004-12-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3592
3593         * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
3594         comment typo.
3595
3596 2004-12-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3597
3598         PR fortran/18993
3599         * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
3600         (gfc_match_nullify): Make sure that ')' is in front of the end of
3601         statement.
3602
3603         * scanner.c (skip_fixed_comments): Fix typo in comment preceding
3604         function.
3605
3606 2004-12-14  Richard Henderson  <rth@redhat.com>
3607
3608         * gfortran.h (gfc_expr.function.name): Make const.
3609         (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
3610         (gfc_get_string): Update prototype.
3611         * iresolve.c: Include tree.h.
3612         (string_node, HASH_SIZE, string_head, hash): Remove.
3613         (gfc_get_string): Use vsnprintf, get_identifier.
3614         (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
3615         * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
3616         (gfc_done_1): Don't call gfc_iresolve_done_1.
3617         * module.c (mio_allocated_string): Take and return const char *,
3618         instead of modifying char**.
3619         (mio_expr): Update to match.
3620         * resolve.c (pure_function): Constify name argument.
3621         (resolve_function): Constify name.
3622         * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
3623
3624 2004-12-12  Richard Henderson  <rth@redhat.com>
3625
3626         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
3627         gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
3628         gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
3629         gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
3630         gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
3631         gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
3632         gfc_resolve_unpack: Use PREFIX.
3633
3634 2004-12-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3635
3636         PR fortran/18869
3637         * match.c (gfc_match_common): Skip whitespace.
3638
3639 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
3640
3641         PR fortran/16581
3642         * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
3643         gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
3644         integer kind check; Issue error for -std=f95 when needed.
3645         * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
3646         GFC_STD_F95.
3647         * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
3648         Promote arguments to same kind.
3649
3650 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
3651         Paul Brook  <paul@codesourcery.com>
3652
3653         PR fortran/16222
3654         * resolve.c (gfc_resolve_iterator_expr): New function.
3655         (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
3656         start, end and stride to correct type.
3657         (resolve_code): Pass extra argument.
3658         * array.c (resolve_array_list): Pass extra argument.
3659         * gfortran.h (gfc_resolve): Add prototype.
3660         * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
3661         Handle real type iterators.
3662
3663 2004-12-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3664
3665         PR fortran/17175
3666         * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
3667         same kind as C's 'int'.
3668         (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
3669
3670 2004-12-08  Richard Henderson  <rth@redhat.com>
3671
3672         * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
3673         to the output expression.
3674         * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
3675         warning conversion.
3676         (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
3677         to index kind.
3678
3679 2004-12-08  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3680
3681         PR fortran/18826
3682         * resolve.c (resolve_code): Impose correct restrictions on
3683         assigned variable.
3684
3685         * decl.c (gfc_match_end): Use locus of END when eos is an error.
3686
3687 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
3688         Paul Brook  <paul@codesourcery.com>
3689
3690         * check.c (gfc_check_flush, gfc_check_fnum): New functions.
3691         (gfc_check_fstat, gfc_check_fstat_sub): New functions.
3692         (gfc_check_stat, gfc_check_stat_sub): New functions.
3693         * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
3694         * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
3695         fstat, and stat to intrinsics symbol tables.
3696         * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
3697         (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
3698         * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
3699         (gfc_resolve_stat, gfc_resolve_flush): New functions.
3700         (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
3701         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
3702
3703 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
3704
3705         * intrinsic.c: Fix and add comments, fix function declarations
3706         (OPTIONAL,REQUIRED): New symbols
3707         (add_functions,add_subroutines): Use symbols
3708         (gmp.h): Remove unused include
3709
3710 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
3711
3712         * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
3713         in diagnostics.
3714
3715 2004-11-24  Steven Bosscher  <stevenb@suse.de>
3716
3717         * options.c (gfc_post_options): Don't clear flag_inline_functions.
3718
3719 2004-11-20  Steven G. Kargl  <kargls@comcast.net>
3720
3721         * check.c (gfc_check_getcwd_sub): Fix seg fault.
3722
3723         * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
3724         gfc_check_unlink,gfc_check_unlink_sub): New functions
3725         * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
3726         * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
3727         exit to intrinsics symbol tables.
3728         * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
3729         gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
3730         gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
3731         gfc_resolve_unlink_sub): Add and sort prototypes.
3732         * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
3733         gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
3734         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
3735
3736 2004-11-16  Paul Brook  <paul@codesourcery.com>
3737
3738         PR fortran/13010
3739         * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
3740         (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
3741         * trans-types.c (gfc_get_dtype): Accept array type rather than element
3742         type.
3743         (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
3744         (gfc_get_array_type_bounds): Ditto.
3745         (gfc_get_derived_type): Recurse into derived type pointers.
3746         * trans-types.h (gfc_get_dtype): Add prototype.
3747         * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
3748
3749 2004-11-15  Paul Brook  <paul@codesourcery.com>
3750
3751         * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
3752
3753 2004-11-10  Paul Brook  <paul@codesourcery.com>
3754
3755         PR fortran/18375
3756         * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
3757         * trans-io.c (transfer_array_component): Ditto.
3758
3759 2004-11-10  Paul Brook  <paul@codesourcery.com>
3760
3761         * invoke.texi: Fix typo.
3762
3763 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3764
3765         * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
3766         gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
3767         module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
3768         trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
3769         trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
3770
3771 2004-11-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3772
3773         PR fortran/18023
3774         * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
3775
3776 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
3777
3778         * gfortranspec.c: Replace GNU CC with GCC.
3779
3780 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3781
3782         * gfortranspec.c (lang_specific_driver): Change year to 2004.
3783
3784 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3785
3786         PR fortran/18111
3787         *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
3788         hidden parameters.
3789
3790 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3791
3792         PR fortran/15164
3793         * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
3794         module procedures as if they were module variables.
3795
3796 2004-11-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3797
3798         PR fortran/17535
3799         PR fortran/17583
3800         PR fortran/17713
3801         * module.c (write_symbol1): Set module_name for dummy arguments.
3802
3803 2004-11-02  Paul Brook  <paul@codesourcery.com>
3804
3805         * intrinsic.c (check_intrinsic_standard): Include error locus.
3806         Remove VLA.
3807         (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
3808         locus to check_intrinsic_standard.
3809
3810 2004-10-31  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3811
3812         PR fortran/17590
3813         * gfortran.h: Change GFC_STD_* flags to more appropriate
3814         ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
3815         gfc_option_t): Add field for warning about use of nonstandard
3816         intrinsics.
3817         * intrinsic.c (add_sym): Add parameter for standard version, check
3818         this against current standard.
3819         (add_sym_0): Pass standard parameter to add_sym.
3820         (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
3821         (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
3822         (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
3823         (make_generic): Add parameter for standard, check this
3824         against currently selected standard.
3825         (add_functions, add_subroutines): Add parameter to tell which
3826         standard an intrinsic belongs to.
3827         (check_intrinsic_standard): New function.
3828         (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
3829         (gfc_intrinsic_sub_interface): Ditto.
3830         * lang.opt: Add Wnonstd-intrinsics option.
3831         * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
3832         init new warning.
3833         (set_Wall): Add warning about nonstd intrinsics.
3834         (gfc_handle_option): Change to use new GFC_STD_* flags,
3835         handle new warning.
3836         * invoke.texi: Update manual to include -Wnonstd-intrinsics.
3837
3838 2004-10-30  Andrew Pinski  <pinskia@physics.uc.edu>
3839
3840         * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
3841
3842 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3843
3844         * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
3845
3846 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3847
3848         * trans.c (gfc_trans_code): Set global locus after recursing. Fix
3849         comment typo.
3850
3851 2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>
3852
3853         * check.c (gfc_check_rand): Allow missing optional argument.
3854         (gfc_check_irand): Ditto.
3855         * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
3856
3857 2004-10-28  Scott Robert Ladd  <scott.ladd@coyotegulch.com>
3858
3859         PR fortran/13490, PR fortran/17912
3860         * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
3861         * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
3862         * gcc/fortran/arith.c: Added support for an "asymmetric integer"
3863         warning when compiling with pedantic.
3864         * gcc/fortran/arith.c: Set minimum integer values to reflect
3865         realities of two's complement signed integers. Added
3866         pedantic minimum.
3867
3868 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
3869
3870         * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
3871         (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
3872         link it in.
3873
3874 2004-10-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3875
3876         * trans-decl.c (generate_local_decl): Simplify logic, fix comment
3877         typo.
3878         (gfc_generate_function_code): Fix formatting issue.
3879
3880 2004-10-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3881
3882         * module.c: Fix formatting issues.
3883
3884 2004-10-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3885
3886         * module.c (mio_interface_rest): Set where member of interface
3887         while loading.
3888
3889 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
3890
3891         PR fortran/17901
3892         * options.c (gfc_handle_option): Add break after handing the
3893         J/M option.
3894
3895 2004-10-08  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
3896
3897         * arith.c: Fix formatting issues.
3898
3899 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3900
3901         PR fortran/17676
3902         * resolve.c (resolve_operator): Use correct operator name in message.
3903
3904 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3905
3906         * primary.c (match_boz_constant): Allow kind parameter suffixes.
3907         Move standard warning further to the front.
3908
3909 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
3910
3911         * trans-stmt.c: Fix a comment typo.
3912
3913 2004-10-07  Paul Brook  <paul@codesourcery.com>
3914
3915         PR fortran/17678
3916         * trans-array.c (gfc_trans_deferred_array): Leave use associated
3917         variables alone.
3918
3919 2004-10-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3920
3921         PR fortran/17568
3922         * simplify.c (twos_complement): New function.
3923         (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
3924
3925         * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
3926
3927 2004-10-06  Paul Brook  <paul@codesourcery.com>
3928
3929         * trans-stmt.c (gfc_trans_simple_do): New function.
3930         (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
3931         loop.  Update comments.
3932
3933 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3934
3935         PR fortran/17283
3936         * iresolve.c (gfc_resolve_pack): Choose function depending if mask
3937         is scalar.
3938
3939         PR fortran/17631
3940         * intrinsic.c (add_sym_5): Remove.
3941         (add_subroutines): Add resolution function for MVBITS.
3942         * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
3943         MVBITS
3944         * iresolve.c (gfc_resolve_mvbits): New function.
3945         (gfc_resolve_random_number): Remove empty line at end of function.
3946
3947         * trans-const.c (gfc_build_cstring_const): New function.
3948         (gfc_init_cst): Use new function.
3949         * trans-const.h (gfc_build_cstring_const): Add prototype.
3950         * trans-io.c (set_string, set_error_locus): Use new function.
3951         * trans-stmt.c (gfc_trans_goto): Use new function.
3952
3953         PR fortran/17708
3954         * parse.c (accept_statement): Don't treat END DO like END IF and
3955         END SELECT.
3956         (parse_do_block): Generate possible END DO label inside END DO
3957         block.
3958
3959         PR fortran/17776
3960         * check.c (gfc_check_system_sub): New function.
3961         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
3962         * intrinsic.c (add_functions): Add 'system'.
3963         (add_subroutines): Add 'system'.
3964         * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
3965         Move prototypes to other suborutines.
3966         (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
3967         Add prototype.
3968         (gfc_resolve_system_clock): Fix formatting of prototype.
3969         * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
3970         functions.
3971         * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
3972         GFC_ISYM_SYSTEM.
3973
3974 2004-10-04  Erik Schnetter  <schnetter@aei.mpg.de>
3975
3976         * scanner.c (preprocessor_line): Accept preprocessor lines without
3977         file names.  Check file names for closing quotes.  Handle escaped
3978         quotes in file names.
3979
3980 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3981         Paul Brook  <paul@codesourcery.com>
3982
3983         * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
3984         Use gfc_get_expr_charlen.
3985         * trans-expr.c (gfc_get_expr_charlen): New function.
3986         * trans.h (gfc_get_expr_charlen): Add prototype.
3987
3988 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
3989
3990         * trans-intrinsic.c: Fix a comment typo.
3991
3992 2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3993
3994         * simplify.c (range_check): Remove blank line at beginning of function.
3995         (gfc_simplify_dint): Same at end of function.
3996         (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
3997         (gfc_simplify_bound): Fix indentation.
3998         (gfc_simplify_log10): Simplify calculation.
3999         (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
4000         of function.
4001         (gfc_simplify_nearest): Same at end of function.
4002         (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
4003         function.
4004         (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
4005         gfc_simplify_spacing): Simplify calulations.
4006
4007 2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>
4008
4009         * trans-intrinsic.c: Fix comments on spacing and rrspacing
4010         (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
4011
4012 2004-10-01  Jan Hubicka  <jh@suse.cz>
4013
4014         * f95-lang.c (gfc_expand_function): Update call of
4015         tree_rest_of_compilation.
4016         * trans-decl.c (gfc_generate_constructors): Likewise.
4017
4018 2004-09-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4019
4020         * trans-intrinsic.c: Comment fixes.
4021
4022 2004-09-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4023
4024         * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
4025
4026 2004-09-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4027
4028         * trans-types.c (gfc_return_by_reference): Remove superfluous
4029         assertion.
4030
4031         * intrinsic.h (gfc_resolve_getcwd): Update prototype.
4032         * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
4033
4034         PR fortran/17615
4035         * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
4036         function to determine return type.
4037
4038 2004-09-20  Jan Hubicka  <jh@suse.cz>
4039
4040         * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
4041         tree.
4042         (gfc_generate_function_code): Likewise.
4043
4044 2004-09-20  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4045
4046         PR fortran/15957
4047         * simplify.c (gfc_simplify_reshape): Set shape of return value
4048         correctly.
4049
4050 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
4051             Zack Weinberg  <zack@codesourcery.com>
4052
4053         * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
4054         enumeration constants.
4055
4056 2004-09-17  Paul Brook  <paul@codesourcery.com>
4057
4058         * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
4059         (gfc_linebuf_header_size): Define.
4060         * scanner.c (load_file): Use it.
4061
4062 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
4063
4064         * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
4065         interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
4066         resolve.c, scanner.c, trans-array.c, trans-array.h,
4067         trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
4068         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
4069         trans.h: Fix comment typos.  Follow spelling conventions.
4070
4071 2004-09-16  Victor Leikehman  <lei@il.ibm.com>
4072
4073         PR/15364
4074         * trans-io.c (transfer_array_component): New function.
4075         (transfer_expr): For array fields, call transfer_array_component.
4076
4077 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
4078
4079         * gfortran.texi: Fix a typo.
4080
4081 2004-09-15  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4082
4083         * parse.c (eof_buf): Rename eof to eof_buf.
4084         (unexpected_eof): Same.
4085         (gfc_parse_file): Same.
4086
4087 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
4088
4089         * check.c (gfc_check_getcwd_sub): New function.
4090         * gfortran.h (GFC_ISYM_GETCWD): New symbol.
4091         * intrinsic.c (add_functions): Add function definition;
4092         Use symbol.
4093         * intrinsic.c (add_subroutines): Add subroutine definitions.
4094         * intrinsic.h: Add prototypes.
4095         * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
4096         New functions.
4097         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
4098
4099 2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4100
4101         PR fortran/16485
4102         * module.c (write_symbol): Don't fill in module name here.
4103         (write_symbol0): Fill in here instead.
4104
4105 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
4106
4107         * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
4108         trans-array.c, trans-common.c, trans-expr.c,
4109         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
4110         comment typos.  Follow spelling conventions.
4111
4112 2004-09-09  Paul Brook  <paul@codesourcery.com>
4113
4114         * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
4115
4116 2004-09-08  Paul Brook  <paul@codesourcery.com>
4117
4118         * array.c: Don't include assert.h.
4119         * data.c: Don't include assert.h.  Replace assert and abort with
4120         gcc_assert and gcc_unreachable.
4121         * dependency.c: Ditto.
4122         * f95-lang.c: Ditto.
4123         * iresolve.c: Ditto.
4124         * resolve.c: Ditto.
4125         * simplify.c: Ditto.
4126         * symbol.c: Ditto.
4127         * trans-array.c: Ditto.
4128         * trans-common.c: Ditto.
4129         * trans-const.c: Ditto.
4130         * trans-decl.c: Ditto.
4131         * trans-expr.c: Ditto.
4132         * trans-intrinsic.c: Ditto.
4133         * trans-io.c: Ditto.
4134         * trans-stmt.c: Ditto.
4135         * trans-types.c: Ditto.
4136         * trans.c: Ditto.
4137
4138 2004-09-07  Per Bothner  <per@bothner.com>
4139         Paul Brook  <paul@codesourcery.com>
4140
4141         * error.c (show_locus): Handle mapped locations.
4142         * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
4143         * gfortran.h: Include input.h.
4144         (struct gfc_linebuf): Use source_location.
4145         * scanner.c (get_file): Initialize linemap.
4146         (preprocessor_line): Pass extra argument to get_file.
4147         (load_file): Ditto.  Setup linemap.
4148         (gfc_new_file): Handle mapped locations.
4149         * trans-common.c (build_field, build_equiv_decl, build_common_decl):
4150         Set decl source locations.
4151         (gfc_trans_common): Set blank common block location.
4152         * trans-decl.c (gfc_set_decl_location): New function.
4153         (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
4154         (trans_function_start): Move call to gfc_set_backend_locus..
4155         (build_function_decl): ... to here.
4156         (build_entry_thunks): Set and restore the backend locus.
4157         (gfc_generate_constructors): Remove excess arguments to
4158         init_function_start.
4159         (gfc_generate_block_data): Add comments.  Set the decl locus.
4160         * trans-io.c (set_error_locus): Handle mapped locations.
4161         * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
4162         (gfc_trans_code): Use SET_EXPR_LOCATION.
4163         (gfc_generate_code): Override the location of the new symbol.
4164         * trans.h (gfc_set_decl_location): Add prototype.
4165
4166 2004-08-31  Paul Brook  <paul@codesourcery.com>
4167
4168         * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
4169
4170 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4171
4172         PR fortran/15327
4173         * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
4174         strings.
4175
4176 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4177
4178         PR fortran/16400
4179         PR fortran/16404
4180         (port from g95)
4181         * resolve.c (resolve_transfer): New function.
4182         (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
4183
4184 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4185
4186         PR fortran/16579
4187         * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
4188         unsigned char.
4189
4190 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4191
4192         * CONTRIB, NEWS, README, TODO: Remove obsolete files.
4193
4194 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4195
4196         PR fortran/17244
4197         * trans-types.c (gfc_return_by_reference): Remove TODO error,
4198         add comment pointing out possible issue WRT compatibility with g77.
4199
4200 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4201
4202         * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
4203         all occurences of 'gfc_strlen_type_node' by
4204         'gfc_charlen_type_node'.
4205         * trans-types.h: Same. Also update comment accordingly.
4206
4207 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4208
4209         * primary.c: Update copyright boilerplate to say GCC.
4210         * f95-lang.c: Change initial comment to say gfortran.
4211
4212 2004-08-31  Paul Brook  <paul@codesourcery.com>
4213
4214         * trans-types.h: Add comments.
4215         (intmax_type_node, string_type_node, const_string_type_node): Remove.
4216
4217 2004-08-30  Richard Henderson  <rth@redhat.com>
4218
4219         * Make-lang.in (fortran/f95-lang.o): Update dependencies.
4220         (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
4221         * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
4222         c_long, c_long_long.
4223         (gfc_logical_info): Add c_bool.
4224         (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
4225         * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
4226         rather than gfc_int[48]_type_node for allocate choice.
4227         * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
4228         local copies of some kind type nodes.
4229         (gfc_build_builtin_function_decls): Likewise.
4230         * trans-expr.c (gfc_conv_power_op): Likewise.
4231         * trans-intrinsic.c (gfc_conv_intrinsic_index,
4232         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
4233         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
4234         * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
4235         gfc_trans_character_select, gfc_trans_allocate): Likewise.
4236         * trans-io.c (gfc_pint4_type_node): Move into ...
4237         (gfc_build_io_library_fndecls): ... here.  Cache local copies of
4238         some kind type nodes.
4239         * trans-types.c (gfc_type_nodes): Remove.
4240         (gfc_character1_type_node, gfc_strlen_type_node): New.
4241         (gfc_integer_types, gfc_logical_types): New.
4242         (gfc_real_types, gfc_complex_types): New.
4243         (gfc_init_kinds): Fill in real mode_precision.
4244         (gfc_build_int_type, gfc_build_real_type): New.
4245         (gfc_build_complex_type, gfc_build_logical_type): New.
4246         (c_size_t_size): New.
4247         (gfc_init_types): Loop over kinds.
4248         (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
4249         (gfc_get_complex_type, gfc_get_logical_type): Likewise.
4250         (gfc_get_character_type_len): Likewise.
4251         (gfc_type_for_size): Loop over kinds; use a reduced set of
4252         unsigned type nodes.
4253         (gfc_type_for_mode): Loop over kinds.
4254         (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
4255         (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
4256         * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
4257         F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
4258         F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
4259         F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
4260         F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
4261         F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
4262         gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
4263         gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
4264         gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
4265         gfc_complex8_type_node, gfc_complex16_type_node,
4266         gfc_logical1_type_node, gfc_logical2_type_node,
4267         gfc_logical4_type_node, gfc_logical8_type_node,
4268         gfc_logical16_type_node, gfc_strlen_kind): Remove.
4269         (gfc_character1_type_node): Turn in to a variable.
4270         (gfc_strlen_type_node): Likewise.
4271
4272 2004-08-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4273
4274         * gfortran.h (gfc_namespace): Add new field is_block_data.
4275         * parse.c (accept_statement): Remove special handling for BLOCK DATA.
4276         (parse_block_data): Record BLOCK DATA name, set is_block_data field.
4277         * trans.c (gfc_generate_code): Handle BLOCK DATA units.
4278         * trans.h (gfc_generate_block_data): Add prototype.
4279         * trans-decl.c (gfc_generate_block_data): New function.
4280
4281 2004-08-29  Richard Henderson  <rth@redhat.com>
4282
4283         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
4284         * trans-types.c (gfc_init_kinds): Reject integer kinds larger
4285         than two HOST_WIDE_INT.
4286
4287 2004-08-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4288
4289         PR fortran/13910
4290         * decl.c (free_variable, free_value, gfc_free_data, var_list,
4291         var_element, top_var_list, match_data_constant, top_val_list,
4292         gfc_match_data): Move here from match.c.
4293         (match_old_style_init): New function.
4294         (variable_decl): Match old-style initialization.
4295         * expr.c (gfc_get_variable_expr): New function.
4296         * gfortran.h (gfc_get_variable_expr): Add prototype.
4297         * gfortran.texi: Start documentation for supported extensions.
4298         * match.c: Remove the functions moved to decl.c.
4299         * match.h (gfc_match_data): Move prototype to under decl.c.
4300         * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
4301         comments.
4302
4303 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
4304         Paul Brook  <paul@codesourcery.com>
4305
4306         * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
4307         * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
4308         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
4309         (build_builtin_fntypes): New function.
4310         (gfc_init_builtin_functions): Use it.
4311         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
4312         and GFC_ISYM_ERF{,C}.
4313         (gfc_c_int_kind): Declare.
4314         * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
4315         * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
4316         gfc_resolve_g77_math1): Add prototypes.
4317         * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
4318         * mathbuiltins.def: Add comment.  Change third argument.  Use
4319         DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
4320         * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
4321         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
4322         * trans-types.c (gfc_c_int_kind): Declare.
4323         (gfc_init_kinds): Set it.
4324
4325 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
4326         Paul Brook  <paul@codesourcery.com>
4327
4328         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
4329         (gfc_check_f, gfc_simplify_f): Add f0.
4330         * intrinsic.c (do_check): Call f0.  Flatten.
4331         (add_sym_0): Fix prototype.  Set f0.
4332         (add_functions): Add getgid, getgid and getuid.
4333         (resolve_intrinsic): Remove obsolete comment.
4334         (do_simplify): Call f0.
4335         * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
4336         gfc_resolve_getuid): Add prototypes.
4337         * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
4338         gfc_resolve_getuid): New functions.
4339         * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
4340         GFC_ISYM_GET?ID.
4341
4342 2004-08-28  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4343
4344         * error.c (gfc_error_init_1): Remove blank line in front of
4345         function body. Add missing blank.
4346         (gfc_buffer_error, error_char, error_string): Remove blank line in
4347         front of function body.
4348         (show_locus): Add comma in comment.
4349         (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
4350         gfc_push_error, gfc_pop_error): Remove blank line in front of
4351         function body.
4352         (gfc_get_errors): Typo fix in comment in front of function. Remove
4353         blank line in front of function body.
4354
4355 2004-08-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4356
4357         * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
4358         variable declaration of same name.
4359         * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
4360         intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
4361         resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
4362         Replace all calls to gfc_default_*_kind with variable accesses.
4363         * trans-types.c: Same as above.
4364         (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
4365         static qualifier. Replace all occurences.
4366         (gfc_default_*_kind): Remove functions.
4367
4368 2004-08-26  Richard Henderson  <rth@redhat.com>
4369
4370         * arith.c: Include system.h, not real system headers.
4371         (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
4372         DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
4373         GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
4374         GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
4375         (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
4376         gfc_index_integer_kind, gfc_default_integer_kind,
4377         gfc_default_real_kind,gfc_default_double_kind,
4378         gfc_default_character_kind, gfc_default_logical_kind,
4379         gfc_default_complex_kind, validate_integer, validate_real,
4380         validate_logical, validate_character,
4381         gfc_validate_kind): Move to trans-types.c.
4382         (gfc_set_model_kind): Use gfc_validate_kind.
4383         (gfc_set_model): Just copy the current precision to default.
4384         (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
4385         * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
4386         * gfortran.h: Update file commentary.
4387         * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
4388         (gfc_default_integer_kind_1, gfc_default_real_kind_1,
4389         gfc_default_double_kind_1, gfc_default_character_kind_1,
4390         gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
4391         (gfc_init_kinds): New.
4392         (gfc_init_types): Don't set gfc_index_integer_kind here.
4393         * trans-types.h (gfc_init_kinds): Declare.
4394         * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
4395
4396 2004-08-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4397
4398         * check.c (gfc_check_atan2): New function.
4399         * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
4400         * intrinsic.h (gfc_check_atan2): Add prototype.
4401
4402 2004-08-25  Richard Henderson  <rth@redhat.com>
4403
4404         * arith.c (gfc_validate_kind): Add may_fail argument; abort if
4405         false and we don't validate the kind.
4406         (gfc_check_integer_range, gfc_check_real_range): Update to match.
4407         * check.c (kind_check): Likewise.
4408         * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
4409         (match_char_spec, match_logical_spec): Likewise.
4410         * gfortran.h (gfc_validate_kind): Likewise.
4411         * options.c (gfc_handle_option): Likewise.
4412         * primary.c (match_integer_constant, match_real_constant,
4413         match_string_constant, match_logical_constant,
4414         match_const_complex_part): Likewise.
4415         * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
4416         gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
4417         gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
4418         gfc_simplify_maxexponent, gfc_simplify_minexponent,
4419         gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
4420         gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
4421         gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
4422         gfc_simplify_tiny): Likewise.
4423         * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
4424         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
4425         prepare_arg_info): Likewise.
4426
4427 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4428
4429         * expr.c (gfc_check_assign): Add comment. Add new warning.
4430         * trans-expr.c (gfc_conv_function_call): Correctly dereference
4431         result of pointer valued function when not in pointer assignment.
4432
4433 2004-08-25  Paul Brook  <paul@codesourcery.com>
4434
4435         * config-lang.in: Remove dead commented line.
4436         * module.c: Replace g95 with gfortran in comment.
4437
4438 2004-08-25  Paul Brook  <paul@codesourcery.com>
4439
4440         PR fortran/17190
4441         * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
4442
4443 2004-08-25  Paul Brook  <paul@codesourcery.com>
4444
4445         PR fortran/17144
4446         * trans-array.c (gfc_trans_allocate_temp_array): Remove
4447         string_length argument.
4448         (gfc_trans_array_ctor_element): New function.
4449         (gfc_trans_array_constructor_subarray): Use it.
4450         (gfc_trans_array_constructor_value): Ditto.  Handle constant
4451         character arrays.
4452         (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
4453         (gfc_trans_array_constructor): Use them.
4454         (gfc_add_loop_ss_code): Update to new gfc_ss layout.
4455         (gfc_conv_ss_descriptor): Remember section string length.
4456         (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
4457         (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
4458         (gfc_conv_expr_descriptor): Ditto.
4459         (gfc_conv_loop_setup): Ditto.  Spelling fixes.
4460         * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
4461         * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
4462         * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
4463         (gfc_conv_variable): Set string_length from section.
4464         (gfc_conv_function_call): Remove extra argument.
4465         (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
4466         * trans-types.c (gfc_get_character_type_len): New function.
4467         (gfc_get_character_type): Use it.
4468         (gfc_get_dtype): Return zero for internal types.
4469         * trans-types.h (gfc_get_character_type_len): Add prototype.
4470         * trans.h (struct gfc_ss): Move string_length out of union.
4471
4472 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4473
4474         * trans.h (build2_v, build3_v): New macros.
4475         (build_v): Remove.
4476         * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
4477         build.
4478         * trans-array.c (gfc_conv_descriptor_data,
4479         gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
4480         gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
4481         gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
4482         gfc_trans_allocate_temp_array,
4483         gfc_trans_array_constructor_subarray,
4484         gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
4485         gfc_trans_array_bound_check, gfc_conv_array_index_offset,
4486         gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
4487         gfc_conv_array_ref, gfc_trans_preloop_setup,
4488         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
4489         gfc_conv_loop_setup, gfc_array_init_size,
4490         gfc_conv_array_initializer, gfc_trans_array_bounds,
4491         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
4492         gfc_conv_expr_descriptor, gfc_conv_array_parameter,
4493         gfc_trans_deferred_array): Use buildN and buildN_v macros instead
4494         of build and build_v as appropriate.
4495         * trans-common.c (create_common): Same.
4496         * trans-decl.c (gfc_trans_auto_character_variable,
4497         gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
4498         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
4499         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
4500         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
4501         gfc_conv_expr_op, gfc_conv_function_call,
4502         gfc_trans_structure_assign): Same.
4503         * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
4504         gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
4505         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
4506         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
4507         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
4508         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
4509         gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
4510         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
4511         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
4512         gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
4513         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
4514         gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
4515         gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
4516         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
4517         gfc_conv_intrinsic_iargc): Same.
4518         * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
4519         set_flag, add_case, io_result, transfer_namelist_element,
4520         transfer_expr): Same.
4521         * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
4522         gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
4523         gfc_trans_integer_select, gfc_trans_logical_select,
4524         gfc_trans_character_select, gfc_trans_forall_loop,
4525         gfc_trans_nested_forall_loop, gfc_do_allocate,
4526         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
4527         compute_inner_temp_size, compute_overall_iter_number,
4528         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
4529         gfc_trans_forall_1, gfc_evaluate_where_mask,
4530         gfc_trans_where_assign, gfc_trans_allocate): Same.
4531         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
4532         * trans.c (gfc_add_modify_expr, gfc_finish_block,
4533         gfc_build_array_ref, gfc_build_function_call,
4534         gfc_trans_runtime_check): Same.
4535
4536 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4537
4538         * trans-const.c (gfc_conv_mpz_to_tree): Change call to
4539         build_int_cst to build_int_cst_wide in accordance to Nathan's
4540         previous patch.
4541
4542 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
4543
4544         * trans-array.c (gfc_trans_array_constructor_value): Adjust
4545         build_int_cst calls.
4546         * trans-const.c (gfc_build_string_const, gfc_init_constants,
4547         gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
4548         * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
4549         gfc_trans_entry_master_switch): Likewise.
4550         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
4551         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
4552         * trans-io.c (add_case, set_error_locus,
4553         transfer_namelist_element, transfer_expr): Likewise.
4554         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
4555         gfc_trans_stop, gfc_trans_character_select): Likewise.
4556         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
4557         * trans.c (gfc_trans_runtime_check): Likewise.
4558
4559 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4560
4561         * trans-decl.c, trans-types.c: Add and remove blank lines as
4562         required.
4563
4564 2004-08-24  Richard Henderson  <rth@redhat.com>
4565
4566         * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
4567
4568 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4569
4570         * resolve.c (merge_argument_lists): Revert unintentionally
4571         committed change.
4572
4573 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4574
4575         * trans-decl.c (build_function_decl): Fix spelling in comment.
4576         (build_entry_thunks): Remove code with no function.
4577         (gfc_build_intrinsic_function_decls): Remove empty line.
4578
4579         * resolve.c (resolve_entries): Fix a bunch of comment typos.
4580
4581 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
4582
4583         * f95-lang.c (gfc_init_decl_processing): Adjust
4584         build_common_tree_nodes call.
4585
4586 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4587
4588         * trans-types.c: Spelling and formatting fixes.
4589
4590 2004-08-23  Richard Henderson  <rth@redhat.com>
4591
4592         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
4593         of going through an intermediate string.  Fix 32/64 int/long bug.
4594
4595 2004-08-23  Eric Christopher  <echristo@redhat.com>
4596
4597         * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
4598         usage. Use build_vector_type_for_mode for vector types.
4599
4600 2004-08-22  Richard Henderson  <rth@redhat.com>
4601
4602         PR 13465
4603         * data.c (find_con_by_offset): Search ordered list; handle
4604         elements with repeat counts.
4605         (gfc_assign_data_value_range): New.
4606         * gfortran.h (struct gfc_data_value): Make repeat unsigned.
4607         (gfc_assign_data_value_range): Declare.
4608         * match.c (top_val_list): Extract repeat count into a temporary.
4609         * resolve.c (values): Make left unsigned.
4610         (next_data_value): Don't decrement left.
4611         (check_data_variable): Use gfc_assign_data_value_range.
4612
4613 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4614
4615         * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
4616
4617 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4618
4619         * check.c (gfc_check_reduction): Rename to ...
4620         (check_reduction): ... this. Make static. Don't check type of
4621         first argument.
4622         (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
4623         * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
4624         SUM to use new check functions.
4625         (check_specific): Change logic to call new functions.
4626         * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
4627         Add prototypes.
4628         (gfc_check_reduction): Remove prototype.
4629
4630 2004-08-20  Paul Brook  <paul@codesourcery.com>
4631         Canqun Yang  <canqun@nudt.edu.cn>
4632
4633         PR fortran/17077
4634         * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
4635         for automatic arrays.
4636         * trans-types.c (gfc_get_nodesc_array_type): Add comment.
4637
4638 2004-08-19  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4639         (Port from g95)
4640
4641         PR fortran/17074
4642         * match.c (match_simple_forall, match_simple_where): Forward-declare.
4643         (gfc_match_if): Order statement list alphabetically, add WHERE and
4644         FORALL, remove double PAUSE.
4645         (gfc_match_simple_where, match_forall_header,
4646         gfc_match_simple_forall): New functions.
4647         (gfc_match_forall): Use match_forall_header.
4648
4649 2004-08-19  Paul Brook  <paul@codesourcery.com>
4650
4651         PR fortran/17091
4652         * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
4653         * symbol.c (gfc_clear_attr): Use memset.
4654
4655 2004-08-19  Paul Brook  <paul@codesourcery.com>
4656
4657         PR fortran/14976
4658         PR fortran/16228
4659         * data.c (assign_substring_data_value): Remove.
4660         (create_character_intializer): New function.
4661         (gfc_assign_data_value): Track the typespec for the current
4662         subobject.  Use create_character_intializer.
4663
4664 2004-08-19  Erik Schnetter  <schnetter@aei.mpg.de>
4665
4666         PR fortran/16946
4667         * check.c (gfc_check_reduction): New function.
4668         (gfc_check_minval_maxval): Removed.
4669         (gfc_check_product): Removed.
4670         (gfc_check_sum): Removed.
4671         * intrinsic.h: Add/remove declarations for these.
4672         * gfortran.h: Add field f3red to union gfc_check_f.
4673         * intrinsic.c (add_sym_3red): New function.
4674         (add_functions): Register maxval, minval, product, and sum intrinsics
4675         through add_sym_3red.
4676         (check_specific): Handle f3red union field.
4677         * iresolve.c: Whitespace change.
4678
4679 2004-08-18  Paul Brook  <paul@codesourcery.com>
4680
4681         * trans-types.c (gfc_sym_type): Use pointer types for optional args.
4682
4683 2004-08-18  Victor Leikehman  <lei@il.ibm.com>
4684
4685         PR fortran/13278
4686         * trans-io.c (transfer_namelist_element): New. Recursively handle
4687         derived-type variables.  Pass string lengths.
4688         (build_dt): Code moved to build_namelist, with some
4689         changes and additions.
4690         (gfc_build_io_library_fndecls): Declare the fifth
4691         argument in st_set_nml_var_char -- string_length.
4692
4693 2004-08-17  Paul Brook  <paul@codesourcery.com>
4694         Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4695
4696         PR fortran/13082
4697         * decl.c (get_proc_name): Update mystery comment.
4698         (gfc_match_entry): Check for errors earlier.  Add entry point to list.
4699         * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
4700         * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
4701         (struct gfc_entry_list): Define.
4702         (gfc_get_entry_list): Define.
4703         (struct gfc_namespace): Add refs and entries.
4704         (enum gfc_exec_op): Add EXEC_ENTRY.
4705         (struct gfc_code): Add ext.entry.
4706         * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
4707         (mio_symbol_attribute): Don't save/reture addr->entry.
4708         (mio_namespace_ref): Refcount namespaces.
4709         * parse.c (accept_statement): Handle ST_ENTRY.
4710         (gfc_fixup_sibling_symbols): Mark symbol as referenced.
4711         (parse_contained): Fixup sibling references to entry points
4712         after parsing the procedure body.
4713         * resolve.c (resolve_contained_fntype): New function.
4714         (merge_argument_lists, resolve_entries): New functions.
4715         (resolve_contained_functions): Use them.
4716         (resolve_code): Handle EXEC_ENTRY.
4717         (gfc_resolve): Call resolve_entries.
4718         * st.c (gfc_free_statement): Handle EXEC_ENTRY.
4719         * symbol.c (gfc_get_namespace): Refcount namespaces.
4720         (gfc_free_namespace): Ditto.
4721         * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
4722         optional when multiple entry points are present.
4723         * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
4724         (gfc_get_extern_function_decl): Add assertion.  Fix coment.
4725         (create_function_arglist, trans_function_start, build_entry_thunks):
4726         New functions.
4727         (gfc_build_function_decl): Rename ...
4728         (build_function_decl): ... to this.
4729         (gfc_create_function_decl): New function.
4730         (gfc_generate_contained_functions): Use it.
4731         (gfc_trans_entry_master_switch): New function.
4732         (gfc_generate_function_code): Use new functions.
4733         * trans-stmt.c (gfc_trans_entry): New function.
4734         * trans-stmt.h (gfc_trans_entry): Add prototype.
4735         * trans-types.c (gfc_get_function_type): Add entry point argument.
4736         * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
4737         (gfc_generate_module_code): Call gfc_create_function_decl.
4738         * trans.h (gfc_build_function_decl): Remove.
4739         (gfc_create_function_decl): Add prototype.
4740
4741 2004-08-15  Andrew Pinski  <apinski@apple.com>
4742
4743         PR fortran/17030
4744         * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
4745         for cabs{,f} and copysign{,f}.
4746         * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
4747         (gfor_fndecl_math_cabs): Delete.
4748         (gfor_fndecl_math_sign4): Delete.
4749         (gfor_fndecl_math_sign8): Delete.
4750         (gfc_build_intrinsic_function_decls): Remove the
4751         initializing of cabs{,f} and copysign{,f} functions.
4752         * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
4753         instead of the functions definitions.
4754         (gfc_conv_intrinsic_sign): Likewise.
4755         * trans.h (gfor_fndecl_math_cabsf): Delete.
4756         (gfor_fndecl_math_cabs): Delete.
4757         (gfor_fndecl_math_sign4): Delete.
4758         (gfor_fndecl_math_sign8): Delete.
4759
4760 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
4761
4762         * trans-array.c (gfc_trans_array_constructor_value): Use
4763         build_int_cst.
4764         * trans-const.c (gfc_build_string_const,
4765         gfc_init_constants, gfc_conv_mpz_to_tree,
4766         gfc_conv_constant_to_tree): Likewise.
4767         * trans-decl.c (gfc_get_symbol_decl): Likewise.
4768         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
4769         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
4770         * trans-io.c (add_case, set_error_locus, build_dt,
4771         transfer_expr): Likewise.
4772         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
4773         gfc_trans_stop, gfc_trans_character_select): Likewise.
4774         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
4775         * trans.c (gfc_trans_runtime_check): Likewise.
4776
4777 2004-08-14  Paul Brook  <paul@codesourcery.com>
4778
4779         * trans-decl.c (gfc_build_function_decl): Remove dead code.
4780
4781 2004-08-14  Paul Brook  <paul@codesourcery.com>
4782
4783         * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
4784
4785 2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4786
4787         * gfortran.h: Add comments.
4788         * parse.c (parse_contained): Fix comment typo.
4789         * resolve.c (was_declared): Ditto.
4790         * symbol.c: Ditto.
4791
4792 2004-08-11  Paul Brook  <paul@codeourcery.com>
4793
4794         PR fortran/16917
4795         * intrinsic.c (add_functions): Add dfloat as an alias for dble.
4796
4797 2004-08-10  Richard Henderson  <rth@redhat.com>
4798
4799         * f95-lang.c (gfc_init_builtin_functions): Remove
4800          __builtin_stack_alloc, add __builtin_alloca.
4801         * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
4802         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
4803
4804 2004-08-10  Paul Brook  <paul@codesourcery.com>
4805
4806         * trans-io.c (transfer_expr): Handle pointters.
4807
4808 2004-08-10  Paul Brook  <paul@codesourcery.com>
4809
4810         PR fortran/16919
4811         * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
4812         (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
4813         (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
4814         Handle GFC_SS_COMPONENT.
4815         (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
4816         (gfc_conv_loop_setup): Tweak commends. Remove dead code.
4817         Use ss->shape.
4818         (gfc_conv_array_initializer): Call specific initializer routines.
4819         * trans-expr.c (gfc_trans_structure_assign): New function.
4820         (gfc_trans_subarray_assign): New function.
4821         (gfc_trans_subcomponent_assign): New fucntion
4822         (gfc_conv_structure): Use them.
4823         * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
4824         (gfc_ss): Add shape.
4825
4826 2004-08-08  Victor Leikehman  <lei@il.ibm.com>
4827
4828         * simplify.c (gfc_simplify_shape): Bugfix.
4829         * expr.c (gfc_copy_shape_excluding): New function.
4830         * gfortran.h (gfc_get_shape): Bugfix.
4831         (gfc_copy_shape_excluding): Added declaration.
4832         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
4833         gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
4834         gfc_resolve_ubound, gfc_resolve_transpose): Added compile
4835         time resolution of shape.
4836
4837 2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>
4838
4839         * intrinsic.c (add_subroutines): Add getenv and
4840         get_environment_variable. (add_sym_5s): New function.
4841         * intrinsic.h (gfc_resolve_get_environment_variable): Add
4842         prototype.
4843         * iresolve.c (gfc_resolve_get_environment_variable): New
4844         function.
4845
4846 2004-08-06  Feng Wang  <fengwang@nudt.edu.cn>
4847
4848         * f95-lang.c (gfc_init_builtin_functions): Fix the number of
4849         __builtin_pow[f] arguments.
4850
4851 2004-08-06  Steven G. Kargl  <kargls@comcast.net>
4852
4853         * arith.c: Add #define for model numbers.  Remove global GMP variables.
4854         (natural_logarithm,common_logarithm,exponential,sine,
4855         cosine,arctangent,hypercos,hypersine ): Remove.
4856         (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
4857         (arctangent2,gfc_arith_init_1,gfc_arith_done_1
4858         gfc_check_real_range, gfc_constant_result, gfc_range_check,
4859         gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
4860         gfc_arith_divide,complex_reciprocal,complex_pow_ui,
4861         gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
4862         gfc_convert_complex,gfc_int2real,gfc_int2complex,
4863         gfc_real2int,gfc_real2real,gfc_real2complex,
4864         gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
4865         to MPFR, use new functions.
4866         * arith.h: Remove extern global variables.
4867         (natural_logarithm,common_logarithm,exponential, sine, cosine,
4868         arctangent,hypercos,hypersine): Remove prototypes.
4869         (arctangent2): Update prototype from GMP to MPFR.
4870         (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
4871         * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
4872         * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
4873         * gfortran.h (GFC_REAL_BITS): Remove.
4874         (arith): Add ARITH_NAN.
4875         Include mpfr.h.  Define GFC_RND_MODE.
4876         Rename GCC_GFORTRAN_H GFC_GFC_H.
4877         (gfc_expr): Convert GMP to MPFR.
4878         * module.c: Add arith.h, correct type in comment.
4879         (mio_gmp_real): Convert GMP to MPFR.
4880         (mio_expr):  Use gfc_set_model_kind().
4881         * primary.c:  Update copyright date with 2004.
4882         (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
4883         * simplify.c: Remove global GMP variables
4884         (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
4885         gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
4886         gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
4887         gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
4888         gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
4889         gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
4890         gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
4891         gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
4892         gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
4893         gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
4894         gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
4895         gfc_simplify_rrspacing,gfc_simplify_scale,
4896         gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
4897         gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
4898         gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
4899         gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
4900         Use new functions.
4901         * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
4902         gfc_conv_mpf_to_tree.  Convert it to use MPFR
4903         (gfc_conv_constant_to_tree): Use it.
4904         * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
4905         * trans-intrinsic.c: Add arith.h, remove gmp.h
4906         (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
4907
4908 2004-08-06  Victor Leikehman  <lei@il.ibm.com>
4909         Paul Brook  <paul@codesourcery.com>
4910
4911         * trans-array.c (gfc_trans_allocate_array_storage,
4912         gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
4913         gfc_conv_loop_setup): For functions, if the shape of the result
4914         is not known in compile-time, generate an empty array descriptor for
4915         the result and let the callee to allocate the memory.
4916         (gfc_trans_dummy_array_bias): Do nothing for pointers.
4917         (gfc_conv_expr_descriptor): Use function return values directly.
4918         * trans-expr.c (gfc_conv_function_call): Always add byref call
4919         insn to pre chain.
4920         (gfc_trans_pointer_assignment): Add comments.
4921         (gfc_trans_arrayfunc_assign): Don't chain on expression.
4922
4923 2004-08-01  Roger Sayle  <roger@eyesopen.com>
4924
4925         * options.c (gfc_init_options): Don't warn about the use GNU
4926         extensions by default.
4927         (gfc_post_options): Warn about GNU extensions with -pedantic.
4928         (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
4929
4930 2004-07-30  Richard Henderson  <rth@redhat.com>
4931
4932         * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
4933         for TREE_CONSTANTs.
4934
4935 2004-07-25  Richard Henderson  <rth@redhat.com>
4936
4937         * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
4938         and DECL_IGNORED_P on RESULT_DECL.
4939         (gfc_generate_constructors): Likewise.
4940
4941 2004-07-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4942
4943         PR fortran/16465
4944         * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
4945         options.
4946         (ffixed-line-length-80, ffixed-line-length-132): Remove.
4947         * options.c (gfc_handle_options): Deal with changed options.
4948         * scanner.c (load_line): Change second arg to 'char **',
4949         allocate if pointing to NULL. Keep track of buffer's length.
4950         Adapt buffer size to overlong lines. Pad lines to full length
4951         in fixed form.
4952         (load_file): Adapt to new interface of load_line.
4953
4954 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
4955
4956         * trans.h (builtin_function): Declare.
4957
4958 2004-07-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4959
4960         PR fortran/16404
4961         (parts ported from g95)
4962         * parse.h (gfc_state_data): New field do_variable.
4963         (gfc_check_do_variable): Add prototype.
4964         * parse.c (push_state): Initialize field 'do_variable'.
4965         (gfc_check_do_variable): New function.
4966         (parse_do_block): Remember do iterator variable.
4967         (parse_file): Initialize field 'do_variable'.
4968         * match.c (gfc_match_assignment, gfc_match_do,
4969         gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
4970         Add previously missing checks.
4971         (gfc_match_return): Reformat error message.
4972         * io.c (match_out_tag): New function.
4973         (match_open_element, match_close_element,
4974         match_file_element, match_dt_element): Call match_out_tag
4975         instead of match_vtag where appropriate.
4976         (match_io_iterator, match_io_element): Add missing check.
4977         (match_io): Reformat error message.
4978         (match_inquire_element): Call match_out_tag where appropriate.
4979
4980         * parse.c (gfc_check_do_variable): Fix error locus.
4981
4982 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4983
4984         PR fortran/15129
4985         * trans-decl.c (gfc_build_function_decl): Create a new chardecl
4986         for every assumed length character dummy argument.
4987
4988         PR fortran/15140
4989         * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
4990
4991         PR fortran/13792
4992         * simplify.c (gfc_simplify_bound): Copy the bound expression.
4993
4994 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4995
4996         PR fortran/15324
4997         * trans-array.c gfc_trans_g77_array,
4998         gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
4999         for assumed length characters.
5000         (gfc_conv_expr_descriptor): Set se->string_length if dealing
5001         with a character expression.
5002         (gfc_cvonv_array_parameter): Pass string length when passing
5003         character array according to g77 conventions.
5004
5005 2004-07-12  Paul Brook  <paul@codesourcery.com>
5006
5007         * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
5008         * trans-array.c (gfc_trans_auto_array_allocation): Remove
5009         initialization code.
5010         * trans-common.c (create_common): Use gfc_conv_initializer.
5011         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
5012         * trans-expr.c (gfc_conv_initializer): New function.
5013         (gfc_conv_structure): Use it.
5014         * trans.h (gfc_conv_initializer): Add prototype.
5015
5016 2004-07-11  Paul Brook  <paul@codesourcery.com>
5017
5018         PR fortran/15986
5019         * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
5020         variables.
5021         (parse_contained): Mark contained symbols as referenced.
5022
5023 2004-07-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5024
5025         PR fortran/16455
5026         * module.c (gfc_dump_module, gfc_use_module): Print locus
5027         when opening of module file fails.
5028
5029         PR fortran/16404
5030         * io.c (match_io): Flag 'WRITE(...), ...' as extension.
5031
5032         PR fortran/16404
5033         * match.c (gfc_match_program): A program name is obligatory.
5034         (gfc_match_return): RETURN in main program is an extension.
5035         (gfc_match_block_data): A space is required before a block data
5036         name.
5037
5038         PR fortran/16433
5039         * primary.c (match_boz_constant): Call gfc_notify_std only if
5040         we actually have a non-standard boz-literal-constant.
5041
5042         PR fortran/15754
5043         * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
5044         warning if assigning NULL().
5045
5046 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
5047
5048         * f95-lang.c (set_block): Remove.
5049         (gfc_clear_binding_stack): New.
5050         (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
5051         (struct binding_level): Remove block_created_by_back_end.
5052         (clear_binding_level): Likewise.
5053         (poplevel): Don't handle block_created_by_back_end.
5054
5055 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5056
5057         * trans-decl.c (gfc_create_module_variable): Nothing to do if
5058         symbol is in common, because we ...
5059         (gfc_generate_module_vars): Call gfc_trans_common.
5060
5061 2004-07-10  Paul Brook  <paul@codesourcery.com>
5062
5063         * trans-array.c (gfc_build_null_descriptor): New function.
5064         (gfc_trans_static_array_pointer): Use it.
5065         * trans-array.h (gfc_build_null_descriptor): Add prototype.
5066         * trans-expr.c (gfc_conv_structure): Handle array pointers.
5067
5068 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5069
5070         PR fortran/16336
5071         * decl.c (gfc_match_save): Use-associated common block
5072         doesn't collide.
5073         * gfortran.h (gfc_common_head): Add new field 'name'.
5074         Fix typo in comment after #endif.
5075         * match.c (gfc_get_common): Add new argument from_common,
5076         mangle name if flag is set, fill in new field in structure
5077         gfc_common_head.
5078         (match_common): Set new arg in call to gfc_get_common,
5079         use-associated common block doesn't collide.
5080         * match.h (gfc_get_common): Adapt prototype.
5081         * module.c (load_commons): Set new arg in call to
5082         gfc_get_common.
5083         * symbol.c (free_common_tree): New function.
5084         (gfc_free_namespace): Call new function.
5085         * trans-common.c (several functions): Remove argument
5086         'name', use name from gfc_common_head instead.
5087
5088 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5089
5090         * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
5091         and RHS match. Return early if the RHS is NULL().
5092
5093         PR fortran/16336
5094         * match.c (match_common): Fix error reporting for used common.
5095
5096         PR fortran/15969
5097         * trans-expr.c (gfc_conv_structure): Handle initialization
5098         of scalar pointer components.
5099
5100         * parse.c (decode_statement): Fix matching of BLOCK DATA.
5101
5102         * trans-decl.c (generate_local_decl): Remove workaround obsoleted
5103         by fix for PR 15481.
5104
5105 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5106
5107         * trans-common.c: Fix whitespace issues, make variable names
5108         more readable.
5109         (create_common): Additionally, make loop logic more obvious.
5110
5111 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5112         Paul Brook  <paul@codesourcery.com>
5113
5114         PR fortran/13415
5115         * trans-common.c (calculate_length): Remove ...
5116         (get_segment_info): Merge into here.  Save field type.
5117         (build_field): Use saved type.
5118         (create_common, new_condition, new_segment, finish_equivalences):
5119         Use new get_segment_info.
5120         * trans-types.c: Update comment.
5121
5122 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5123
5124         PR fortran/14077
5125         * moduele.c (mio_symbol): Don't I/O initial values unless
5126         symbol is a parameter.
5127
5128 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5129
5130         PR fortran/13201
5131         * resolve.c (resolve_symbol): Verify that the shape of a
5132         parameter array is not only explicit, but also constant.
5133         * array.c (gfc_is_compile_time_shape): New function.
5134         * gfortran.h (gfc_is_compile_time_shape): Add prototype.
5135
5136 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5137
5138         PR fortran/15481
5139         PR fortran/13372
5140         PR fortran/13575
5141         PR fortran/15978
5142         * module.c (write_symbol, write_symtree): Remove workaround.
5143         * primary.c (match_actual_arglist): Enhance comment.
5144         (gfc_match_rvalue): Handle function call with first argument
5145         a keyword argument correctly.
5146         * resolve.c (resolve_symbol): Change call to
5147         gfc_set_default_type to issue error if no implicit type
5148         can be found.
5149         * trans-decl.c (gfc_create_module_variable): Remove workaround.
5150
5151 2004-07-08  Paul Brook  <paul@codesourcery.com>
5152
5153         * intrinsic.c (add_sym_4s): New function.
5154         (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
5155
5156 2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
5157         Paul Brook  <paul@codesourcery.com>
5158
5159         PR fortran/15280
5160         PR fortran/15665
5161         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
5162         GFC_ISYM_COMMAND_ARGUMENT_COUNT.
5163         * intrinsic.c (add_functions):  Identify iargc.  Add
5164         command_argument_count.
5165         (add_subroutines): Resolve getarg.  Add get_command and
5166         get_command_argument.
5167         * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
5168         gfc_resolve_get_command_argument): Add prototypes.
5169         * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
5170         gfc_resolve_get_command_argument): New functions.
5171         * trans-decl.c (gfor_fndecl_iargc): New variable.
5172         (gfc_build_intrinsic_function_decls): Set it.
5173         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
5174         (gfc_conv_intrinsic_function): Use it.
5175         * trans.h (gfor_fndecl_iargc): Declare.
5176
5177 2004-07-04  Matthias Klose  <doko@debian.org>
5178
5179         * Make-lang.in: Generate and install gfortran man page.
5180         * invoke.texi: Remove extra '@c man end'.
5181
5182 2004-07-04  Richard Henderson  <rth@redhat.com>
5183
5184         * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
5185
5186 2004-07-04  Paul Brook  <paul@codesourcery.com>
5187
5188         * decl.c (gfc_match_implicit_range): Don't use typespec.
5189         (gfc_match_implicit): Handle character selectors.
5190         * gfortran.h (gfc_set_implicit): Remove prototype.
5191         (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
5192         * parse.c (accept_statement): Don't call gfc_set_implicit.
5193         * symbol.c (new_ts): Remove.
5194         (gfc_set_implicit_none): Use same loop bounds as other functions.
5195         (gfc_set_implicit): Remove.
5196         (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
5197         (gfc_merge_new_implicit): Combine with gfc_set_implicit.
5198
5199 2004-06-30  Richard Henderson  <rth@redhat.com>
5200
5201         * match.c (var_element): Remove unused variable.
5202
5203         * trans-decl.c (gfc_generate_function_code): Don't set
5204         x_whole_function_mode_p.
5205         (gfc_generate_constructors): Likewise.
5206
5207 2004-06-30  Richard Henderson  <rth@redhat.com>
5208
5209         * trans-decl.c (gfc_generate_function_code): Don't set
5210         immediate_size_expand.
5211         (gfc_generate_constructors): Likewise.
5212
5213 2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5214
5215         PR fortran/16161
5216         * decl.c (gfc_match_type_spec): Rename second argument to
5217         'implicit_flag', reverse meaning. Don't match_char_spec if
5218         'implicit_flag' is set. Rename to ...
5219         (match_type_spec): ... this.
5220         (gfc_match_implicit_none, match_implicit_range): Move here
5221         from match.c.
5222         (gfc_match_implicit): Move here from match.c, try to
5223         match_char_len if match_implicit_range doesn't succeed for
5224         CHARACTER implicits. Call renamed fucntion match_type_spec.
5225         (gfc_match_data_decl, match_prefix): Call renamed function
5226         match_type_spec.
5227         * match.c (gfc_match_implicit_none, match_implicit_range,
5228         gfc_match_implicit): Move to decl.c.
5229         * match.h (gfc_match_implicit_none, gfc_match_implicit):
5230         Move protoypes to section 'decl.c'.
5231         (gfc_match_type_spec): Remove prototype.
5232
5233 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5234
5235         * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
5236         copyright years.
5237
5238 2004-06-29  Steven Bosscher  <stevenb@suse.de>
5239
5240         Make sure types in assignments are compatible.  Mostly mechanical.
5241         * trans-const.h (gfc_index_one_node): New define.
5242         * trans-array.c (gfc_trans_allocate_array_storage,
5243         gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
5244         gfc_trans_array_constructor_value, gfc_trans_array_constructor,
5245         gfc_conv_array_ubound, gfc_conv_array_ref,
5246         gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
5247         gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
5248         gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
5249         gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
5250         types in assignments, conversions and conditionals for expressions.
5251         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
5252         gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
5253         gfc_conv_function_call, gfc_trans_pointer_assignment,
5254         gfc_trans_scalar_assign): Likewise.
5255         * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
5256         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
5257         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
5258         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
5259         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
5260         gfc_conv_allocated, gfc_conv_associated,
5261         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
5262         * trans-io.c (set_string): Likewise.
5263         * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
5264         gfc_do_allocate, generate_loop_for_temp_to_lhs,
5265         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
5266         compute_overall_iter_number, gfc_trans_assign_need_temp,
5267         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
5268         gfc_evaluate_where_mask, gfc_trans_where_assign,
5269         gfc_trans_where_2): Likewise.
5270         * trans-types.c (gfc_get_character_type, gfc_build_array_type,
5271         gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
5272
5273         * trans.c (gfc_add_modify_expr): Add sanity check that types
5274         for the lhs and rhs are the same for scalar assignments.
5275
5276 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5277
5278         * dump-parse-tree.c (show_common): New function.
5279         (gfc_show_namespace): Show commons.
5280
5281 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5282         Andrew Vaught  <andyv@firstinter.net>
5283
5284         PR fortran/13249
5285         PR fortran/15481
5286         * decl.c (gfc_match_save): Adapt to new common structures,
5287         don't allow saving USE-associated common.
5288         * dump-parse-tree (gfc_show_attr): (saved_)common are not
5289         symbol attributes any longer.
5290         (gfc_show_symbol): Don't show old-style commons any longer.
5291         (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
5292         interface.
5293         * gfortran.h (symbol_attribute): Remove common and saved_common
5294         attributes.
5295         (gfc_symbol): Remove common_head element.
5296         (gfc_common_head): New struct.
5297         (gfc_get_common_head): New macro.
5298         (gfc_symtree): Add field 'common' to union.
5299         (gfc_namespace): Add field 'common_root'; change type of field
5300         'blank_common' to blank_common.
5301         (gfc_add_data): New prototype.
5302         (gfc_traverse_symtree): Expect a symtree as first argument
5303         instead of namespace.
5304         * match.c (gfc_get_common): New function.
5305         (match_common_name): Change to take char * as argument, adapt,
5306         fix bug with empty name.
5307         (gfc_match_common): Adapt to new data structures. Disallow
5308         redeclaration of USE-associated COMMON-block. Fix bug with
5309         empty common.
5310         (var_element): Adapt to new common structures.
5311         * match.h (gfc_get_common): Declare.
5312         * module.c: Add 2004 to copyright years, add commons to module
5313         file layout description.
5314         (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
5315         for removed attributes.
5316         (mio_symbol): Adapt to new way of storing common relations.
5317         (load_commons): New function.
5318         (read_module): Skip common list on first pass, load_commons at
5319         second.
5320         (write_commons): New function.
5321         (write_module): Call write_commons().
5322         * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
5323         functions related to removed attributes.
5324         (gfc_add_data): New function.
5325         (gfc_clear_attr): Don't set removed attributes.
5326         (gfc_copy_attr): Don't copy removed attributes.
5327         (traverse_symtree): Remove.
5328         (gfc_traverse_symtree): Don't traverse symbol
5329         tree of the passed namespace, but require a symtree to be passed
5330         instead. Unify with traverse_symtree.
5331         (gfc_traverse_ns): Call gfc_traverse_symtree according to new
5332         interface.
5333         (save_symbol): Remove setting of removed attribute.
5334         * trans-common.c (gfc_sym_mangled_common_id): Change to
5335         take 'char *' argument instead of 'gfc_symbol'.
5336         (build_common_decl, new_segment, translate_common): Adapt to new
5337         data structures, add new
5338         argument name.
5339         (create_common): Adapt to new data structures, add new
5340         argument name. Fix typo in intialization of derived types.
5341         (finish_equivalences): Add second argument in call to
5342         create_common.
5343         (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
5344         (gfc_trans_common): Adapt to new data structures.
5345         * trans-decl.c (gfc_create_module_variables): Remove test for
5346         removed attribute.
5347
5348 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5349
5350         * io.c: Add 2004 to copyright years.
5351
5352 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5353         Andrew Vaught  <andyv@firstinter.net>
5354
5355         * gfortran.h (gfc_gsymbol): New typedef.
5356         (gfc_gsym_root): New variable.
5357         (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
5358         * parse.c (global_used): New function.
5359         (parse_block_data): Check for double empty BLOCK DATA,
5360         use global symbol table.
5361         (parse_module): Use global symbol table.
5362         (add_global_procedure, add_global_program): New functions.
5363         (gfc_parse_file): Use global symbol table.
5364         * symbol.c (gfc_gsym_root): New variable.
5365         (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
5366         functions.
5367
5368 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5369
5370         * module.c (mio_gmp_real): Correct writing of negative numbers.
5371
5372 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5373
5374         PR fortran/15963
5375         * expr.c (check_intrinsic_op): Allow comparison of characters.
5376         Make logic easier.
5377
5378 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5379         Andrew Vaught  <andyv@firstinter.net>
5380
5381         * decl.c (contained_procedure): New function.
5382         (match_end): Verify correctness of END STATEMENT in
5383         all cases.
5384
5385 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5386         Andrew Vaught  <andyv@firstinter.net>
5387
5388         PR fortran/15190
5389         * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
5390         (decode_statement): Enforce required space in free-form.
5391
5392 2004-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5393
5394         * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
5395         * trans-array.c (gfc_conv_descriptor_data): Add operand
5396         for COMPONENT_REF.
5397         (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
5398         (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
5399         (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
5400         * trans-common.c (create_common): Likewise.
5401         * trans-expr.c (gfc_conv_component_ref): Likewise.
5402         * trans-io.c (set_parameter_value): Likewise.
5403         (set_parameter_ref, set_string, set_flag, io_result): Likewise.
5404         (transfer_expr): Likewise.
5405         * trans-decl.c (gfc_trans_auto_character_variable):
5406         Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
5407         (gfc_gimplify_function): New function.
5408         (gfc_generate_function-code): Properly handle nested functions.
5409         * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
5410
5411 2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>
5412
5413         PR fortran/15750
5414         * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
5415         (gfc_resolve_inquire): Resolve the iolength tag.  Return
5416         SUCCESS at end of function if no failure has occured.
5417         * resolve.c (resolve_code): Resolve if iolength is encountered.
5418         * trans-io.c: (ioparm_iolength, iocall_iolength,
5419         iocall_iolength_done): New variables.
5420         (last_dt): Add IOLENGTH.
5421         (gfc_build_io_library_fndecls ): Set iolength related variables.
5422         (gfc_trans_iolength): Implement.
5423         (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
5424
5425 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de
5426
5427         PR fortran/15511
5428         * scanner.c (load_line): Don't truncate preprocessor lines.
5429         Reformat error message.
5430         (preprocessor_line): Issue warning in case of malformed
5431         preprocessor line.
5432
5433 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5434
5435         * resolve.c (resolve_symbol): Add comment in function body.
5436         (check_data_variable): Change type of mark to ar_type, adapt code
5437         accordingly.
5438
5439 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5440
5441         * array.c (gfc_insert_constructor): Avoid redundant call to
5442         mpz_comp. Add 2004 to copyright years.
5443
5444 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
5445
5446         * trans.h (stmtblock_t): Change has_scope to unsigned int.
5447
5448 2004-06-20  Steven G. Kargl  <kargls@comcast.net>
5449
5450         * arith.c (gfc_range_check): correct complex underflow.
5451
5452 2004-06-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5453
5454         PR fortran/15962
5455         * match.c (match_case_selector): Call gfc_match_init_expr
5456         instead of gfc_match_expr.
5457         * resolve.c (validate_case_label_expr): No need to check for
5458         constant, since it wouldn't have been matched with the fix to
5459         match.c.
5460
5461 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5462
5463         PR fortran/15211
5464         * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
5465         of strings.
5466
5467 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5468
5469         PR fortran/15510
5470         * trans-deecl.c (generate_local_decl): Do not issue warning for
5471         unused variables if they're use associated.
5472
5473 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5474         Andrew Vaught  <andyv@firstinter.net>
5475
5476         PR fortran/14928
5477         * gfortran.h (gfc_check_f): Add new field f3ml.
5478         * check.c (gfc_check_minloc_maxloc): Take argument list instead
5479         of individual arguments, reorder if necessary.
5480         * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
5481         * intrinsic.c (add_sym_3ml): New function.
5482         (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
5483         (check_specific): Catch special case MINLOC, MAXLOC.
5484
5485 2004-06-14  Paul Brook  <paul@codesourcery.com>
5486
5487         * intrinsic.c (add_sym_2s): Use correct function types.
5488
5489 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5490
5491         * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
5492         * data.c (gfc_get_section_index):  Remove dependency on trans.h.
5493
5494 2004-06-12  Steven G. Kargl  <kargls@comcast.net>
5495
5496         * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
5497         gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
5498         * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
5499         GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
5500         * trans-intrinsic.c:  Use symbols.
5501         * intrinsic.c (add_sym_2s): New function.
5502         * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
5503         * intrinsic.h: Function prototypes.
5504         * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
5505         gfc_resolve_srand):  New functions.
5506
5507 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5508
5509         PR fortran/14957
5510         * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
5511         contained procedure.
5512
5513 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5514
5515         PR fortran/12841
5516         * interface.c (compare_parameter, compare_actual_formal): Don't
5517         check types and array shapes for NULL()
5518         * trans-expr.c (conv_function_call): No double indirection for
5519         NULL()
5520
5521 2004-06-09  Toon Moene  <toon@moene.indiv.nluug.nl>
5522
5523         * trans-expr.c (gfc_conv_cst_int_power): Compute
5524         x**(-n) by converting it to (1/x)**n instead of
5525         1/x**n.
5526
5527 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5528
5529         PR fortran/13372
5530         * module.c (write_symbol, write_symtree): Don't write symbols
5531         wrongly added to namespace.
5532         * trans-decl.c (gfc_create_module_variable): Don't create a
5533         backend decl for a symbol incorrectly added to namespace.
5534
5535 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5536
5537         PR fortran/13201
5538         * resolve.c (resolve_symbol): Verify that parameter array has an
5539         explicit shape. Fix typos and coding style issues in surrounding
5540         lines.
5541
5542 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5543
5544         PR fortran/15478
5545         * gfortran.texi: The documentation doesn't contain infomration on
5546         how to report bugs, and shouldn't, so remove the line which
5547         says it does.
5548
5549 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5550
5551         * intrinsic.c (sort_actual): Keep track of type of missing
5552         arguments. (Missing from previous commit.)
5553
5554 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5555
5556         * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
5557         * interface.c (compare_actual_formal): Keep type of omitted
5558         optional arguments.
5559         * trans-expr.c (gfc_conv_function_call): Add string length
5560         argument for omitted string argument.
5561
5562 2004-06-03  Paul Brook  <paul@codesourcery.com>
5563
5564         * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
5565         lists instead of compound expr chains.
5566         (gfc_trans_code): Annotate statement lists.
5567
5568 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5569
5570         * trans-array.c: Fix spelling in comments.
5571
5572 2004-06-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5573
5574         PR fortran/15557
5575         * data.c (assign_substring_data_value): New function.
5576         (gfc_assign_data_value): Call the new function if we're dealing
5577         with a substring LHS.
5578
5579 2004-06-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5580
5581         PR fortran/15477
5582         * gfortran.h (GFC_VERSION): Remove.
5583         * gfortran.texi (version-gfortran): Remove, replace by version-GCC
5584         where used.
5585
5586 2004-05-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5587
5588         * trans-types.c: Fix spelling & layout in comments.
5589
5590 2004-05-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5591
5592         PR fortran/14067
5593         * trans-const.c (gfc_conv_string_init): Allow variable string
5594         length lower than initialization string length.
5595
5596 2004-05-30  Paul Brook  <paul@codesourcery.com>
5597
5598         PR fortran/15620
5599         * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
5600         * trans-expr.c (gfc_trans_string_copy): New function.
5601         (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
5602         character lengths.
5603         (gfc_conv_string_parameter): Use gfc_trans_string_copy.
5604         * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
5605         * trans.h (struct gfc_saved_var): Define.
5606         (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
5607
5608 2004-05-30  Steven G. Kargl  <kargls@comcast.net>
5609
5610         * iresolve.c (gfc_resolve_random_number): Clean up conditional.
5611
5612 2004-05-29  Steven G. Kargl  <kargls@comcast.net>
5613
5614         * simplify.c (gfc_simplify_log): Remove useless line of code.
5615
5616 2004-05-29  Paul Brook  <paul@codesourcery.com>
5617
5618         * trans-common.c (find_equivalence): Find multiple rules.
5619
5620 2004-05-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5621
5622         * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
5623         (gfc_current_locus): Declare new global variable.
5624         * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
5625         (gfc_current_locus1): Rename ...
5626         (gfc_current_locus): ... to this.
5627         (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
5628         skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
5629         gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
5630         gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
5631         and gfc_current_locus(), respectively.
5632         * array.c (match_subscript, gfc_match_array_ref, match_array_list,
5633         match_array_cons_element, gfc_match_array_constructor):
5634         Read/modify gfc_current_locus instead of calling gfc_set_locus()
5635         and gfc_current_locus().
5636         * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
5637         match_attr_spec, gfc_match_function_decl, gfc_match_end,
5638         attr_decl1, gfc_match_save): Likewise.
5639         * error.c (error_print, gfc_internal_error): Likewise.
5640         * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
5641         * interface.c (gfc_add_interface): Likewise.
5642         * io.c (gfc_match_format, match_dt_format, match_dt_element,
5643         match_io_iterator, match_io): Likewise.
5644         * match.c (gfc_match_space, gfc_match_eos,
5645         gfc_match_small_literal_int, gfc_match_st_label,
5646         gfc_match_strings, gfc_match_name, gfc_match_iterator,
5647         gfc_match_char, gfc_match, gfc_match_assignment,
5648         gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
5649         gfc_match_nullify, gfc_match_call, match_implicit_range,
5650         gfc_match_implicit, gfc_match_data, match_case_selector,
5651         gfc_match_case, match_forall_iterator): Likewise.
5652         * matchexp.c (gfc_match_defined_op_name, next_operator,
5653         match_level_1, match_mult_operand, match_ext_mult_operand,
5654         match_add_operand, match_ext_add_operand, match_level_2,
5655         match_level_3, match_level_4, match_and_operand, match_or_operand,
5656         match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
5657         * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
5658         * parse.c (match_word, decode_statement, next_free, next_fixed,
5659         add_statement, verify_st_order, parse_if_block, gfc_parse_file):
5660         Likewise.
5661         * primary.c (match_digits, match_integer_constant,
5662         match_boz_constant, match_real_constant, match_substring,
5663         next_string_char, match_charkind_name, match_string_constant,
5664         match_logical_constant, match_const_complex_part,
5665         match_complex_constant, match_actual_arg, match_keyword_arg,
5666         gfc_match_actual_arglist, gfc_match_structure_constructor,
5667         gfc_match_rvalue, gfc_match_variable): Likewise.
5668         * st.c (gfc_get_code): Likewise.
5669         * symbol.c (check_conflict, check_used, check_done,
5670         duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
5671         gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
5672         gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
5673
5674 2004-05-26  Roger Sayle  <roger@eyesopen.com>
5675
5676         * io.c (format_asterisk): Silence compiler warnings by correcting
5677         the number of elements of a "locus" initializer.
5678
5679 2004-05-25  Roger Sayle  <roger@eyesopen.com>
5680
5681         PR fortran/13912
5682         * matchexp.c: Allow unary operators after arithmetic operators
5683         as a GNU extension.
5684         (match_ext_mult_operand, match_ext_add_operand): New functions.
5685         (match_mult_operand): Tweak to call match_ext_mult_operand.
5686         (match_add_operand): Tweak to call match_ext_mult_operand.
5687         (match_level_2): Rearrange to call match_ext_add_operand.
5688
5689 2004-05-25  Paul Brook  <paul@codesourcery.com>
5690
5691         * expr.c (check_inquiry): Remove bogus tests.
5692
5693 2004-05-23  Paul Brook  <paul@codesourcery.com>
5694
5695         PR fortran/13773
5696         * expr.c (restricted_args): Remove redundant checks/argument.
5697         (external_spec_function): Update to match.
5698         (restricted_intrinsic): Rewrite.
5699
5700 2004-05-23  Paul Brook  <paul@codesourcery.com>
5701         Victor Leikehman  <lei@haifasphere.co.il>
5702
5703         * gfortran.h (struct gfc_symbol): Add equiv_built.
5704         * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
5705         messages.
5706         (current_length): Remove.
5707         (add_segments): New function.
5708         (build_equiv_decl): Create initialized common blocks.
5709         (build_common_decl): Always add decl to bindings.
5710         (create_common): Create initializers.
5711         (find_segment_info): Reformat to match coding conventions.
5712         (new_condition): Use add_segments.
5713         (add_condition, find_equivalence, add_equivalences): Move iteration
5714         inside functions.  Only process each segment once.
5715         (new_segment, finish_equivalences, translate_common): Simplify.
5716
5717 2004-05-23  Steven G. Kargl  <kargls@comcast.net>
5718
5719         * check.c (gfc_check_random_seed): Issue for too many arguments.
5720
5721 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
5722
5723         * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
5724
5725 2004-05-22  Paul Brook  <paul@codesourcery.com>
5726
5727         * dump-parse-tree.c (gfc_show_equiv): New function.
5728         (gfc_show_namespace): Use it.
5729
5730 2004-05-22  Victor Leikehman  <lei@haifasphere.co.il>
5731
5732         PR fortran/13249
5733         * symbol.c (gfc_add_common): Disable checks to work around other more
5734         fundamental inadequacies.
5735
5736 2004-05-22  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
5737
5738         * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
5739         only for functions.
5740         (gfc_build_function_decl): Likewise.
5741
5742 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
5743
5744         * check.c (gfc_check_system_clock): New function.
5745         * intrinsic.c (add_sym_3s): New function.
5746         (add_subroutines): Use it.
5747         * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
5748         Add prototypes.
5749         * iresolve.c (gfc_resolve_system_clock): New function.
5750
5751 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
5752
5753         * invoke.texi: Document -Wunderflow and spell check.
5754         * lang.opt: Add Wunderflow.
5755         * gfortran.h (gfc_option_t): Add warn_underflow option.
5756         * options.c (gfc_init_options, set_Wall): Use it.
5757         * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
5758         * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
5759         gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
5760         gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
5761         * arith.c (common_logarithm): Fix typo in comment.
5762
5763 2004-05-21  Roger Sayle  <roger@eyesopen.com>
5764
5765         * io.c (check_format): As a GNU extension, allow the comma after a
5766         string literal to be optional in a format.  Use gfc_notify_std to
5767         issue an error/warning as appropriate.
5768
5769 2004-05-21  Roger Sayle  <roger@eyesopen.com>
5770
5771         * io.c (check_format): Use gfc_notify_std to determine whether to
5772         issue an error/warning for omitting the digits from the X format.
5773
5774 2004-05-20  Roger Sayle  <roger@eyesopen.com>
5775
5776         * io.c (check_format): Allow the number before the X format to
5777         be optional when not -pedantic.
5778
5779 2004-05-18  Feng Wang  <fengwang@nudt.edu.cn>
5780         Paul Brook  <paul@codesourcery.com>
5781
5782         * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
5783         Create decls for __builtin_pow{,f}.
5784         * gfortran.h (PREFIX_LEN): Define.
5785         * trans-decl.c (gfor_fndecl_math_powi): Add.
5786         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
5787         (gfc_build_intrinsic_function_decls): Create decls for powi.
5788         * trans-expr.c (powi_table): Add.
5789         (gfc_conv_integer_power): Remove.
5790         (gfc_conv_powi): New function.
5791         (gfc_conv_cst_int_power): New function.
5792         (gfc_conv_power_op): Use new powi routines.
5793         * trans.h (struct gfc_powdecl_list): Add.
5794         (gfor_fndecl_math_powi): Add.
5795         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
5796
5797 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5798
5799         * trans.c, trans-decl.c: Fix comment typos.
5800
5801 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5802
5803         * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
5804
5805 2004-05-18  Steve Kargl  <kargls@comcast.net>
5806
5807         * arith.c (gfc_int2complex): Fix incorrect range checking.
5808
5809 2004-05-18  Paul Brook  <paul@codesourcery.com>
5810
5811         PR fortran/13930
5812         * decl.c (add_init_expr_to_sym): Remove incorrect check.
5813         (default_initializer): Move to expr.c.
5814         (variable_decl): Don't assign default initializer to variables.
5815         * expr.c (gfc_default_initializer): Move to here.
5816         * gfortran.h (gfc_default_initializer): Add prototype.
5817         * resolve.c (resolve_symbol): Check for illegal initializers.
5818         Assign default initializer.
5819
5820 2004-05-17  Steve Kargl  <kargls@comcast.net>
5821
5822         * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
5823
5824 2004-05-17  Steve Kargl  <kargls@comcast.net>
5825
5826         * arith.c (gfc_real2complex): Range checking wrong part of complex
5827         number.
5828
5829 2004-05-16  Paul Brook  <paul@codesourcery.com>
5830
5831         * options.c (gfc_handle_module_path_options): Fix buffer overrun.
5832
5833 2004-05-16  Paul Brook  <paul@codesourcery.com>
5834
5835         * arith.c (gfc_range_check): Fix logic error.
5836
5837 2004-05-16  Steve Kargl  <sgk@troutmask.apl.washington.edu>
5838
5839         * arith.c: Fix comment typos.
5840
5841 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5842
5843         PR fortran/13742
5844         * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
5845         not initialized in a disallowed fashion.
5846         * match.c (gfc_match_common): Likewise.
5847         (var_element): Verify that variable is not in the blank COMMON,
5848         if it is in a common.
5849
5850 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5851
5852         * Make-lang.in (f95.generated-manpages): Remove.
5853         (f95.srcextra): New.
5854         (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
5855         f95.maintainer-clean): Generate info and dvi files in objdir/doc.
5856         (f95.dvi): Remove.
5857         (dvi): New.
5858         (f95.install-info): Remove.
5859         (install-info): New.
5860
5861 2004-05-15  Victor Leikehman  <lei@haifasphere.co.il>
5862
5863         * decl.c (add_init_expr_to_sym): Check for variable size arrays.
5864
5865 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5866
5867         * primary.c (match_boz_constant): Use gfc_notify_std() for
5868         issuing a warning or an error.
5869
5870 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5871
5872         PR fortran/13826
5873         * primary.c (match_structure_constructor): Rename ...
5874         (gfc_match_structure_constructor): ... to this. Make non-static.
5875         (gfc_match_rvalue): Call renamed function.
5876         * match.h (gfc_match_structure_constructor): Declare.
5877         * match.c (gfc_match_data_constant): Handle structure
5878         constructor.
5879
5880 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5881
5882         PR fortran/13702
5883         (Port from g95)
5884         * gfortran.h (gfc_linebuf): New typedef.
5885         (linebuf): Remove.
5886         (gfc_file): Revamped, use new gfc_linebuf.
5887         (locus): Revamped, use new types.
5888         (gfc_current_file): Remove.
5889         (gfc_current_form, gfc_source_file): New global variables.
5890         * match.c (gfc_match_space, gfc_match_strings): Use
5891         gfc_current_form to find source form.
5892         * module.c (gfc_dump_module): Use gfc_source_file when printing
5893         module header.
5894         * error.c (show_locus, show_loci) Use new data structures to print
5895         locus.
5896         * scanner.c (first_file, first_duplicated_file, gfc_current_file):
5897         Remove.
5898         (file_head, current_file, gfc_current_form, line_head, line_tail,
5899         gfc_current_locus1, gfc_source_file): New global variables.
5900         (gfc_scanner_init1): Set new global variables.
5901         (gfc_scanner_done1): Free new data structures.
5902         (gfc_current_locus): Return pointer to gfc_current_locus1.
5903         (gfc_set_locus): Set gfc_current_locus1.
5904         (gfc_at_eof): Set new variables.
5905         (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
5906         to new locus structure.
5907         (gfc_check_include): Remove.
5908         (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
5909         (gfc_skip_comments): Use gfc_current_form, find locus with
5910         gfc_current_locus1.
5911         (gfc_next_char): Use gfc_current_form.
5912         (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
5913         (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
5914         comment formatting.
5915         (get_file): New function.
5916         (preprocessor_line, include_line): New functions.
5917         (load_file): Move down, rewrite to match new data structures.
5918         (gfc_new_file): Rewrite to match new data structures.
5919         * parse.c (next_statement): Remove code which is now useless. Use
5920         gfc_source_form and gfc_source_file where appropriate.
5921         * trans-decl.c (gfc_get_label_decl): adapt to new data structures
5922         when determining locus of frontend code.
5923         * trans-io.c (set_error_locus): Same.
5924         * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
5925         * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
5926         preprocessor flags.
5927         (all): Add missing initializers.
5928
5929 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5930
5931         * Make-lang.in (trans-common.o): Remove redundant dependency.
5932         (data.c): Replace object file name ...
5933         (data.o): ... by the correct one.
5934
5935 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5936
5937         * dump-parse-tree.c (gfc_show_array_ref): Print colon only
5938         for ranges when dumping array references.
5939
5940 2004-05-14  Victor Leikehman  <lei@haifasphere.co.il>
5941
5942         * decl.c (variable_decl): Always apply default initializer.
5943
5944 2004-05-08  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
5945
5946         PR fortran/15206
5947         * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
5948         handle zero correctly.
5949
5950 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5951
5952         * match.c (gfc_match): Eliminate dead code.
5953
5954 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5955
5956         * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
5957         Detect bad continuation line in fixed form sources.
5958
5959 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5960
5961         PR fortran/15205
5962         * iresolve.c (gfc_resolve_nearest): Add new function.
5963         * intrinsic.h: ... declare it here.
5964         * intrinsic.c (add_functions): ... add it as resolving function
5965         for NEAREST.
5966
5967 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5968
5969         PR fortran/14066
5970         * match.c (gfc_match_do): Allow infinite loops with
5971         label-do-stmt. Do not enforce space after comma.
5972
5973 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5974
5975         PR fortran/15051
5976         * parse.c (parse_interface): Allow empty INTERFACE, remove
5977         seen_body.
5978
5979 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5980
5981         * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
5982         decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
5983         expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
5984         intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
5985         matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
5986         primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
5987         trans-array.c, trans-array.h, trans-common.c, trans-const.c,
5988         trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
5989         trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
5990         trans-types.h, trans.c, trans.h: Update copyright years and
5991         boilerplate.
5992         * data.c: Likewise, also removed two whitespace-only lines.
5993         * gfortranspec.c, lang.opt: Update copyright years.
5994
5995 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5996
5997         PR fortran/14568
5998         * trans-decl.c (generate_local_decl): Don't warn for unused
5999         variables which are in common blocks.
6000
6001 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
6002
6003         * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
6004         trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
6005         trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
6006
6007 2004-05-13  Victor Leikehman  <lei@haifasphere.co.il>
6008
6009         PR fortran/15314
6010         * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
6011
6012 2004-05-13  Joseph S. Myers  <jsm@polyomino.org.uk>
6013
6014         * gfortran.texi: Use @table @emph instead of @itemize @emph.
6015         Remove "set DEVELOPMENT".
6016         (Compiling GFORTRAN): Remove.
6017
6018 2004-05-09  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
6019
6020         * array.c (match_subscript, match_array_ref): Add comments
6021         explaining argument 'init'.
6022         * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
6023         trans-expr.c, trans.c: Fix some typos in comments.
6024         * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
6025         * primary.c (match_digits, match_integer_constant): Add comment
6026         explaining signflag.
6027
6028 2004-05-01  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
6029
6030         PR fortran/13940
6031         * primary.c: Include system.h and flags.h, needed for pedantic.
6032         (match_boz_constant): Allow "x" for hexadecimal constants, warn if
6033         pedantic is set.
6034
6035 2004-05-01  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
6036
6037         PR fortran/13940
6038         * match.c (match_data_constant): Handle case where
6039         gfc_find_symbol sets sym to NULL
6040
6041 2004-04-28  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
6042
6043         * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
6044         dependency on mathbuiltins.def
6045
6046 2004-04-24  Victor Leikehman  <lei@il.ibm.com>
6047
6048         * trans-io.c (transfer_expr): Implemented recursive printing
6049         of derived types.
6050
6051 2004-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
6052
6053         * gfortranspec.c: Do not include multilib.h.
6054
6055 2004-04-24  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
6056
6057         * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
6058         2004 to copyright years.
6059         * trans-expr.c, trans-decl.c: Comment update, we now generate
6060         GENERIC, not SIMPLE. Add 2004 to copyright years.
6061
6062 2004-04-24  Paul Brook  <paul@codesourcery.com>
6063
6064         * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
6065
6066 2004-04-24  Feng Wang  <fengwang@nudt.edu.cn>
6067
6068         PR 14817
6069         * arith.c (gfc_arith_divide): Fix complex divide.
6070
6071 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6072
6073         * gfortranspec.c: Include the target headers.
6074
6075 2004-04-18  Feng Wang  <fengwang@nudt.edu.cn>
6076
6077         PR fortran/14921
6078         PR fortran/14540
6079         * arith.c (arctangent2): New function.
6080         * arith.h (arctangent2): Add function prototype.
6081         * simplify.c (gfc_simplify_atan2): Use it.
6082         (gfc_simplify_log): Use it.
6083
6084 2004-04-12  Diego Novillo  <dnovillo@redhat.com>
6085
6086         * fortran/f95-lang.c (gfc_expand_stmt): Remove.
6087         (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
6088
6089 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
6090
6091         PR fortran/14872
6092         * trans-io.c (build_dt): Change REC to value.
6093
6094 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
6095
6096         PR 14394
6097         * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
6098         the real value when converting mpf to string.
6099
6100 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
6101
6102         PR 14395
6103         * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
6104         the result.
6105
6106 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
6107
6108         PR fortran/14377
6109         * simplify.c (simplify_min_max): Convert the type of the result.
6110
6111 2004-04-11  Paul Brook  <paul@codesourcery.com>
6112
6113         * gfortran.texi: Use full target triplet.
6114
6115 2004-04-11  Paul Brook  <paul@codesourcery.com>
6116
6117         * Make-lang.in (GFORTRAN_TEXI): Set it.
6118         (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
6119         (fortran/gfortran.info): Ditto.
6120         * gfortran.texi: Major update.
6121         * invoke.texi: New file.
6122
6123 2004-04-10  Paul Brook  <paul@codesourcery.com>
6124
6125         * trans-array.c (gfc_trans_allocate_temp_array,
6126         gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
6127         * trans-decl.c (gfc_build_dummy_array_decl,
6128         gfc_get_symbol_decl, gfc_build_function_decl,
6129         gfc_create_module_variable): Ditto.
6130         * trans-expr.c (gfc_conv_variable): Ditto.
6131         * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
6132         * trans.h (GFC_DECL_STRING): Remove.
6133         (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
6134         GFC_DECL_ASSIGN): Renumber flags.
6135
6136 2004-04-05  Paul Brook  <paul@codesourcery.com>
6137
6138         PR 13252
6139         PR 14081
6140         * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
6141         and stack_restore.
6142         * gfortran.h (struct gfc_charlen): Add backend_decl.
6143         * trans-array.c (gfc_trans_allocate_temp_array,
6144         gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
6145         (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
6146         Remove old, broken string handling.
6147         (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
6148         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
6149         gfc_trans_deferred_array): Handle character arrays.
6150         * trans-const.c (gfc_conv_const_charlen): New function.
6151         * trans-const.h (gfc_conv_const_charlen): Add prototype.
6152         * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
6153         as static.
6154         (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
6155         (gfc_create_string_length): New function.
6156         (gfc_get_symbol_decl): Create lengths for character variables.
6157         (gfc_get_fake_result_decl): Ditto.
6158         (gfc_build_function_decl): Only set length for assumed length
6159         character arguments.
6160         (gfc_trans_dummy_character): New function.
6161         (gfc_trans_auto_character_variable): Rewrite.
6162         (gfc_trans_deferred_vars): Handle more types of character variable.
6163         (gfc_create_module_variable): String lengths have moved.
6164         (gfc_generate_function_code): Initialize deferred var chain earlier.
6165         * trans-expr.c (gfc_conv_init_string_length): Rename ...
6166         (gfc_trans_init_string_length):  ... to this.
6167         (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
6168         gfc_conv_function_call): Update to new format for character variables.
6169         (gfc_conv_string_length): Remove.
6170         (gfc_conv_string_parameter): Update assertion.
6171         * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
6172         * trans-io.c (set_string): Use new macro names.
6173         * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
6174         * trans-types.c (gfc_get_character_type): Use existing length expr.
6175         (gfc_is_nodesc_array): Make public.
6176         (gfc_get_dtype_cst): Rename ...
6177         (gfc_get_dtype): ... to this.  Handle unknown size arrays.
6178         (gfc_get_nodesc_array_type): Use new name.
6179         (gfc_sym_type): New character variable code.
6180         (gfc_get_derived_type): Ditto.
6181         (gfc_get_function_type): Evaluate character variable lengths.
6182         * trans-types.h (gfc_strlen_kind): Define.
6183         (gfc_is_nodesc_array): Add prototype.
6184         * trans.h: Update prototypes.
6185         (struct lang_type): Update comments.
6186         (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
6187         (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
6188
6189 2004-04-04  Paul Brook  <paul@codesourcery.com>
6190
6191         * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
6192         * options.c (gfc_init.options, gfc_handle_option): Ditto.
6193         * trans-expr.c (gfc_conv_function_call): Ditto.
6194         * trans-types.c (gfc_is_nodesc_array): Ditto
6195         * lang.opt (fg77-calls): Remove.
6196
6197 2004-04-04  Paul Brook  <paul@codesourcery.com>
6198
6199         * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
6200         (gfc_conv_descriptor_base): Rename ...
6201         (gfc_conv_descriptor_offset): ... to this.
6202         (gfc_trans_allocate_array_storage): Set offset to zero.
6203         (gfc_conv_array_base): Rename ...
6204         (gfc_conv_array_offset): ... to this.
6205         (gfc_conv_array_index_ref): Add offset parameter.
6206         (gfc_conv_array_ref): Include offset.
6207         (gfc_trans_preloop_setup): Use existing offset.
6208         (gfc_trans_allocate_temp_array,  gfc_array_allocate,
6209         gfc_trans_auto_array_allocation, gfc_trans_g77_array,
6210         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
6211         gfc_conf_ss_descriptor): Set offset.
6212         * trans-array.h: Rename prototypes.
6213         * trans-const.h (gfc_index_zero_node): Define.
6214         * trans-decl.c (gfc_build_qualified_array): Change base to offset.
6215         * trans-types.c (gfc_get_array_type_bounds): Ditto.
6216         (gfc_get_nodesc_array_type): Calculate offset before upper bound.
6217
6218 2004-03-25  Diego Novillo  <dnovillo@redhat.com>
6219
6220         * convert.c (convert): Don't handle WITH_RECORD_EXPR.
6221
6222 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
6223
6224         PR 14055
6225         * arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
6226         before conversion by gmp library call.
6227
6228 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
6229
6230         PR 12921
6231         * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
6232
6233 2004-02-24  Richard Henderson  <rth@redhat.com>
6234
6235         * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
6236
6237 2004-02-19  Loren J. Rittle  <ljrittle@acm.org>
6238
6239         * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
6240         (fortran/gfortran.info): ... to here.
6241         (f95.srcinfo): New.
6242
6243 2004-02-16  Richard Henderson  <rth@redhat.com>
6244
6245         * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
6246         * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
6247         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
6248         (gfc_expand_function): Rename from expand_function_body, make static,
6249         don't do anything except invoke tree_rest_of_compilation.
6250         (gfc_be_parse_file): Invoke cgraph.
6251         (gfc_expand_decl): Remove.
6252         (gfc_init_builtin_functions): Add __builtin_init_trampoline and
6253         __builtin_adjust_trampoline.
6254         * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
6255         (gfc_finalize): New.
6256         (gfc_generate_function_code): Use it.  Lower nested functions.
6257         * trans-expr.c (gfc_conv_function_call): Add static chain operand
6258         to call_expr.
6259         * trans.c (gfc_build_function_call): Likewise.
6260         * trans.h (expand_function_body): Remove.
6261
6262 2004-02-15  Victor Leikehman  <lei@il.ibm.com>
6263
6264         PR gfortran/13433
6265         * trans-decl.c (gfc_build_function_decl) For functions
6266         returning CHARACTER pass an extra length argument,
6267         following g77 calling conventions.
6268         * trans-types.c (gfc_get_function_type) Ditto.
6269         * trans-expr.c (gfc_conv_function_call) Ditto.
6270
6271 2004-02-14  Paul Brook  <paul@codesourcery.com>
6272
6273         * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
6274
6275 2004-02-12  Paul Brook  <paul@nowt.org>
6276
6277         * BUGS: Remove.
6278
6279 2004-02-08  Steve Kargl  <sgk@troutmask.apl.washington.edu>
6280
6281         * gfortran.texi: Fix typos.
6282
6283 2004-02-07  Bud Davis  <bdavis9659@comcast.net>
6284
6285         PR gfortran/13909
6286         * intrinsic.c (add_conversions) Use logical conversion instead
6287         of real.
6288         * trans-types.c (gfc_get_logical_type) implemented logical*1
6289         and logical*2.
6290
6291 2004-01-17  Paul Brook  <paul@codesourcery.com>
6292
6293         * lang-specs.h: Remove %<fixed-form.
6294
6295 2004-01-15  Toon Moene  <toon@moene.indiv.nluug.nl>
6296
6297         * lang-specs.h: Enable preprocessing of source files
6298         ending in .F, .fpp, .FPP, .F90 and .F95.
6299
6300 2004-01-13  Toon Moene  <toon@moene.indiv.nluug.nl>
6301
6302         PR fortran/12912
6303         * lang-specs.h: Enable compilation of files ending
6304         in .f, .for and .FOR.
6305
6306 2004-01-11  Paul Brook  <paul@codesourcery.com>
6307
6308         * trans-stmt.c (gfc_trans_if_1): New function.
6309         (gfc_trans_if): Use it.
6310
6311 2004-01-11  Erik Schnetter  <schnetter@uni-tuebingen.de>
6312
6313         * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
6314         (gfc_option_t): Add max_identifier_length.
6315         * lang.opt: Add fmax-identifier-length.
6316         * match.c (parse_name): Use limit.
6317         * options.c (gfc_init_options): Set max_identifier_length.
6318         (gfc_handle_option): Ditto.
6319
6320 2004-01-11  Feng Wang  <fengwang@nudt.edu.cn>
6321
6322         * intrinsic.c (add_functions): Add resolve function to dcmplx.
6323         * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
6324         * iresolve.c (gfc_resolve_dcmplx): New function.
6325
6326 2004-01-10  Paul Brook  <paul@codesourcery.com>
6327
6328         * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
6329         * trans-types.c (gfc_sym_type): Handle external dummy procedures.
6330         (gfc_return_by_reference): Correct condition.
6331         (gfc_get_function_type): Ditto.
6332
6333 2004-01-10  Paul Brook  <paul@codesourcery.com>
6334
6335         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
6336         types.
6337
6338 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
6339
6340         * iresolve.c: Use correct kind.
6341
6342 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
6343
6344         PR fortran/13467
6345         * trans-decl.c (gfc_create_module_variable):  Output array valued
6346         parameters.
6347
6348 2004-01-10  Paul Brook  <paul@codesourcery.com>
6349
6350         * resolve.c (resolve_branch): Get error message right way round.
6351
6352 2004-01-10  Canqun Yang  <canqun@nudt.edu.cn>
6353
6354         * trans-array (gfc_conv_loop_setup): Adjust comment to track
6355         reality.
6356         (gfc_array_allocate): Don't count size of element twice.
6357
6358 2004-01-04  Paul Brook  <paul@codesourcery.com>
6359
6360         * lang.opt (i8, r8, std=*): Remove RejectNegative.
6361
6362 2004-01-04  Paul Brook  <paul@codesourcery.com>
6363
6364         * error.c (gfc_notify_std): New function.
6365         * gfortran.h (gfc_notify_std): Declare.
6366         (GFC_STD_*): Define.
6367         (gfc_option_t): Add warn_std and allow_std.
6368         * intrinsic.c (gfc_init_expr_extensions): Fix logic.
6369         (gfc_intrinsic_func_interface): Use gfc_notify_std.
6370         * check.c (check_rest): Use gfc_notify_std.
6371         * match.c (gfc_match_pause): Ditto.
6372         (gfc_match_assign): Ditto.
6373         (gfc_match_goto): Ditto.
6374         * resolve.c (resolve_branch): Ditto.
6375         * lang.opt: Add std=<foo> and w.
6376         * options.c (gfc_init_options): Set allow_std and warn_std.
6377         (gfc_handle_option): Handle OPT_std_* and OPT_w.
6378
6379 2004-01-01  Paul Brook  <paul@codesourcery.com>
6380
6381         * array.c (gfc_append_constructor): Take constructor, not expression.
6382         * data.c (struct gfc_expr_stack): Remove.
6383         (expr_stack): Remove.
6384         (find_con_by_offset): Rename from find_expr_in_con.
6385         (find_con_by_component): Rename from find_component_in_con.
6386         (gfc_get_expr_stack): Remove.
6387         (gfc_assign_data_value): Rewrite.
6388         (gfc_expr_push): Remove.
6389         (gfc_expr_pop): Remove.
6390         (gfc_advance_section): Rename from
6391         gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
6392         (gfc_get_section_index): Handle unbounded sections.
6393         * gfortran.h: Update prototypes.
6394         * resolve.c (check_data_variable): Array section maight not be the
6395         last ref.
6396
6397 2004-01-01  Paul Brook  <paul@codesourcery.com>
6398
6399         PR fortran/13432
6400         * resolve.c (resolve_symbol): Allow assumed length function results.
6401
6402 2004-01-01  Steve Kargl  <sgk@troutmask.apl.washington.edu>
6403
6404         * match.c (gfc_match_pause): Fix spelling.
6405
6406 2004-01-01  Steven Bosscher  <stevenb@suse.de>
6407
6408         PR fortran/13251
6409         * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
6410         reference from the expression.
6411
6412 2003-12-26  Feng Wang  <fengwang@nudt.edu.cn>
6413
6414         * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
6415         dumping.
6416         * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
6417         (gfc_exec_op): New EXEC_LABEL_ASSIGN.
6418         (symbol_attribute):New variable attribute: assign.
6419         * io.c (resolve_tag):Integer variable is allowed.
6420         (match_dt_format): Add ASSIGN statement. Set assign flag.
6421         * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
6422         (gfc_match_assign): Add ASSIGN statement. Set assign flag.
6423         (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
6424         * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
6425         (next_statement): Add ST_LABEL_ASSIGNMENT.
6426         (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
6427         * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
6428         (resolve_blocks): Resolve ASSIGNED GOTO statement label list.
6429         * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
6430         * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
6431         assign.  Put them into the stuct lang_decl.
6432         * trans-io.c (set_string): Add the assign statement.
6433         * trans-stmt.c (gfc_trans_label_assign): New function.
6434         (gfc_trans_goto): Translate ASSIGNED GOTO statement.
6435         * trans-stmt.h (gfc_trans_label_assign): Added function prototype.
6436         * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
6437         * trans.h (lang_decl):Add shadow variable decl tree needed by assign.
6438         (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
6439         (GFC_DECL_ASSIGN(node)): New macro to access flag.
6440
6441 2003-12-31  Huang Chun  <chunhuang73@hotmail.com>
6442
6443         PR fortran/13434
6444         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in
6445         minval/maxval.
6446
6447 2003-12-22  Toon Moene  <toon@moene.indiv.nluug.nl>
6448
6449         * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
6450         that arguments to subroutines/functions can't alias themselves, nor global
6451         memory.
6452
6453 2003-12-20  Steven Bosscher  <stevenb@suse.de>
6454
6455         * trans-expr.c (gfc_conv_expr_op): Fold the result expression.
6456         * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise.
6457
6458 2003-12-12  Huang Chun  <chunhuang73@hotmail.com>
6459
6460         * primary.c (match_substring): Fix substring bug for start point
6461         or end point is NULL.
6462         * trans-expr.c (gfc_conv_substring): Ditto
6463         * trans-types.c (gfc_sym_type): Get correct type of scalar
6464         character variables.
6465         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in
6466         derived type.
6467
6468 2003-12-10  Richard Henderson  <rth@redhat.com>
6469
6470         * options.c (gfc_post_options): Don't ever use rtl inlining.
6471
6472 2003-12-05  Canqun Yang  <canqun@nudt.edu.cn>
6473
6474         * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists.
6475         * trans-equivalence.c: Remove.
6476         * trans-decl.c (gfc_get_symbol_decl): Update to match.
6477         (gfc_generate_function_code): Ditto.
6478         * trans-array.c (gfc_conv_array_parameter): Ditto.
6479         * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o
6480         (F95_ADDITIONAL_OBJS): Add stor-layout.o
6481         * trans.h (gfc_trans_equivalence): Remove.
6482         * gfortran.h (struct gfc_equiv): Add used field.
6483         (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring,
6484         equiv_offset fields.
6485
6486 2003-12-05  Richard Henderson  <rth@redhat.com>
6487
6488         * trans.c (gfc_build_addr_expr): New.
6489         (gfc_build_indirect_ref, gfc_build_array_ref): New.
6490         * trans.h: Declare them.
6491         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
6492         trans-stmt.c, trans.c (*): Use them.
6493
6494         * f95-lang.c (gfc_post_options): Remove dead prototype.
6495         * trans-array.c (gfc_trans_deferred_vars): Remove unused variable.
6496         * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list
6497         allocation size.
6498
6499 2003-12-01  Feng Wang  <fengwang@nudt.edu.cn>
6500
6501         * io.c (gfc_match_format): Check for missing format label.
6502
6503 2003-11-30 Huang Chun  <chunhuang73@hotmail.com>
6504
6505         PR fortran/13155
6506         * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols
6507         from interfaces in modules.
6508
6509 2003-11-30  Paul Brook  <paul@nowt.org>
6510
6511         * trans-array.c (gfc_trans_g77_array): Make non-static.
6512         (gfc_trans_assumed_size): Remove.
6513         (gfc_trans_dummy_array_bias): Explicitly free temporary.
6514         * trans-array.h (gfc_trans_g77_array): Add prototype.
6515         (gfc_trans_assumed_size): Remove.
6516         * trans-decls.c (gfor_fndecl_push_context): Remove.
6517         (gfor_fndecl_pop_context): Remove.
6518         (gfc_build_function)decls): Don't create them.
6519         (gfc_trans_deferred_vars): Update to match. Remove dead code.
6520         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp.
6521
6522 2003-11-30  Kejia Zhao  <kejia_zh@nudt.edu.cn>
6523
6524         * trans-array.c (gfc_conv_array_parameter): Simplify
6525         array argument passing for array name actual argument.
6526         * trans-expr.c (gfc_conv_function_call): Ditto
6527         * trans-types.c (gfc_is_nodesc_array):Ditto.
6528
6529 2003-11-30  Paul Brook  <paul@nowt.org>
6530
6531         * f95-lang.c (gfc_post_options): Move ...
6532         * options.c (gfc_post_options): .. to here.  Handle inlining options.
6533         * gfortran.h (gfc_post_options): Add prototype.
6534
6535 2003-11-28  Richard Henderson  <rth@redhat.com>
6536
6537         * trans.c (gfc_create_var_np): Use create_tmp_var_raw.
6538
6539 2003-11-28 Huang Chun  <chunhuang73@hotmail.com>
6540
6541         * trans.h (has_alternate_specifier): New global variable.
6542         * match.c (gfc_match_call): Handle actual arguments associated with
6543         alternate return indicators.
6544         * trans-expr.c (gfc_conv_function_call): Ditto
6545         * trans-stmt.c (gfc_trans_call): Ditto
6546         (gfc_trans_return): Handle return statement with value.
6547         * trans-decl.c (gfc_generate_function_code): Handle functions with
6548         asterisk dummy.
6549         (gfc_get_fake_result_decl): Ditto
6550         * trans-types.c (gfc_get_function_type): Ditto
6551         * resolve.c (resolve_actual_arglist): Check alternate return indicators.
6552         (resolve_formal_arglist): Check asterisk dummy.
6553
6554 2003-11-27  Paul Brook  <paul@nowt.org>
6555
6556         * trans-array.c (gfc_tran_allocate_array_storage): Use new memory
6557         allocation interface.
6558         (gfc_conv_ array_parameter): Ditto.
6559         (gfc_trans_auto_array_allocation): Ditto. Also free the memory.
6560         * trans-array.c: Update prototype.
6561         * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes.
6562         (gfc_trans_auto_character_variable): Use new memory alloc interface.
6563         * trans-expr.c (gfc_conv_string_tmp): Ditto.
6564         (gfc_conv_function_call): Use gfc_conv_string_tmp.
6565         * trans-stmt.c (gfc_do_allocate):  Use new memory alloc interface.
6566         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto.
6567         * trans.h (gfc_ss_info): Remove unused pdata field.
6568         * trans.c (gfc_create_var_np): Change T to V.
6569
6570 2003-11-26  Richard Henderson  <rth@redhat.com>
6571
6572         * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ...
6573         * trans-intrinsic.c (gfc_intrinsic_map): ... here.  Add SCALE,
6574         FRACTION, NEAREST, SET_EXPONENT.
6575         (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant.
6576         Fix GTY marking.  Remove unnecessary const's.
6577         (LIBM_FUNCTION): Rename from I_LIB.
6578         (LIBF_FUNCTION): New.
6579         (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming
6580         conventions.  Assume the expr signature is correct.  Mark const.
6581         (gfc_conv_intrinsic_exponent): Use library functions.
6582         (gfc_conv_intrinsic_set_exponent): Remove.
6583         (gfc_conv_intrinsic_scale): Remove.
6584         (gfc_conv_intrinsic_nearest): Remove.
6585         (gfc_conv_intrinsic_fraction): Remove.
6586         (gfc_conv_intrinsic_function): Update.
6587         * trans-decl.c (gfor_fndecl_math_exponent4): New.
6588         (gfor_fndecl_math_exponent8): New.
6589         (gfc_build_intrinsic_function_decls): Set them.
6590         * trans.h: Declare them.
6591
6592 2003-11-25  Canqun Yang  <canqun@nudt.edu.cn>
6593
6594         * trans-common.c (gfc_layout_global_equiv): Locate the error for
6595         underflow COMMON block.
6596         (gfc_trans_one_common): Fix bug for size of COMMON block containing
6597         EQUIVALENCE object. Also fix typo in an error message.
6598
6599 2003-11-25  Diego Novillo  <dnovillo@redhat.com>
6600
6601         * Make-lang.in: Add check-gfortran to lang_checks.
6602         (check-f95): Alias for check-gfortran.
6603
6604 2003-11-25  Jason Merrill  <jason@redhat.com>
6605
6606         * Make-lang.in (f95.tags): Create TAGS.sub files in each
6607         directory and TAGS files that include them for each front end.
6608
6609 2003-11-24  Paul Brook  <paul@nowt.org>
6610
6611         PR fortran/13154
6612         * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks.
6613
6614 2003-11-24  Paul Brook  <paul@nowt.org>
6615
6616         * expr.c (simplify_const_ref): Return SUCCESS for things we don't
6617         handle.
6618         * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape.
6619
6620 2003-11-24  Paul Brook  <paul@nowt.org>
6621
6622         PR fortran/13105
6623         * array.c (gfc_array_ref_shape): Handle elemental dimensions.
6624         * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup.
6625
6626 2003-11-20  Richard Henderson  <rth@redhat.com>
6627
6628         * trans-array.c (gfc_trans_allocate_array_storage): Use convert.
6629         (gfc_conv_array_base): Likewise.
6630         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
6631         * trans-expr.c (gfc_conv_string_tmp): Likewise.
6632         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise.
6633         * trans-stmt.c (gfc_trans_character_select): Likewise.
6634
6635 2003-11-13  Paul Brook  <paul@nowt.org>
6636
6637         * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals.
6638
6639 2003-11-13  Canqun Yang  <canqun@nudt.edu.cn>
6640
6641         * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects.
6642         (resolve_equivalence): New function.
6643         (resolve_equivalence_derived): New function.
6644
6645 2003-11-12  Richard Henderson  <rth@redhat.com>
6646
6647         * trans.c (gfc_trans_code): Use annotate_with_locus instead of
6648         annotate_all_with_locus.
6649
6650 2003-11-11  Canqun Yang  <canqun@nudt.edu.cn>
6651
6652         * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768.
6653         * trans-decl.c (gfc_finish_var_decl): Modified.
6654
6655 2003-11-08  Paul Brook  <paul@nowt.org>
6656
6657         PR fortran/12704
6658         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size
6659         arrays.
6660
6661 2003-11-06  Paul Brook  <paul@nowt.org>
6662
6663         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos.
6664
6665 2003-11-02  Canqun Yang  <canqun@nudt.edu.cn>
6666
6667         * match.c (gfc_match_stopcode): Assign '0' to stop_code.
6668
6669 2003-10-27  Anthony Green  <green@redhat.com>
6670
6671         * Make-lang.in (f95.stageprofile): Use tabs, not spaces.
6672         (f95.stagefeedback): Ditto.
6673
6674 2003-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
6675
6676         PR fortran/12682
6677         * Make-lang.in (f95.stageprofile): Add.
6678         (f95.stagefeedback): Add.
6679
6680 2003-10-23  Richard Henderson  <rth@redhat.com>
6681
6682         * f96-lang.c (gfc_gimplify_expr): Remove.
6683         (LANG_HOOKS_GIMPLIFY_EXPR): Remove.
6684         (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New.
6685
6686 2003-10-23  Richard Henderson  <rth@redhat.com>
6687
6688         * f95-lang.c (gfc_gimplify_expr): Return gimplify_status.
6689
6690 2003-10-20  Paul Brook  <paul@nowt.org>
6691
6692         * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node.
6693         * trans-stmt.c (gfc_trans_do_while): Ditto.
6694
6695 2003-10-17  Paul Brook  <paul@nowt.org>
6696
6697         * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size.
6698
6699 2003-10-17  Paul Brook  <paul@nowt.org>
6700
6701         * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC.
6702
6703 2003-10-17  Feng Wang  <wf_cs@yahoo.com>
6704
6705         * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type.
6706         (gfc_resolve_minloc): Ditto.
6707         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types.
6708         Return the value after subtracting the lower bound.
6709
6710 2003-10-16  Richard Henderson  <rth@redhat.com>
6711
6712         * f95-lang.c (expand_function_body): Don't check flag_disable_gimple.
6713
6714 2003-10-16  Steven Bosscher  <steven@gcc.gnu.org>
6715
6716         * lang.c: Remove -M option for now, it's in the way for C.
6717
6718 2003-10-14  Jason Merrill  <jason@redhat.com>
6719
6720         * Make-lang.in (f95.tags): New rule.
6721
6722 2003-10-13  Richard Henderson  <rth@redhat.com>
6723
6724         * trans.c (gfc_trans_code): Use annotate_all_with_locus.
6725
6726 2003-10-13  Paul Brook  <paul@nowt.org>
6727
6728         * trans-decl.c (generate_local_decl): Don't create junk variables.
6729
6730 2003-10-13  Paul Brook  <paul@nowt.org>
6731
6732         * resolve.c (resolve_formal_arglist): Use function result decl in
6733         preference to function decl.
6734
6735 2003-10-12  Richard Henderson  <rth@redhat.com>
6736
6737         * f95-lang.c (gfc_define_builtin): New const_p argument.  Set
6738         TREE_READONLY.  Update all callers.
6739
6740 2003-10-12  Feng Wang  <wf_cs@yahoo.com>
6741
6742         * iresolve.c (gfc_resolve_cshift): Change to match implementation.
6743         * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT.
6744         (gfc_is_intrinsic_libcall): Add CSHIFT.
6745
6746 2003-10-12  Richard Henderson  <rth@redhat.com>
6747
6748         * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT.
6749         (gfc_trans_array_constructor_value): Likewise.
6750         (gfc_conv_array_initializer): Likewise.
6751         * trans-stmt.c (gfc_trans_character_select): Likewise.
6752
6753 2003-11-12  Kejia Zhao  <kejia_zh@yahoo.com.cn>
6754
6755         * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove.
6756
6757 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
6758
6759         * check.c (gfc_check_repeat): Check arguments are scalar.
6760         (gfc_check_trim): New function.
6761         * intrinsic.h (gfc_check_trim): Add prototype.
6762         * intrinsic.c (add_functions): Use it.
6763         * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat):
6764         Decalare.
6765         * trans-decl.c: Ditto.
6766         (gfc_build_intrinsic_fucntion_decls): Set them.
6767         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars.
6768         (gfc_conv_intrinsic_trim): New function.
6769         (gfc_conv_intrinsic_repeat): New function.
6770         (gfc_conv_intrinsic_function): Use them.
6771
6772 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
6773
6774         * trans-types.c (gfc_sym_type): Handle result variables.
6775
6776 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
6777
6778         * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use
6779         gfc_get_character_type.
6780
6781 2003-10-11  Feng Wang  <wf_cs@yahoo.com>
6782
6783         * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl.
6784
6785 2003-10-11  Paul Brook  <paul@nowt.org>
6786
6787         * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions.
6788         (gfc_resolve_dprod): New function.
6789         (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type.
6790         * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare.
6791         (gfc_resolve_dprod): Declare.
6792         * intrinsic.c (add_functions): Use them.
6793         * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg.
6794
6795 2003-10-06  Richard Henderson  <rth@redhat.com>
6796
6797         * f95-lang.c (gfc_init_builtin_functions): Add clzll.
6798         * trans-intrinsic.c (call_builtin_clz): Use it.
6799
6800 2003-10-05  Paul Brook  <paul@nowt.org>
6801
6802         * f95-lang.c (expand_function_body): Call (push|pop)_function_context.
6803         * trans-decl.c (gfc_generate_function_code): Set
6804         cfun->function_end_locus.
6805
6806 2003-09-24  Jason Merrill  <jason@redhat.com>
6807
6808         * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of
6809         TREE_LOCUS.
6810
6811 2003-09-21  Lifang Zeng  <zlf605@hotmail.com>
6812         Paul Brook  <paul@nowt.org>
6813
6814         * Make-lang.in (F95_OBJS): Add fortran/data.o.
6815         * array.c (gfc_inser_constructor): New function.
6816         (gfc_get_constructor): New function.
6817         (gfc_free_constructor): Initialize offset and repeat.
6818         (iterator_stack): Remove.
6819         (expand_info): Add offset, component and repeat fields.
6820         (expand_constructor): Set them.
6821         (expand): Set new fields.
6822         (gfc_copy_constructor): Ditto. Avoid recursion.
6823         * gfortran.h: Add prototypes for new functions.
6824         (gfc_constructor): Add offset, component and repeat.
6825         (iteratio_stack): Move to here.
6826         * resolve.c (check_data_variable): Convert data values into variable
6827         initializers.
6828         (traverse_data_list): Build implicit loop chain.
6829         (gfc_resolve): Ditto.
6830         * trans-array.c (gfc_conv_array_intializer): Handle repeat count.
6831         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure.
6832         * trans-expr.c (gfc_conv_structure): Handle array initializers.
6833         (gfc_conv_expr): Update to match.
6834         * trans.h (gfc_conv_structure): Declare.
6835         * data.c: New file.
6836
6837 2003-09-20  Kejia Zhao  <kejia_zh@yahoo.com.cn>
6838
6839         * trans.h: Add declarations for gfor_fndecl_si_kind and
6840         gfor_fndecl_sr_kind.
6841         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
6842         * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function.
6843         (g95_conv_intrinsic_sr_kind): New function.
6844         (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and
6845         SELECTED_REAL_KIND.
6846
6847 2003-09-17  Lars Segerlund  <Lars.Segerlund@comsys.se>
6848
6849         * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8
6850         instead of _4 and _8 as postfix for libgfortran calls.
6851
6852 2003-09-16  Paul Brook  <paul@nowt.org>
6853
6854         * array.c (compare_bounds): New function.
6855         (gfc_compare_array_spec): Use it.
6856
6857 2003-09-14  Paul Brook  <paul@nowt.org>
6858
6859         * primary.c (gfc_match_rvalue): Make sure sym->result is set.
6860         * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs.
6861
6862 2003-09-14  Paul Brook  <paul@nowt.org>
6863
6864         * check.c (dim_rank_check): Allow assumed bounds if requested.
6865         (gfc_check_lbound): Call it.
6866         (gfc_check_ubound): Ditto.
6867         (gfc_check_size): Change to match.
6868         * simplify.c (gfc_simplify_bound): New function.
6869         (gfc_simplify_lbound): New function.
6870         (gfc_simplify_ubound): New function.
6871         * intrinsic.h: Declare them.
6872         * intrinsic.c (add_functions): Use them.
6873
6874 2003-09-14  Paul Brook  <paul@nowt.org>
6875
6876         * io.c (format_lex): Initialize negative_flag.
6877         (check_format): Intialize repeat.
6878         * trans-io.c (gfc_new_nml_name_expr): Declare static.
6879         (gfc_new_var_expr): Ditto.
6880
6881 2003-09-14  Paul Brook  <paul@nowt.org>
6882
6883         * trans-array.c (gfc_conv_array_initializer): Handle derived types.
6884         * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values.
6885
6886 2003-09-12  Paul Brook  <paul@nowt.org>
6887
6888         * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold.
6889
6890 2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6891
6892         * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr
6893         for a correct expression.
6894
6895 2003-09-10  Kejia Zhao  <kejia_zh@yahoo.com.cn>
6896
6897         * trans-intrinsic.c (real_compnt_info): New struct.
6898         (prepare_arg_info): New function.
6899         (gfc_conv_intrinsic_set_exponent): New function.
6900         (gfc_conv_intrinsic_scale): New function.
6901         (gfc_conv_intrinsic_nearest): New function.
6902         (gfc_conv_intrinsic_fraction): New function.
6903         (gfc_conv_intrinsic_exponent): New function.
6904         (gfc_conv_intrinsic_spacing): New function.
6905         (gfc_conv_intrinsic_rrspacing): New function.
6906         (gfc_conv_intrinsic_function): Use them.
6907
6908 2003-08-24 XiaoQiang Zhang  (zhangapache@yahoo.com>
6909
6910         * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for
6911         build_int_2 changed from (high, low) to (low, high).
6912         * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len,
6913         ioparm_namelist_read_mode, iocall_set_nml_val_int,
6914         iocall_set_nml_val_float, iocall_set_nml_val_char,
6915         iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration.
6916         (gfc_build_io_library_fndecls): Add variable initialization.
6917         (gfc_new_nml_name_expr, get_new_var_expr): New function.
6918         (build_dt): Add namelist support.
6919         * io.c (value): New variable.
6920         (check_format): Support FMT_H now.
6921
6922 2003-09-07  Paul Brook  <paul@nowt.org>
6923
6924         * io.c (gfc_resolve_dt): Error if format label is not defined.
6925
6926 2003-09-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
6927
6928         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is
6929         about case_switch's break. The other is about building the condition
6930         statement tree, which judges the argument in the range of the
6931         corresponding integer type.
6932         * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work
6933         for the large values.
6934
6935 2003-09-05  Paul Brook  <paul@nowt.org>
6936
6937         * f95-lang.c (expand_function_body): Gimplify the function.
6938
6939 2003-09-04  Jeff Law  <law@redhat.com>
6940
6941         * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at
6942         index zero!
6943
6944 2003-09-04  Paul Brook  <paul@nowt.org>
6945
6946         * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls.
6947         (gfc_expand_stmt): New function.
6948         (LANG_HOOKS_RTL_EXPAND_STMT): Define.
6949         (expand_function_body): Use tree_rest_of_compilation.
6950         * trans-decl.c (gfc_generate_function_code): Don't free cfun.
6951
6952 2003-09-03  Jeff Law  <law@redhat.com>
6953
6954         * f95-lang.c (gfc_init_builtin_functions): C arrays start at
6955         index zero!
6956
6957 2003-08-30  Paul Brook  <paul@nowt.org>
6958
6959         * f95-lang.c (builtin_function): Remove #if 0 code.
6960         (gfc_define_builtin): New function.
6961         (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def.
6962         * mathbuiltins.def: New file.
6963         * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields.
6964         (gfc_intrinsic_map): Use mathbuiltins.def.
6965         (gfc_intrinsic_builtin_t): Remove.
6966         (gfc_build_intrinsic_lib_fndecls): Update.
6967         * trans-types.c (gfc_init_types): Remove redundant initilaization of
6968         signed_size_type_node.
6969
6970 2003-08-29  Paul Brook  <paul@nowt.org>
6971
6972         * arith.c (gfc_real_kinds): Use correct minimum exponents.
6973
6974 2003-08-22  Kejia Zhao  <kejia_zh@yahoo.com.cn>
6975
6976         * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO.
6977         (gfc_conv_intrinsic_function): Add MODULO.
6978
6979 2003-08-22  Jason Merrill  <jason@redhat.com>
6980
6981         * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates.
6982
6983 2003-08-22  Andreas Jaeger  <aj@suse.de>
6984
6985         * Make-lang.in (f95.install-common): Add DESTDIR support.
6986         * (f95.install-info): Likewise.
6987         (f95.uninstall): Likewise.
6988
6989 2003-08-19  Diego Novillo  <dnovillo@redhat.com>
6990
6991         * trans-types.c (gfc_init_types): Initialize
6992         signed_size_type_node with size_type_node.
6993
6994 2003-08-18  Paul Brook  <paul@nowt.org>
6995
6996         * dependency.c (gfc_dependency): New enum.
6997         (check_another_array_ref): Remove.
6998         (gfc_get_array_from_component): Remove.
6999         (get_x): Remove.
7000         (get_range): Remove.
7001         (get_no_of_elements): Use mpz_t, not mpf_t.
7002         (transform_sections): New function.
7003         (gfc_check_range_range): Rename ...
7004         (gfc_check_section_vs_section): ... to this.  Use new function.
7005         (gfc_is_inside_range): Rewrite to match.
7006         (gfc_check_element_vs_section): Ditto.
7007         (gfc_check_element_vs_element): Ditto.
7008         (get_deps): Ditto.
7009         (gfc_dep_resolver): Ditto.  Remove unused parameter.
7010         * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section,
7011         gfc_check_element_vs_element, gfc_is_inside_range,
7012         gfc_get_array_from_component): Remove prototypes for static functions.
7013         (gfc_dep_resolver): Update prototype.
7014         * trans-array.c (gfc_conv_resolve_dependencies): Change to match.
7015
7016 2003-08-15  Paul Brook  <paul@nowt.org>
7017
7018         * trans-decl.c (gfc_build_qualified_array): Don't add symbols for
7019         return values to parent scope.
7020         (gfc_build_dummy_array_decl): Ditto.
7021
7022 2003-08-14  Paul Brook  <paul@nowt.org>
7023
7024         * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the
7025         size of the type, not the pointer.
7026         * resolve.c (resolve_symbol): Give more accurate error message.
7027
7028 2003-08-10  Paul Brook  <paul@nowt.org>
7029
7030         * trans-decl.c (gfc_build_function_decl): Only mangle global symbols.
7031
7032 2003-08-10  Paul Brook  <paul@nowt.org>
7033
7034         * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived
7035         type components.
7036
7037 2003-08-10  Chun Huang  <compiler@sohu.com>
7038
7039         * resolve.c (resolve_formal_arglist): Resolve STATEMENT function.
7040         (resolve_symbol): Ditto.
7041         * trans-expr.c (gfc_conv_statement_function): New function.
7042         (gfc_conv_function_expr): Use it.
7043
7044 2003-08-10  Paul Brook  <paul@nowt.org>
7045
7046         * trans-array.c (gfc_conv_ss_startstride): Handle functions.
7047         (walk_function_expr): Set section rank.
7048         * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
7049
7050 2003-08-10  Paul Brook  <paul@nowt.org>
7051
7052         * intrinsic.c (add_sym): Prefix names with correct string.
7053         (add_sym_0s): New function.
7054         (add_subroutines): Register abort.
7055
7056 2003-08-10  Erik Schnetter  <schnetter@uni-tuebingen.de>
7057
7058         * gfortran.h: Introduce options to control the mangling.
7059         * lang.opt: Likewise.
7060         * options.c (gfc_init_options): Handle the options.
7061         * trans-common.c (gfc_sym_mangled_common_id): New function.
7062         (gfc_build_common_decl): Call it.
7063         * trans-decl.c (gfc_sym_mangled_function_id): New function.
7064         (gfc_get_extern_function_decl, gfc_build_function_decl): Call it.
7065
7066 2003-08-09  Paul Brook  <paul@nowt.org>
7067
7068         * module.c (mio_symbol): Always ouput a namespace for formal args.
7069         (load_needed): Namespace now belong to their proper symbol.
7070         (gfc_dump_module): Change G95=>GFORTRAN.
7071
7072 2003-08-05  Paul Brook  <paul@nowt.org>
7073
7074         * options.c: Force -fg77-calls.
7075
7076 2003-08-02  Paul Brook  <paul@nowt.org>
7077
7078         * Makelang.in: Rename G95_* to GFORTRAN_*.
7079         * All sources: Rename G95_* to GFC_*.
7080
7081 2003-08-01  Paul Brook  <paul@nowt.org>
7082
7083         * fortran/Make-lang.in: Use GMPLIBS.
7084         * fortran/config-lang.in: Set need_gmp.
7085         * trans-expr.c (gfc_conv_variable): Remove incorrect assertion.
7086
7087 2003-07-27  Andreas Jaeger  <aj@suse.de>
7088
7089         * trans-decl.c (gfc_generate_constructors): Convert prototype to
7090         ISO C90.
7091         * trans-const.c (gfc_init_constants): Likewise.
7092         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise.
7093
7094         * gfortranspec.c: Convert to ISO C90.
7095         (lang_specific_driver): Correct copyright, remove ALT_LIBM usage.
7096
7097 2003-07-26  Paul Brook  <paul@nowt.org>
7098
7099         * lang.opt: Add -fdump-parse-tree.
7100         * options.c (gfc_handle_option): Ditto.
7101         * resolve.c (resolve_forall_iterators): Convert to proper type.
7102         * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type.
7103
7104 2003-07-26  Paul Brook  <paul@nowt.org>
7105
7106         * Makefile.in: Add build dependencies on files common with rest of gcc.
7107
7108 2003-07-26  Lifang Zeng  <zlf605@hotmail.com>
7109
7110         * trans.h: Declare g95_trans_pointer_assignment.
7111         * trans-expr.c (g95_trans_pointer_assignment): New function.
7112         (g95_trans_pointer_assign): Use it.
7113         * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment.
7114         (g95_trans_pointer_assign_need_temp): New function.
7115
7116 2003-07-26  Paul Brook  <paul@nowt.org>
7117
7118         * gfortran.texi: Replace references to g95.
7119
7120 2003-07-26  Paul Brook  <paul@nowt.org>
7121
7122         Rename g95_* to gfc_*.
7123
7124 2003-07-25  Paul Brook  <paul@nowt.org>
7125
7126         * gfortran.h: Rename from g95.h.
7127         * trans-types.c (boolean_type_node, booelan_true_node,
7128         boolean_false_node): Remove.
7129         * trans-types.h: Ditto.
7130
7131 2003-07-25  Chun Huang  <compiler@sohu.com>
7132
7133         * parse.c (accept_statement): Implement BLOCK DATA statement.
7134         * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer
7135         variables.
7136
7137 2003-07-24  Lifang Zeng  <zlf605@hotmail.com>
7138
7139         * trans-stmt.c (temporary_list): Define.
7140         (g95_trans_assign_need_temp): New function.
7141         (g95_trans_forall_1): Modified for WHERE.
7142         (g95_trans_where_assign): Modified.
7143         (g95_trans_where_2): Modified.
7144         (g95_evaluate_where_mask): Modified.
7145         (g95_trans_where): Modified.
7146         (g95_get_temp_expr): Removed.
7147         (g95_add_to_where_stmt_list): Removed.
7148         (compute_overall_iter_number): Modified for WHERE.
7149         * trans.h: Remove where_stmt_list.
7150
7151 2003-07-24  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7152
7153         * lang.opt: Correct description of options -J and -M.
7154
7155 2003-07-23  Steven Bosscher   <steven@gcc.gnu.org>
7156
7157         * lang.opt: Move help text to here.
7158         * lang-options.h: Remove.
7159
7160 2003-07-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7161         * iresolve.c (g95_resolve_transpose): Proper variable in switch.
7162         * simplify.c (g95_simplify_nearest): Fix typo and use a correct test
7163         on kind.
7164
7165 2003-07-22  Steven Bosscher  <steven@gcc.gnu.org>
7166         Paul Brook  <paul@nowt.org>
7167
7168         * check.c (check_rest): Use global pedantic flag.
7169         * io.c (data_desc): Ditto.
7170         * error.c (g95_warning, g95_warning_now): Use global flag.
7171         * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE.
7172         (expand_function_body): Update to new prototypes.
7173         (g95_init): Use new option names.
7174         * g95.h (g95_option_t): Standardize names.
7175         (g95_init_options, g95_handle_option): Update prototypes.
7176         * interface.c: Use new option names.
7177         * match.c: Ditto.
7178         * module.c: Ditto.
7179         * parse.c: Ditto.
7180         * primary.c: Ditto.
7181         * resolve.c: Ditto.
7182         * scanner.c: Ditto.
7183         * simplify.c: Ditto.
7184         * symbol.c: Ditto.
7185         * trans-array.c: Ditto.
7186         * trans-expr.c: Ditto.
7187         * trans-types.c: Ditto.
7188         * trans-decl.c: Ditto.
7189         (g95_build_library_function_decl): Remove obsolete VPARAMS.
7190         * trans.h: Ditto.
7191         * options.c (g95_display_help): Remove.
7192         (g95_init_options): Convert to new scheme.
7193         (set_Wall): Ditto
7194         (g95module_option): Ditto, rename from g95_parse_arg.
7195         (g95_handle_module_path_options): New function.
7196         * trans-equivalence.c: Fix error message.
7197         * lang.opt: Corrections.
7198
7199 2003-07-21  Steven Bosscher  <steven@gcc.gnu.org>
7200
7201         * lang.opt: New file.
7202
7203 2003-07-21  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7204
7205         * decl.c (match_attr_spec): Set colon_seen.
7206
7207 2003-07-14  Paul Brook  <paul@nowt.org>
7208
7209         * trans-array.c: Update comment.
7210         (g95_trans_array_constructor_subarray): Cleanup loopinfo data.
7211         * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith,
7212         minmaxloc,minmaxval): Ditto.
7213         * trans-io.c (g95_trans_transfer): Ditto.
7214         * trans-stmt.c: Remove unneeded prototypes.
7215         (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain.
7216         (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo.
7217         (compute_inner_temp_size): Remove bits of dead code. Add comments.
7218         Don't share loopinfo.
7219         (compute_overall_iter_number): Declare as static.
7220         (allocate_temp_for_forall_nest): Ditto.
7221         (g95_trans_forall_1): Don't pass shared loopinfo.
7222         * trans.c (g95_start_block): Expand comment.
7223
7224 2003-07-12  Paul Brook  <paul@nowt.org>
7225
7226         * arith.c (g95_index_integer_kind): Remove unused initializer.
7227         * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array
7228         index by size of element.
7229         (generate_loop_for_rhs_to_temp): Ditto.
7230         (allocate_temp_for_forall_nest): Use element size, not index size.
7231
7232 2003-07-11  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7233
7234         * arith.c (g95_index_integer_kind): Add a TODO.
7235         * simplify.c (g95_simplify_nearest): Add a TODO.
7236
7237 2003-07-09  Chun Huang  <compiler@sohu.com>
7238
7239         * trans.h: Add declarations for gfor_fndecl_string_scan and
7240         gfor_fndecl_string_verify.
7241         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
7242         * trans-intrinsic.c (g95_conv_intrinsic_scan): New function.
7243         (g95_conv_intrinsic_verify): New function.
7244         (g95_conv_intrinsic_function): Add SCAN and VERIFY.
7245         * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case
7246         of parameter 'BACK=.TRUE.'
7247
7248 2003-07-05  Lifang Zeng  <zlf605@hotmail.com>
7249
7250         * trans-stmt.c (iter_info, forall_info): Define.
7251         (g95_trans_forall_block): Remove.
7252         (g95_trans_forall_loop): Use forall info blocks.
7253         (g95_trans_nested_forall_loop): New function.
7254         (g95_do_allocate): Handle things other than logical masks.
7255         (generate_loop_for_temp_to_lhs): New function.
7256         (generate_loop_for_rsh_to_temp): New function.
7257         (compute_inner_temp_size): New function.
7258         (compute_overall_iter_number): New function.
7259         (allocate_temp_for_forall_nest): New function.
7260         (g95_trans_forall): Move body ...
7261         (g95_trans_forall_1): ... to here.  Handle loops with temporaries.
7262
7263 2003-07-02  Paul Brook  <paul@nowt.org>
7264
7265         * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars
7266         in correct scope.  Change callers to match.
7267         * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays.
7268         * iresolve.c (g95_resolve_reshape): Only use constant shapes.
7269
7270 2003-07-02  Paul Brook  <paul@nowt.org>
7271
7272         * trans-array.c (g95_conv_loop_setup): Remove dead var.  Use
7273         expression shape for all expressions.
7274         * trans-decl.c (g95_symbol_init): Allow adding at very end of list.
7275
7276 2003-07-03  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7277
7278         * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options,
7279         g95_parse_arg), intrinsic.c (g95_convert_type): support of
7280         -Wconversion.
7281         * intrinsic.c, g95.h: Add g95_convert_type_warn,
7282         * resolve.c (g95_resolve_index): Call it.
7283
7284 2003-07-02  Paul Brook  <paul@nowt.org>
7285
7286         * iresolve.c (g95_resolve_reshape): Set expression shape.
7287         (g95_resolve_shape): Ditto.
7288         * simplify.c (g95_simplify_shape): Move common code outside condition.
7289         * trans-array.c (g95_conv_array_initializer): Teach it how to count.
7290
7291 2003-07-01  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7292
7293         * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve
7294         conformance checks.
7295
7296 2003-06-29  Paul Brook  <paul@nowt.org>
7297
7298         * array.c (g95_simplify_iterator_var): Don't bother with return value.
7299         * expr.c (find_array_element, find_component_ref): New functions.
7300         (remove_subobject_ref): New function.
7301         (simplify_const_ref): Use them.  Rename from simplify_component_ref.
7302         (simplify_ref_chain): New function.
7303         (g95_simplify_expr): Use it.  Simplify parameter variable subobjects.
7304         (g95_specification_expr): Simplify the expression.
7305         * resolve.c (resolve_operator): Check simplifications return code.
7306         (g95_resolve_expr): Ditto.
7307
7308 2003-06-26  Paul Brook  <paul@nowt.org>
7309
7310         * expr.c (simplify_component_ref): New function.
7311         (g95_simplify_expr): Use it.
7312         * resolve.c (resolve_structure_cons): Handle references.
7313
7314 2003-06-25  Paul Brook  <paul@nowt.org>
7315
7316         * trans-io.c (build_dt): Handle internal units.
7317
7318 2003-06-25  Canqun Yang  <canqun@yahoo.com.cn>
7319
7320         * trans-common.c (g95_build_common_decl): Array index range starts at 0.
7321         (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common):
7322         Use g95_array_index_type instead of integer_type_node.
7323         (g95_build_common_decl, g95_set_common_master_type): Use
7324         g95_character1_type_node instead of char_type_node.
7325         * trans-equivalence.c (g95_layout_local_equiv): As above.
7326
7327 2003-06-24  Steven G. Kargl  <kargls@attbi.com>
7328
7329         * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg):
7330         remove last remains of -fquiet.
7331
7332 2003-06-22  Paul Brook  <paul@nowt.org>
7333
7334         * resolve.c (resolve_operator): Don't fail if we can't simplify.
7335         (g95_resolve_expr): Ditto.
7336         (resolce_code): Mark as static.
7337         * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the
7338         gimplifer doesn't (yet).
7339
7340 2003-06-20  Paul Brook  <paul@nowt.org>
7341
7342         * g95.h: Add ST_PAUSE and EXEC_PAUSE.
7343         * match.c (g95_match_if): Add ST_PAUSE.
7344         (g95_match_stopcode): New function.
7345         (g95_match_pause, g95_match_stop): Use it.
7346         * parse.c (g95_ascii_statement): Handle ST_PAUSE.
7347         (decode_stmt, next_statement, parse_executable): Ditto.
7348         * resolve.c (resolve_code): Ditto.
7349         * st.c (g95_free_statement): Ditto.
7350         * trans-stmt.c (g95_trans_pause): New function.
7351         * trans-stmt.h: Declare it.
7352         * trans.c (g95_trans_code): Use it.
7353         * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string):
7354         Declare.
7355         (g95_build_builtin_function_decls): Initialize them.
7356         * trans.h: Ditto.
7357         * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE.
7358
7359 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7360
7361         * io.c (g95_match_open , g95_match_close, g95_match_inquire,
7362         match_filepos): Fix error handling.
7363
7364 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7365
7366         * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size):
7367         Add assertions on arguments.
7368         * resolve.c (expression_shape): Remove useless &.
7369         * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits,
7370         g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset,
7371         g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent,
7372         g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range
7373         g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing,
7374         g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions.
7375         (g95_simplify_not, g95_simplify_scale): Add assertions.
7376
7377 2003-06-15  Paul Brook  <paul@nowt.org>
7378
7379         Clean up stuff to work with the ssa optimizers.
7380         * convert.c (convert): Handle BOOLEAN_TYPEs.
7381         * f95-lang.c (g95_truthvalue_conversion): Implement.
7382         * trans-array.c (g95_trans_array_constructor_value): Group multiple
7383         scalar values.
7384         * trans.h (g95_truthvalue_conversion): Declare.
7385         * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants.
7386         * trans-stmt.c (g95_trans_character_select): Don't create array
7387         assignments.  Mark labels as indirect jump targets.
7388         * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes.
7389         (g95_get_dtype_cst): Handle LOGICAL types.
7390
7391 2003-06-14  Paul Brook  <paul@nowt.org>
7392
7393         * f95-lang.c (g95_gimplify_expr): New function.
7394         * trans-array.c (g95_trans_array_constructor_value): Don't create
7395         array assignments.
7396         (g95_conv_expr_descriptor): Rename simple->gimple.
7397         * trans-expr.c (conv_expr_op): Use proper logical operators.
7398         * trans-intrinsic.c (build_fixbound_expr): New function.
7399         (build_fix_expr): Ditto.
7400         (g95_conv_intinsic_aint): Use them. Use builtin functions.
7401         (g95_conv_intrinsic_function): Add FLOOR and CEILING.
7402
7403 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7404
7405         * array.c (g95_compare_array_spec): Remove unreachable code.
7406         * expr.c (g95_copy_expr): Likewise.
7407         * intrinsic.c (g95_convert_type): Likewise.
7408         * misc.c (g95_code2string): Likewise.
7409         * simplify.c (g95_simplify_ishft, g95_simplify_real,
7410         g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise.
7411         * trans-stmt.c (g95_trans_select): Likewise.
7412         * primary.c (extend_ref): Add an assertion.
7413         * simplify.c (g95_convert_constant): Add const.
7414         * intrinsic.h: Remove g95_check_x_ni.
7415         * f95-lang.c (g95_finish): Call g95_release_include_path.
7416
7417 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7418
7419         * resolve.c (resolve_contained_functions): Fix typo introduced on
7420         2003-01-13.
7421
7422 2003-06-09  Paul Brook  <paul@nowt.org>
7423
7424         * g95.h: Include system.h not hwint.h.
7425         * many: use safe-ctype.h not ctype.h.  Change isalpha -> ISALPHA, etc.
7426         * misc.c (g95_getmem): Use xmalloc/memset instead of calloc.
7427
7428 2003-06-09  Paul Brook  <paul@nowt.org>
7429
7430         * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables.
7431         * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE.
7432         * trans-decl.c (g95_add_decl_to_functions): Make non-static.
7433         (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects.
7434         (g95_generate_function_code): Translate COMMON and EQUIVALENCE
7435         objects.
7436         * trans.h (g95_trans_equivalence, g95_trans_common,
7437         g95_add_decl_to_function): Declare.
7438         * trans-common.c, trans-equivalence.c: New files.
7439
7440 2003-06-08  Steven Bosscher  <steven@gcc.gnu.org>
7441
7442         * intrinsic.c (g95_intrinsic_extension): Remove.
7443         (add_functions): Substitute g95_check_x for g95_check_x_ni
7444         everywhere.
7445         (g95_init_expr_extensions): New function.
7446         (g95_intrinsic_func_interface): Use it.
7447         * intrinsic.h: Remove extern decl for g95_intrinsic_extension.
7448         * check.c (g95_check_digit, g95_check_huge, g95_check_kind,
7449         g95_check_precision, g95_check_present, g95_check_radix,
7450         g95_check_range, g95_check_selected_real_kind): Do not set
7451         g95_intrinsic_extension.
7452         (g95_check_x_ni): Remove now duplicate of g95_check_x.
7453
7454         * expr.c (check_inquiry): Add FIXME, fixup some code style.
7455
7456 2003-06-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7457
7458         * g95.h (ref_type): Name this type explicitly.
7459         * module.c (MIO_NAME): Add specialisations of mio_name.
7460         (mio_symbol_attribute, mio_typespec, mio_array_ref,
7461         mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them.
7462         (ab_attribute): Name this type explicitly.
7463         (mio_symbol_attribute, mio_expr): Add cast to call to find_enum.
7464
7465 2003-06-05  Kejia Zhao  <kejia_zh@yahoo.com.cn>
7466
7467         * trans-intrinsic.c (g95_conv_allocated): New function.
7468         (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work.
7469
7470 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
7471
7472         * f95-lang.c: Don't include g95-support.h
7473         (g95_mark_addressable): Add prototype.
7474         (g95_init_decl_processing): Remove C front end hack.
7475         * f95-tree.c: Remove file.
7476         * support.c: Remove file.
7477         * g95-support.h: Remove file.
7478         * trans-types.c (g95_init_types): Set up boolean
7479         type related tree nodes.
7480         * Make-lang.in: Remove rules for dead files and
7481         dependencies on them.
7482
7483 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
7484
7485         * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final
7486         C front end dependency.  Also, convert.c does not depend on
7487         g95-support.h anymore.
7488         * convert.c: Don't include c-common.h and g95-support.h
7489         * f95-lang.c: Don't inlude c-common.h and c-common.def (3x).
7490         (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p,
7491         stmts_are_full_exprs_p, current_stmt_tree,
7492         current_scope_stmt_stack): Remove.
7493         * g95-support.h (unsigned_conversion_warning): Kill proto.
7494         (boolean_type_node, boolean_true_node, boolean_false_node):
7495         Don't define here.  Instead, make then true tree nodes in
7496         trans-types.
7497         * support.c (c_global_trees): Die, C front end, die!!!
7498         (g95_init_c_decl_hacks): Don't touch intmax_type_node,
7499         uintmax_type_node, string_type_node and const_string_type_node.
7500         (decl_constant_value, overflow_warning): Make static functions.
7501         They are in death row too, though.
7502         (default_conversion, c_expand_asm_operands): Remove.
7503         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c,
7504         trans.c: Don't include c-common.h.
7505         * trans-types.c (boolean_type_node, boolean_true_node,
7506         boolean_false_node): Make them real tree nodes.
7507         * trans-types.h (intmax_type_node, string_type_node,
7508         const_string_type_node): Hack to work around C dependencies
7509         in builtin-types.def.
7510
7511 2003-06-04  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7512
7513         * decl.c (decl_types): Add some iterators-like sentinels.
7514         * decl.c (match_attr_spec): Use them.
7515         Use "decl_types" instead of "int".
7516         Add cast in call to g95_match_strings.
7517         * dump-parse-tree.c (g95_show_namespace):  Use "g95_intrinsic_op"
7518         instead of "int".
7519         * g95.h (g95_intrinsic_op): Add some iterators-like sentinels.
7520         (g95_interface_info): Use "g95_intrinsic_op".
7521         * dump-parse-tree.c (g95_show_namespace): Use them.
7522         * interface.c (g95_check_interfaces): Use them.
7523         * module.c (read_module, write_module): Use them.
7524         * symbol.c (g95_get_namespace, g95_free_namespace): Use them.
7525         Use "g95_intrinsic_op".
7526         * interface.c (check_operator_interface): Use "g95_intrinsic_op".
7527         Add a default case in switch statement.
7528         * intrinsic.h (g95_generic_isym_id): Moved to...
7529         * g95.h (g95_generic_isym_id): here.
7530         (g95_intrinsic_sym): Use "g95_generic_isym_id".
7531         * intrinsic.c (make_generic): Use "g95_generice_isym_id".
7532         * trans-intrinsic.c (g95_intrinsic_map_t,
7533          g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id".
7534         * match.c (g95_match_intrinsic_op): Add cast in call to
7535         g95_match_strings.
7536
7537 2003-06-03  Steven Bosscher  <steven@gcc.gnu.org>
7538
7539         * support.c (skip_evaluation, warn_conversion, lvalue_p,
7540         lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment,
7541         constant_fits_type_p, convert_and_check,
7542         unsigned_conversion_warning): Remove these ugly remnants
7543         we inherited from the C front end.
7544         (function_types_compatible): Remove '#if 0'-edcode.
7545         (build_modify_expr): Likewise.
7546         (convert_for_assignment): Don't use the deceased functions.
7547         The parameter fundecl is now unused.
7548         (decl_constant_value): Always just return decl.  In fact
7549         this function is not used at present, but it might be in
7550         the future, when we start using the tree inliner.
7551         (overflow_warning, default_conversion, c_expand_asm_operands):
7552         Abort when these are called, they are part of the C type
7553         checking implementation and therefore poison to Fortran.
7554
7555 2003-06-04  Steven Bosscher  <steven@gcc.gnu.org>
7556
7557         * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on
7558         c-pretty-print.o and c-dump.o.  Add a comment on why we
7559         depend on c-semantics.c.
7560         * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN):
7561         Don't use the C front end tree dumper hook to dump the
7562         language specific tree representation -- we don't have
7563         one.  So instead, inherit the default langhook.
7564
7565 2003-06-02  Paul Brook  <paul@nowt.org>
7566
7567         * trans-expr.c (g95_conv_variable): Remove incorrent assertion.
7568
7569 2003-06-02  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7570
7571         * check.c (g95_check_associated): Use proper types.  Remove
7572         extraneous argument in call to g95_error().
7573
7574 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
7575
7576         * resolve.c (resolve_operator): Make logical operands convert to the
7577         type with higher kind.
7578
7579 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
7580
7581         * check.c (g95_check_associated): Make sure both pointer and target has
7582         the same type and rank. Null pointer or array section with vector
7583         subscript as target are not allowed.
7584         * trans.h: Declare gfor_fndecl_associated.
7585         * trans-decl.c: (g95_build_builtin_function_decls): Initialize
7586         gfor_fndecl_associated.
7587         * trans-intrinsic.c (g95_conv_associated): New function.
7588         (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work.
7589
7590 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
7591
7592         * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER
7593         according to POINTER itself rather than TARGET.
7594         (g95_conv_expr_descriptor): Make lbound start at 1.
7595         * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify.
7596
7597 2003-06-01  Paul Brook  <paul@nowt.org>
7598
7599         * expr.c (g95_type_convert_binary): Make it match the standard.
7600         * g95.texi: Remove dead link.
7601
7602 2003-06-01  Steven Bosscher  <steven@gcc.gnu.org>
7603
7604         * g95.texi: Cleanup somewhat in preparation for inclusion
7605         in GCC CVS.
7606
7607 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7608             Canqun Yang  <canqun@yahoo.com.cn>
7609
7610         * resolve.c (compare_bound_int, resolve_where_shape): Proper return
7611         type.
7612         (g95_find_forall_index): Return proper value.
7613         (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to
7614         compare the return value from g95_find_forall_index.
7615
7616 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7617         * g95.h, io.c (g95_st_label): Remove "length".
7618         (g95_symtree): Remove "link".
7619         (g95_case): Remove "code".
7620         * arith.c, arith.h (g95_compare_string, g95_convert_integer,
7621         g95_convert_real): Make an argument pointer to const.
7622         * decl.c (colon_seen): Add a TODO.
7623         * interface.c (g95_compare_types): Fix typo.
7624         * interface.c (compare_interfaces): Preserve value of "p".
7625         * intrinsic.c (sort_actual): Remove "i".
7626         * match.c (g95_match_assign): Proper type in call to g95_match().
7627         * parse.c (next_free): Avoid duplicate call due to macro.
7628         * parse.c (check_statement_label): wrong type in call to g95_error.
7629         * primary.c (match_real_constant): Add a TODO.
7630         * resolve.c (resolve_select):  Remove useless conditional.
7631         * simplify.c (g95_simplify_repeat): Proper assignment to
7632         "value.character.string".
7633         * simplify.c (g95_simplify_reshape): Wrong variable in call to
7634         g95_error.
7635
7636 2003-05-20  Canqun Yang  <canqun@yahoo.com.cn>
7637
7638         * trans-stmt.c: Remove unnecessary include file defaults.h.
7639
7640 2003-05-19  Lifang Zeng  <zlf605@hotmail.com>
7641
7642         * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative
7643         stride.
7644         (g95_trans_forall): Allow arbitrary number of FORALL indexes and
7645         actual variables used as FORALL indexes.
7646
7647 2003-05-15  Paul Brook  <paul@nowt.org>
7648
7649         * trans-array.c (g95_trans_static_array_pointer): Use
7650         null_pointer_node.
7651         (g95_trans_deferred_array): Initialize static array pointers.
7652         * trans-expr.c (g95_conv_function_call): Use formal arglist to
7653         correctly pass POINTER and absent CHARACTER arguments.
7654
7655 2003-05-14  Lifang Zeng  <zlf605@hotmail.com>
7656
7657         * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement.
7658         (g95_resolve_forall_body): Resolve FORALL body.
7659         (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL.
7660         (g95_resolve_assign_in_forall): Resolve assignment inside FORALL.
7661         (g95_find_forall_index): Check whether the FORALL index appears in
7662         the expression or not.
7663         (resolve_code): Modified.
7664
7665 2003-05-14  Paul Brook  <paul@nowt.org>
7666
7667         * iresolve.c (g95_resolve_spread): Convert ncopies to index_type.
7668
7669 2003-05-13  Paul Brook  <paul@nowt.org>
7670
7671         * trans-types.c (g95_max_array_element_size): Now a tree node.
7672         (g95_init_types): Work out max size properly.
7673         (g95_get_dtype_cst): Modify to match.
7674
7675 2003-05-11  Paul Brook  <paul@nowt.org>
7676
7677         * trans-io.c (add_case): Create a label decl for case labels.
7678
7679 2003-05-11  Paul Brook  <paul@nowt.org>
7680
7681         * arith.c (g95_integer_index_kind): New variable.
7682         * f95-lang.c (g95_init): Move frontend initialization here ...
7683         (g95_post_options): ... from here.
7684         * g95.h (g95_index_integer_kind, g95_resolve_index): Declare.
7685         * intrinsic.c (add_functions): Use index kinds.
7686         * iresolve.c: Convert to index_kind where needed.
7687         * resolve.c (g95_resolve_index): Make public, use index_kind.
7688         (resolve_array_ref): Adjust to match.
7689         * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind.
7690         * trans-stmt.c: Ditto.
7691         * trans-types.c: Ditto.
7692         * trans-types.h (g95_array_index_kind): Remove declaration.
7693         * trans-expr.c (g95_conv_expr_present): Use null_pointer_node.
7694
7695 2003-05-07  Paul Brook  <paul@nowt.org>
7696
7697         * trans-const.c (g95_conv_mpz_to_tree): Typecast constant.
7698         * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type
7699         of bound indices.
7700
7701 2003-05-07  Paul Brook  <paul@nowt.org>
7702
7703         * trans-array.c (trans_static_array_pointer,
7704         g95_trans_array_constructor_value, g95_conv_array_initializer,
7705         g95_conv_structure): CONSTRUCTOR nodes only have one operand.
7706         (g95_add_loop_ss_code): Convert subscripts to the correct type.
7707         * trans-stmt.c (g95_trans_character_select): Ditto.
7708         * trans-types.c (g95_init_types): Ditto.
7709
7710 2003-05-07  Steven Bosscher  <steven@gcc.gnu.org>
7711
7712         * f95-lang.c (expand_function_body): Use input_line, not lineno.
7713         * trans-decl.c (g95_generate_function_code,
7714         g95_generate_constructors): Likewise.
7715         * trans.c (g95_trans_runtime_check, g95_add_block_to_block,
7716         g95_get_backend_locus, g95_set_backend_locus, g95_trans_code):
7717         Likewise.
7718
7719 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
7720         * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type
7721         with components point to the DERIVED type itself, and two DERIVED
7722         type with components point to each other.
7723         * trans-expr.c (g95_conv_componet_ref): Modified
7724
7725 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
7726         * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into
7727         null_pointer_node.
7728         (g95_trans_pointer_assign): Implement Nullify.
7729
7730 2003-05-01  Paul Brook  <paul@nowt.org>
7731
7732         * trans-array.c (g95_walk_function_expr): Cope with NULL esym.
7733         * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions.
7734
7735 2003-05-01  Paul Brook  <paul@nowr.org>
7736
7737         * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c,
7738         trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and
7739         IS_EMPTY_STMT.
7740
7741 2003-05-01  Canqun Yang  <canqun@yahoo.com.cn>
7742
7743         * trans-stmt.c (g95_trans_integer_select): Add a parameter to build
7744         CASE_LABEL_EXPR.
7745
7746 2003-04-28  Paul Brook  <paul@nowt.org>
7747
7748         * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big
7749         as their kind suggests.
7750         (g95_resolve_reshape): Ditto.
7751
7752 2003-04-28  Chun Huang  <compiler@sohu.com>
7753
7754         * trans-expr.c (g95_conv_substring_expr): New function.
7755         (g95_conv_expr): Use it.
7756
7757 2003-04-28  Paul Brook  <paul@nowt.org>
7758
7759         * iresolve.c (g95_resolve_transpose): Make it match the
7760         implementation.
7761         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE.
7762
7763 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
7764
7765         * trans-types.c (g95_add_field_to_struct): New function to
7766         add a field to a UNION_TYPE or RECORD_TYPE.
7767         * trans-types.h (g95_add_field_to_struct): Prototype.
7768         (g95_get_derived_type): Use g95_add_field_to_struct to add
7769         components.
7770         * trans-io.c (g95_add_field): Remove.
7771         (ADD_FIELD): Use new g95_add_field_to_struct function.
7772         (ADD_STRING): Likewise.
7773         * trans-stmt.c (g95_trans_select): Likewise.
7774         (g95_add_field): Remove duplicated function.
7775
7776 2003-04-18  Canqun Yang  <canqun@yahoo.com.cn>
7777
7778         Port implementation for CHARACTER SELECT from Andy's tree.
7779         * trans-stmt.c (g95_trans_character_select): Implement character
7780         select. (g95_add_field): New function.
7781         * trans-decl.c: Declare 'gfor_gndecl_select_string'.
7782         (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'.
7783         * g95.h (struct g95_case): Add field 'int n'.
7784         * trans.h: Declare 'gfor_fndecl_select_string'.
7785
7786 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
7787
7788         * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove.
7789         (g95_insert_bbd): Die on duplicates.
7790         * g95.h (g95_insert_bbt_with_overlap): Delete prototype.
7791
7792 2003-04-14  Steven Bosscher  <steven@gcc.gnu.org>
7793
7794         * g95.texi: Require GMP 4.0 -- like we actually
7795         do.  Explain the testsuite and what-goes-where.
7796         Don't use undefined texinfo symbol.  Break very
7797         long line.  Remove finished item from the list
7798         of open projects.
7799
7800 2003-04-11  Canqun Yang  <canqun@yahoo.com.cn>
7801
7802         * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries
7803         LOGICAL type.
7804
7805 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
7806
7807         * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL.
7808         (g95_trans_forall_body): New function.
7809
7810 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
7811
7812         * resolve.c (resove_where): New function.
7813         (resolve_where_shape): New function.
7814         (resolve_code): Add call to 'resolve_where'
7815         * trans-stmt.c (g95_trans_where): Modified.
7816         (g95_trans_where_2): New function.
7817         (g95_trans_where_assign): New function.
7818         (g95_evaluate_where_mask): New function.
7819         (g95_add_to_stmt_list): New function.
7820         (g95_get_temp_expr): New function.
7821         * trans.h (where_stmt_list): New structure.
7822
7823 2003-04-10  Paul Brook  <paul@nowt.org>
7824
7825         * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
7826         (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto.
7827
7828 2003-04-10  Steven Bosscher  <steven@gcc.gnu.org>
7829
7830         Update after mainline -> tree-ssa-branch merge.
7831         * f95-lang.c (g95_mark_addressable): Update put_var_into_stack
7832         call.
7833         (g95_init): Update for new lang_hooks definition.
7834         (g95_post_options): New langhook.
7835         (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options.
7836         * scanner.c (g95_new_file): Comment update.
7837
7838 2003-04-09  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7839
7840         * g95.h, lang-options.h: Add -Wimplicit-interface.
7841         * options.c (g95_init_options, g95_parse_arg): Set it.
7842         * interface.c (check_intents): Warn about call with implicit
7843         interface.
7844         * resolve.c (resolve_unknown_f, resolve_unknown_s): Call
7845         g95_procedure_use.
7846
7847 2003-04-05  Paul Brook  <paul@nowt.org>
7848
7849         * iresolve.c (g95_resolve_spread): Don't resole based on type.
7850         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD.
7851
7852 2003-03-29  Paul Brook  <paul@nowt.org>
7853
7854         * iresolve.c (g95_resolve_pack): Don't bother resolving based on type.
7855         (g95_resolve_unpack): Ditto.
7856         * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function.
7857         (g95_conv_intrinsic_function): Use it.  Remove PACK and UNPACK.
7858         (g95_is_intrinsic_libcall): Add PACK and UNPACK.
7859
7860 2003-03-25  Paul Brook  <paul@nowt.org>
7861
7862         * arith.c (g95_unary_user, g95_user): Remove dead functions.
7863         * arith.h: Ditto.
7864         * array.c (g95_free_array_ref): Ditto.
7865         * g95.h: Ditto.
7866         * symbol.c (g95_use_derived_tree): Ditto.
7867         * intrinsic.c (add_functions): Use simplification for SCALE.
7868         * primary.c (g95_match_rvalue): Test sym, not symtree.
7869
7870 2003-03-25  Paul Brook  <paul@nowt.org>
7871
7872         * trans-decl.c (build_function_decl): Add parameter before it gets
7873         turned into a constant.
7874         * iresolve.c (g95_resolve_eoshift): Resolve to a useful name.
7875         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT.
7876         * trans-decl.c (g95_create_module_variable): Don't pushdecl constants.
7877
7878 2003-03-22  Paul Brook  <paul@nowt.org>
7879
7880         * trans-array.c (g95_conv_array_initializer): Allow scalar
7881         expressions.
7882         * trans-decl.c (g95_finish_var_decl): Result variables are not
7883         module variables.
7884         * trans-intrinsic.c (g95_conv_intrinsic_transfer): New function.
7885         (g95_conv_intrinsic_function): Use it.
7886         * trans-types.h (g95_type_spec): Remove dead declaration.
7887
7888 2003-03-21  Paul Brook  <paul@nowt.org>
7889
7890         * trans-decl.c (g95_build_function_decl): Mark string parameters.
7891
7892 2003-03-20  Paul Brook  <paul@nowt.org>
7893
7894         * trans-decl.c (g95_build_function_decl): Put character length
7895         parameters at the end of the function declaration.
7896         * trans-expr.c (g95_conv_function_call): Ditto.
7897         * trans-types.c (g95_get_function_type): Ditto.
7898
7899 2003-03-20  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7900
7901         * resolve.c (resolve_formal_arglist): Don't impose intent for
7902         procedure arguments of pure functions.
7903         (resolve_select): Remove redundant assignment.
7904
7905 2003-03-19  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
7906
7907         * arith.c (validate_logical), g95.h, options.c (g95_init_options):
7908         Remove option l1.
7909         * g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const.
7910         * iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add
7911         const.
7912         * lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls.
7913         Order list.
7914         * symbol.c (g95_add_type): Fix typo in comment.
7915
7916
7917 2003-03-16  Paul Brook  <paul@nowt.org>
7918
7919         * dump-parse-tree.c (g95_show_code_node): Print resolved sym name.
7920         * expr.c (g95_build_call): Remove.
7921         * f95-lang.c (puchdecl_top_level): New function.
7922         * g95.h (g95_code): Store resolved symbol, not just the name.
7923         * intrinsic.c (g95_intrinsic_namespace): New global namespace.
7924         (g95_intirinsic_init_1, g95_intrinsic_done_1): Use it.
7925         (g95_get_intrinsic_sub_symbol): New function.
7926         * iresolve.c (g95_resolve_cpu_time): Use it.
7927         (g95_resolve_random_number): Ditto.
7928         * resolve.c: Set code->resolved_sym instead of code->sub_name.
7929         * trans-decl.c (g95_get_extern_function_decl): Give external decls
7930         the correct DECL_CONTEXT.  Add global symbold to the global scope.
7931         * trans-stmt.c (g95_trans_code): Remove hacks now the fronted is
7932         fixed.
7933
7934 2003-03-16  Paul Brook  <paul@nowt.org>
7935
7936         * g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays.
7937         * options.c (g95_parse_arg): Ditto.
7938         * module.c (mio_symbol_attribute): Handle the always_explicit bit.
7939         * resolve.c (resolve_formal_arglist): The always_explicit sould be set
7940         for the procedure, not the parameter.
7941         * trans-array.c (g95_trans_g77_array): New function.
7942         (g95_trans_assumed_size): Use it.
7943         (g95_trans_dummy_array_bias): Ditto.
7944         (g95_conv_array_parameter): Handle g77 arrays. Move existing body ...
7945         (g95_conv_expr_descriptor): ... to here.  Update callers.
7946         * trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays.
7947         (g95_get_symbol_decl): Avoid processing g77 arrays multiple times.
7948         * trans-expr.c (g95_conv_function_call): Handle g77 arrays.
7949         * trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays.
7950         * trans-types.c (g95_is_nodesc_array): Handle g77 arrays.
7951         (g95_sym_type): Ditto.
7952
7953 2003-03-15  Paul Brook  <paul@nowt.org>
7954
7955         * trans-array.c (g95_walk_elemental_function_args): Don't amputate the
7956         first chain.
7957         * trans-expr.c (g95_conv_function_call): Use the resolved symbol.
7958
7959 2003-03-14  Paul Brook  <paul@nowt.org>
7960
7961         * trans-array.c (g95_array_is_packed): Remove.
7962         (g95_conv_array_base): Correctly handle all descriptorless cases.
7963         (g95_conv_array_stride): Use descriptorless strides.
7964         (g95_trans_dummy_array_bias): Don't always repack the array.
7965         (g95_build_dummy_array_decl): Automatic dummy arrays are only partial
7966         packed.
7967         * trans-types.c (g95_get_nodesc_array_type): Differentiate between
7968         dummy and non-dummy arrays...
7969         (g95_sym_type, g95_get_derived_type): ... like these.
7970         (g95_get_array_type_bounds): Allow discontiguous arrays.
7971
7972 2003-03-12  Paul Brook  <paul@nowt.org>
7973
7974         * array.c (g95_resolve_array_spec): Fix comment.
7975         * g95.h (symbol_attributes): New flag always_explicit.
7976         * resolve.c (resolve_formal_arglist): Set it always_explicit.
7977         * iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify.
7978         * trans-array.c (g95_conv_descriptor_dimension): Remove dead assert.
7979         (g95_trans_array_bounds): Allow assumed shape arrays.
7980         (g95_trans_repack_array): Remove.
7981         (g95_trans_dummy_array_bias): Rewite to use descriptorless arrays.
7982         * trans-decl.c (g95_build_qualified_array): Only ignore absent
7983         bounds for assumed size arrays.
7984         (g95_build_dummy_array_decl): Use descriptorless arrays.
7985         * trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays.
7986         (g95_trans_pointer_assign): Fix typo.
7987         * trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead
7988         code.
7989         (g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays.
7990         * trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays.
7991         Also modify callers.
7992         * trans-types.h (g95_get_nodesc_array_type): Modify prototype.
7993
7994 2003-03-08  Paul Brook  <paul@nowt.org>
7995
7996         * trans-array.c (g95_walk_elemental_functions): Don't reverse the SS.
7997         (g95_conv_array_ubound): Provide dummy value for assumed size arrays.
7998         * resolve.c (compare_spec_to_ref): Allow full array sections.
7999
8000 2003-03-08  Paul Brook  <paul@nowt.org>
8001
8002         * expr.c (g95_simplify_expr): Also simplify array index and
8003         substring expressions.
8004         * resolve.c (compare_spec_to_ref): Check for assumed size bounds.
8005         * trans-array.c (g95_trans_array_bounds): New function.
8006         (g95_trans_auto_array_allocation): Use it.
8007         (g95_trans_assumed_size): Rewrite.
8008         * trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
8009         (gfor_fndecl_repack): Remove.
8010         (g95_build_qualified_array): Handle absent upper bounds.
8011         (g95_build_dummy_array_decl): Assumed shape arrays are descriptorless.
8012         (g95_get_symbol_decl): Update.
8013         (g95_build_intrinsic_function_decls): Initialize new decls.
8014         * trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
8015         (gfor_fndecl_repack): Remove.
8016         * trans-io.c (g95_build_io_library_fndecls): Correct prototypes.
8017         * trans-types.c: (g95_build_array_type): Merge duplicated code..
8018         (g95_get_nodesc_array_type): Handle absent bounds.
8019         * trans-types.h (g95_get_nodesc_array_type): Declare.
8020
8021 2003-03-04  Paul Brook  <paul@nowt.org>
8022
8023         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including
8024         builtin-types.def.
8025
8026 2003-03-02  Paul Brook  <paul@nowt.org>
8027
8028         * options.c (g95_init_options): Drfault to 1.
8029         (g95_pasrse_arg): Add -frepack-arrays, use strcmp.
8030         * trans-array.c (g95_conv_array_data, g95_conv_array_base,
8031         g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound):
8032         Handle non-constant size automatic arrays.
8033         (g95_conv_section_upper_bound, g95_conv_section_startstride): Use
8034         generic bound functions.
8035         (g95_trans_auto_array_allocation): Don't create a descriptor.
8036         (g95_trans_assumed_size): New function (broken).
8037         (g95_trans_dummy_array_bias): Remove unused var.
8038         * trans-array.h (g95_trans_assumed_size): Declare.
8039         * trans-decl.c (create_index_var): New fuction.
8040         (g95_build_qualified_array): New function.
8041         (g95_get_symbol_decl): Use it.
8042         (g95_trans_deferred_vars): Handle assumed shape seperately.
8043         * trans-types.c (get_element_type): Handle heap allocated arrays.
8044         (g95_is_nodesc_array): Include non-const size arrays.
8045         (g95_get_nodesc_array_type): Ditto.
8046
8047 2003-02-23  Paul Brook  <paul@nowt.org>
8048
8049         * trans-array.c (g95_array_init_size): Should use stride, not size of
8050         last dimension.
8051
8052 2003-02-18  Paul Brook  <paul@nowt.org>
8053
8054         * trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check
8055         after intrinsic function check.
8056
8057 2003-02-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
8058
8059         * io.c (match_io): Fix missing return value and remove useless
8060         assignment.
8061         * match.c (g95_match): Remove useless assignment.
8062         * module.c (parse_string):  Remove useless post increment.
8063         * simplify.c (g95_simplify_verify): Remove useless assignment.
8064
8065 2003-02-15  Paul Brook  <paul@nowt.org>
8066
8067         * expr.c (restricted_intrinsic): Handle bad values gracefully.
8068         * g95.h (symbol_attribute): Add referenced member.
8069         (g95_symbol): Add dummy_order member.
8070         (g95_set_sym_referenced): Declare.
8071         * match.c (g95_match_assignment, g95_match_call): Use it
8072         * primary.c (match_actual_arg, g95_match_rvalue,
8073         g95_match_variable): Ditto.
8074         * symbol.c (next_dummy_order): New variable.
8075         (g95_set_sym_referenced): New function.
8076         (check_done): New function.
8077         (g95_add_*): Use it.
8078         * trans-decl.c: Make formatting conform to GCC standards.
8079         (g95_defer_symbol_init): Add dummy variables in the right order.
8080         (g95_get_symbol_decl): Only accept referenced variables.
8081         (g95_create_module_variable): Module variables are always required.
8082         (generatr_local_decls): New function.
8083         (generate_local_vars): New function.
8084         (g95_generate_function_code): Use it.
8085
8086 2003-02-13  Paul Brook  <paul@nowt.org>
8087
8088         * trans-decl.c (g95_conv_struct_cons): Remove.
8089         (g95_get_symbol_decl): Use g95_conv_expr for structure initializers.
8090         * trans-expr.c (g95_conv_structure): New function.
8091         (g95_conv_expr): Use it.
8092
8093 2003-02-09  Paul Brook  <paul@nowt.org>
8094
8095         * trans-array.c (g95_array_init_size): Don't evaluate the linit
8096         expressions multiple times.
8097         (g95_trans_auto_arry_allocation): Use pointer not tmp.
8098
8099 2003-02-08  Paul Brook  <paul@nowt.org>
8100
8101         * module.c (mio_symtree_ref): Declare as static.
8102         (mio_expr): Remove dead code.
8103         (read_module): Set the symtree link for fixups.
8104         * trans-intrinsic.c (g95_conv_intrinsic_round): Rename...
8105         (build_round_expr): ... to this.
8106         (g95_conv_intrinsic_aint): New function.
8107         (g95_conv_intrinsic_function): Use it.
8108
8109 2003-02-08  Paul Brook  <paul@nowt.org>
8110
8111         * trans-array.c (g95_trans_array_constructor_value): Use the acutal
8112         offset after modificaton, not the increment expression.
8113         * dependency.c: Kill excess whitespace.
8114
8115 2003-02-07  Sanjiv Gupta  <sanjivg@noida.hcltech.com>
8116
8117         * dependency.h: Remove some function declarations.
8118         * dependency.c (get_no_of_elements): Change this function not to
8119         return int.
8120         * other: Add comments for all modified functions.
8121
8122 2003-02-06  Paul Brook  <paul@nowt.org>
8123
8124         * g95spec.c (lang_specific_functions): Fix initializer warning.
8125         * dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree
8126         for structure type names.
8127         * trans-decl.c (g95_cons_structure_cons): New function.
8128         (g95_get_symbol_decl): Use it.
8129         * trans-expr.c (g95_conv_component_ref): Remove duplicate pointer
8130         referencing code.
8131
8132 2003-02-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
8133
8134         * resolve.c (compare_cases): Add const to casts.
8135
8136 2003-01-30  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
8137
8138         * g95.h (g95_check_f): Change a1 to f1m.
8139         * intrinsic.c (add_sym_1m, check_specific,
8140         g95_intrinsic_func_interface): Use it.
8141
8142         * module.c (init_pi_tree): Remove useless cast.
8143         (fp2): Fix argument type.
8144
8145         * parse.c (parse_select_block): Add comment.
8146
8147 2003-02-05  Toon Moene  <toon@moene.indiv.nluug.nl>
8148
8149         * lang-options.h: Fix warning involving C90 concatenated
8150         strings.
8151
8152 2003-02-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8153             Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
8154
8155         * io.c (format_asterisk): Complete initializer to kill warning.
8156         * arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND,
8157         DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines.
8158         (g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the
8159         new defines to complete initializers.  Kills all warnings.
8160
8161         * Make-lang.in: Comment cleanup.
8162
8163 2003-02-05  Paul Brook  <paul@nowt.org>
8164
8165         * array.c (g95_free_constructor): Handle NULL expressions.
8166         * resolve.c (resolve_structure_cons): Ditto.
8167         * decl.c (g95_match_null): New Function.
8168         (variable_decl): Use it.
8169         * module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE.
8170         * primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE.
8171         * trans-types.c (g95_set_decl_attributes): Remove empty function.
8172
8173 2003-02-05  Paul Brook  <paul@nowt.org>
8174
8175         * trans.h (build1_v): New macro.
8176         (build_v): Remove pointless and incorrect prototype.
8177         * various: Use build1_v for GOTO_EXPR and LABEL_EXPRs.
8178         * f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args.
8179
8180 2003-02-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8181
8182         * Make-lang.in (F95_OBJS): Remove one more dead file.
8183
8184 2003-02-01  Paul Brook  <paul@nowt.org>
8185
8186         * lang-specs.h: Don't pass -ffixed-form to the linker.
8187         * trans-decl.c (g95_generate_function_code): Clear saved decl chain.
8188
8189 2003-02-01  Paul Brook  <paul@nowt.org>
8190
8191         * Make-lang.in (F95_OBJS): Remove dead files.
8192         * trans-array.c (g95_array_init_size): Do the right thing when
8193         ubound=NULL.
8194         * trans-decl.c (g95_generate_function_code): Initialize deffered
8195         symbol list before translating contained subroutines.
8196         * trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute
8197         scalar invariant values here...
8198         (g95_conv_variable, g95_conv_function_call): ... instead of here ...
8199         * trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here.
8200
8201 2003-01-29  Paul Brook  <paul@nowt.org>
8202
8203         * trans-array.c (g95_add_loop_code): Put pre code in the right block.
8204         (g95_walk_elemental_function_args): Reverse chains before adding.
8205         (g95_reverse_ss): Move about a bit.
8206         * trans-expr.c (g95_conv_function_call): Handle scalar intrinsic
8207         function arguments.
8208
8209 2003-01-28  Paul Brook  <paul@nowt.org>
8210
8211         * intrinsic.c (resolve_intrinsic): Use correct union member.
8212         * trans-array.c (g95_trans_dummy_array_bias): Don't touch absent
8213         parameters.
8214         * trans-decl.c (g95_get_symbol_decl): Don't translate initializers for
8215         use associated variables.
8216         * trans-intrinsic.c (g95_conv_intrinsic_present): Move body ...
8217         * trans-expr.c (g95_conv_expr_present): ... to here.
8218         * trans.h: Declare it.
8219         * trans-types.c (g95_sym_type): Assume subroutine if not specified.
8220
8221 2003-01-28  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
8222
8223         * array.c (expand_iterator): Suppress useless assignment.
8224         * decl.c (match_char_spec): Ditto.
8225         * io.c (match_io_iterator): Ditto.
8226         * primary.c (match_real_constant): Ditto.
8227         * interface.c (fold_unary, g95_free_interface, g95_extend_expr):
8228         Ditto.  Also, use g95_intrinsic_op not int for intrinsic operators.
8229         * matchexp.c (match_add_operand, match_level_5): Likewise.
8230         * module.c (parse_atom, find_enum): Likewise.
8231         * resolve.c: move #include <string.h>
8232         (resolve_select): Fix serious typo.
8233
8234 2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.n>
8235
8236         * Make-lang.in: Don't build with broken tree-ssa-pre.
8237
8238 2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8239
8240         * resolve.c (resolve_index): Add a TODO.
8241         * symbol.c: Remove useless "#include <ctype.h>".
8242
8243 2003-01-27  Paul Brook  <paul@nowt.org>
8244
8245         * check.c (check_rest): Allow different type kinds as an extension.
8246         * g95.h (g95_resolve_f): Add f1m.
8247         * intrinsic.c (add_sym_1m, resolve_intrinsic): Use it.
8248         * intrinsic.h: Chenge prototypes for MIN and MAX.
8249         * iresolve.c (g95_resolve_minmax): New function.
8250         (g95_resolve_min, g95_resolve_max): Use it.
8251         * trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate
8252         arguments once.
8253         (g95_conv_intrinsic_present): Fix logic.
8254
8255 2003-01-27  Steven Bossche  <s.bosscher@student.tudelft.nl>
8256
8257         * g95.h (g95_case): Don't be a tree, be a double linked list.
8258         * match.c (match_case_selector): Remove redundant semantics check.
8259         Clean up a few goto's to make it a tiny little bit faster.
8260         * resolve.c (case_tree): Die.
8261         (compare_cases): Accept and compare unbounded cases too.
8262         (check_case_overlap): Don't build a tree.  Instead, merge-sort the
8263         whole list of g95_cases passed from resolve_select.
8264         (sane_logical_select): Die.
8265         (check_case_expr): Return FAILURE if a CASE label is of the wrong
8266         type kind.
8267         (resolve_select): Fixup case expression for computed GOTOs, put it
8268         in expr, not expr2, for easier handing in the parse tree dumper and
8269         the code generator.  Rewrite the rest of the function: Kill
8270         unreachable case labels and unreachable case blocks.
8271         * dump-parse-tree.c (g95_show_code_node): Always dump expr for
8272         an EXEC_SELECT, not case2 anymore.
8273         * trans-const.c (g95_conv_constant_to_tree): New function.
8274         (g95_conv_constant): Use it.
8275         * trans-const.h: Declare prototype for the new function.
8276         * trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select,
8277         g95_trans_character_select): New static functions.
8278         (g95_trans_select): Rewrite.
8279
8280 2003-01-26  Paul Brook  <paul@nowt.org>
8281
8282         * intrinsic.c (add_fnctions): Properly add dreal.
8283         * trans-intrinsic.c (g95_conv_intrinsic_present): New function.
8284         (g95_conv_intrinsic_function): Use it.
8285         * trans-io.c (build_dt): Abort on internal files (unimplemented).
8286
8287 2003-01-26  Paul Brook  <paul@nowt.org>
8288
8289         Widespread changes to the handling of symbols in expressions.  These
8290         are now linked via g95_symtree nodes.
8291         * parse.c (g95_fixup_sibling symbols): New function.
8292         (parse_contained): Use it.
8293         * g95.h (symbol_attribute): Add contained.  Indicates a symbol is a
8294         contained procedure that has bee correctly fixed up.
8295         (g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol.
8296
8297 2003-01-24  Paul Brook  <paul@nowt.org>
8298
8299         * trans-array.c (g95_walk_expr): Function result attributes are in
8300         sym->result.
8301         * trans-expr.c (g95_conv_function_call,
8302         g95_trans_arrayfunc_assign): Ditto.
8303         * trans-decl.c (g95_get_symbol_for_expr): Set sym->result.
8304
8305 2003-01-23  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8306
8307         * expr.c (check_restricted): Fix error message.
8308         * symbol.c (free_st_labels): Plug memleak.
8309
8310 2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8311
8312         * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca,
8313         reduce_binary_aa, reduce_binary, eval_intrinsic,
8314         eval_intrinsic_f2): Use typesafe prototypes for eval functions.
8315         * g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions
8316         for typesafe intrinsics helper functions.
8317         (g95_intrinsic_sym): Use them.
8318         * intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1,
8319         add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4,
8320         add_sym_5, add_conv, resolve_intrinsic, do_simplify,
8321         check_specific, g95_intrinsic_func_interface,
8322         g95_intrinsic_sub_interface): Adjust all calls to intrinsics
8323         helper functions.
8324         * trans-decl.c (g95_get_extern_function_decl): Likewise.
8325         * Make-lang.in: Don't disable warnings for strict prototypes
8326         any longer, everything is typesafe now.
8327
8328 2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8329
8330         * bbt.c (duplicate_node): Make static.
8331         * module.c (module_name): Make static.
8332         * scanner.c (include_dirs): Make static.
8333
8334 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8335
8336         Hard coded _gfor_'s should not show up anymore.
8337         * g95.h (PREFIX): New macro.
8338         * iresolve.c (g95_resolve_cpu_time): Use PREFIX, not
8339         hard-coded "_gfor".
8340         (g95_resolve_random_number): Likewise.
8341         * trans-decl.c (g95_build_intrinsic_function_decls): Likewise.
8342         * trans-io.c: Remove 'prefix' macro.  Replace all uses with
8343         the new PREFIX macro from g95.h.
8344
8345 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8346
8347         The troubles of forking... Andy implemented this just now too.
8348         Let's stick to that and keep the trees close.
8349         * g95.h (g95_st_label): 'format' member is now a g95_expr.
8350         * io.c: Revert previous changes.
8351         (g95_match_format): Match the format string as a character
8352         literal expression.
8353         * match.h (g95_statement_label): Declare external.
8354         * parse.c: Revert previous changes.
8355         * symbol.c (g95_free_st_label): Free a g95_expr instead
8356         if a 'char *'.
8357         * trans-io.c: Revert previous changes.
8358         (build_dt): Use set_string to set the format string.
8359
8360 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8361
8362         * io.c (format_string): Make non-static.
8363         (g95_match_format): Remember the format string.
8364         (terminate_io): Add I/O termination for empty I/O lists.
8365         * match.h: Declare external format_string.
8366         * parse.c (check_statement_label): Attack the format string
8367         to a format label for FORMAT statements.
8368         * trans-io.c (g95_add_field): Define prefix macro.  Replace
8369         all uses of PREFIX define with a use of this macro.
8370         (build_dt): Implement formatted I/O for format labels.
8371
8372 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8373
8374         * lang-options.h: Kill "-std=F".
8375         * options.c: Remove unimplemented "-std=F".  Modify
8376         web address.
8377         * misc.c (g95_terminal_width): New function.
8378         * error.c (g95_error_init_1): Use g95_terminal_width.
8379         * g95.h: Add prototype for g95_terminal_width, remove
8380         fmode flag.
8381
8382 2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8383
8384         * Make-lang.in: Fix typo.
8385
8386 2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8387
8388         * g95.h (struct g95_case): Remove unused cruft, new member
8389         'where' to keep track of the locus of the default case.
8390         * match.c (g95_match_case): Add locus to the current case.
8391         (match_case_selector): Likewise.
8392         * parse.c (parse_select_block): Move semantics check for
8393         multiple DEFAULT cases out of here to...
8394         * resolve.c (check_case_overlap): ...here.  Return sooner
8395         when possible.
8396         (check_case_expr): Take two g95_cases now, use to sure the
8397         expression kinds are the same.
8398         (resolve_select): Cleanup.
8399
8400 2003-01-18  Paul Brook  <paul@nowt.org>
8401
8402         * trans-io.c: Fix typos in ported IO work (set_fla[tg]).
8403         * trans-decl.c (g95_set_symbol_decl): Handle non-array result
8404         variables.
8405         (g95_get_extern_function_decl): Put decls in the correct context.
8406
8407 2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8408
8409         * trans-io.c: Port changes from Andy to set ERR flag.
8410
8411 2003-01-17  Paul Brook  <paul@nowt.org>
8412
8413         * trans-array.c: Add various comments.
8414         (g95_ss_terminator): Declare as const.
8415         (g95_walk_expr): Remove first parameter and update all callers.
8416         (g95_walk_op_expr): Initialize scalar SS properly.
8417         * trans-array.h (g95_walk_expr): Update prototype.
8418         * trans-expr.c: Update for new g95_walk_expr.
8419         * trans-intrinsic.c: Ditto.
8420         * trans-io.c: Ditto.
8421         * trans.h: Various comments for SS chains.
8422
8423 2003-01-17  Paul Brook  <paul@nowt.org>
8424
8425         * intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING
8426         and RRSPACING.
8427         * intrinsic.c (add_functions): Use them.
8428         * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto.
8429         * trans-expr.c (g95_conv_expr_lhs): Abort on impossible error.
8430
8431 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8432
8433         Fallout of a small merge conflict:
8434         * intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE).
8435
8436 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8437
8438         * initrinsic.c: New add_sym_* functions for strong typing.
8439         (add_conv): Make prototype strict.
8440         * dump-parse-tree.c, dependency.c: Include config.h
8441         * resolve.c, trans-io.c: Fix typos.
8442
8443 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8444
8445         * dump-parse-tree.c (g95_show_code_node): Show the
8446         condition for a computed GOTO that was transformed
8447         to a SELECT CASE construct.
8448         * resolve.c (check_case_overlap): Revert previous switch
8449         to treaps, it was too slow and didn't catch all trouble.
8450         (resolve_symbol): Be more flexible about module procedures.
8451         * symbol.c (check_conflict): Point to relevant section in
8452         the standard for dubious conflict.  Allow procedure
8453         dummy arguments to be optional again.
8454         * trans-io (add_field): Rename to g95_add_field.  Change
8455         all callers.
8456         * trans-stmt (trans_select): Handle unbounded cases for
8457         integer SELECT CASE constructs.  Fix/add more comment.
8458
8459 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8460
8461         * g95.h: Uses GCC's function attribute macros.
8462         * error.c, module.c, parse.c, g95.h: More function attributes.
8463
8464 2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8465         Forgot a file...
8466         * trans-decl.c (get_label_decl): Use TREE_LINENO instead
8467         of DECL_SOURCE_LINE, and TREE_FILENAME instead of
8468         DECL_SOURCE_FILE.
8469
8470 2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8471
8472         * f95-lang.c (pushdecl): Use TREE_LINENO instead of
8473         DECL_SOURCE_LINE.
8474         * trans.c (g95_trans_code): Use annotate_all_with_file_line
8475         instead of nowdead wrap_all_with_wfl.
8476
8477 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8478
8479         * parse.c (g95_parse_file): In verbose mode, dump the parse tree
8480         before generating code, so we can still see it even if the code
8481         generation phase dies.
8482
8483 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8484
8485         * decl.c (build_sym): Split out initialization expression parts...
8486         (add_init_expr_to_sym): ...to here.
8487         (variable_decl): Add the symbol following an attribute list to the
8488         symbol tree before parsing the optional initialization expression
8489         if the symbol is not of a derived type.
8490         * primary.c (g95_match_rvalue): Don't assume a symbol always has
8491         a value if it is a PARAMETER.
8492
8493 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8494
8495         * misc.c: Don't #include <mcheck.h>
8496         * module.c: Ditto.  Kill uses of mtrace, muntrace.  If there
8497         ever was a glibc bug, then either this was never reported to
8498         glibc people, or it has been fixed for so long that there's
8499         no information you can find about it, anywhere.
8500
8501 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8502
8503         Fix warnings:
8504         * module.c (attr_bits, bt_types, array_spec_types):
8505         Switch 'const' and 'static'.
8506         * iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'.
8507
8508         GNU'ify source code:
8509         * trans-io.c: Numerous fixes, one fixed warning and a few
8510         TODO markers so that we don't forget about them.
8511
8512 2003-01-13  Paul Brook  <paul@nowt.org>
8513
8514         * intrinsic.c (add_functions): Add G95_ISYM_SCALE.
8515         * intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT.
8516         Add G95_ISYM_SCALE.
8517         * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto
8518         * match.c (g95_match_stop): Fix dumb == -> != error.
8519
8520 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8521
8522         * dump-parse-tree.c (show_indent): Add line breaks.  This
8523         whole dumping process needs cleanups.
8524         * f95-lang.c (g95_mark_addressable): Fix prototype to match
8525         the langhook.  Fix 'return's accordingly.
8526         * g95-support.h: Adjust prototype.
8527         * g95.h: Add 'no_backend' member to 'g95_option_t' struct.
8528         * lang-options.h: Add '-fsyntax-only'.
8529         * options.c (g95_init_options): Init 'no_backend'.
8530         (g95_parse_arg): Deal with '-fsyntax-only'.
8531         * parse.c (g95_parse_file): Do not generate code if 'no_backend'
8532         is set.
8533
8534 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8535         Patch from Arnaud
8536         * resolve.c (resolve_symbol): Assumed shape arrays must be dummy
8537         arguments.  Also make sure that if a symbol is marked INTRINSIC,
8538         an intrinsic with the symbol's name actually exists.
8539         (check_conflict): Make EXTERNAL and DIMENSION attributes conflict.
8540         Do not allow PROCEDURES to have the SAVE, POINTER, TARGET,
8541         ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute.
8542
8543 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8544
8545         * resolve.c (resolve_contained_functions): Fix condition, don't
8546         throw internal_error if a child namespace has no name.  Apparently
8547         this can be the case?
8548
8549 2003-01-11  Paul Brook  <paul@nowt.org>
8550
8551         Port changes from Andy's tree:
8552         * g95.h (g95_code): Add stop_code.
8553         * match.c (g95_match_stop): Detter syntax checking.
8554         * resolve.c (resolve_generic_f0): Return match type.
8555         (resolve_generic_f): Remove dead/duplicated code.
8556         (resolve_specific_f): Ditto.
8557         * dump-parse-tree.c (g95_show_code_node): Handle new STOP format.
8558         * trans-decl.c (gfor_fndel_stop_*): New fndecl nodes.
8559         * trans-stmt.c (g95_trans_stop): Handle new STOP format.
8560
8561 2003-01-11  Paul Brook  <paul@nowt.org>
8562
8563         * trans-array.c: Various documentation/comment changes.
8564         * trans-stmt.c: Ditto.
8565
8566
8567 2003-01-10  Paul Brook  <paul@nowt.org>
8568
8569         * options.c/h: Add -fdump-parse-tree as alias of -v.
8570
8571 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8572
8573         * dump-parse-tree.c (g95_show_namespace): Fixed another
8574         typo.  Sorry, it's Friday...
8575
8576 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8577
8578         Spotted by Tobi:
8579         * trans-array.c, trans-array.h, trans.c, trans-const.c,
8580         trans-const.h, trans-decl.c, trans-expr.c, trans.h
8581         trans-intrinsic.c, trans-io.c, trans-stmt.c, trans-stmt.h
8582         trans-types.c: Fix bogus copyright years, add 2003.
8583         * trans-types.h: Give copyright header.
8584
8585 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8586
8587         * dump-parse-tree.c (g95_show_namespace): Fixed typo.
8588         * expr.c, options.c, scanner.c: Add some more 'const' markers.
8589         * intrinsic.c: Some constant strings moved to read-only memory.
8590         * io.c (format_asterisk): Move to...
8591         * g95.h: ...here.
8592
8593 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8594
8595         * dump-parse-tree.c (g95_show_namespace): Dump implicit
8596         types for ranges instead of per-letter.  Indent the
8597         'CONTAINS' just like everything else.
8598         * resolve.c (resolve_contained_functions): Clarify comment.
8599         Explain non-obvious conditional expression.  Improve
8600         diagnostics if tyoe cannot be resolved.
8601         Port semi-fix from Andy's tree:
8602         (was_declared): Move up before first use.
8603         (generic_sym, specific_sym): New functions.  Code moved
8604         out if procedure_kind.
8605         (procedure_kind): Simplify using new functions.
8606         (resolve_generic_f): Make sure the functions we find in
8607         a parent namespace is generic.
8608         (resolve_specific_f): Ditto for specific functions.
8609
8610 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8611
8612         * trans-stmt.c, trans.c: Fix some code style issues. Add
8613         some more comment (but still not enough!).
8614
8615 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8616
8617         * symbol.c (flavors, procedures, intents, acces_types,
8618         access_types, ifsrc_types): Make const.
8619         * misc.c (g95_string2code): Make 'm' param 'const'.
8620         * module.c (find_enum, write_atom, mio_name): Make
8621         'm' param 'const'.
8622         (attr_bits, bt_types, array_spec_types, array_ref_types,
8623         ref_types, expr_types): Make const.
8624         * g95.h: Adjust external decls.
8625
8626 2003-01-09  Paul Brook  <paul@nowt.org>
8627
8628         * Testsuite: Add a load of new cases.
8629
8630 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8631
8632         * Make-file.in: Add dependency on back end header files;
8633         a parallel build should work now.
8634         * f95-lang-c (lang_identifier): Remove bogus comment.
8635         (g95_be_parse_file): Fix prototype.
8636         (g95_init): Make static.
8637         (g95_finish): Make static.
8638         * error.c (g95_syntax_error): Kill. Make define in...
8639         * g95.h (g95_syntax_error): Define.
8640         (g95.options): Make 'source' member 'const'.
8641         * interface.c (g95_match_interface): Explain
8642         hard-to-read condition.
8643         (g95_match_end_interface): Ditto.
8644         * trans_const.c (g95_build_string_const): Make 's' parameter
8645         'const'.
8646         * trans_const.h: Adjust protoype accordingly.
8647         * trans-decl.c: Include tree-dump.h
8648         (g95_generate_function_code): Build fixes for recent changes
8649         in the tree-ssa branch.
8650
8651 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8652
8653         * format.c: Kill, move code from here...
8654         * io.c: ...to here.
8655         * Make-lang.in: Adjust.
8656         * MANIFEST: Ditto.
8657         * match.h: Ditto.
8658         * BUGS: Mention where to submit bugs.  Move old content...
8659         * TODO: ...to here.  New file.
8660
8661 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8662         Fix most warnings, and suppress the ones we can't fix for now.
8663         * Make-lang.in: Suppress warnings about bad proto's in g95.h,
8664         these warnings just clutter the screen and there's not much
8665         we can do about them for now anyway.
8666         * check.c, iresolve.c: Mark unused function parameters.
8667         * dump-parse-tree.c (g95_show_array_spec): Punt on AS_UNKNOWN,
8668         they should be resolved before they get here.
8669         * error.c: Remove unused FILE *status_out.
8670         * f95-lang.c (g95_init): Remove bogus cast.
8671         * Many files: Make things 'const' where required.
8672         * g95.h: Fix prototypes for all modified functions above.
8673         (g95_options): Remove 'object' member.
8674
8675 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8676
8677         * Make-file.in: Cleanup bogus targets.  Add more comment.
8678         * lang-options.h: New option '-w'.
8679         * g95.h: add no_options field to struct g95_options.
8680         * options.c (g95_init_options): Default no_warnings to off.
8681         (g95_parse_arg): Recognise the '-w' switch and its alias,
8682         '-fno-warnings'.
8683         * error.c (g95_warning, g95_warning_now): Don't emit warning if
8684         no_warning option is set.
8685         * iresolve.c (g95_resolve_shape): Fix warning.
8686
8687 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8688
8689         * primary.c (g95_next_string_char): Rename next_string_char, and
8690         make static.  Adjust callers accordingly.
8691         * resolve.c (resolve_generic_f0): Return try, not match.  Adjust
8692         callers accordingly.
8693         * g95.h: Split out all g95_match* functions to...
8694         * match.h: ...here. New file.
8695         * array.c, decl.c, expr.c, format.c, interface.c, io.c, match.c,
8696         matchexp.c, module.c, parse.c, primary.c: Inlcude match.h
8697
8698 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8699
8700         * symbol.c (g95_clear_new_implicit, g95_add_new_implicit_range,
8701         g95_merge_new_implicit): New functions.
8702         (g95_match_implicit_none, g95_match_implicit): Move from here...
8703         * match.c (g95_match_implicit_none, g95_match_implicit): ... to here.
8704         Modify to use the new functions in symbol.c.
8705         * g95.h: Add and move prototypes.
8706
8707 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8708
8709         * bbt.c (insert): Use a typedef'ed compare_fn prototype for the
8710         node compare function.
8711         (g95_insert_bbt): Likewise.
8712         (g95_insert_bbt_with_overlap): Likewise.
8713         (g95_delete_bbt): Likewise.
8714         (delete_treap): Likewise. Also fix a potential bug when calling it.
8715         * module.c (compare_pointers): Change proto to compare_fn.
8716         (compare_integers): Likewise.
8717         (compare_true_names): Likewise.
8718         (find_true_name): Adjust call to compare_true_names to match proto.
8719         (require_atom, write_atom, mio_name): Fix 'const' warnings.
8720         (init_pi_tree): Make compare a compare_fn instead of (int *).
8721         * resolve.c (compare_cases): Change proto to compare_fn.
8722         * symbol.c (g95_compare_symtree): Change proto to compare_fn, make
8723         it static, and rename to compare_symtree.
8724         (delete_symtree, g95_undo_symbols, g95_new_symtree): Use renamed
8725         function.
8726         * g95.h: Kill g95_compare_symtree prototype. Adjust prototypes
8727         of g95_insert_bbt, g95_insert_bbt_with_overlap, and g95_delete_bbt.
8728
8729 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8730         * Make-lang.in: Fix spaces/tabs issues from previous patch.
8731         * patch.options: Blow away Paul's checkin mistake :-)
8732         * io.c (terminate_io): Fix memory leak (Arnaud).
8733
8734 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8735
8736         * Make-lang.in: Teach about building DVI, info manual.
8737         * g95.texi: New file.
8738
8739 2003-01-02  Paul Brook  <paul@nowt.org>
8740
8741         * trans-array.c (g95_reverse_ss): Make static and don't use.
8742         (g95_conv_ss_descriptor): Don't use g95_loopinfo
8743         (g95_conv_array_parameters): Modify for pointer assignments.
8744         (g95_walk_subexpr): New function.
8745         (g95_walk_expr*): Use it.
8746         * trans-array.h (g95_reverse_ss): Remove prototype.
8747         * trans-expr.c (g95_trans_pointer_assign): Implement.
8748         (Many): Set se.want_pointer before calling g95_conv_array_parameter.
8749         * trans-intrinsic.c: Sync with scalarizer changes.
8750         * trans-io.c: Ditto.
8751
8752 2002-12-29  Paul Brook  <paul@nowt.org>
8753
8754         * trans-array.c: Document calling convention for arrays.
8755
8756 2002-12-19  Paul Brook  <paul@nowt.org>
8757
8758         * trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect
8759         assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass
8760         optional parameters for some intrinsics.
8761         (g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE.
8762         * trans-expr.c (g95_conv_function_call): Pass NULL for absent
8763         optional parameters.
8764         * trans.h (g95_se): Add ignore_optional flag.
8765
8766 2002-12-15  Paul Brook  <paul@nowt.org>
8767
8768         * trans-array.c (g95_conv_array_parameter): Fix partial rank sections.
8769         * trans-decl.c (g95_generate_function_code): Use TDI_original.
8770
8771 2002-12-14  Paul Brook  <paul@nowt.org>
8772
8773         * trans-stmt.c (g95_trans_call): Use resolved symbol name.
8774
8775 2002-12-12  Paul Brook  <paul@nowt.org>
8776
8777         * trans-array.c (g95_trans_array_constructor_subarray): Fully
8778         initialize the scalarizer.
8779         (various): Update to new format of g95_expr->value.constructor.
8780
8781 2002-12-08  Paul Brook  <paul@nowt.org>
8782
8783         * trans-array.c (g95_put_offset_into_var): New function.
8784         (g95_trans_array_constructor_subarray): New function.
8785         (g95_trans_array_constructor_value): Use it.
8786         (g95_array_cons_size): Don't abort() on array components.
8787
8788 2002-12-08  Paul Brook  <paul@nowt.org>
8789
8790         * Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o.
8791         * support.c: Update #includes.
8792         (statement_code_p, c_size_in_bytes, s_size_type_node): Remove.
8793         * trans-array.c: Update #includes.
8794         * trans.c: Ditto.
8795         * trans-const.c: Ditto.
8796         * trans-io.c: Ditto.
8797         * trans-types.c: Ditto.
8798         (g95_init_types): Set size_type_node.
8799         * trans-decl.c: Update #includes.
8800         (gfor_fndecl_adjust{l,r}): Declare and initialize.
8801         * trans-stmt.c: Update #includes.
8802         (g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR.
8803         (g95_trans_select): Fix check for unbounded ranges.
8804         * trans-expr.c: Update #includes.
8805         (g95_conv_string_tmp): New function.
8806         (g95_conv_concat_op): Use it.
8807         * trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare.
8808         * Trans-intrisic.c: Update #includes.
8809         (g95_conv_intrinsic_strcmp): New function.
8810         (g95_conv_intrinsic_adjust): Ditto.
8811         (g95_conv_intrinsic_function: Use them.
8812
8813 2002-11-30  Paul Brook  <paul@nowt.org>
8814
8815         * trans-array.c (g95_walk_function_expr): Handle non-array return by
8816         reference.
8817         * trans-dec.c (g95_build_function_decl): Handle character return
8818         parammeters.
8819         (g95_get_fake_result_decl): Ditto.
8820         (g95_trans_deferred_vars): Ditto.
8821         * trans-expr.c (g95_conv_function_call): Ditto.
8822         (g95_trans_arrayfunc_assign) Limit to array valued functions.
8823         * trans-intrinsic.c (g95_conv_intrinsic_char): New function.
8824         (g95_conv_intrinsic_function): Use it.
8825         * trans-types.c (g95_sym_type): Handle functions returning strings.
8826         (g95_return_by_reference): Ditto.
8827         (g95_get_function_type): Ditto.
8828
8829 2002-11-18  Paul Brook  <paul@nowt.org>
8830
8831         * trans-stmt.c (g95_trans_if): Fix IF statements when the condition
8832         requires a temporary.
8833         (g95_trans_select): Handle computed gotos.
8834         * trans-types.c (g95_build_array_type): Warn about non-functional
8835         assumed shape arrays.
8836         * trans-expr.c (g95_trans_scalar_assign): Correctly handle post
8837         blocks.
8838         * trans-intrinsic.c (g95_conv_intrinsic_round): New function.
8839         (g95_conv_intrinsic_int): New function.
8840         (g95_conv_intrinsic_mod): New function.
8841         (g95_conv_intrinsic_ichar): New function.
8842         (g95_conv_intrinsic_function): Use them.
8843         (g95_conv_intrinsic_dim): Use g95_evaluate_now.
8844
8845 2002-11-17  Toon Moene  <toon@moene.indiv.nluug.nl>
8846
8847         * trans-types.c (g95_build_array_type): Assumed
8848         sized arrays can have rank > 1.
8849         * trans.c (g95_trans_code): Remove erroneous
8850         warning about CONTINUE.
8851         * trans-expr.c (g95_conv_variable): Remove
8852         erroneous assert.
8853
8854 2002-11-15  Paul Brook  <paul@nowt.org>
8855
8856         * trans-array.c (g95_conv_array_parameter): Check for NULL stride.
8857
8858 2002-10-31  Paul Brook  <paul@nowt.org>
8859
8860         * f95-tree.c: Remove tree copying stuff that's now in gimple.c
8861         * trans-expr.c (g95_conv_component_ref): Handle character string
8862         components.
8863         (g95_conv_string_parameter): Ditto.
8864         * trans-types.c (g95_get_derived_type): Add length decl to caracter
8865         string components.
8866
8867 2002-10-10  Paul Brook  <paul@nowt.org>
8868
8869         * trans-decl.c (gfor_fndecl_size?): Declare and initialize.
8870         * trans-expr.c (g95_conv_function_call): Remove unreliable return value
8871         check.
8872         * trans-intrinsic.c (g95_conv_intrinsic_size): New function.
8873         (g95_conv_intrinsic_function): Handle size and shape intrinsics.
8874         (g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE.
8875         * trans-types.c (pvoid_type_node): Declare and initialize.
8876         * trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT
8877         (g95_array_allocate): Fix when base==data.
8878         (g95_conv_array_parameter): Correctly handle reduced rank sections.
8879         * trans-io.c (g95_trans_write): Correctly handle string modifiers.
8880
8881 2002-10-09  Paul Brook  <paul@nowt.org>
8882
8883         * (g95_conv_expr_reference): Handle character strings correctly.
8884
8885 2002-10-07  Paul Brook  <paul@nowt.org>
8886
8887         (g95_expand_decl): Rename from f95_expand_decl_stmt and use as
8888         langhook.
8889         * trans-array.c (g95_build_array_initializer): Remove.
8890         (g95_conv_array_initializer): New Function.
8891         (g95_trans_auto_arry_allocation): Cleanup.
8892         (g95_trans_init_character_array): Remove.
8893         * g95spec.c: Link in libgforbegin.
8894         * trans.c (g95_generate_code): Rename main function to MAIN__.
8895         (g95_create_var): New function.
8896         (g95_create_var_np): New function.
8897         (g95_evaluate_now): New function.
8898         (g95_start_block): New function.
8899         (g95_finish_block): New function.
8900         (g95_add_expr_to_block): New function.
8901         (g95_add_block_to_block): New function.
8902         * trans-expr.c (g95_conv_componen_ref): New function.
8903         * Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o.
8904         (F95_OBJS): Add dependency.o.
8905         * f95-lang.c (g95_is_simple_stmt): Remove.
8906         * f95-tree.c (mark_not_simple): New function.
8907         (unshare_all_trees): New function.
8908         (create_tmp_var, create_tmp_alias_var): Remove.
8909         * support.c (declare_tmp_vars, tree_last_decl): Remove.
8910         * trans*: Convert to new IR using GENERIC trees.  Don't bother about
8911         SIMPLE/GIMPLE rules, this is now done by Lang-independant code.
8912
8913 2002-10-01  Paul Brook  <paul@nowt.org>
8914
8915         * trans-array.c: Add support for descriptorless arrays.
8916         (g95_conv_array_data): New function.
8917         (g95_conv_array_base): New function.
8918         * trans-array.h: Declare these here.
8919         * trans-decl.c(g95_create_mopdule_variable): Perform variable
8920         initialization and creation here.
8921         (g95_create_module_vars): Instead of here.
8922         * trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*.
8923         * trans-intrinsic.c: Ditto.
8924         * trans-types.c (g95_is_nodesc_array): New function.
8925         (g95_get_nodesc_array_type): New function.
8926         (g95_sym_type, g95_get_derived_type): Use them.
8927         * trans-const.c (g95_conv_mpf_to_tree): Remove workaround.
8928
8929 2002-09-28  Paul Brook  <paul@nowt.org>
8930
8931         * trans-const.c (g95_conv_mpf_to_tree): Work around backend bug.
8932         * trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex
8933         parameters.
8934
8935 2002-09-24  Paul Brook  <paul@nowt.org>
8936
8937         * f95-lang.c (listify): Remove declaration.
8938         (expand_function_body): Use optimize >=1 instead of flag_tree_saa.
8939         (listify)
8940         * f95-tree.c (get_name): New function.
8941         * trans.c (module_namespace): Remove.
8942         * trans-decl.c: Use g95_chainon_list rather than chainon(listify()).
8943         * trans-types.c: Ditto.
8944
8945 2002-09-19  Paul Brook  <paul@nowt.org>
8946
8947         * trans-array.c (g95_get_array_cons_size): New Function.
8948         (g95_con_ss_startstride): Handle Array constructors.
8949         (g95_conv_loop_setup): Ditto.
8950         (g95_conv_array_parameter): Ditto.
8951         * tras-decl.c (g95_finish_var_decl): Make initializes variables
8952         static.
8953
8954 2002-09-19  Paul Brook  <paul@nowt.org>
8955
8956         * trans.c (g95_simple_fold_tmp): Detect variables inside
8957         NON_LVALUE_EXPR.
8958         * trans-stmt.c (g95_trans_arithmetic_if): Implement this.
8959
8960 2002-09-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8961
8962         * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o
8963
8964 2002-09-14  Paul Brook  <paul@nowt.org>
8965
8966         * trans.c (g95_create_module_variable): Move to trans-decl.c.
8967         * trans-const.c (g95_conv_string_init): New Function.
8968         * trans-const.h: Declare it.
8969         * trans-decl.c (g95_get_symbol_decl): Handle initializers for static
8970         variables. Don't bail on intrinsic symbols.
8971         (get_extern_function_decl): Handle specific intrinsic functions.
8972         * trans-types.c (g95_sym_type): Dummy functions don't return
8973         reference types.
8974         * trans-array.c (g95_build_array_initializer): New Function.
8975         (g95_trans_auto_array_allocation): Build initializer for static decls.
8976         Don't use mpz_addmul, it's GMP4 only.
8977
8978 2002-09-12  Paul Brook  <paul@nowt.org>
8979
8980         * trans-decl.c (g95_generate_code): Fix thinko with return variable.
8981         (g95_get_extern_function_decl, g95_build_function_decl): Mangle
8982         assembler names for module procedures.
8983
8984 2002-09-11  Tobias Schlueter  <Tobias.Schlueter@physik.uni-muenchen.de>
8985
8986         * trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of
8987         dependency/
8988
8989 2002-09-10  Paul Brook  <paul@nowt.org>
8990
8991         * trans-array.c: Change format of G95_SS_TEMP strictures.
8992         (g95_check_fncall_dependancy): New function.
8993         (trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating
8994         offsets.
8995         * trans-decl.c (g95_get_symbol_decl): move assertion after handling of
8996         result variables.
8997         (g95_build_function_decl): Don't assume result arrays are packed.
8998         (g95_trans-deferred-vars): Handle array result variables.
8999         (g95_generate_fuction_code): Clear saved_function_decls.
9000         * trans-expr.c (g95_conv_fnction_call): Handle direct array return by
9001         reference.
9002         (g95_trans_arrayfunc_assign): New function.
9003         (g95_trans_assignment): Use it.
9004         * trans.h (g95_ss): Add temp struct for G95_SS_TEMP.
9005         (g95_se): Add direct_byref.
9006         * trans-types.c: Use sym->result rather than sym where appropriate.
9007         * trans-intrinsic.c (g95_conv_intrinsic_funcall): New function.
9008         Update other functions to use this.
9009         (g95_is_intrinsic_libcall): New function.
9010         (g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics.
9011         (g95_walk_intrinsic_function): Ditto.
9012
9013 2002-09-08  Paul Brook  <paul@nowt.org>
9014
9015         * trans-types.c: Change rank field to dtype field in array descriptor.
9016         * trans-array.c: Implement filling of dtype array descriptor field.
9017         * trans-intrinsic.c: Fix broken LEN intrinsic.
9018
9019 2002-09-07  Paul Brook  <paul@nowt.org>
9020
9021         * trans-intrinsic.c: Remove outdated todo intrinsic list.
9022         (g95_get_symbol_for_expr): Remove hack for fortran based intrinsics.
9023         (g95_walk_intrinsic_function): Add MINLOC and MAXLOC.
9024
9025 2002-09-06  Paul Brook  <paul@nowt.org>
9026
9027         * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o.
9028         (gt-f95-trans-types.h): Add dependancy information.
9029         * config-lang.in (gtfiles): Add trans-types.c
9030         * f95-lang.c (g95_be_parse_file): Pass error and warning counts
9031         back to top-level code.
9032         * trans-array.c, trans-types.c: Change format of array descriptor.
9033         (g95_conv_descriptor_dimension): New function.
9034         * trans-types.h (g95_conv_descriptor_rank): define.
9035         * trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC
9036         intrinsics.
9037
9038 2002-09-02  Steven Bosscher  <s.bosscher@student.tudelft.nl>
9039
9040         * trans-array.c, trans-types.c: Add rank information to descriptor.
9041
9042 2002-09-06  Tobias Schlueter  <Tobias.Schlueter@physik.uni-muenchen.de>
9043
9044         * trans-stmt.c (g95_trans_allocate): Fix when ref==NULL.
9045
9046 2002-09-04  Paul Brook  <paul@nowt.org>
9047
9048         * f95-lang.c (g95_create_decls): New function.
9049         (g95_init):  Move initialization of external decls to above, and call
9050         from g95_be_parse_file.
9051         * trans.c (g95_finish_stmt): Don't amputate the decl chain.
9052         * trans-types.c (g95_init_types): Always name integer and char types.
9053         (g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL.
9054
9055 2002-09-02  Steven Bosscher  <s.bosscher@student.tudelft.nl>
9056
9057         * Make-lang.in: Add options.c to F95_PARSER_OBJS
9058
9059 2002-09-02  Paul Brook  <paul@nowt.org>
9060
9061         * g95_generate_code: Clear the attr for __fortran_main.
9062         * trans-types.c (g95_finish_type): New function.
9063         * g95_init_io_state_type: Use g95_finish_type.
9064         * g95_conv_intrinsic_anyall: Fix thinko in result initialization.
9065
9066 2002-09-01  Paul Brook  <paul@nowt.org>
9067
9068         * README.backend: Warn about the dangers of extra config.h files.
9069         Remove obsolete libgfor stuff.
9070         * config-lang.in: Add target-libgfor dependancy.
9071         * g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff.
9072
9073 2002-09-01  Toon Moene  <toon@moene.indiv.nluug.nl>
9074
9075         * g95_conv_mpz_to_tree: Free storage pointed to by q,
9076         not by buff.
9077
9078 2002-08-30  Paul Brook  <paul@nowt.org>
9079
9080         * trans-intrinsic.c (g95_conv_intrinsic_function,
9081         g95_walk_intrinsic_function): Added ANY and ALL.
9082         (g95_conv_intrinsic_anyall): New function.
9083         * iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in
9084         mangled name