OSDN Git Service

fa055ea0ae85f94cd0190752d97f813865e849d6
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2005-12-11  Aldy Hernandez  <aldyh@redhat.com>
2
3         * lang.opt: Add RejectNegative to ffixed-form and ffree-form.
4
5 2005-12-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6
7         PR fortran/25068
8         * io.c (resolve_tag): Add correct diagnostic for F2003 feature.
9
10 2005-12-10  Thomas Koenig  <Thomas.Koenig@online.de>
11
12         PR fortran/23815
13         * io.c (top level):  Add convert to io_tag.
14         (resolve_tag):  convert is GFC_STD_GNU.
15         (match_open_element):  Add convert.
16         (gfc_free_open):  Likewise.
17         (gfc_resolve_open):  Likewise.
18         (gfc_free_inquire):  Likewise.
19         (match_inquire_element):  Likewise.
20         * dump-parse-tree.c (gfc_show_code_node):  Add
21         convet for open and inquire.
22         gfortran.h: Add convert to gfc_open and gfc_inquire.
23         * trans-io.c (gfc_trans_open):  Add convert.
24         (gfc_trans_inquire):  Likewise.
25         * ioparm.def:  Add convert to open and inquire.
26         * gfortran.texi:  Document CONVERT.
27
28 2005-12-09  Roger Sayle  <roger@eyesopen.com>
29
30         PR fortran/22527
31         * f95-lang.c (gfc_truthvalue_conversion): Use a zero of the correct
32         integer type when building an inequality.
33
34 2005-12-09  Richard Guenther  <rguenther@suse.de>
35
36         * f95-lang.c (build_builtin_fntypes): Use correct
37         return types, as indicated by comments.
38
39 2005-12-08  Erik Edelmann  <eedelman@gcc.gnu.org>
40
41         PR fortran/25292
42         * check.c (gfc_check_associated): Allow function results
43         as actual arguments to ASSOCIATED.  Moved a misplaced
44         comment.
45
46 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
47
48         * Make-lang.in (fortran.all.build, fortran.install-normal): Remove.
49
50 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
51
52         * Make-lang.in: Remove all dependencies on s-gtype, except for
53         gt-fortran-trans.h.
54
55 2005-12-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
56
57         PR fortran/25106
58         * parse.c (next_free): Use new prototype for gfc_match_st_label.
59         Correctly emit hard error if a label is zero.
60         * match.c (gfc_match_st_label): Never allow zero as a valid
61         label.
62         (gfc_match, gfc_match_do, gfc_match_goto): Use new prototype for
63         gfc_match_st_label.
64         * primary.c (): Use new prototype for gfc_match_st_label.
65         * io.c (): Likewise.
66         * match.h: Likewise.
67
68 2005-12-02  Richard Guenther  <rguenther@suse.de>
69
70         * trans.h (build1_v): Use build1, not build to build the
71         void typed tree.
72
73 2005-12-01  Erik Schnetter  <schnetter@aei.mpg.de>
74
75         * decl.c (gfc_match_old_kind_spec):  Improve handling of old style
76         COMPLEX*N
77
78 2005-12-01  Paul Thomas  <pault@gcc.gnu.org>
79
80         PR fortran/24789
81         * trans-decl.c (gfc_get_symbol_decl):  Move the expression for
82         unit size of automatic character length, dummy pointer array
83         elements down a few lines from the version that fixed PR15809.
84
85 2005-11-30  Bernhard Fischer <rep.nop@aon.at>
86
87         PR fortran/21302
88         * lang.opt: New options -ffree-line-length- and -ffree-line-length-none.
89         * gfortran.h: Add free_line_length and add description of
90         free_line_length and fixed_line_length.
91         * options.c (gfc_init_options, gfc_handle_option): Initialize
92         and set free_line_length and fixed_line_length.
93         * scanner.c (load_line): Set free_line_length to 132 and
94         fixed_line_length to 72 or user requested values.
95         * scanner.c: Typo in comment.
96         * invoke.texi: Document -ffree-line-length- and
97         -ffree-line-length-none
98
99 2005-11-30  Paul Thomas  <pault@gcc.gnu.org>
100
101         PR fortran/15809
102         * trans-decl.c (gfc_get_symbol_decl):  In the case of automatic
103         character length, dummy pointer arrays, build an expression for
104         unit size of the array elements, to be picked up and used in the
105         descriptor dtype.
106         * trans-io.c (gfc_trans_transfer):  Modify the detection of
107         components of derived type arrays to use the gfc_expr references
108         instead of the array descriptor dtype.  This allows the latter
109         to contain expressions.
110
111 2005-11-30  Erik Edelmann  <erik.edelmann@iki.fi>
112
113         PR fortran/15809
114         * trans-array.c (gfc_trans_deferred_array):  Allow PARM_DECLs past
115         in addition to VAR_DECLs.
116
117 2005-11-29  Jakub Jelinek  <jakub@redhat.com>
118
119         * io.c (gfc_resolve_open): RESOLVE_TAG access field as well.
120
121 2005-11-27 Bernhard Fischer <rep.nop@aon.at>
122
123         * gfortran.h: remove superfluous whitespace and use GNU
124         comment-style for the documentation of backend_decl.
125
126 2005-11-27  Steven G. Kargl  <kargls@comcast.net>
127
128         PR fortran/24917
129         * primary.c (match_boz_constant):  Implement postfix BOZ constants;
130         (match_string_constant): Peek for b, o, z, and x
131
132 2005-11-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
133
134         PR fortran/23912
135         * iresolve.c (gfc_resolve_dim, gfc_resolve_mod,
136         gfc_resolve_modulo): When arguments have different kinds, fold
137         the lower one to the largest kind.
138         * check.c (gfc_check_a_p): Arguments of different kinds is not
139         a hard error, but an extension.
140         * simplify.c (gfc_simplify_dim, gfc_simplify_mod,
141         gfc_simplify_modulo): When arguments have different kinds, fold
142         the lower one to the largest kind.
143
144 2005-11-21  Jakub Jelinek  <jakub@redhat.com>
145
146         PR fortran/14943
147         PR fortran/21647
148         * Make-lang.in (fortran/trans-io.o): Depend on fortran/ioparm.def.
149         * dump-parse-tree.c (gfc_show_code_node): Dump c->block for
150         EXEC_{READ,WRITE,IOLENGTH} nodes.
151         * io.c (terminate_io, match_io, gfc_match_inquire): Put data
152         transfer commands into EXEC_{READ,WRITE,IOLENGTH}'s code->block.
153         * resolve.c (resolve_blocks): Handle EXEC_{READ,WRITE,IOLENGTH}.
154         * trans-io.c (ioparm_unit, ioparm_err, ioparm_end, ioparm_eor,
155         ioparm_list_format, ioparm_library_return, ioparm_iostat,
156         ioparm_exist, ioparm_opened, ioparm_number, ioparm_named,
157         ioparm_rec, ioparm_nextrec, ioparm_size, ioparm_recl_in,
158         ioparm_recl_out, ioparm_iolength, ioparm_file, ioparm_file_len,
159         ioparm_status, ioparm_status_len, ioparm_access, ioparm_access_len,
160         ioparm_form, ioparm_form_len, ioparm_blank, ioparm_blank_len,
161         ioparm_position, ioparm_position_len, ioparm_action,
162         ioparm_action_len, ioparm_delim, ioparm_delim_len, ioparm_pad,
163         ioparm_pad_len, ioparm_format, ioparm_format_len, ioparm_advance,
164         ioparm_advance_len, ioparm_name, ioparm_name_len,
165         ioparm_internal_unit, ioparm_internal_unit_len,
166         ioparm_internal_unit_desc, ioparm_sequential, ioparm_sequential_len,
167         ioparm_direct, ioparm_direct_len, ioparm_formatted,
168         ioparm_formatted_len, ioparm_unformatted, ioparm_unformatted_len,
169         ioparm_read, ioparm_read_len, ioparm_write, ioparm_write_len,
170         ioparm_readwrite, ioparm_readwrite_len, ioparm_namelist_name,
171         ioparm_namelist_name_len, ioparm_namelist_read_mode, ioparm_iomsg,
172         ioparm_iomsg_len, ioparm_var): Remove.
173         (enum ioparam_type, enum iofield_type, enum iofield,
174         enum iocall): New enums.
175         (gfc_st_parameter_field, gfc_st_parameter): New typedefs.
176         (st_parameter, st_parameter_field, iocall): New variables.
177         (ADD_FIELD, ADD_STRING): Remove.
178         (dt_parm, dt_post_end_block): New variables.
179         (gfc_build_st_parameter): New function.
180         (gfc_build_io_library_fndecls): Use it.  Initialize iocall
181         array rather than ioparm_*, add extra first arguments to
182         the function types.
183         (set_parameter_const): New function.
184         (set_parameter_value): Add type argument, return a bitmask.
185         Changed to set a field in automatic structure variable rather
186         than set a field in a global _gfortran_ioparm variable.
187         (set_parameter_ref): Likewise.  If requested var has different
188         size than what field should point to, call with a temporary and
189         then copy into the user variable.  Add postblock argument.
190         (set_string): Remove var_len argument, add type argument, return
191         a bitmask.  Changed to set fields in automatic structure variable
192         rather than set a field in a global _gfortran_ioparm variable.
193         (set_internal_unit): Remove iunit, iunit_len, iunit_desc arguments,
194         add var argument.  Return a bitmask.  Changed to set fields in
195         automatic structure variable rather than set a field in a global
196         _gfortran_ioparm variable.
197         (set_flag): Removed.
198         (io_result): Add var argument.  Changed to read common.flags field
199         from automatic structure variable and bitwise AND it with 3.
200         (set_error_locus): Add var argument.  Changed to set fields in
201         automatic structure variable rather than set a field in a global
202         _gfortran_{filename,line} variables.
203         (gfc_trans_open): Use gfc_start_block rather than gfc_init_block.
204         Create a temporary st_parameter_* structure.  Adjust callers of
205         all above mentioned functions.  Pass address of the temporary
206         variable as first argument to the generated function call.
207         Use iocall array rather than ioparm_* separate variables.
208         (gfc_trans_close, build_filepos, gfc_trans_inquire): Likewise.
209         (build_dt): Likewise.  Change first argument to tree from tree *.
210         Don't dereference code->ext.dt if last_dt == INQUIRE.  Emit
211         IOLENGTH argument setup here.  Set dt_parm/dt_post_end_block
212         variables and gfc_trans_code the nested data transfer commands
213         in code->block.
214         (gfc_trans_iolength): Just set last_dt and call build_dt immediately.
215         (transfer_namelist_element): Pass address of dt_parm variable
216         to generated functions.  Use iocall array rather than ioparm_*
217         separate variables.
218         (gfc_trans_backspace, gfc_trans_endfile, gfc_trans_rewind,
219         gfc_trans_flush, gfc_trans_read, gfc_trans_write): Use iocall array
220         rather than ioparm_* separate variables.
221         (gfc_trans_dt_end): Likewise.  Pass address of dt_parm variable
222         as first argument to generated function.  Adjust io_result caller.
223         Prepend dt_post_end_block before io_result code.
224         (transfer_expr): Use iocall array rather than ioparm_* separate
225         variables.  Pass address of dt_parm variables as first argument
226         to generated functions.
227         * ioparm.def: New file.
228
229 2005-11-21  Paul Thomas  <pault@gcc.gnu.org>
230
231         PR fortran/24223
232         * resolve.c (resolve_contained_fntype) Error if an internal
233         function is assumed character length.
234
235         PR fortran/24705
236         * trans-decl.c (gfc_create_module_variable) Skip ICE in
237         when backend decl has been built and the symbol is marked
238         as being in an equivalence statement.
239
240 2005-11-20  Toon Moene  <toon@moene.indiv.nluug.nl>
241
242         * invoke.texi: Remove superfluous @item.
243
244 2005-11-19  Janne Blomqvist  <jb@gcc.gnu.org>
245
246         PR fortran/24862
247         * trans-io.c (gfc_trans_transfer): Handle arrays of derived type.
248
249 2005-11-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
250
251         PR fortran/20811
252         * scanner.c (gfc_open_included_file): Add an extra include_cwd
253         argument. Only include files in the current working directory if
254         its value is true.
255         * gfortran.h: Change prototype for gfc_open_included_file.
256         (load_file): Don't search for include files in the current working
257         directory.
258         * options.c (gfc_post_options): Add the directory of the source file
259         to the list of paths for included files.
260         * module.c (gfc_use_module): Look for module files in the current
261         directory.
262
263 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
264
265         PR fortran/24096
266         * trans-types.c (gfc_init_kinds): Use one less for max_exponent
267         of IBM extended double format.
268
269 2005-11-13  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
270
271         * intrinsic.c (add_functions): Add COMPLEX, FTELL, FGETC, FGET,
272         FPUTC, FPUT, AND, XOR and OR intrinsic functions.
273         (add_subroutines): Add FGETC, FGET, FPUTC, FPUT and FTELL intrinsic
274         subroutines.
275         * gfortran.h: Add GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET,
276         GFC_ISYM_FGETC, GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL,
277         GFC_ISYM_OR, GFC_ISYM_XOR.
278         * iresolve.c (gfc_resolve_and, gfc_resolve_complex,
279         gfc_resolve_or, gfc_resolve_fgetc, gfc_resolve_fget,
280         gfc_resolve_fputc, gfc_resolve_fput, gfc_resolve_ftell,
281         gfc_resolve_xor, gfc_resolve_fgetc_sub, gfc_resolve_fget_sub,
282         gfc_resolve_fputc_sub, gfc_resolve_fput_sub, gfc_resolve_ftell_sub):
283         New functions.
284         * check.c (gfc_check_complex, gfc_check_fgetputc_sub,
285         gfc_check_fgetputc, gfc_check_fgetput_sub, gfc_check_fgetput,
286         gfc_check_ftell, gfc_check_ftell_sub, gfc_check_and): New functions.
287         * simplify.c (gfc_simplify_and, gfc_simplify_complex, gfc_simplify_or,
288         gfc_simplify_xor): New functions.
289         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for
290         GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET, GFC_ISYM_FGETC,
291         GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL, GFC_ISYM_OR and
292         GFC_ISYM_XOR.
293         * intrinsic.h: Add prototypes for all functions added to iresolve.c,
294         simplify.c and check.c.
295
296 2005-11-10  Paul Thomas  <pault@gcc.gnu.org>
297             Steven G. Kargl <kargls@comcast.net>
298
299         PR fortran/15976
300         * resolve.c (resolve_symbol): Disallow automatic arrays in module scope.
301
302 2005-11-10  Paul Thomas  <pault@gcc.gnu.org>
303
304         PR fortran/24655
305         PR fortran/24755
306         * match.c (recursive_stmt_fcn): Add checks that symtree exists
307         for the expression to weed out inline intrinsic functions and
308         parameters.
309
310         PR fortran/24409
311         * module.c (mio_symtree_ref): Correct the patch of 0923 so that
312         a symbol is not substituted for by a the symbol for the module
313         itself and to prevent the promotion of a formal argument.
314
315 2005-11-10  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
316
317         PR fortran/24643
318         * primary.c (match_varspec): Check for implicitly typed CHARACTER
319         variables before matching substrings.
320
321 2005-11-09  Steven G. Kargl  <kargls@comcast.net>
322
323         * trans-intrinsic.c: Typo in comment.
324
325 2005-11-09  Erik Edelmann  <eedelman@gcc.gnu.org>
326
327         PR fortran/22607
328         * trans-decl.c(build_function_decl): Don't set
329         DECL_IS_PURE (fndecl) = 1 for return-by-reference
330         functions.
331
332 2005-11-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
333
334         * dump-parse-tree.c: Fix comment typo, add a few blank lines.
335
336 2005-11-07  Steven G. Kargl  <kargls@comcast.net>
337
338         * error.c: Use flag_fatal_error.
339         * invoke.texi:  Remove -Werror from list of options.
340
341 2005-11-06  Paul Thomas  <pault@gcc.gnu.org>
342
343         PR fortran/24534
344         * resolve.c (resolve_symbol): Exclude case of PRIVATE declared
345         within derived type from error associated with PRIVATE type
346         components within derived type.
347
348         PR fortran/20838
349         PR fortran/20840
350         * gfortran.h: Add prototype for gfc_has_vector_index.
351         * io.c (gfc_resolve_dt): Error if internal unit has a vector index.
352         * expr.c (gfc_has_vector_index): New function to check if any of
353         the array references of an expression have vector inidices.
354         (gfc_check_pointer_assign): Error if internal unit has a vector index.
355
356         PR fortran/17737
357         * data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE
358         and replace by a standard dependent warning/error if overwriting an
359         existing initialization.
360         * decl.c (gfc_data_variable): Remove old error for already initialized
361         variable and the unused error check for common block variables.  Add
362         error for hots associated variable and standard dependent error for
363         common block variables, outside of blockdata.
364         * symbol.c (check_conflict): Add constraints for DATA statement.
365
366 2005-11-06  Janne Blomqvist <jb@gcc.gnu.org>
367
368         PR fortran/24174
369         PR fortran/24305
370         * fortran/trans-io.c (gfc_build_io_library_fndecls): Add kind
371         argument to transfer_array.
372         (transfer_array_desc): Add kind argument.
373
374 2005-11-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
375
376         * intrinsic.c (add_functions): Add ctime and fdate intrinsics.
377         (add_subroutines): Likewise.
378         * intrinsic.h: Prototypes for gfc_check_ctime,
379         gfc_check_ctime_sub, gfc_check_fdate_sub, gfc_resolve_ctime,
380         gfc_resolve_fdate, gfc_resolve_ctime_sub, gfc_resolve_fdate_sub.
381         * gfortran.h: Add GFC_ISYM_CTIME and GFC_ISYM_FDATE.
382         * iresolve.c (gfc_resolve_ctime, gfc_resolve_fdate,
383         gfc_resolve_ctime_sub, gfc_resolve_fdate_sub): New functions.
384         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
385         gfor_fndecl_fdate and gfor_fndecl_ctime.
386         * check.c (gfc_check_ctime, gfc_check_ctime_sub,
387         gfc_check_fdate_sub): New functions.
388         * trans-intrinsic.c (gfc_conv_intrinsic_ctime,
389         gfc_conv_intrinsic_fdate): New functions.
390         (gfc_conv_intrinsic_function): Add cases for GFC_ISYM_CTIME
391         and GFC_ISYM_FDATE.
392         * intrinsic.texi: Documentation for the new CTIME and FDATE
393         intrinsics.
394         * trans.h: Declarations for gfor_fndecl_ctime and gfor_fndecl_fdate.
395
396 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
397
398         * decl.c, trans-decl.c: Fix comment typos.
399         * gfortran.texi: Fix a typo.
400
401 2005-11-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
402
403         * intrinsic.c (add_functions): Add function version of TTYNAM.
404         * intrinsic.h: Add prototypes for gfc_check_ttynam and
405         gfc_resolve_ttynam.
406         * gfortran.h: Add case for GFC_ISYM_TTYNAM.
407         * iresolve.c (gfc_resolve_ttynam): New function.
408         * trans-decl.c (gfc_build_intrinsic_function_decls): Add a tree
409         for function call to library ttynam.
410         * check.c (gfc_check_ttynam): New function.
411         * trans-intrinsic.c (gfc_conv_intrinsic_ttynam): New function.
412         (): Call gfc_conv_intrinsic_ttynam.
413         * trans.h: Add prototype for gfor_fndecl_ttynam.
414
415 2005-11-04  Steven G. Kargl <kargls@comcast.net>
416
417         PR fortran/24636
418         * match.c (gfc_match_stopcode):  Set stop_code = -1.
419
420 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
421
422         PR fortran/18452
423         * lang-specs.h: Pass -lang-fortran to the preprocessor.
424
425 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
426
427         PR fortran/18157
428         * trans-array.c (gfc_conv_resolve_dependencies): Use the correct
429         type for the temporary array.
430         * trans-expr.c (gfc_trans_assignment): Pass lss
431         instead of lss_section
432         to gfc_conv_resolve_dependencies to get the
433         correct type.
434
435 2005-11-02  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
436
437         * decl.c (gfc_match_entry): Function entries don't need an argument
438         list if there's no RESULT clause.
439
440 2005-11-01  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
441
442         PR fortran/24008
443         * decl.c (gfc_match_entry): Function entries need an argument list.
444
445 2005-11-01  Erik Edelmann  <eedelman@gcc.gnu.org>
446
447         PR 24245
448         * trans.c (gfc_generate_code): Move code to create a main
449         program symbol from here ...
450         * parse.c (main_program_symbol): ... to this new
451         function, setting the locus from gfc_current_locus
452         instead of ns->code->loc.
453         (gfc_parse_file):  Call main_program_symbol for main programs.
454
455 2005-11-01  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
456
457         PR fortran/24404
458         * resolve.c (resolve_symbol): Output symbol names in more error
459         messages, clarify error message.
460
461 2005-11-01  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
462
463         * dump-parse-tree.c (show_symtree): Revert change unintentionally
464         committed in r106246.
465
466 2005-11-01  Paul Thomas  <pault@gcc.gnu.org>
467
468         PR fortran/21565
469         * symbol.c (check_conflict): An object cannot be in a namelist and in
470         block data.
471
472         PR fortran/18737
473         * resolve.c (resolve_symbol): Set the error flag to
474         gfc_set_default_type, in the case of an external symbol, so that
475         an error message is emitted if IMPLICIT NONE is set.
476
477         PR fortran/14994
478         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SECNDS to enum.
479         * check.c (gfc_check_secnds): New function.
480         * intrinsic.c (add_functions): Add call to secnds.
481         * iresolve.c (gfc_resolve_secnds): New function.
482         * trans-intrinsic (gfc_conv_intrinsic_function): Add call to
483         secnds via case GFC_ISYM_SECNDS.
484         * intrinsic.texi: Add documentation for secnds.
485
486 2005-10-31  Andreas Schwab  <schwab@suse.de>
487
488         * Make-lang.in (GFORTRAN_TARGET_INSTALL_NAME): Define.
489         (GFORTRAN_CROSS_NAME): Remove.
490         (fortran.install-common): Correctly install a cross compiler.
491         (fortran.uninstall): Use GFORTRAN_TARGET_INSTALL_NAME instead of
492         GFORTRAN_CROSS_NAME.
493
494 2005-10-30  Erik Edelmann  <eedelman@gcc.gnu.org>
495
496         * gfortran.texi: Update contributors.
497
498 2005-10-30  Erik Edelmann  <eedelman@gcc.gnu.org>
499
500         PR fortran/18883
501         * trans-decl.c (gfc_finish_var_decl): Add decl to the
502         current function, rather than the parent.  Make
503         assertion accept fake result variables.
504         * trans-expr.c (gfc_conv_variable): If the character
505         length of an ENTRY isn't set, get the length from
506         the master function instead.
507
508 2005-10-30  Thomas Koenig  <Thomas.Koenig@online.de>
509
510         * gfortran.texi:  Remove reservations about I/O usability.  Document
511         that array intrinsics mostly work.
512
513 2005-10-30  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
514
515         * gfortran.texi: Move license stuff to back.  Add information
516         on ENUM and ENUMERATOR.
517         * invoke.texi: Document -fshort-enums.
518
519 2005-10-30  Gaurav Gautam  <gauravga@noida.hcltech.com>
520             Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
521
522         * arith.c (gfc_enum_initializer): New function.
523         (gfc_check_integer_range): Made extern.
524         * decl.c (enumerator_history): New typedef.
525         (last_initializer, enum_history, max_enum): New variables.
526         (create_enum_history, gfc_free_enum_history): New functions.
527         (add_init_expr_to_sym): Call create_enum_history if parsing ENUM.
528         (variable_decl): Modified to parse enumerator definition.
529         (match_attr_spec): Add PARAMETER attribute to ENUMERATORs.
530         (gfc_match_data_decl): Issues error, if match_type_spec do not
531         return desired return values.
532         (set_enum_kind, gfc_match_enum, gfc_match_enumerator_def): New
533         functions.
534         (gfc_match_end): Deal with END ENUM.
535         * gfortran.h (gfc_statement): ST_ENUM, ST_ENUMERATOR, ST_END_ENUM
536         added.
537         (symbol_attribute): Bit field for enumerator added.
538         (gfc_options): Add fshort_enums.
539         (gfc_enum_initializer, gfc_check_integer_range): Add prototypes.
540         * options.c: Include target.h
541         (gfc_init_options): Initialize fshort_enums.
542         (gfc_handle_option): Deal with fshort_enums.
543         * parse.c (decode_statement): Match ENUM and ENUMERATOR statement.
544         (gfc_ascii_statement): Deal with the enumerator statements.
545         (parse_enum): New function to parse enum construct.
546         (parse_spec): Added case ST_ENUM.
547         * parse.h (gfc_compile_state): COMP_ENUM added.
548         (gfc_match_enum, gfc_match_enumerator_def, gfc_free_enum_history):
549         Prototype added.
550         * symbol.c (gfc_copy_attr): Copy enumeration attribute.
551         * lang.opt (fshort-enums): Option added.
552
553 2005-10-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
554
555         * check.c (gfc_check_malloc, gfc_check_free): New functions.
556         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_MALLOC.
557         * intrinsic.c (add_functions): Add symbols for MALLOC function.
558         (add_subroutines): Add symbol for FREE subroutine.
559         * intrinsic.h: Prototypes for gfc_check_malloc, gfc_check_free,
560         gfc_resolve_malloc and gfc_resolve_free.
561         * intrinsic.texi: Add doc for FREE and MALLOC intrinsics.
562         * iresolve.c (gfc_resolve_malloc, gfc_resolve_free): New
563         functions.
564         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add case for
565         GFC_ISYM_MALLOC.
566
567 2005-10-30  Steven Bosscher  <stevenb@suse.de>
568
569         * gfortran.texi: Update contributors.
570
571 2005-10-29  Steven Bosscher  <stevenb@suse.de>
572
573         * interface.c: Fix previous checkin (an incomplete patch
574         was commited for me).
575
576 2005-10-29  Joseph S. Myers  <joseph@codesourcery.com>
577
578         * intrinsic.texi: Remove empty @cindex line.
579
580 2005-10-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
581
582         * check.c (gfc_check_alarm_sub, gfc_check_signal,
583         gfc_check_signal_sub): New functions.
584         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIGNAL.
585         * intrinsic.c (add_functions): Add signal intrinsic.
586         (add_subroutines): Add signal and alarm intrinsics.
587         * intrinsic.texi: Document the new intrinsics.
588         * iresolve.c (gfc_resolve_signal, gfc_resolve_alarm_sub,
589         gfc_resolve_signal_sub): New functions.
590         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add case
591         for GFC_ISYM_SIGNAL.
592         * intrinsic.h: Add prototypes for gfc_check_alarm_sub,
593         gfc_check_signal, gfc_check_signal_sub, gfc_resolve_signal,
594         gfc_resolve_alarm_sub, gfc_resolve_signal_sub.
595
596 2005-10-28  Steven Bosscher  <stevenb@suse.de>
597
598         PR fortran/24545
599         * interface.c (gfc_match_end_interface): Fix typo in 
600         INTERFACE_USER_OP case.
601
602 2005-10-26  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
603
604         PR fortran/15586
605         * resolve.c (resolve_symbol): Remove the use of whynot, so that
606         error messages are not built from pieces.
607
608 2005-10-26  Paul Thomas  <pault@gcc.gnu.org>
609
610         PR fortran/24158
611         * decl.c (gfc_match_data_decl): Correct broken bit of code
612         that prevents undefined derived types from being used as
613         components of another derived type.
614         * resolve.c (resolve_symbol): Add backstop error when derived
615         type variables arrive here with a type that has no components.
616
617 2005-10-25  Jakub Jelinek  <jakub@redhat.com>
618
619         * trans.h (gfc_conv_cray_pointee): Remove.
620         * trans-expr.c (gfc_conv_variable): Revert 2005-10-24 change.
621         * trans-array.c (gfc_conv_array_parameter): Likewise.
622         * trans-decl.c (gfc_conv_cray_pointee): Remove.
623         (gfc_finish_cray_pointee): New function.
624         (gfc_finish_var_decl): Use it.  Don't return early for Cray
625         pointees.
626         (gfc_create_module_variable): Revert 2005-10-24 change.
627         * decl.c (cray_pointer_decl): Update comment.
628         * gfortran.texi: Don't mention Cray pointees aren't visible in the
629         debugger.
630
631         * symbol.c (check_conflict): Add conflict between cray_pointee
632         and in_common resp. in_equivalence.
633         * resolve.c (resolve_equivalence): Revert 2005-10-24 change.
634
635         * module.c (ab_attribute): Add AB_CRAY_POINTER and AB_CRAY_POINTEE.
636         (attr_bits): Likewise.
637         (mio_symbol_attribute): Save and restore cray_pointe{r,e} attributes.
638         (mio_symbol): For cray_pointee write/read cp_pointer reference.
639
640 2005-10-25  Feng Wang  <fengwang@nudt.edu.cn>
641
642         PR fortran/22290
643         * trans-decl.c (gfc_add_assign_aux_vars): New function. Add two
644         auxiliary variables.
645         (gfc_get_symbol_decl): Use it when a variable, including dummy
646         argument, is assigned a label.
647         (gfc_trans_assign_aux_var): New function. Set initial value of
648         the auxiliary variable explicitly.
649         (gfc_trans_deferred_vars): Use it.
650         * trans-stmt.c (gfc_conv_label_variable): Handle dummy argument.
651
652 2005-10-24  Asher Langton  <langton2@llnl.gov>
653
654         PR fortran/17031
655         PR fortran/22282
656         * check.c (gfc_check_loc): New function.
657         * decl.c (variable_decl): New variables cp_as and sym.  Added a
658         check for variables that have already been declared as Cray
659         Pointers, so we can get the necessary attributes without adding
660         a new symbol.
661         (attr_decl1): Added code to catch pointee symbols and "fix"
662         their array specs.
663         (cray_pointer_decl): New method.
664         (gfc_match_pointer): Added Cray pointer parsing code.
665         (gfc_mod_pointee_as): New method.
666         * expr.c (gfc_check_assign): Added a check to catch vector-type
667         assignments to pointees with an unspecified final dimension.
668         * gfortran.h: (GFC_ISYM_LOC): New.
669         (symbol_attribute): Added cray_pointer and cray_pointee bits.
670         (gfc_array_spec): Added cray_pointee and cp_was_assumed bools.
671         (gfc_symbol): Added gfc_symbol *cp_pointer.
672         (gfc_option): Added flag_cray_pointer.
673         (gfc_add_cray_pointee): Declare.
674         (gfc_add_cray_pointer ): Declare.
675         (gfc_mod_pointee_as): Declare.
676         * intrinsic.c (add_functions): Add code for loc() intrinsic.
677         * intrinsic.h (gfc_check_loc): Declare.
678         (gfc_resolve_loc): Declare.
679         * iresolve.c (gfc_resolve_loc): New.
680         * lang.opt: Added fcray-pointer flag.
681         * options.c (gfc_init_options): Initialized.
682         gfc_match_option.flag_cray_pointer.
683         (gfc_handle_option): Deal with -fcray-pointer.
684         * parse.c:(resolve_equivalence): Added code prohibiting Cray
685         pointees in equivalence statements.
686         * resolve.c (resolve_array_ref): Added code to prevent bounds
687         checking for Cray Pointee arrays.
688         (resolve_equivalence): Prohibited pointees in equivalence
689         statements.
690         * symbol.c (check_conflict): Added Cray pointer/pointee
691         attribute checking.
692         (gfc_add_cray_pointer): New.
693         (gfc_add_cray_pointee): New.
694         (gfc_copy_attr): New code for Cray pointers and pointees.
695         * trans-array.c (gfc_trans_auto_array_allocation): Added code to
696         prevent space from being allocated for pointees.
697         (gfc_conv_array_parameter): Added code to catch pointees and
698         correctly set their base address.
699         * trans-decl.c (gfc_finish_var_decl): Added code to prevent
700         pointee declarations from making it to the back end.
701         (gfc_create_module_variable): Same.
702         * trans-expr.c (gfc_conv_variable): Added code to detect and
703         translate pointees.
704         (gfc_conv_cray_pointee): New.
705         * trans-intrinsic.c (gfc_conv_intrinsic_loc): New.
706         (gfc_conv_intrinsic_function): Added entry point for loc
707         translation.
708         * trans.h (gfc_conv_cray_pointee): Declare.
709
710         * gfortran.texi: Added section on Cray pointers, removed Cray
711         pointers from list of proposed extensions.
712         * intrinsic.texi: Added documentation for loc intrinsic.
713         * invoke.texi: Documented -fcray-pointer flag.
714
715 2005-10-24  Asher Langton  <langton2@llnl.gov>
716
717         * decl.c (gfc_match_save): Changed duplicate SAVE errors to
718         warnings in the absence of strict standard conformance
719         * symbol.c (gfc_add_save): Same.
720
721 2005-10-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
722
723         PR fortran/15586
724         * arith.c (gfc_arith_error): Change message to include locus.
725         (check_result, eval_intrinsic, gfc_int2int, gfc_real2real,
726         gfc_real2complex, gfc_complex2real, gfc_complex2complex): Use
727         the new gfc_arith_error.
728         (arith_error): Rewrite full error messages instead of building
729         them from pieces.
730         * check.c (must_be): Removed.
731         (type_check, numeric_check, int_or_real_check, real_or_complex_check,
732         kind_check, double_check, logical_array_check, array_check,
733         scalar_check, same_type_check, rank_check, kind_value_check,
734         variable_check, gfc_check_allocated, gfc_check_associated,
735         gfc_check_cmplx, gfc_check_dcmplx, gfc_check_dot_product,
736         gfc_check_index, gfc_check_kind, gfc_check_matmul, gfc_check_null,
737         gfc_check_pack, gfc_check_precision, gfc_check_present,
738         gfc_check_spread): Rewrite full error messages instead of
739         building them from pieces.
740         * decl.c (gfc_match_entry): Rewrite full error messages instead
741         of building them from pieces.
742         * parse.c (gfc_state_name): Remove.
743         * parse.h: Remove prototype for gfc_state_name.
744
745 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
746
747         PR fortran/23635
748         * check.c (gfc_check_ichar_iachar): Move the code around so
749         that the check on the length is after check for
750         references.
751
752 2005-10-23  Asher Langton  <langton2@llnl.gov>
753
754         * decl.c (match_type_spec): Add a BYTE type as an extension.
755
756 2005-10-23  Paul Thomas  <pault@gcc.gnu.org>
757
758         PR fortran/18022
759         * trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL
760         if there is a component ref during an array ref to force
761         use of temporary in assignment.
762
763         PR fortran/24311
764         PR fortran/24384
765         * fortran/iresolve.c (check_charlen_present): New function to
766         add a charlen to the typespec, in the case of constant
767         expressions.
768         (gfc_resolve_merge, gfc_resolve_spread): Call.the above.
769         (gfc_resolve_spread): Make calls to library functions that
770         handle the case of the spread intrinsic with a scalar source.
771
772 2005-10-22  Erik Edelmann  <eedelman@gcc.gnu.org>
773
774         PR fortran/24426
775         * decl.c (variable_decl): Don't assign default initializers to
776         pointers.
777
778 2005-10-21  Jakub Jelinek  <jakub@redhat.com>
779
780         * interface.c (compare_actual_formal): Issue error when attempting
781         to pass an assumed-size array as assumed-shape array argument.
782
783 2005-10-20  Erik Edelmann  <erik.edelmann@iki.fi>
784
785         PR fortran/21625
786         * resolve.c (expr_to_initialize): New function.
787         (resolve_allocate_expr): Take current statement as new
788         argument. Add default initializers to variables of
789         derived types, if they need it.
790         (resolve_code): Provide current statement as argument to
791         resolve_allocate_expr().
792
793 2005-10-19  Paul Thomas  <pault@gcc.gnu.org>
794
795         PR fortran/24440
796         * resolve.c (resolve_symbol): Correct error in check for
797         assumed size array with default initializer by testing
798         for arrayspec before dereferencing it.
799
800 2005-10-17  Paul Thomas  <pault@gcc.gnu.org>
801
802         PR fortran/23446
803         * gfortran.h: Primitive for gfc_is_formal_arg.
804         * resolve.c(gfc_is_formal_arg): New function to signal across
805         several function calls that formal argument lists are being
806         processed.
807         (resolve_formal_arglist): Set/reset the flag for gfc_is_formal_arg.
808         *expr.c(check_restricted): Add check, via gfc_is_formal_arg, if
809         symbol is part of an formal argument declaration.
810
811         PR fortran/21459
812         * decl.c (add_init_expr_to_sym): Make a new character
813         length for each variable, when the expression is NULL
814         and link to cl_list.
815
816         PR fortran/20866
817         * match.c (recursive_stmt_fcn): New function that tests if
818         a statement function resurses through itself or other other
819         statement functions.
820         (gfc_match_st_function): Call recursive_stmt_fcn to check
821         if this is recursive and to raise error if so.
822
823         PR fortran/20849
824         PR fortran/20853
825         * resolve.c (resolve_symbol): Errors for assumed size arrays
826         with default initializer and for external objects with an
827         initializer.
828
829         PR fortran/20837
830         * decl.c (match_attr_spec): Prevent PUBLIC from being used
831         outside a module.
832
833 2005-10-16  Erik Edelmann  <erik.edelmann@iki.fi>
834
835         PR 22273
836         * expr.c (check_inquiry): Add "len" to inquiry_function.
837
838 2005-10-14  Jakub Jelinek  <jakub@redhat.com>
839
840         * primary.c (match_boz_constant): Add missing break after gfc_error.
841
842 2005-10-12  Paul Thomas  <pault@gcc.gnu.org>
843
844         PR fortran/24092
845         * trans-types.c (gfc_get_derived_type): Insert code to obtain backend
846         declaration for derived types, building if necessary.  Return the
847         derived type if the fields have been built by this process.  Otherwise,
848         continue as before but using the already obtained backend_decls for the
849         derived type components.  Change the gcc_assert to act on the field.
850
851 2005-10-12  Paul Thomas  <pault@gcc.gnu.org>
852
853         PR fortran/18082
854         * decl.c (variable_decl): Make a new copy of the character
855         length for each variable, when the expression is not a
856         constant.
857
858 2005-10-12  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
859
860         * gfortran.h: Add bitmasks for different FPE traps. Add fpe
861         member to options_t.
862         * invoke.texi: Document the new -ffpe-trap option.
863         * lang.opt: Add -ffpe-trap option.
864         * options.c (gfc_init_options): Initialize the FPE option.
865         (gfc_handle_fpe_trap_option): New function to parse the argument
866         of the -ffpe-trap option.
867         (gfc_handle_option): Add case for -ffpe-trap.
868         * trans-decl.c: Declare a tree for the set_fpe library function.
869         (gfc_build_builtin_function_decls): Build this tree.
870         (gfc_generate_function_code): Generate a call to set_fpe at
871         the beginning of the main program.
872         * trans.h: New tree for the set_fpe library function.
873
874 2005-10-12  Paul Thomas  <pault@gcc.gnu.org>
875
876         PR fortran/20847
877         PR fortran/20856
878         * symbol.c (check_conflict): Prevent common variables and
879         function results from having the SAVE attribute,as required
880         by the standard.
881
882 2005-10-12  Paul Thomas  <pault@gcc.gnu.org>
883
884         PR fortran/24207
885         * resolve.c (resolve_symbol): Exclude use and host associated
886         symbols from the test for private objects in a public namelist.
887
888 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
889
890         * trans-common.c (build_field): Fix comment typo.
891         (create_common): Set backend_decl of COMMON or EQUIVALENCEd
892         variables to a VAR_DECL with the COMPONENT_REF in
893         DECL_HAS_VALUE_EXPR rather than COMPONENT_REF directly.
894         * f95-lang.c (gfc_expand_function): Emit debug info for
895         EQUIVALENCEd variables if the equiv union is going to be output.
896
897 2005-10-11  Steven G. Kargl  <kargls@comcast.net>
898
899         PR fortran/20786
900         * iresolve.c (gfc_resolve_aint, gfc_resolve_anint): Type conversion
901         of the argument.
902
903 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
904
905         * f95-lang.c (gfc_init_decl_processing): Initialize
906         void_list_node.
907
908 2005-10-07  Erik Edelmann  <erik.edelmann@iki.fi>
909
910         PR 18568
911         * resolve.c (find_array_spec): Search through the list of
912         components in the symbol of the type instead of the symbol of the
913         variable.
914
915 2005-10-05  Richard Guenther  <rguenther@suse.de>
916
917         PR fortran/24176
918         * parse.c (gfc_parse_file): Exit early for empty files.
919
920 2005-10-03  Steve Ellcey  <sje@cup.hp.com>
921
922         * fortran/trans-types.c (gfc_init_kinds): Only pass float, double,
923         and long double floating point types through to Fortran compiler.
924
925 2005-10-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
926
927         PR fortran/20120
928         * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long
929         double builtin function.
930         (gfc_init_builtin_functions): Add mfunc_longdouble,
931         mfunc_clongdouble and func_clongdouble_longdouble trees. Build
932         them for round, trunc, cabs, copysign and pow functions.
933         * iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add
934         case for kind 10 and 16.
935         * trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16,
936         exponent10 and exponent16.
937         (gfc_build_intrinsic_function_decls): Build nodes for int16,
938         real10, real16, complex10 and complex16 types. Build all possible
939         combinations for function _gfortran_pow_?n_?n. Build function
940         calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16.
941         * trans-expr.c (gfc_conv_power_op): Add case for integer(16),
942         real(10) and real(16).
943         * trans-intrinsic.c: Add suppport for long double builtin
944         functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION
945         macros.
946         (gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and
947         real(16) kinds.
948         (gfc_build_intrinsic_lib_fndecls): Add support for real10_decl
949         and real16_decl in library functions.
950         (gfc_get_intrinsic_lib_fndecl): Add cases for real and complex
951         kinds 10 and 16.
952         (gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16)
953         kinds.
954         (gfc_conv_intrinsic_sign): Likewise.
955         (gfc_conv_intrinsic_ishftc): Add case for integer(16) kind.
956         * trans-types.c (gfc_get_int_type, gfc_get_real_type,
957         gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in
958         the case of kinds not available.
959         * trans.h: Declare trees for cpowl10, cpowl16, ishftc16,
960         exponent10 and exponent16.
961
962 2005-10-01  Paul Thomas  <pault@gcc.gnu.org>
963
964         PR fortran/16404
965         PR fortran/20835
966         PR fortran/20890
967         PR fortran/20899
968         PR fortran/20900
969         PR fortran/20901
970         PR fortran/20902
971         * gfortran.h: Prototype for gfc_add_in_equivalence.
972         * match.c (gfc_match_equivalence): Make a structure component
973         an explicit,rather than a syntax, error in an equivalence
974         group.  Call gfc_add_in_equivalence to add the constraints
975         imposed in check_conflict.
976         * resolve.c (resolve_symbol): Add constraints: No public
977         structures with private-type components and no public
978         procedures with private-type dummy arguments.
979         (resolve_equivalence_derived): Add constraint that prevents
980         a structure equivalence member from having a default
981         initializer.
982         (sequence_type): New static function to determine whether an
983         object is default numeric, default character, non-default
984         or mixed sequence. Add corresponding enum typespec.
985         (resolve_equivalence): Add constraints to equivalence groups
986         or their members: No more than one initialized member and
987         that different types are not equivalenced for std=f95.  All
988         the simple constraints have been moved to check_conflict.
989         * symbol.c (check_conflict): Simple equivalence constraints
990         added, including those removed from resolve_symbol.
991         (gfc_add_in_equivalence): New function to interface calls
992         match_equivalence to check_conflict.
993
994 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
995
996         PR fortran/18518
997         * trans-common.c (build_equiv_decl): Add IS_SAVED argument.
998         If it is true, set TREE_STATIC on the decl.
999         (create_common): If any symbol in equivalence has SAVE attribute,
1000         pass true as last argument to build_equiv_decl.
1001
1002 2005-09-24  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1003
1004         * trans-io.c (gfc_build_io_library_fndecls): Add entry
1005         iocall_x_array for transfer_array.
1006         (transfer_array_desc): New function.
1007         (gfc_trans_transfer): Add code to call transfer_array_desc.
1008
1009 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
1010
1011         PR fortran/23677
1012         * symbol.c (gfc_is_var_automatic): Return true if character length
1013         is non-constant rather than constant.
1014         * resolve.c (gfc_resolve): Don't handle !gfc_option.flag_automatic
1015         here.
1016         * options.c (gfc_post_options): Set gfc_option.flag_max_stack_var_size
1017         to 0 for -fno-automatic.
1018
1019 2005-09-23  Paul Thomas  <pault@gcc.gnu.org>
1020
1021         PR fortran/16861
1022         * module.c (mio_component_ref): Return if the symbol is NULL
1023         and wait for another iteration during module reads.
1024         (mio_symtree_ref): Suppress the writing of contained symbols,
1025         when a symbol is available in the main namespace.
1026         (read_module): Restrict scope of special treatment of contained
1027         symbols to variables only and suppress redundant call to
1028         find_true_name.
1029
1030 2005-09-22  Steven G. Kargl  <kargls@comcast.net>
1031
1032         PR fortran/24005
1033         * interface.c (check_interface1): Fix NULL dereference.
1034
1035 2005-09-22  Erik Edelmann  <erik.edelmann@iki.fi>
1036
1037         PR fortran/23843
1038         * resolve.c (derived_inaccessible): New function.
1039         (resolve_transfer): Use it to check for private
1040         components.
1041
1042 2005-09-22  Steven G. Kargl  <kargls@comcast.net>
1043
1044         PR fortran/23516
1045         * intrinsic.c (add_function): Add IMAG, IMAGPART, and REALPART
1046         intrinsics.
1047         * intrinsic.h: Prototypes for gfc_simplify_realpart and
1048         gfc_resolve_realpart.
1049         * intrinsic.texi: Document intrinsic procedures.
1050         * simplify.c (gfc_simplify_realpart): New function.
1051         * irseolve.c (gfc_resolve_realpart): New function.
1052
1053 2005-09-21  Erik Edelmann  <erik.edelmann@iki.fi>
1054
1055         PR fortran/19929
1056         * trans-stmt.c (gfc_trans_deallocate): Check if the
1057         object to be deallocated is an array by looking at
1058         expr->rank instead of expr->symtree->n.sym->attr.dimension.
1059
1060 2005-09-20  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1061
1062         PR fortran/23420
1063         * io.c (resolve_tag): Don't allow non-CHARACTER constants as formats.
1064         (match_io): Fix usage of gfc_find_symbol.
1065
1066 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
1067
1068         PR fortran/23663
1069         * primary.c (match_actual_arg): Handle ENTRY the same way
1070         as FUNCTION.
1071
1072 2005-09-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1073
1074         * Make-lang.in: Make check-fortran alias for check-gfortran.
1075
1076 2005-09-18  Andreas Jaeger  <aj@suse.de>
1077
1078         * module.c (read_module): Add missed line from last patch.
1079
1080 2005-09-18  Erik Edelmann  <erik.edelmann@iki.fi>
1081
1082         PR fortran/15975
1083         * resolve.c (resolve_symbol): Don't assign default
1084         initializer to pointers.
1085
1086 2005-09-18  Paul Thomas  <pault@gcc.gnu.org>
1087
1088         PR fortran/16861
1089         * module.c (read_module): Give symbols from module procedures
1090         different true_name entries to those from the module proper.
1091
1092 2005-09-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1093
1094         PR fortran/15586
1095         * arith.c (gfc_arith_error): Add translation support for error
1096         messages.
1097         * array.c (gfc_match_array_ref): Likewise.
1098         (gfc_match_array_spec): Likewise.
1099         * check.c (must_be): Add msgid convention to third argument.
1100         (same_type_check): Add translation support for error message.
1101         (rank_check): Likewise.
1102         (kind_value_check): Likewise.
1103         (gfc_check_associated): Correct typo.
1104         (gfc_check_reshape): Add translation support for error message.
1105         (gfc_check_spread): Likewise.
1106         * error.c (error_printf): Add nocmsgid convention to argument.
1107         (gfc_warning, gfc_notify_std, gfc_warning_now, gfc_warning_check)
1108         (gfc_error, gfc_error_now): Likewise.
1109         (gfc_status): Add cmsgid convention to argument.
1110         * expr.c (gfc_extract_int): Add translation support for error
1111         messages.
1112         (gfc_check_conformance): Add msgid convention to argument.
1113         (gfc_check_pointer_assign): Correct tabbing.
1114         * gfortran.h: Include intl.h header. Remove prototype for gfc_article.
1115         * gfortranspec.c: Include intl.h header.
1116         (lang_specific_driver): Add translation support for --version.
1117         * io.c (check_format): Add translation support for error message.
1118         (format_item_1): Likewise.
1119         (data_desc): Likewise.
1120         * matchexp.c: Likewise.
1121         * misc.c (gfc_article): Remove function.
1122         * module.c (bad_module): Use msgid convention. Add translation support
1123         for error messages.
1124         (require_atom): Add translation support for error messages.
1125         * parse.c (gfc_ascii_statement): Likewise.
1126         (gfc_state_name): Likewise.
1127         * primary.c (match_boz_constant): Reorganise error messages for
1128         translations.
1129         * resolve.c (resolve_entries): Likewise.
1130         (resolve_operator): Add translation support for error messages.
1131         (gfc_resolve_expr): Use msgid convention. Reorganise error messages
1132         for translations.
1133         (resolve_symbol): Add translation support for error messages.
1134         * symbol.c (gfc_add_procedure): Remove use of gfc_article function.
1135         * trans-const.c (gfc_build_string_const): Use msgid convention.
1136
1137 2005-09-16  Paul Brook  <paul@codesourcery.com>
1138
1139         PR fortran/23906
1140         * dependency.c (transform_sections): Divide by correct value.
1141         Elaborate comment.
1142
1143 2005-09-14  Paul Thomas  <pault@gcc.gnu.org>
1144
1145         PR fortran/21875 Internal Unit Array I/O, NIST
1146         * fortran/trans-io.c (gfc_build_io_library_fndecls): Add field for
1147         array descriptor to IOPARM structure.
1148         * fortran/trans-io.c (set_internal_unit): New function to generate code
1149         to store the character (array) and the character length for an internal
1150         unit.
1151         * fortran/trans-io (build_dt): Use the new function set_internal_unit.
1152
1153 2005-09-14  Paul Thomas  <pault@gcc.gnu.org>
1154
1155         PR fortran/19358
1156         * trans-array.c (gfc_trans_dummy_array_bias): correct the typo
1157         which uses dim[i].upper for lbound, rather than dim[i].lower.
1158
1159 2005-09-13  Erik Edelmann  <erik.edelmann@iki.fi>
1160
1161         PR fortran/17740
1162         * trans-expr.c (gfc_trans_arrayfunc_assign): Check value
1163         of attr.elemental for specific function instead of generic name.
1164
1165 2005-09-13  Richard Sandiford  <richard@codesourcery.com>
1166
1167         PR fortran/18899
1168         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Move initialization
1169         of argse.  Remove now-redundant want_pointer assignment.
1170         * trans-array.c (gfc_conv_expr_descriptor): When not assigning to
1171         a pointer, keep the original bounds of a full array reference.
1172
1173 2005-09-13  Richard Sandiford  <richard@codesourcery.com>
1174
1175         PR target/19269
1176         * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift)
1177         (gfc_resolve_pack, gfc_resolve_reshape, gfc_resolve_spread)
1178         (gfc_resolve_transpose, gfc_resolve_unpack): Add "_char" to the name
1179         for character-based operations.
1180         (gfc_resolve_pack): Remove ATTRIBUTE_UNUSED from array argument.
1181         (gfc_resolve_unpack): Copy the whole typespec from the vector.
1182         * trans-array.c (gfc_conv_expr_descriptor): In the EXPR_FUNCTION
1183         case, get the string length from the scalarization state.
1184
1185 2005-09-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1186
1187         * Make-lang.in: Change targets prefixes from f95 to fortran.
1188         * config-lang.in: Change language name to "fortran".
1189         * lang.opt: Change language name to "fortran".
1190         * options.c: Change CL_F95 to CL_Fortran.
1191
1192 2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
1193
1194         gfortran.texi:  Document IOSTAT= specifier.
1195
1196 2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
1197
1198         * gfortran.h:  Add iomsg to gfc_open, gfc_close, gfc_filepos,
1199         gfc_inquire and gfc_dt.
1200         * dump-parse-tree.c (gfc_show_code_node):  Add iomsg
1201         for open, close, file positioning, inquire and namelist.
1202         * io.c (io_tag):  Add tag_iomsg.
1203         (resolve_tag): Add standards warning for iomsg.
1204         (match_open_element):  Add iomsg.
1205         (gfc_free_open):  Add iomsg.
1206         (gfc_resolve_open):  Add iomsg.
1207         (gfc_free_close):  Add iomsg.
1208         (match_close_element):  Add iomsg.
1209         (gfc_resolve_close):  Add iomsg.
1210         (gfc_free_filepos):  Add iomsg.
1211         (match_file_element):  Add iomsg.
1212         (gfc_resolve_filepos):  Add iostat and iomsg.
1213         (match-dt_element):  Add iomsg.
1214         (gfc_free_dt):  Add iomsg.
1215         (gfc_resolve_dt):  Add iomsg.
1216         (gfc_free_inquire):  Add iomsg.
1217         (match_inquire_element):  Add iomsg.
1218         (gfc_resolve_inquire):  Add iomsg.
1219         * trans_io.c:  Add ioparm_iomsg and ioparm_iomsg_len.
1220         (gfc_build_io_library_fndecls):  Add iomsg as last field.
1221         (gfc_trans_open):  Add iomsg.
1222         (gfc_trans_close):  Add iomsg.
1223         (build_fileos):  Call set_string for iomsg.
1224         (gfc_trans_inquire):  Add iomsg.
1225         (build_dt):  Add iomsg.
1226
1227 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
1228
1229         * match.h (gfc_match_equiv_variable): Declare.
1230
1231 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
1232
1233         PR fortran/19239
1234         * Makefile.in (fortran/trans-expr.o): Depend on dependency.h.
1235         * dependency.h (gfc_ref_needs_temporary_p): Declare.
1236         * dependency.c (gfc_ref_needs_temporary_p): New function.
1237         (gfc_check_fncall_dependency): Use it instead of inlined check.
1238         By so doing, take advantage of the fact that character substrings
1239         within an array reference also need a temporary.
1240         * trans.h (GFC_SS_VECTOR): Adjust comment.
1241         * trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case.
1242         (gfc_set_vector_loop_bounds): New function.
1243         (gfc_add_loop_ss_code): Call it after evaluating the subscripts of
1244         a GFC_SS_SECTION.  Deal with the GFC_SS_VECTOR case by evaluating
1245         the vector expression and caching its descriptor for use within
1246         the loop.
1247         (gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete.
1248         (gfc_conv_array_index_offset): Handle scalar, vector and range
1249         dimensions as separate cases of a switch statement.  In the vector
1250         case, use the loop variable to calculate a vector index and use the
1251         referenced element as the dimension's index.  Perform bounds checking
1252         on this final index.
1253         (gfc_conv_section_upper_bound): Return null for vector indexes.
1254         (gfc_conv_section_startstride): Give vector indexes a start value
1255         of 0 and a stride of 1.
1256         (gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation.
1257         (gfc_conv_expr_descriptor): Expand comments.  Generalize the
1258         handling of the !want_pointer && !direct_byref case.  Use
1259         gfc_ref_needs_temporary_p to decide whether the variable case
1260         needs a temporary.
1261         (gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a
1262         GFC_SS_VECTOR index.
1263         * trans-expr.c: Include dependency.h.
1264         (gfc_trans_arrayfunc_assign): Fail if the target needs a temporary.
1265
1266 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
1267
1268         PR fortran/21104
1269         * trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
1270         from trans-expr.c.
1271         (gfc_init_interface_mapping, gfc_free_interface_mapping)
1272         (gfc_add_interface_mapping, gfc_finish_interface_mapping)
1273         (gfc_apply_interface_mapping): Declare.
1274         * trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
1275         (gfc_trans_allocate_temp_array): Add pre and post block arguments.
1276         * trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
1277         (gfc_trans_allocate_array_storage): Replace loop argument with
1278         separate pre and post blocks.
1279         (gfc_trans_allocate_temp_array): Add pre and post block arguments.
1280         Update call to gfc_trans_allocate_array_storage.
1281         (gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
1282         interface to gfc_trans_allocate_temp_array.
1283         * trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
1284         Moved to trans.h.
1285         (gfc_init_interface_mapping, gfc_free_interface_mapping)
1286         (gfc_add_interface_mapping, gfc_finish_interface_mapping)
1287         (gfc_apply_interface_mapping): Make extern.
1288         (gfc_conv_function_call): Build an interface mapping for array
1289         return values too.  Call gfc_set_loop_bounds_from_array_spec.
1290         Adjust call to gfc_trans_allocate_temp_array so that code is
1291         added to SE rather than LOOP.
1292
1293 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
1294
1295         PR fortran/12840
1296         * trans.h (gfor_fndecl_internal_realloc): Declare.
1297         (gfor_fndecl_internal_realloc64): Declare.
1298         * trans-decl.c (gfor_fndecl_internal_realloc): New variable.
1299         (gfor_fndecl_internal_realloc64): New variable.
1300         (gfc_build_builtin_function_decls): Initialize them.
1301         * trans-array.h (gfc_trans_allocate_temp_array): Add a fourth argument.
1302         * trans-array.c (gfc_trans_allocate_array_storage): Add an argument
1303         to say whether the array can grow later.  Don't allocate the array
1304         on the stack if so.  Don't call malloc for zero-sized arrays.
1305         (gfc_trans_allocate_temp_array): Add a similar argument here.
1306         Pass it along to gfc_trans_allocate_array_storage.
1307         (gfc_get_iteration_count, gfc_grow_array): New functions.
1308         (gfc_iterator_has_dynamic_bounds): New function.
1309         (gfc_get_array_constructor_element_size): New function.
1310         (gfc_get_array_constructor_size): New function.
1311         (gfc_trans_array_ctor_element): Replace pointer argument with
1312         a descriptor tree.
1313         (gfc_trans_array_constructor_subarray): Likewise.  Take an extra
1314         argument to say whether the variable-sized part of the constructor
1315         must be allocated using realloc.  Grow the array when this
1316         argument is true.
1317         (gfc_trans_array_constructor_value): Likewise.
1318         (gfc_get_array_cons_size): Delete.
1319         (gfc_trans_array_constructor): If the loop bound has not been set,
1320         split the allocation into a static part and a dynamic part.  Set
1321         loop->to to the bounds for static part before allocating the
1322         temporary.  Adjust call to gfc_trans_array_constructor_value.
1323         (gfc_conv_loop_setup): Allow any constructor to determine the
1324         loop bounds.  Check whether the constructor has a dynamic size
1325         and prefer to use something else if so.  Expect the loop bound
1326         to be set later.  Adjust call to gfc_trans_allocate_temp_array.
1327         * trans-expr.c (gfc_conv_function_call): Adjust another call here.
1328
1329 2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
1330
1331         PR fortran/18878
1332         * module.c (find_use_name_n): Based on original
1333         find_use_name. Either counts number of use names for a
1334         given real name or returns use name n.
1335         (find_use_name, number_use_names): Interfaces to the
1336         function find_use_name_n.
1337         (read_module): Add the logic and calls to these functions,
1338         so that mutiple reuses of the same real name are loaded.
1339
1340 2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
1341
1342         PR fortran/22304
1343         PR fortran/23270
1344         PR fortran/18870
1345         PR fortran/16511
1346         PR fortran/17917
1347         * gfortran.h: Move definition of BLANK_COMMON_NAME from trans-
1348         common.c so that it is accessible to module.c. Add common_head
1349         field to gfc_symbol structure. Add field for the equivalence
1350         name AND new attr field, in_equivalence.
1351         * match.c (gfc_match_common, gfc_match_equivalence): In loops
1352         that flag common block equivalences, emit an error if the
1353         common blocks are different, using sym->common_head as the
1354         common block identifier. Ensure that symbols that are equivalence
1355         associated with a common block are marked as being in_common.
1356         * module.c (write_blank_common): New.
1357         (write_common): Use unmangled common block name.
1358         (load_equiv): New function ported from g95.
1359         (read_module): Call load_equiv.
1360         (write_equiv): New function ported from g95. Correct
1361         string referencing for gfc functions. Give module
1362         equivalences a unique name.
1363         (write_module): Call write_equiv and write_blank_common.
1364         * primary.c (match_variable) Old gfc_match_variable, made
1365         static and third argument provided to indicate if parent
1366         namespace to be visited or not.
1367         (gfc_match_variable) New. Interface to match_variable.
1368         (gfc_match_equiv_variable) New. Interface to match_variable.
1369         * trans-common.c (finish_equivalences): Provide the call
1370         to create_common with a gfc_common_header so that
1371         module equivalences are made external, rather than local.
1372         (find_equivalences): Ensure that all members in common block
1373         equivalences are marked as used. This prevents the subsequent
1374         call to this function from making local unions.
1375         * trans-decl.c (gfc_generate_function_code): Move the call to
1376         gfc_generate_contained_functions to after the call to
1377         gfc_trans_common so the use-associated, contained common
1378         blocks produce the correct references.
1379         (gfc_create_module_variable): Return for equivalenced symbols
1380         with existing backend declaration.
1381
1382 2005-09-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1383
1384         PR fortran/23765
1385         * match.c (gfc_match_common): Remove unnecessary / wrong special
1386         cases for end-of-statement.
1387
1388 2005-09-08  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1389
1390         * gfortran.texi: Add section about implemented F2003 features.
1391
1392 2005-09-08  Richard Sandiford  <richard@codesourcery.com>
1393
1394         PR fortran/15326
1395         * trans-array.c (gfc_add_loop_ss_code): Set ss->string_length in
1396         the GFC_SS_FUNCTION case too.
1397         * trans-expr.c (gfc_conv_function_val): Allow symbols to be bound
1398         to function pointers as well as function decls.
1399         (gfc_interface_sym_mapping, gfc_interface_mapping): New structures.
1400         (gfc_init_interface_mapping, gfc_free_interface_mapping)
1401         (gfc_get_interface_mapping_charlen, gfc_get_interface_mapping_array)
1402         (gfc_set_interface_mapping_bounds, gfc_add_interface_mapping)
1403         (gfc_finish_interface_mapping, gfc_apply_interface_mapping_to_cons)
1404         (gfc_apply_interface_mapping_to_ref)
1405         (gfc_apply_interface_mapping_to_expr)
1406         (gfc_apply_interface_mapping): New functions.
1407         (gfc_conv_function_call): Evaluate the arguments before working
1408         out where the result should go.  Make the null pointer case provide
1409         the string length in parmse.string_length.  Cope with non-constant
1410         string lengths, using the above functions to evaluate such lengths.
1411         Use a temporary typespec; don't assign to sym->cl->backend_decl.
1412         Don't assign to se->string_length when returning a cached array
1413         descriptor.
1414
1415 2005-09-08  Richard Sandiford  <richard@codesourcery.com>
1416
1417         PR fortran/19928
1418         * trans-array.c (gfc_conv_array_ref): Call gfc_advance_se_ss_chain
1419         after handling scalarized references.  Make "indexse" inherit from
1420         "se" when handling AR_ELEMENTs.
1421         (gfc_walk_variable_expr): Add GFC_SS_SCALAR entries for each
1422         substring or scalar reference that follows an array section.
1423         * trans-expr.c (gfc_conv_variable): When called from within a
1424         scalarization loop, start out with "ref" pointing to the scalarized
1425         part of the reference.  Don't call gfc_advance_se_ss_chain here.
1426
1427 2005-09-07  Richard Sandiford  <richard@codesourcery.com>
1428
1429         PR fortran/23373
1430         * trans-expr.c (gfc_trans_pointer_assignment): Assign to a temporary
1431         descriptor if the rhs is not a null pointer or variable.
1432
1433 2005-09-07  Thomas Koenig  <Thomas.Koenig@online.de>
1434
1435         PR fortran/20848
1436         * symbol.c(check_conflict):  Add conflict for parameter/save,
1437
1438 2005-09-06  Richard Sandiford  <richard@codesourcery.com>
1439
1440         PR fortran/19269
1441         * simplify.c (gfc_simplify_transpose): Set the result's typespec from
1442         the source, not the first element of the return value.
1443
1444 2005-09-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1445
1446         PR fortran/23661
1447         * io.c (match_io): Correctly backup if PRINT followed by
1448         symbol which is not a namelist.  Force blank between PRINT
1449         and namelist in free form.
1450
1451 2005-08-31  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1452
1453         PR fortran/20592
1454         * gfortran.h (gfc_option_t): Add flag_automatic.
1455         * invoke.texi: Document the -fno-automatic option.
1456         * lang.opt: Add a -fautomatic option.
1457         * options.c (gfc_init_options): Default for -fautomatic is on.
1458         (gfc_handle_option): Add handling of -fautomatic option.
1459         * resolve.c (gfc_resolve): When -fno-automatic is used, mark
1460         needed variables as SAVE.
1461
1462 2005-08-27  Erik Edelmann  <erik.edelmann@iki.fi>
1463
1464         * trans-array.c (gfc_trans_deferred_array): Fix comments.
1465
1466 2005-08-27  Erik Schnetter  <schnetter@aei.mpg.de>
1467
1468         * primary.c (match_charkind_name): Fix typo in comment leading to
1469         function.
1470
1471 2005-08-25  Erik Edelmann  <eedelman@acclab.helsinki.fi>
1472
1473         PR fortran/20363
1474         * symbol.c (find_special): Remove.
1475         (build_sym, add_init_expr, attr_decl1): Remove calls to
1476         find_special in favor of calls to gfc_get_symbol.
1477
1478 2005-08-24  Thomas Koenig  <Thomas.Koenig@online.de>
1479
1480         PR fortran/17758
1481         * gfortran.h (symbol_attribute):  Add noreturn to the structure.
1482         (gfc_intrinsic_sym):  Add noreturn to the structure.
1483         * intrinsic.c (make_noreturn):  New function.
1484         (add_subroutines):  Mark subroutines abort and exit as noreturn.
1485         (gfc_intrinsic_sub_interface):  Copy noreturn attribute from
1486         isym to the resolved symbol.
1487         * trans-decl.c (gfc_get_extern_function_decl): Set function
1488         as VOLATILE (== noreturn) if the noreturn attribute is set.
1489
1490 2005-08-21  Steven G. Kargl  <kargls@comcast.net>
1491
1492         * decl.c: Typo in comment.
1493
1494 2005-08-21  Steven G. Kargl  <kargls@comcast.net>
1495
1496         * array.c: Bump GFC_MAX_AC_EXPAND from 100 to 65535.
1497
1498 2005-08-21  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1499
1500         * gfortran.h (gfc_option_t): Remove source field.  Add
1501         flag_d_lines field.
1502         (gfc_new_file): Remove arguments in prototype.
1503         (gfc_source_file): Make 'const char *'.
1504         * f95-lang.c (gfc_init): Use gfc_source_file instead of
1505         gfc_option.source.  Call gfc_new_file without arguments.
1506         * invoke.texi: Document new options '-fd-lines-as-code' and
1507         '-fd-lines-as-comment'.
1508         * lang.opt: Add new options.  Alphabetize.
1509         * options.c (gfc_init_options): Initialize gfc_source_file instead
1510         of gfc_option.source.  Initialize gfc_option.flag_d_lines.
1511         (form_from_filename): Move here from scanner.c.  Make
1512         'filename' argument 'const'.
1513         (gfc_post_options): Set gfc_source_file.  Determine source form.
1514         Warn if 'd-lines*' are used in free form.
1515         * scanner.c (gfc_source_file): Constify.
1516         (skip_fixed_comments): Deal with d-lines.
1517         (get_file): Constify argument 'name'.
1518         (load_file): Constify argument 'filename'.
1519         (form_from_filename): Moved to options.c.
1520         (gfc_new_file): Remove arguments.  Don't initialize
1521         gfc_source_file, don't determine source form.
1522         * trans-const.c (gfc_init_constants): Use gfc_source_file instead
1523         of gfc_option.source.
1524
1525 2005-08-19  Steven G. Kargl  <kargls@comcast.net>
1526
1527         PR fortran/23065
1528         * gfortran.h: Remove PATH_MAX definition.
1529         * module.c (write_module, gfc_dump_module): Use alloca to allocate
1530         buffers.
1531         * scanner.c (gfc_release_include_path, form_from_filename): Ditto.
1532
1533 2004-08-16  Huang Chun  <chunhuang73@hotmail.com>
1534
1535         * trans-expr.c (gfc_conv_power_op): Evaluate the expression before
1536         expand.
1537
1538 2005-08-14  Asher Langton  <langton2@llnl.gov>
1539
1540         * parse.c (match): Enclose macro in do...while(0) and braces.
1541
1542 2005-08-14  Paul Thomas  <pault@gcc.gnu.org>
1543
1544         PR fortran/21432.
1545         * gfortran.texi: Document PRINT namelist.
1546
1547 2005-08-14  Paul Thomas  <pault@gcc.gnu.org>
1548
1549         PR fortran/21432.
1550         * io.c (match_io): Add code to implement PRINT namelist.
1551
1552 2005-08-14  Canqun Yang  <canqun@nudt.edu.cn>
1553
1554         * trans-stmt.c (gfc_trans_arithmetic_if): Optimized in case of equal
1555         labels.
1556
1557 2005-08-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1558             Steven Bosscher  <stevenb@suse.de>
1559
1560         PR libfortran/20006
1561         * gfortran.h: Add is_main_program member to symbol_attribute.
1562         * trans-decl: Add a gfor_fndecl_set_std tree.
1563         (gfc_build_builtin_function_decls): Create it.
1564         (gfc_generate_function_code): Add this call at the beginning of
1565         the main program.
1566         * trans.c (gfc_generate_code): Move main_program and attr.
1567         * trans.h: Add declaration for gfor_fndecl_set_std.
1568
1569 2005-08-10  Thomas Koenig  <Thomas.Koenig@online.de>
1570
1571         PR libfortran/22143
1572         gfortran.h:  Declare new function gfc_resolve_dim_arg.
1573         resolve.c:  New function gfc_resolve_dim_arg.
1574         iresolve.c (gfc_resolve_all):  Use gfc_resolve_dim_arg.
1575         (gfc_resolve_any):  Likewise.
1576         (gfc_resolve_count):  Likewise.
1577         (gfc_resolve_cshift):  Likewise.  If the kind of shift is less
1578         gfc_default_integer_kind, convert it to default integer type.
1579         (gfc_resolve_eoshift):  Likewise.
1580         (gfc_resolve_maxloc):  Use gfc_resolve_dim_arg.
1581         (gfc_resolve_maxval):  Likewise.
1582         (gfc_resolve_minloc):  Likewise.
1583         (gfc_resolve_minval):  Likewise.
1584         (gfc_resolve_product):  Likewise.
1585         (gfc_resolve_spread):  Likewise.
1586         (gfc_resolve_sum):  Likewise.
1587
1588 2005-08-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1589
1590         * check.c (gfc_check_ttynam_sub, gfc_check_isatty): Add check
1591         functions for new intrinsics TTYNAM and ISATTY.
1592         * intrinsic.c (add_functions, add_subroutines): Add new
1593         intrinsics.
1594         * intrinsic.h: Add prototypes for new check and resolve
1595         functions.
1596         * iresolve.c (gfc_resolve_isatty, gfc_resolve_ttynam_sub): New
1597         resolve functions for intrinsics TTYNAM and ISATTY.
1598         * gfortran.h (gfc_generic_isym_id): Add symbol for ISATTY.
1599         * trans-intrinsic.c: Add case for GFC_ISYM_ISATTY.
1600
1601 2005-08-09  Jakub Jelinek  <jakub@redhat.com>
1602
1603         * scanner.c (preprocessor_line): Don't write beyond the end of flag
1604         buffer.
1605
1606 2005-08-07   Janne Blomqvist  <jblomqvi@cc.hut.fi>
1607
1608         PR fortran/22390
1609         * dump-parse-tree.c (gfc_show_code_node): Add case for FLUSH.
1610         * gfortran.h: Add enums for FLUSH.
1611         * io.c (gfc_free_filepos,match_file_element,match_filepos): Modify
1612         comment appropriately.  (gfc_match_flush): New function.
1613         * match.c (gfc_match_if): Add match for flush.
1614         * match.h: Add prototype.
1615         * parse.c (decode_statement): Add flush to 'f' case.
1616         (next_statement): Add case for flush. (gfc_ascii_statement): Likewise.
1617         * resolve.c (resolve_code): Add flush case.
1618         * st.c (gfc_free_statement): Add flush case.
1619         * trans-io.c: Add prototype for flush.
1620         (gfc_build_io_library_fndecls): Build fndecl for flush.
1621         (gfc_trans_flush): New function.
1622         * trans-stmt.h: Add prototype.
1623         * trans.c (gfc_trans_code): Add case for flush.
1624
1625 2005-08-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1626
1627         * primary.c (match_hollerith_constant): Fix typo.
1628
1629 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
1630
1631         * decl.c, dump-parse-tree.c, gfortran.texi, intrinsic.texi,
1632         invoke.texi, resolve.c, trans-array.c, trans-array.h,
1633         trans-common.c, trans-expr.c, trans-io.c, trans.h: Fix
1634         comment/doc typos.  Follow spelling conventions.
1635
1636 2005-08-06  Jakub Jelinek  <jakub@redhat.com>
1637
1638         PR fortran/18833
1639         PR fortran/20850
1640         * primary.c (match_varspec): If equiv_flag, don't look at sym's
1641         attributes, call gfc_match_array_ref up to twice and don't do any
1642         substring or component processing.
1643         * resolve.c (resolve_equivalence): Transform REF_ARRAY into
1644         REF_SUBSTRING or nothing if needed.  Check that substrings
1645         don't have zero length.
1646
1647 2005-08-05  Thomas Koenig  <Thomas.Koenig@online.de>
1648
1649         * trans-expr.c  (gfc_build_builtin_function_decls):  Mark
1650         stop_numeric and stop_string as non-returning.
1651
1652 2005-08-04  Paul Brook  <paul@codesourcery.com>
1653
1654         * trans-expr.c (gfc_conv_expr, gfc_conv_expr_type): Update comments.
1655         (gfc_conv_expr_lhs): Fix assertion.
1656         (gfc_conv_expr_val): Merge post block.  Set se.expr to new value.
1657
1658 2005-08-02  David Edelsohn  <edelsohn@gnu.org>
1659
1660         PR fortran/22491
1661         * expr.c (simplify_parameter_variable): Do not copy the subobject
1662         references if the expression value is a constant.
1663
1664         * expr.c (gfc_simplify_expr): Evaluate constant substrings.
1665
1666 2005-07-31  Jerry DeLisle  <jvdelisle@verizon.net>
1667
1668         * intrinsic.texi: Add documentation for exponent, floor, and fnum and
1669         fix description of ceiling in index.
1670
1671 2005-07-31  Steven Bosscher  <stevenb@suse.de>
1672
1673         * trans-decl.c (gfc_build_builtin_function_decls): Give the internal
1674         malloc functions the 'malloc' attribute.  Give runtime_error the
1675         'noreturn' attribute.
1676
1677 2005-07-31  Steven Bosscher  <stevenb@suse.de>
1678
1679         * trans-stmt.c (gfc_trans_goto): Jump to the known label instead
1680         of the assigned goto variable.
1681
1682 2005-07-29  Steven Bosscher  <stevenb@suse.de>
1683
1684         * trans-types.h (gfc_array_range_type): Add missing GTY decl for this.
1685
1686 2005-07-28  Andrew Pinski  <pinskia@physics.uc.edu>
1687
1688         * fortran/f95-lang.c (language_function): Remove
1689         named_labels, shadowed_labels, returns_value, returns_abnormally,
1690         warn_about_return_type, and extern_inline fields.
1691         (named_labels): Remove variable.
1692         (gfc_init_decl_processing): Remove setting of named_labels.
1693
1694 2005-07-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1695
1696         PR fortran/22503
1697         * resolve.c (resolve_operator): Improve diagnostic for comparison
1698         of logicals with invalid operator.
1699
1700 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
1701
1702         PR fortran/20063
1703         * data.c (gfc_assign_data_value_range): Call
1704         create_character_initializer if last_ts is a character type.
1705
1706 2005-07-22  Manfred Hollstein  <mh@suse.com>
1707
1708         * match.c (gfc_match_symbol): Fix uninitialised warnings.
1709         * matchexp.c (gfc_match_expr): Likewise.
1710
1711 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
1712
1713         Make CONSTRUCTOR use VEC to store initializers.
1714         * trans-array.c (gfc_build_null_descriptor,
1715         gfc_trans_array_constructor_value, gfc_conv_array_initializer):
1716         Update to cope with VEC in CONSTRUCTOR_ELTS.
1717         * trans-common.c (create_common): Likewise.
1718         * trans-expr.c (gfc_conv_structure): Likewise.
1719         * trans-stmt.c (gfc_trans_character_select): Use
1720         build_constructor_from_list instead of build_constructor.
1721
1722 2005-07-19  Paul Thomas  <pault@gcc.gnu.org>
1723
1724         PR fortran/16940
1725         * resolve.c (resolve_symbol): A symbol with FL_UNKNOWN
1726         is matched against interfaces in parent namespaces. If there
1727         the symtree is set to point to the interface.
1728
1729 2005-07-16  David Edelsohn  <edelsohn@gnu.org>
1730
1731         PR fortran/21730
1732         * decl.c (do_parm): Adjust character initializer to character length
1733         of symbol before assigning.
1734
1735 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
1736
1737         * trans-types.c (MAX_REAL_KINDS): Increase from 4 to 5.
1738
1739 2005-07-14  Jakub Jelinek  <jakub@redhat.com>
1740
1741         * gfortran.h (MAX_ERROR_MESSAGE): Remove.
1742         (gfc_error_buf): Add allocated and index fields.  Change message
1743         field from array to a pointer.
1744         * error.c (use_warning_buffer, error_ptr, warning_ptr): Remove.
1745         (cur_error_buffer): New variable.
1746         (error_char): Use cur_error_buffer->{message,index} instead of
1747         {warning,error}_{buffer.message,ptr}.  Reallocate message buffer
1748         if too small.
1749         (gfc_warning, gfc_notify_std, gfc_error, gfc_error_now): Setup
1750         cur_error_buffer and its index rather than {warning,error}_ptr
1751         and use_warning_buffer.
1752         (gfc_warning_check, gfc_error_check): Don't print anything if
1753         message is NULL.
1754         (gfc_push_error): Allocate saved message with xstrdup.
1755         (gfc_pop_error): Free saved message with gfc_free.
1756         (gfc_free_error): New function.
1757         * primary.c (match_complex_constant): Call gfc_free_error if
1758         gfc_pop_error will not be called.
1759         * match.c (gfc_match_st_function): Likewise.
1760
1761         PR fortran/22417
1762         * scanner.c (preprocessor_line): Don't treat flag 3 as the start of a new
1763         file.  Fix file left but not entered warning.
1764
1765 2005-07-14  Feng Wang  <fengwang@nudt.edu.cn>
1766         Steven G. Kargl  <kargls@comcast.net>
1767
1768         * array.c (resolve_character_array_constructor): Allocate gfc_charlen
1769         for the array and attach to namespace list for automatic deallocation.
1770
1771 2005-07-13  Andreas Schwab  <schwab@suse.de>
1772
1773         * Make-lang.in (fortran/dependency.o): Depend on
1774         $(GFORTRAN_TRANS_DEPS).
1775
1776 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
1777
1778         * trans-stmt.c (gfc_trans_forall_loop): Clear maskindex before
1779         the outermost loop.
1780         (gfc_trans_assign_need_temp, gfc_trans_pointer_assign_need_temp,
1781         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_2):
1782         Don't clear maskindexes here.
1783
1784 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
1785
1786         * trans-decl.c (create_function_arglist): DECL_ARG_TYPE_AS_WRITTEN
1787         is removed.
1788
1789 2005-07-08  Jakub Jelinek  <jakub@redhat.com>
1790
1791         * primary.c (gfc_match_rvalue): Handle ENTRY the same way
1792         as FUNCTION.
1793
1794 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
1795
1796         * scanner.c (load_line): Add pbuflen argument, don't make
1797         buflen static.  If maxlen == 0 or preprocessor_flag,
1798         don't truncate at buflen, but at maxlen.  In xrealloc add
1799         1 byte at the end for the terminating '\0'.  Don't fill
1800         with spaces up to buflen, but gfc_option.fixed_line_length.
1801         (load_file): Adjust load_line caller.  Add line_len variable.
1802
1803         * scanner.c (preprocessor_line): Only set current_file->line when errors
1804         have not been encountered.  Warn and don't crash if a file leave
1805         preprocessor line has no corresponding entering line.  Formatting.
1806
1807 2005-07-07  Steven Bosscher  <stevenb@suse.de>
1808
1809         * primary.c (match_hollerith_constant): Use int, not unsigned int,
1810         for the hollerith length.  Fix indentation.
1811
1812 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
1813
1814         PR fortran/16531
1815         PR fortran/15966
1816         PR fortran/18781
1817         * arith.c (gfc_hollerith2int, gfc_hollerith2real,
1818         gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
1819         New functions.
1820         (eval_intrinsic): Don't evaluate if Hollerith constant arguments exist.
1821         * arith.h (gfc_hollerith2int, gfc_hollerith2real,
1822         gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
1823         Add prototypes.
1824         * expr.c (free_expr0): Free memery allocated for Hollerith constant.
1825         (gfc_copy_expr): Allocate and copy string if Expr is from Hollerith.
1826         (gfc_check_assign): Enable conversion from Hollerith to other.
1827         * gfortran.h (bt): Add BT_HOLLERITH.
1828         (gfc_expr): Add from_H flag.
1829         * intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH.
1830         (add_conversions): Add conversions from Hollerith constant to other.
1831         (do_simplify): Don't simplify if  Hollerith constant arguments exist.
1832         * io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU.
1833         * misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH.
1834         (gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH.
1835         * primary.c (match_hollerith_constant): New function.
1836         (gfc_match_literal_constant): Add match Hollerith before Integer.
1837         * simplify.c (gfc_convert_constant): Add conversion from Hollerith
1838         to other.
1839         * trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to
1840         convert Hollerith constant to tree.
1841         * trans-io.c (gfc_convert_array_to_string): Get array's address and
1842         length to set string expr.
1843         (set_string): Deal with array assigned Hollerith constant and character
1844         array.
1845         * gfortran.texi: Document Hollerith constants as extention support.
1846
1847 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
1848
1849         PR fortran/22327
1850         * trans-array.c (gfc_trans_array_constructor_value): Fix index of data.
1851
1852 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
1853
1854         * decl.c (gfc_match_entry): Allow ENTRY without parentheses
1855         even in FUNCTIONs.
1856
1857 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
1858
1859         * gfortran.texi, intrinsic.texi: Fix typos.
1860         * symbol.c: Fix a comment typo.
1861
1862 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1863
1864         * error.c (error_printf, error_print): Use ATTRIBUTE_GCC_GFC.
1865         * gfortran.h (ATTRIBUTE_GCC_GFC): New.
1866         (gfc_warning, gfc_warning_now, gfc_error, gfc_error_now,
1867         gfc_fatal_error, gfc_internal_error, gfc_notify_std): Use
1868         ATTRIBUTE_GCC_GFC.
1869
1870 2005-07-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1871
1872         PR fortran/20842
1873         * io.c (match_dt_element): Do not allow END tag in PRINT or
1874         WRITE statement.
1875
1876 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
1877
1878         * lang.opt: Remove "." from end of help texts.
1879
1880 2005-07-01  Jerry DeLisle  <jvdelisle@verizon.net>
1881
1882         * gfortran.texi: Fix typos and grammar.
1883         * invoke.texi: Fix typos and grammar.
1884         * intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and
1885         exit. Fixed alignment of text for dtime syntax. Fixed a few line
1886         lengths.
1887
1888 2005-06-25  Jakub Jelinek  <jakub@redhat.com>
1889
1890         * trans-stmt.c (gfc_trans_forall_1): Prefer to use smaller logical
1891         type than boolean_type_node.
1892
1893 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1894
1895         * all files: Update FSF address in copyright headers.
1896
1897 2005-06-24  Jerry DeLisle  <jvdelisle@verizon.net>
1898
1899         PR fortran/21915
1900         * gfortran.h: Add symbols for new intrinsic functions.
1901         * intrinsic.c: Add new functions acosh, asinh, and atanh.
1902         * intrinsic.h: Add prototypes for the new functions.
1903         * iresolve.c (gfc_resolve_acosh): New function.
1904         (gfc_resolve_asinh): New function.
1905         (gfc_resolve_atanh): New function.
1906         * mathbuiltins.def: Add defines.
1907         * simplify.c (gfc_simplify_acosh): New function.
1908         (gfc_simplify_asinh): New function.
1909         (gfc_simplify_atanh): New function.
1910
1911 2005-06-24  Feng Wang  <fengwang@nudt.edu.cn>
1912
1913         * simplify.c (gfc_simplify_modulo): Don't clear before get result.
1914
1915 2005-06-22  Paul Brook  <paul@codesourcery.com>
1916
1917         PR fortran/21034
1918         * symbol.c (gfc_is_var_automatic): New function.
1919         (save_symbol): Use it.
1920
1921 2005-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1922             Paul Thomas  <pault@gcc.gnu.org>
1923
1924         PR fortran/22010
1925         Port from g95.
1926         * module.c (mio_namelist): New function. Correct to set
1927         namelist_tail and to give error on renaming namelist by use
1928         association.
1929         (mio_symbol): Call mio_namelist.
1930
1931 2005-06-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1932
1933         * gfortran.h: Add flag_backslash compile-time option.
1934         * lang.opt: Add support for -fbackslash option.
1935         * options.c: Likewise.
1936         * primary.c: Implement behavior for -fno-backslash.
1937         * invoke.texi: Add doc for -fbackslash option.
1938         * gfortran.texi: Remove mention of -fno-backslash as a
1939         possible extension.
1940
1941 2005-06-20  Steven G. Kargl  <kargls@comcast.net>
1942         (port from g95)
1943
1944         PR fortran/21257
1945         * match.c (gfc_match_label): Detect duplicate labels.
1946
1947
1948 2005-06-20  Erik Edelmann  <erik.edelmann@iki.fi>
1949
1950         * intrinsic.c (check_intrinsic_standard): Fix spelling error
1951         in a warning message.
1952
1953 2005-06-18  Erik Edelman  <eedelman@acclab.helsinki.fi>
1954             Steven G. Kargl  <kargls@comast.net>
1955
1956         PR fortran/19926
1957         * primary.c (gfc_match_rvalue):  expr_type can be EXPR_CONSTANT
1958         for an array; check that sym->as is NULL.
1959
1960
1961 2005-06-18  Steven G. Kargl  <kargls@comcast.net>
1962
1963         * intrinsic.c (gfc_intrinsic_func_interface): Enable errors for generic
1964         functions whose simplification routine return FAILURE.
1965
1966 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
1967
1968         * Make-lang.in (fortran.install-man): Doesn't depend on installdirs.
1969         (rule for installing f95.1 manpage): Does depend on installdirs.
1970
1971 2005-06-13  Jakub Jelinek  <jakub@redhat.com>
1972
1973         PR fortran/22038
1974         * trans-stmt.c (gfc_trans_forall_loop): Only increment maskindex
1975         in the innermost loop.
1976
1977         * trans-expr.c (gfc_conv_function_call): Return int instead of
1978         void.  Use a local variable for has_alternate_specifier and
1979         return it.  Avoid modification of function type's return value
1980         in place, since it may be shared.
1981         * trans.h (has_alternate_specifier): Remove.
1982         (gfc_conv_function_call): Change return type.
1983         * trans-stmt.c (has_alternate_specifier): Remove.
1984         (gfc_trans_call): Add a local has_alternate_specifier variable,
1985         set it from gfc_conv_function_call return value.
1986
1987 2005-06-12  Richard Henderson  <rth@redhat.com>
1988
1989         * trans-array.c (gfc_conv_descriptor_data_get): Rename from
1990         gfc_conv_descriptor_data.  Cast the result to the DATAPTR type.
1991         (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): New.
1992         (gfc_trans_allocate_array_storage): Use them.
1993         (gfc_array_allocate, gfc_array_deallocate): Likewise.
1994         (gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor): Likewise.
1995         (gfc_trans_deferred_array): Likewise.
1996         * trans-expr.c (gfc_conv_function_call): Likewise.
1997         (gfc_trans_subcomponent_assign): Likewise.
1998         (gfc_trans_pointer_assignment): Likewise.
1999         * trans-intrinsic.c (gfc_conv_allocated): Likewise.
2000         * trans-types.c (gfc_array_descriptor_base): New.
2001         (gfc_get_element_type): Use GFC_TYPE_ARRAY_DATAPTR_TYPE.
2002         (gfc_get_array_descriptor_base): Break out from ...
2003         (gfc_get_array_type_bounds): ... here.  Create type variants.
2004         * trans-array.h (gfc_conv_descriptor_data_get): Declare.
2005         (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): Declare.
2006
2007 2005-06-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2008
2009         * trans-expr.c (gfc_conv_variable): POINTER results don't need f2c
2010         calling conventions.  Look at sym instead of sym->result.
2011         * trans-types.c (gfc_sym_type): Remove workaround for frontend bug.
2012         Remove condition which is always false with workaround removed.
2013         (gfc_return_by_reference): Always look at sym, never at sym->result.
2014
2015 2005-06-11  Steven G. Kargl  <kargls@comcast.net>
2016
2017         PR fortran/17792
2018         PR fortran/21375
2019         * trans-array.c (gfc_array_deallocate): pstat is new argument
2020         (gfc_array_allocate): update gfc_array_deallocate() call.
2021         (gfc_trans_deferred_array): ditto.
2022         * trans-array.h: update gfc_array_deallocate() prototype.
2023         * trans-decl.c (gfc_build_builtin_function_decls): update declaration
2024         * trans-stmt.c (gfc_trans_deallocate): Implement STAT= feature.
2025
2026 2005-06-07  Jerry DeLisle  <jvdelisle@verizon.net>
2027
2028         * intrinsic.texi: Add documentation for dcmplx, digits,
2029         dim, idim, ddim, dot_product, dprod, dreal, and dtime.
2030
2031 2005-06-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2032
2033         PR fortran/21912
2034         * trans-array.c (gfc_trans_array_constructor_value): Slightly reorder.
2035         Generate correct exit condition in case of negative steps in
2036         implied-do loops.
2037
2038         * invoke.texi: Fix description of flags required for compatibility
2039         with g77.
2040
2041 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2042         Erik Schnetter  <schnetter@aei.mpg.de>
2043
2044         PR fortran/19195
2045         * trans.c (gfc_get_backend_locus): Remove unnecessary adjustment,
2046         remove FIXME comment.
2047
2048 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2049
2050         * match.c (match_forall_iterator): Don't immediately give error if '='
2051         is not followed by an expression.
2052
2053 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2054         Erik Edelmann  <erik.edelmann@iki.fi>
2055
2056         * array.c (gfc_match_array_constructor): Disallow empty array
2057         constructor.
2058
2059 2005-06-03  Jerry DeLisle  <jvdelisle@verizon.net>
2060
2061         * fortran/intrinsic.texi: Add documentation for
2062         command_argument_count, conjg, dconjg, count,
2063         cpu_time, cshift, date_and_time, dble, dfloat.
2064
2065 2005-06-01  Roger Sayle  <roger@eyesopen.com>
2066
2067         * intrinsic.c (add_conv): No longer take a "simplify" argument as
2068         its always gfc_convert_constant, instead take a "standard" argument.
2069         (add_conversions): Change all existing calls of add_conv to pass
2070         GFC_STD_F77 as appropriate.  Additionally, if we're allowing GNU
2071         extensions support integer-logical and logical-integer conversions.
2072         (gfc_convert_type_warn): Warn about use the use of these conversions
2073         as a extension when appropriate, i.e. with -pedantic.
2074         * simplify.c (gfc_convert_constant): Add support for integer to
2075         logical and logical to integer conversions, using gfc_int2log and
2076         gfc_log2int.
2077         * arith.c (gfc_log2int, gfc_int2log): New functions.
2078         * arith.h (gfc_log2int, gfc_int2log): Prototype here.
2079         * gfortran.texi: Document this new GNU extension.
2080
2081 2005-06-01  Paul Thomas  <pault@gcc.gnu.org>
2082
2083         * fortran/trans-expr.c (gfc_conv_variable): Clean up bracketting.
2084         * fortran/trans-expr.c (gfc_conv_function_call): Insert spaces.
2085         Correct comments and replace convert of integer_one_node with
2086         build_int_cst.
2087
2088 2005-06-01  Jakub Jelinek  <jakub@redhat.com>
2089
2090         PR fortran/21729
2091         * resolve.c (resolve_contained_fntype): Use sym->attr.untyped
2092         to avoid giving error multiple times.
2093         (resolve_entries): Don't error about BT_UNKNOWN here.
2094         (resolve_unknown_f): Capitalize IMPLICIT for consistency.
2095         (resolve_fntype): New function.
2096         (gfc_resolve): Call resolve_fntype.
2097
2098 2005-06-01  Feng Wang  <fengwang@nudt.edu.cn>
2099
2100         PR fortran/20883
2101         * fortran/io.c (resolve_tag): Fix error message.
2102
2103 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2104
2105         * fortran/trans-decl.c: Don't include errors.h.
2106         * fortran/Make-lang.in: Updates dependencies.
2107
2108 2005-05-31  Paul Thomas  <pault@gcc.gnu.org>
2109
2110         PR fortran/18109
2111         PR fortran/18283
2112         PR fortran/19107
2113         * fortran/trans-array.c (gfc_conv_expr_descriptor): Obtain the
2114         string length from the expression typespec character length value
2115         and set temp_ss->stringlength and backend_decl. Obtain the
2116         tree expression from gfc_conv_expr rather than gfc_conv_expr_val.
2117         Dereference the expression to obtain the character.
2118         * fortran/trans-expr.c (gfc_conv_component_ref): Remove the
2119         dereference of scalar character pointer structure components.
2120         * fortran/trans-expr.c (gfc_trans_subarray_assign): Obtain the
2121         string length for the structure component from the component
2122         expression.
2123
2124 2005-05-30  Roger Sayle  <roger@eyesopen.com>
2125
2126         * gfortran.h (GFC_STD_LEGACY): New "standard" macro.  Reindent.
2127         * options.c (gfc_init_options): By default, allow legacy extensions
2128         but warn about them.
2129         (gfc_post_options): Make -pedantic warn about legacy extensions
2130         even with -std=legacy.
2131         (gfc_handle_option): Make -std=gnu follow the default behaviour
2132         of warning about legacy extensions, but allowing them. Make the
2133         new -std=legacy accept everything and warn about nothing.
2134         * lang.opt (std=legacy): New F95 command line option.
2135         * invoke.texi: Document both -std=f2003 and -std=legacy.
2136         * gfortran.texi: Explain the two types of extensions and document
2137         how they are affected by the various -std= command line options.
2138
2139 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2140
2141         * trans-expr.c: Remove trailing ^M.
2142
2143         * trans-expr.c: Fix comment typos.
2144
2145 2005-05-29  Paul Thomas  <pault@gcc.gnu.org>
2146
2147         PR fortran/16939
2148         PR fortran/17192
2149         PR fortran/17193
2150         PR fortran/17202
2151         PR fortran/18689
2152         PR fortran/18890
2153         * fortran/trans-array.c (gfc_conv_resolve_dependencies): Add string
2154         length to temp_ss for character pointer array assignments.
2155         * fortran/trans-expr.c (gfc_conv_variable): Correct errors in
2156         dereferencing of characters and character pointers.
2157         * fortran/trans-expr.c (gfc_conv_function_call): Provide string
2158         length as return argument for various kinds of handling of return.
2159         Return a char[]* temporary for character pointer functions and
2160         dereference the temporary upon return.
2161
2162 2005-05-29  Janne Blomqvist  <jblomqvi@vipunen.hut.fi>
2163             Steven G. Kargl  <kargls@comcast.net>
2164
2165         fortran/PR20846
2166         * io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage.
2167
2168 2005-05-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2169
2170         PR libfortran/20006
2171         * io.c (format_item_1): Add check and extension warning for
2172         $ edit descriptor.
2173
2174 2005-05-28  Steven G. Kargl  <kargls@comcast.net>
2175
2176         * arith.c (gfc_arith_init_1): Fix off by one problem;
2177         (gfc_check_integer_range): Chop extra bits in subnormal numbers.
2178
2179 2005-05-28  Jerry DeLisle   <jvdelisle@verizon.net>
2180             Steven G. Kargl  <kargls@comcast.net>
2181
2182         * intrinsic.texi: added documentation for BIT_SIZE, BTEST, CHAR, CEILING
2183         and CMPLX
2184
2185 2005-05-27  Steven G. Kargl  <kargls@comcast.net>
2186
2187         * trans-array.c (gfc_trans_deferred_array): Use build_int_cst to force
2188         like types in comparsion.
2189
2190 2005-05-26  Kazu Hirata  <kazu@cs.umass.edu>
2191
2192         * data.c, parse.c, trans-array.c, trans-decl.c,
2193         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
2194         trans.h: Fix comment typos.  Follow spelling conventions.
2195
2196 2005-05-22  Roger Sayle  <roger@eyesopen.com>
2197
2198         * gfortran.texi: Document some more GNU extensions.
2199
2200 2005-05-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2201
2202         * error.c (gfc_warning): Fix typo in comment.
2203
2204 2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>
2205
2206         PR libfortran/21127
2207         * fortran/iresolve.c (gfc_resolve_reshape): Add
2208         gfc_type_letter (BT_COMPLEX) for complex to
2209         to resolved function name.
2210
2211 2005-05-18  Erik Edelmann  <erik.edelmann@iki.fi>
2212
2213         * array.c (gfc_match_array_constructor): Support [ ... ]
2214         style array constructors.
2215
2216 2005-05-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2217
2218         * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_TRUNC
2219         and BUILT_IN_TRUNCF instead of BUILT_IN_FLOOR and BUILT_IN_FLOORF.
2220         * trans-intrinsic.c (build_fix_expr): Change 'op' argument
2221         to correct enum type.
2222         (gfc_conv_intrinsic_aint): Likewise.  Clarify comment in front of
2223         function.  Add default case to switch, deal with FIX_TRUNC_EXPR
2224         instead of FIX_FLOOR_EXPR.
2225
2226 2005-05-18  Feng Wang  <fengwang@nudt.edu.cn>
2227
2228         PR fortran/20954
2229         * trans-const.c (gfc_conv_const_charlen): Use gfc_charlen_type_node to
2230         build character length.
2231
2232 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2233
2234         * trans-types.c (gfc_array_range_type): New variable.
2235         (gfc_init_types): Initialize gfc_array_range_type.
2236         (gfc_get_array_type_bounds): Use gfc_array_range_type.
2237
2238 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
2239
2240         PR fortran/15080
2241         * trans-stmt.c (generate_loop_for_temp_to_lhs): Remove SIZE and COUNT2
2242         arguments.  If LSS is gfc_ss_terminator, increment COUNT1 by 1, instead
2243         of incrementing COUNT2 and using COUNT1+COUNT2 increment COUNT1 and use
2244         just that as index.
2245         (generate_loop_for_rhs_to_temp): Likewise.
2246         (compute_overall_iter_number): Add INNER_SIZE_BODY argument.
2247         It non-NULL, add it to body.
2248         (allocate_temp_for_forall_nest_1): New function, split from
2249         allocate_temp_for_forall_nest.
2250         (allocate_temp_for_forall_nest): Add INNER_SIZE_BODY argument,
2251         propagate it down to compute_overall_iter_number.  Use
2252         allocate_temp_for_forall_nest_1.
2253         (gfc_trans_assign_need_temp): Remove COUNT2.  Call
2254         compute_inner_temp_size into a new stmtblock_t.  Adjust calls to
2255         allocate_temp_for_forall_nest, generate_loop_for_rhs_to_temp
2256         and generate_loop_for_temp_to_lhs.
2257         (gfc_trans_pointer_assign_need_temp): Adjust calls to
2258         allocate_temp_for_forall_nest.
2259         (gfc_evaluate_where_mask): Call compute_inner_temp_size into a new
2260         stmtblock_t.  Call compute_overall_iter_number just once, then
2261         allocate_temp_for_forall_nest_1 twice with the same size.
2262         Initialize mask indexes if nested_forall_info != NULL.
2263         (gfc_trans_where_2): Initialize mask indexes before calling
2264         gfc_trans_nested_forall_loop.
2265
2266 2005-05-15  Feng Wang  <fengwang@nudt.edu.cn>
2267         Jerry DeLisle  <jvdelisle@verizon.net>
2268
2269         PR fortran/17432
2270         * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to
2271         resolve ICE on assign of format label.
2272         * trans-io.c (set_string): add fold-convert to properly
2273         handle assigned format label in write.
2274
2275 2005-05-13  Paul Brook  <paul@codesourcery.com>
2276
2277         * trans-stmt.c (gfc_trans_forall_1): Fix comment typo.
2278
2279 2005-05-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2280
2281         * trans-types.c (gfc_is_nodesc_array): Remove redundant check.
2282
2283 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2284
2285         PR fortran/21260
2286         * io.c (check_format): Look for literal characters inside
2287         hollerith constant.
2288
2289 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2290
2291         * resolve.c (resolve_symbol): Copy 'pointer' and 'dimension'
2292         attribute from result symbol to function symbol.
2293         * trans-expr.c (gfc_conv_function_call): Look at sym->attr.dimension
2294         instead of sym->result->attr.dimension.
2295
2296 2005-05-10  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2297
2298         PR fortran/20178
2299         * gfortran.h (gfc_option): Add flag_f2c.
2300         * invoke.texi: Document '-ff2c' command line option.  Adapt
2301         documentation for '-fno-second-underscore' and '-fno-underscoring'.
2302         * lang.opt (ff2c): New entry.
2303         * options.c (gfc-init_options): Set default calling convention
2304         to -fno-f2c.  Mark -fsecond-underscore unset.
2305         (gfc_post_options): Set -fsecond-underscore if not explicitly set
2306         by user.
2307         (handle_options): Set gfc_option.flag_f2c according to requested
2308         calling convention.
2309         * trans-decl.c (gfc_get_extern_function_decl): Use special f2c
2310         intrinsics where necessary.
2311         (gfc_trans_deferred_vars): Change todo error to assertion.
2312         * trans-expr.c (gfc_conv_variable): Dereference access
2313         to hidden result argument.
2314         (gfc_conv_function_call): Add hidden result argument to argument
2315         list if f2c calling conventions requested.  Slightly restructure
2316         tests.  Convert result of default REAL function to requested type
2317         if f2c calling conventions are used.  Dereference COMPLEX result
2318         if f2c cc are used.
2319         * trans-types.c (gfc_sym_type):  Return double for default REAL
2320         function if f2c cc are used.
2321         (gfc_return_by_reference): Slightly restructure logic.  Return
2322         COMPLEX by reference depending on calling conventions.
2323         (gfc_get_function_type): Correctly make hidden result argument a
2324         pass-by-reference argument for COMPLEX.  Remove old code which does
2325         this for derived types.
2326
2327 2005-05-09  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2328
2329         * match.c (gfc_match_return): Only require space after keyword when
2330         it is obligatory.  Only give stdwarn to after matching is successful.
2331         * dump-parse-tree.c (gfc_show_symbol): Deal with alternate returns.
2332
2333 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2334
2335         * intrinsic.texi: Fix typos.
2336
2337 2005-05-07  Steven G. Kargl  <kargls@comcast.net>
2338
2339         * intrinsic.texi:  Document ASSOCIATED and ATAN2.  Update Bessel function
2340         description to include information about scalar arguments.
2341
2342 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2343
2344         * Make-lang.in, dump-parse-tree.c, invoke.texi, lang.opt,
2345         match.h, trans-array.h: Update copyright.
2346
2347 2005-04-29  Tom Tromey  <tromey@redhat.com>
2348
2349         * f95-lang.c (poplevel): Updated for change to build_block.
2350
2351 2005-04-29  Jakub Jelinek  <jakub@redhat.com>
2352
2353         PR fortran/13082
2354         PR fortran/18824
2355         * trans-expr.c (gfc_conv_variable): Handle return values in functions
2356         with alternate entry points.
2357         * resolve.c (resolve_entries): Remove unnecessary string termination
2358         after snprintf.  Set result of entry master.
2359         If all entries have the same type, set entry master's type
2360         to that common type, otherwise set mixed_entry_master attribute.
2361         * trans-types.c (gfc_get_mixed_entry_union): New function.
2362         (gfc_get_function_type): Use it for mixed_entry_master functions.
2363         * gfortran.h (symbol_attribute): Add mixed_entry_master bit.
2364         * decl.c (gfc_match_entry): Set entry->result properly for
2365         function ENTRY.
2366         * trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over
2367         __entry argument.
2368         (build_entry_thunks): Handle return values in entry thunks.
2369         Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not
2370         shared between multiple contexts.
2371         (gfc_get_fake_result_decl): Use DECL_ARGUMENTS from
2372         current_function_decl instead of sym->backend_decl.  Skip over
2373         entry master's entry id argument.  For mixed_entry_master entries or
2374         their results, return a COMPONENT_REF of the fake result.
2375         (gfc_trans_deferred_vars): Don't warn about missing return value if
2376         at least one entry point uses RESULT.
2377         (gfc_generate_function_code): For entry master returning
2378         CHARACTER, copy ts.cl->backend_decl to all entry result syms.
2379         * trans-array.c (gfc_trans_dummy_array_bias): Don't consider return
2380         values optional just because they are in entry master.
2381
2382 2005-04-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2383
2384         * gfortran.h (gfc_namespace): Add seen_implicit_none field,
2385         Tobias forgot this in previous commit.
2386
2387 2005-04-29  Paul Brook   <paul@codesourcery.com>
2388
2389         * trans-expr.c (gfc_conv_expr_present): Fix broken assert.  Update
2390         comment.
2391
2392 2005-04-29  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2393
2394         * gfortran.h (gfc_namespace): Add seen_implicit_none field.
2395         * symbol.c (gfc_set_implicit_none): Give error if there's a previous
2396         IMPLICIT NONE, set seen_implicit_none.
2397         (gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement.
2398
2399 2005-04-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2400
2401         * gfortran.h (gfc_gsymbol): Make name a const char *.
2402         * symbol.c (gfc_get_gsymbol): Allocate gsymbol name via
2403         gfc_get_string.
2404
2405 2005-04-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2406
2407         PR fortran/20865
2408         * resolve.c (resolve_actual_arglist): Issue an error if a statement
2409         functions is used as actual argument.
2410
2411 2005-04-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2412
2413         PR fortran/21177
2414         * interface.c (compare_parameter): Ignore type for EXPR_NULL
2415         only if type is BT_UNKNOWN.
2416
2417 2005-04-25  Paul Brook  <paul@codesourcery.com>
2418         Steven G. Kargl  <kargls@comcast.net>
2419
2420         PR fortran/20879
2421         * check.c (gfc_check_ichar_iachar): New function.
2422         * instinsic.h (gfc_check_ichar_iachar): Add prototype.
2423         * intrinsic.c (add_functions): Use it.
2424         * primary.c (match_varspec, gfc_match_rvalue): Clear incorrect
2425         character expression lengths.
2426
2427 2005-04-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2428
2429         PR fortran/20059
2430         * trans-common.c (translate_common): Cast offset and
2431         common_segment->offset to type int for warning message.
2432
2433 2005-04-23  DJ Delorie  <dj@redhat.com>
2434
2435         * trans-decl.c: Adjust warning() callers.
2436
2437 2005-04-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2438
2439         * trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as
2440         intermediate representation.  Fix typo in comment.
2441
2442 2005-04-21  Steven G. Kargl  <kargls@comcast.net>
2443
2444         * trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation;
2445         simplify logic; Add a gcc_assert.
2446
2447 2005-04-19  Steven G. Kargl  <kargls@comcast.net>
2448
2449         * trans-const.c (gfc_conv_mpz_to_tree): Fix comment.
2450
2451 2005-04-19  Arnaud Desitter  <arnaud.desitter@ouce.ox.ac.uk>
2452             Steven G. Kargl  <kargls@comcast.net>
2453
2454         * invoke.texi: Update -Waliasing description
2455
2456 2005-04-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2457
2458         PR fortran/16861
2459         * resolve.c (resolve_variable): If e->symtree is not set, this
2460         ought to be a FAILURE, and not a segfault.
2461
2462 2005-04-17  Paul Thomas  <pault@gcc.gnu.org>
2463
2464         PR fortran/17472
2465         PR fortran/18209
2466         PR fortran/18396
2467         PR fortran/19467
2468         PR fortran/19657
2469         * fortran/trans-io.c (gfc_build_io_library_fndecls): Create
2470         declaration for st_set_nml_var and st_set_nml_var_dim. Remove
2471         declarations of old namelist functions.
2472         (build_dt): Simplified call to transfer_namelist_element.
2473         (nml_get_addr_expr): Generates address expression for start of
2474         object data. New function.
2475         (nml_full_name): Qualified name for derived type components. New
2476         function.
2477         (transfer_namelist_element): Modified for calls to new functions
2478         and improved derived type handling.
2479
2480 2005-04-17  Richard Guenther  <rguenth@gcc.gnu.org>
2481
2482         * scanner.c (gfc_next_char_literal): Reset truncation flag
2483         for lines ending in a comment for both fixed and free form.
2484         (load_line): Do not set truncated flag if only truncating
2485         the EOL marker.
2486
2487 2005-04-15  Richard Guenther  <rguenth@gcc.gnu.org>
2488
2489         PR fortran/14569
2490         * gfortran.h (gfc_linebuf): Add truncated field.
2491         * parse.c (next_statement): Handle warning for truncated
2492         lines.
2493         * scanner.c (load_line): Return if line was truncated.
2494         No longer warn for truncated lines.  Remove unused parameters.
2495         (load_file): Store load_line return value to linebuf.
2496         (gfc_error_recovery): Do not advance line at the end.
2497
2498 2005-04-14  Steven G. Kargl  <kargls@comcast.net>
2499
2500         * gfortran.h (gfc_real_info): Add subnormal struct member.
2501         * arith.c (gfc_arith_init_1): Set it.
2502         (gfc_check_real_range): Use it.
2503         * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
2504
2505 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
2506
2507         * simplify.c: Fix a comment typo.
2508
2509 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
2510
2511         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
2512
2513 2005-04-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2514
2515         * simplify.c (gfc_simplify_nearest): Overhaul.
2516
2517 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
2518
2519         * interface.c: Fix a comment typo.
2520
2521 2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2522
2523         * match.c (match_arithmetic_if): Arithmetic IF is obsolete in
2524         Fortran 95.
2525
2526 2005-04-09  Steven G. Kargl  <kargls@comcast.net>
2527
2528         * simplify.c (gfc_simplify_anint): Use mpfr_round()
2529         (gfc_simplify_dnint): ditto.
2530         (gfc_simplify_nint): ditto.
2531
2532 2005-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
2533
2534         PR fortran/13257
2535         * io.c (check_format): Allow an optional comma
2536         between descriptors.
2537
2538 2005-04-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2539
2540         * match.c (match_arithmetic_if): Remove gfc_ prefix and correct
2541         comment according to GNU coding style.
2542         (gfc_match_if): Remove gfc_ prefix in call to
2543         match_arithmetic_if.
2544
2545 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
2546
2547         * match.c (gfc_match_arithmetic_if): Declare static.
2548
2549 2005-04-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2550
2551         PR fortran/17229
2552         * match.c (gfc_match_arithmetic_if): New function to match an
2553         arithmetic IF statement.
2554         (gfc_match_if): Use gfc_match_arithmetic_if to match an
2555         arithmetic IF statement embedded in a simple IF statement.
2556
2557 2005-04-07  Steven G. Kargl  <kargls@comcast.net>
2558
2559         * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x))
2560
2561 2005-04-06  Steven G. Kargl  <kargls@comcast.net>
2562
2563         * invoke.texi: Remove documentation of -std=f90
2564
2565 2005-04-06  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2566
2567         * expr.c (gfc_check_assign): Don't allow NULL as rhs in a
2568         non-pointer assignment.
2569
2570 2005-04-05  Feng Wang  <fengwang@nudt.edu.cn>
2571
2572         PR fortran/15959
2573         PR fortran/20713
2574
2575         * array.c (resolve_character_array_constructor): New function. Set
2576         constant character array's character length.
2577         (gfc_resolve_array_constructor): Use it.
2578         * decl.c (add_init_expr_to_sym): Set symbol and initializer character
2579         length.
2580         (gfc_set_constant_character_len): New function. Set constant character
2581         expression according the given length.
2582         * match.h (gfc_set_constant_character_len): Add prototype.
2583
2584 2005-04-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2585
2586         * intrinsic.texi: BES?? functions are not in the f95 standard.
2587
2588 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2589
2590         * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN.
2591
2592 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2593
2594         * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1,
2595         BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.
2596
2597 2005-04-02  Steven G. Kargl  <kargls@comcast.net>
2598
2599         * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; fix typos
2600
2601 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2602
2603         * decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c,
2604         trans.h: Fix comment typos.
2605
2606 2005-03-29  Steven G. Kargl  <kargls@comcast.net>
2607
2608         * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
2609         flag_default_integer, flag_default_real
2610         * invoke.texi: Update documentation
2611         * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8
2612         fdefault-integer-8, and fdefault-real-8 definitions.
2613         * options.c (gfc_init_options): Set option defaults
2614         (gfc_handle_option): Handle command line options.
2615         * trans-types.c (gfc_init_kinds): Use options.
2616
2617 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
2618
2619         * f95-lang.c (builtin_function): Process the attrs parameter
2620         and apply the "const" attribute to the builtin if found.
2621
2622 2005-03-27  Steven G. Kargl  <kargls@comcast.net>
2623
2624         * intrinsic.texi: Document AIMAG, AINT, ALL
2625
2626 2005-03-26  Steven G. Kargl  <kargls@comcast.net>
2627
2628         * arith.c (check_result): Fix illogical logic.
2629
2630 2005-03-26  Canqun Yang  <canqun@nudt.edu.cn>
2631
2632         * trans-common.c (create_common): Build RECORD_NODE for common blocks
2633         contain no equivalence objects.
2634         (add_equivalences): New argument saw_equiv.
2635         (trans_common): New local variable saw_equiv.
2636         (finish_equivalences): Add a local variable dummy, Always pass true
2637         for the 3rd parameter to create_common.
2638
2639 2005-03-25  Steven G. Kargl  <kargls@comcast.net>
2640
2641         * intrinsic.texi: Fix "make dvi"
2642
2643 2005-03-24  Steven G. Kargl  <kargls@comcast.net>
2644
2645         * intrinsic.texi: New file.
2646         * gfortran.texi: Include it; white space change; fix typo.
2647
2648 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2649
2650         * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2651
2652 2005-03-23  Steven Bosscher  <stevenb@suse.de>
2653
2654         * convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
2655         * trans-array.c (gfc_trans_allocate_array_storage,
2656         gfc_trans_allocate_temp_array gfc_trans_array_constructor_value,
2657         gfc_conv_array_index_ref, gfc_trans_array_bound_check,
2658         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
2659         gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride,
2660         gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds,
2661         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
2662         gfc_conv_expr_descriptor): Likewise.
2663         * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp,
2664         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
2665         * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound,
2666         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign,
2667         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
2668         gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop,
2669         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
2670         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc,
2671         gfc_conv_intrinsic_merge, prepare_arg_info,
2672         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise.
2673         * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while,
2674         gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs,
2675         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
2676         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
2677         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign):
2678         Likewise.
2679         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise.
2680         * trans.c (gfc_add_modify_expr): Likewise.
2681
2682 2005-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2683
2684         * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
2685         gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
2686         gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
2687         gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
2688         gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
2689         gfc_check_perror): new functions to check newly implemented
2690         g77 intrinsics.
2691         * gfortran.h: adding symbols for new intrinsics.
2692         * intrinsic.c (add_functions): adding new intrinsics.
2693         (add_subroutines): adding new intrinsics.
2694         * intrinsic.h: prototype for all checking and resolving
2695         functions.
2696         * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
2697         gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
2698         gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
2699         gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
2700         gfc_resolve_kill_sub, gfc_resolve_link_sub,
2701         gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
2702         gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
2703         gfc_resolve_perror): new functions to resolve intrinsics.
2704         * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
2705         for new symbols.
2706
2707 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2708
2709         * dump-parse-tree.c (gfc_show_expr): Dump name of namespace
2710         in which the variable is declared.
2711
2712         PR fortran/18525
2713         * resolve.c (was_declared): Also check for dummy attribute.
2714
2715 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2716
2717         * gfortran.h (arith): Remove ARITH_0TO0.
2718         * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
2719         (gfc_arith_power): Remove special casing of zero to integral
2720         power zero.
2721
2722 2005-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2723
2724         * Make-lang.in (fortran-warn): Remove -Wno-error.
2725         (expr.o-warn, resolve.o-warn, simplify.o-warn,
2726         trans-common.o-warn): Specify -Wno-error.
2727
2728 2005-03-17  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2729
2730         * trans-array.c (gfc_trans_static_array_pointer,
2731         get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix
2732         comment and formatting typos.
2733
2734 2005-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2735
2736         * invoke.texi: Fix typos.
2737
2738 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
2739
2740         * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
2741
2742 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
2743
2744         * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
2745         to zero on label_tree.
2746
2747 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
2748
2749         PR fortran/18827
2750         * io.c (resolve_tag): Add checking on assigned label.
2751         (match_dt_format): Does not set symbol assign attribute.
2752         * match.c (gfc_match_goto):Does not set symbol assign attribute.
2753         * resolve.c (resolve_code): Add checking on assigned label.
2754         * trans-common.c (build_field): Deals with common variable assigned
2755         a label.
2756         * trans-stmt.c (gfc_conv_label_variable): New function.
2757         (gfc_trans_label_assign): Use it.
2758         (gfc_trans_goto): Ditto.
2759         * trans-io.c (set_string): Ditto.
2760         * trans.h (gfc_conv_label_variable): Add prototype.
2761
2762 2005-03-14  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2763
2764         PR fortran/20467
2765         * symbol.c (check_conflict): A dummy argument can't be a statement
2766         function.
2767
2768 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2769
2770         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
2771         the argument of the shift to the unsigned type.
2772
2773 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2774
2775         PR fortran/16907
2776         * resolve.c (gfc_resolve_index): Allow REAL indices as an extension.
2777
2778 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2779
2780         PR fortran/20323
2781         * resolve.c (gfc_resolve): Check if character lengths are
2782         specification expressions.
2783
2784 2005-03-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2785
2786         PR fortran/20361
2787         * trans-array.c (gfc_stack_space_left): Remove unused variable.
2788         (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
2789         code.
2790         * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
2791         Remove declaration / prototype.
2792         * trans-common.c (build_equiv_decl): Give union a name.  Check if
2793         it can be put on the stack.
2794         * trans-decl.c (gfc_stack_space_left): Move function here.
2795         (gfc_build_qualified_array): Fix comment typo.
2796         * trans.h (gfc_put_var_on_stack): Add prototype.
2797
2798 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2799
2800         * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
2801         * decl.c, trans.c: Don't use C++ style comments.
2802         * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access,
2803         ifsrc): Give names to enums and use ENUM_BITFIELD.
2804         (gfc_access): Remove trailing comma.
2805
2806 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
2807
2808         PR 19936
2809         * primary.c (match_complex_constant): Mangled complex constant may
2810         be an implied do-loop.  Give implied do-loop matcher a chance.
2811
2812 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
2813
2814         PR fortran/19754
2815         * resolve.c (compare_shapes):  New function.
2816         (resolve_operator): Use it.
2817
2818 2005-03-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2819
2820         * trans-const.c (gfc_conv_constant_to_tree): Use correct tree
2821         type for COMPLEX constants.
2822
2823 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2824
2825         PR fortran/19673
2826         * trans-expr.c (gfc_conv_function_call): Correctly dereference
2827         argument from a pointer function also if it has a result clause.
2828
2829 2005-03-04  Steven G. Kargl  <kargls@comcast.net>
2830
2831         * expr.c (gfc_copy_shape_excluding): Change && to ||.
2832
2833 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2834
2835         * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
2836         clarify comment.
2837
2838 2005-02-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2839         (port from g95)
2840
2841         PR fortran/19479
2842         * simplify.c (gfc_simplify_bound): Rename to ...
2843         (simplify_bound): ... this and overhaul.
2844
2845 2005-02-28  Steven G. Kargl  <kargl@gcc.gnu.org>
2846
2847         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
2848         (gfc_conv_intrinsic_function): update function calls
2849
2850 2005-02-27  Steven G. Kargl  <kargl@gcc.gnu.org>
2851
2852         PR fortran/20058
2853         * trans-types.c (gfc_max_integer_kind): Declare
2854         (gfc_init_kinds): Initialize it.
2855         * gfortran.h (gfc_max_integer_kind): extern it.
2856         * primary.c (match_boz_constant): Use it; remove gfortran extension
2857         of kind suffixes on BOZ literal constants
2858
2859
2860 2005-02-27  Steven G. Kargl  <kargls@comcast.net>
2861
2862         * arith.c (gfc_check_real_range):  Remove multiple returns
2863         (check_result): New function.
2864         (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
2865         gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.
2866
2867
2868 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2869
2870         * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
2871
2872
2873 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-meunchen.de>
2874
2875         Unrevert previously reverted patch.  Adding this fix:
2876         * module.c (find_true_name): Deal with NULL module.
2877
2878 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2879
2880         Revert yesterday's patch:
2881         2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2882
2883                 * gfortran.h (gfc_component, gfc_actual_arglist, ...
2884                 ... argument.  Copy string instead of pointing to it.
2885
2886 2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2887
2888         * gfortran.h (gfc_get_namespace): Add second argument to prototype.
2889         * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
2890         gfc_get_namespace.
2891         * module.c (mio_namespace_ref, load_needed): Likewise.
2892         * parse.c (parse_interface, parse_contained): Likewise.  Here the
2893         correct second argument matters.
2894         * symbol.c (gfc_get_namespace): Add parent_types argument, only copy
2895         parent's implicit types if this is set.
2896         (gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
2897         * trans-common.c (build_common_decl): Likewise.
2898
2899         * gfortran.h (symbol_attribute): New 'untyped' field, fix comment
2900         formatting.
2901         * symbol.c (gfc_set_default_type): Issue error only once, by setting
2902         and checking 'untyped' attribute.
2903
2904         * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
2905         fields into new struct 'op' inside the 'value' union.
2906         * arith.c (eval_intrinsic): Adapt all users.
2907         * dependency.c (gfc_check_dependency): Likewise.
2908         * dump-parse-tree.c (gfc_show_expr): Likewise.
2909         * expr.c (gfc_get_expr): Don't clear removed fields.
2910         (free_expr0, gfc_copy_expr, gfc_type_convert_binary,
2911         gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
2912         check_intrinsic_op): Adapt to new field names.
2913         * interface.c (gfc_extend_expr): Likewise.  Also explicitly
2914         nullify 'esym' and 'isym' fields of new function call.
2915         * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
2916         Adapt to renamed structure fields.
2917         * matchexp.c (build_node, match_level_1, match_expr): Likewise.
2918         * module.c (mio_expr): Likewise.
2919         * resolve.c (resolve_operator): Likewise.
2920         (gfc_find_forall_index): Likewise.  Only look through operands
2921         if dealing with EXPR_OP
2922         * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
2923         * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
2924         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
2925
2926         [ Reverted ]
2927         * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
2928         'name' a 'const char *'.
2929         (gfc_symbol): Likewise, also for 'module'.
2930         (gfc_symtree): Make 'name' a 'const char *'.
2931         (gfc_intrinsic_sym): Likewise, also for 'lib_name'.
2932         (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
2933         'char *' argument.
2934         (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
2935         initialize 'SYM->module'.
2936         * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
2937         pointer instead of empty string.
2938         * dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
2939         * interface.c (gfc_compare_types): Adapt check to account for possible
2940         NULL pointer.
2941         (compare_actual_formal): Check for NULL pointer instead of empty
2942         string.
2943         * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
2944         Add 'const' qualifier.
2945         (conv_name): Return a heap allocated string.
2946         (find_conv): Add 'const' qualifier to 'target'.
2947         (add_sym): Use 'gfc_get_string' instead of 'strcpy'.
2948         (make_generic): Check for NULL pointer instead of empty string.
2949         (make_alias): Use 'gfc_get_string' instead of 'strcpy'.
2950         (add_conv): No need to strcpy result from 'conv_name'.
2951         (sort_actual): Check for NULL pointer instead of empty  string.
2952         * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
2953         Adapt prototype.
2954         * module.c (compare_true_names): Compare pointers instead of strings
2955         for 'module' member.
2956         (find_true_name): Initialize string fields with gfc_get_string.
2957         (mio_pool_string): New function.
2958         (mio_internal_string): Adapt comment.
2959         (mio_component_ref, mio_component, mio_actual_arg): Use
2960         'mio_pool_string' instead of 'mio_internal_string'.
2961         (mio_symbol_interface): Add 'const' qualifier to string arguments.
2962         Add level of indirection. Use 'mio_pool_string' instead of
2963         'mio_internal_string'.
2964         (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
2965         (write_common, write_symbol): Use 'mio_pool_string' instead of
2966         'mio_internal_string'.
2967         (write_symbol0, write_symbol1): Likewise, also check for NULL pointer
2968         instead of empty string.
2969         (write_operator, write_generic): Pass correct type variable to
2970         'mio_symbol_interface'.
2971         (write_symtree): Use 'mio_pool_string' instead of
2972         'mio_internal_string'.
2973         * primary.c (match_keyword_arg): Adapt check to possible
2974         case of NULL pointer.  Use 'gfc_get_string' instead of 'strcpy'.
2975         * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
2976         gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
2977         'strcpy'.
2978         (ambiguous_symbol): Check for NULL pointer instead of empty string.
2979         (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
2980         arguments.
2981         * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
2982         pointer instead of empty string.
2983         * trans-decl.c (gfc_sym_mangled_identifier,
2984         gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
2985         gfc_get_symbol_decl): Likewise.
2986         * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
2987         argument.  Copy string instead of pointing to it.
2988
2989 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
2990
2991         * intrinsic.h, st.c: Update copyright.
2992
2993 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
2994
2995         * symbol.c: Typos in comments.
2996
2997 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
2998
2999         * expr.c (gfc_type_convert_binary): Typo in comment.
3000
3001 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
3002
3003         * check.c (gfc_check_selected_int_kind): New function.
3004         * intrinsic.h: Prototype it.
3005         * intrinsic.c (add_function): Use it.
3006         * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
3007           BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
3008
3009 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
3010
3011         * check.c (gfc_check_int): improve checking of optional kind
3012         * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER
3013
3014 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
3015
3016         * check.c (gfc_check_achar): New function
3017         * intrinsic.h: Prototype it.
3018         * intrinsic.c (add_function): Use it.
3019
3020 2005-02-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3021
3022         * trans-stmt.c (generate_loop_for_temp_to_lhs,
3023         generate_loop_for_rhs_to_temp): Remove if whose condition is
3024         always true.
3025
3026 2005-02-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3027
3028         * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
3029         (gfc_use_derived): ... this function.
3030
3031 2005-02-09  Richard Henderson  <rth@redhat.com>
3032
3033         * f95-lang.c (gfc_init_builtin_functions): Call
3034         build_common_builtin_nodes; do not define any functions handled
3035         by it.
3036
3037 2005-02-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3038
3039         * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for
3040         EXPR_SUBSTRING.
3041         (gfc_is_constant_expr): Check 'ref' to determine if substring
3042         reference is constant.
3043         (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'.
3044         (check_init_expr, check_restricted): Check 'ref' instead of 'op1'
3045         and 'op2'.
3046         * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'.
3047
3048 2005-02-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3049
3050         * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save,
3051         gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data,
3052         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
3053         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
3054         gfc_add_procedure): Add argument.
3055         * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name,
3056         gfc_match_null, match_type_spec, match_attr_spec,
3057         gfc_match_formal_arglist, match_result, gfc_match_function_decl):
3058         Update callers to match.
3059         (gfc_match_entry): Likewise, fix comment typo.
3060         (gfc_match_subroutine, attr_decl1, gfc_add_dimension,
3061         access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc,
3062         gfc_match_derived_decl): Update callers.
3063         * interface.c (gfc_match_interface): Likewise.
3064         * match.c (gfc_match_label, gfc_add_flavor,
3065         gfc_match_call, gfc_match_common, gfc_match_block_data,
3066         gfc_match_namelist, gfc_match_module, gfc_match_st_function):
3067         Likewise.
3068         * parse.c (parse_derived, parse_interface, parse_contained),
3069         primary.c (gfc_match_rvalue, gfc_match_variable): Likewise.
3070         * resolve.c (resolve_formal_arglist, resolve_entries): Update callers.
3071         * symbol.c (check_conflict, check_used): Add new 'name' argument,
3072         use when printing error message.
3073         (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy,
3074         gfc_add_generic, gfc_add_in_common, gfc_add_data,
3075         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
3076         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
3077         gfc_add_procedure): Add new 'name' argument.  Pass along to
3078         check_conflict and check_used.
3079         (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic,
3080         gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental,
3081         gfc_add_pure, gfc_add_recursive, gfc_add_intent,
3082         gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new
3083         argument in calls to any of the modified functions.
3084
3085 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
3086
3087         * gfortran.texi: Don't give last update date.
3088
3089 2006-01-30  Richard Henderson  <rth@redhat.com>
3090
3091         * options.c (gfc_init_options): Zero flag_errno_math.
3092
3093 2005-01-29  Paul Brook  <paul@codesourcery.com>
3094
3095         PR fortran/18565
3096         * check.c (real_or_complex_check): New function.
3097         (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions.
3098         * intrinsic.c (add_functions): Use new check functions.
3099         * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc):
3100         Add prototypes.
3101
3102 2005-01-29  Steven G. Kargl  <kargls@comcast.net>
3103
3104         PR fortran/19589
3105         * expr.c (gfc_check_assign):  Check for conformance of logical operands
3106
3107 2004-01-27  Steven Bosscher  <stevenb@suse.de>
3108
3109         * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
3110         TREE_USED for all labels.
3111         (gfc_trans_entry_master_switch): Use it instead of building a
3112         label by hand.
3113         * trans-io.c (add_case): Likewise.
3114         * trans-stmt.c (gfc_trans_integer_select): Likewise.
3115
3116 2004-01-23  Paul Brook  <paul@codesourcery.com>
3117         Steven G. Kargl  <kargls@comcast.net>
3118
3119         PR fortran/17941
3120         * arith.c (gfc_convert_real): Remove sign handling.
3121         * primary.c (match_digits): Allow whitespace after initial sign.
3122         (match_real_const): Handle signs here.  Allow whitespace after
3123         initial sign.  Remove dead code.
3124         (match_const_complex_part): Remove.
3125         (match_complex_part): Use match_{real,integer}_const.
3126         (match_complex_constant): Cross-promote integer types.
3127
3128 2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
3129
3130         PR fortran/19294
3131         * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
3132         transpose_c8 for complex types.
3133
3134 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
3135
3136         * data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
3137         trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
3138         trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
3139         Follow spelling conventions.
3140
3141 2005-01-22  Bud Davis  <bdavis9659@comcast.net>
3142
3143         PR fortran/19313
3144         * trans-io.c (gfc_trans_inquire): Added code to support
3145         pad.
3146
3147 2005-01-22  Steven G. Kargl  <kargls@comcast.net>
3148
3149         * intrinsic.c (make_alias):  Add standard argument.
3150         (add_functions): Update make_alias calls.
3151
3152 2005-01-22  Paul Brook  <paul@codesourcery.com>
3153
3154         * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
3155
3156 2005-01-22  Paul Brook  <paul@codesourcery.com>
3157
3158         * gfortran.h (gfc_check_access): Add prototype.
3159         * match.c (gfc_match_namelist): Remove TODO.
3160         * module.c (check_access): Rename ...
3161         (gfc_check_access): ... to this.  Boolify.  Update callers.
3162         * resolve.c (resolve_symbol): Check for private objects in public
3163         namelists.
3164
3165 2005-01-22  Paul Brook  <paul@codesourcery.com>
3166
3167         * primary.c (gfc_match_rvalue): Only apply implicit type if variable
3168         does not have an explicit type.
3169         (gfc_match_variable): Resolve implicit derived types in all cases.
3170         Resolve contained function types from their own namespace, not the
3171         parent.
3172         * resolve.c (resolve_contained_fntype): Remove duplicate sym->result
3173         checking.  Resolve from the contained namespace, not the parent.
3174
3175 2005-01-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3176
3177         PR fortran/19543
3178         * trans-const.c (gfc_conv_constant_to_tree): Give logical
3179         constants the correct type.
3180
3181         PR fortran/19194
3182         * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
3183         length parameters.
3184         (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
3185         pointer fields.
3186
3187 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3188
3189         * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
3190         gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
3191         match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
3192         scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
3193         trans-io.c, trans-stmt.c, trans.c: Update copyright.
3194
3195 2005-01-17  Ira Rosen  <irar@il.ibm.com>
3196
3197         * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
3198
3199 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3200
3201         PR fortran/19182
3202         * error.c (error_char): Line-buffer errors / warnings.
3203
3204 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3205
3206         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
3207         unsigned issue.  Use build_int_cst instead of converting
3208         integer_zero_node.  Remove unnecessary conversion.
3209
3210         * trans-types.c (gfc_get_character_type_len): Use
3211         gfc_charlen_type_node as basic type for the range field.
3212
3213         * trans-intrinsic.c (build_fixbound_expr,
3214         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
3215         gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
3216         gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
3217         of converting 'integer_zero_node' or 'integer_one_node'
3218         respectively.
3219         (gfc_conv_intrinsic_ishftc): Same, but store in local variable to
3220         evade re-building.
3221         (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
3222         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
3223         'build_int_cst' instead of converting 'integer_zero_node' or
3224         'integer_one_node' respectively.
3225
3226         * trans-intrinsic.c (gfc_conv_intrinsic_index,
3227         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
3228         'gfc'-prefix from local variable, remove dead code, use correct
3229         type when inserting argument.
3230
3231         * trans-intrinsic.c, trans-types.c: Update copyright years.
3232
3233 2005-01-16  Steven G. Kargl  <kargls@comcast.net>
3234
3235         PR 19168
3236         * resolve.c (check_case_overlap): Typo in comment.
3237         (validate_case_label_expr):  Fix up kinds of case values
3238         (resolve_select): Properly handle kind mismatches.
3239
3240 2004-01-16  Paul Brook  <paul@codesourcery.com>
3241
3242         PR fortran/17675
3243         * trans-common.c (translate_common): Remove duplicate function call.
3244         (finish_equivalences): Preserve alignment when biasing offsets.
3245
3246 2005-01-15  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de
3247
3248         * primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
3249         ASCII-like character encoding.
3250
3251 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
3252
3253         * resolve.c (compare_case): Cleanup.
3254
3255 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
3256
3257         * resolve.c (compare_case): Give arguments correct type.
3258
3259 2005-01-13  Kazu Hirata  <kazu@cs.umass.edu>
3260
3261         * iresolve.c, trans-common.c, trans-types.c: Fix comment
3262         typos.
3263
3264 2005-01-09  Paul Brook  <paul@codesourcery.com>
3265
3266         PR fortran/17675
3267         * trans-common.c (current_common, current_offset): Remove.
3268         (create_common): Add head argument.
3269         (align_segment): New function.
3270         (apply_segment_offset): New function.
3271         (translate_common): Merge code from new_segment.  Handle alignment.
3272         (new_segment): Remove.
3273         (finish_equivalences): Ensure proper alignment.
3274
3275 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3276
3277         * trans-const.c: Don't include unused math.h.
3278
3279         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
3280         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
3281         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
3282         trailing whitespace.
3283         (prepare_arg_info): Fix formatting, indenting and remove trailing
3284         whitespace.
3285         (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
3286         trailing whitespace.
3287
3288         * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
3289         gfc_constant_result, gfc_range_check, gfc_arith_power,
3290         eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
3291         gfc_real2complex, gfc_complex2int, gfc_complex2real,
3292         gfc_complex2complex): Fix whitespace issues.
3293         * check.c (must_be, type_check, numeric_check, int_or_real_check,
3294         logical_array_check, array_check, scalar_check, nonoptional_check,
3295         variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
3296         gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
3297         gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
3298         gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
3299         gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
3300         gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
3301         gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
3302         gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
3303         gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
3304         gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
3305         gfc_check_lbound, gfc_check_logical, min_max_args,
3306         gfc_check_min_max_integer, gfc_check_min_max_real,
3307         gfc_check_min_max_double, gfc_check_matmul,
3308         gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
3309         gfc_check_pack, gfc_check_precision, gfc_check_radix,
3310         gfc_check_range, gfc_check_real, gfc_check_repeat,
3311         gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
3312         gfc_check_set_exponent): Fix formatting issues.
3313         (gfc_check_size, gfc_check_sign): Alphabetize function order,
3314         remove whitespace-only line.
3315         (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
3316         gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
3317         gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
3318         gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
3319         gfc_check_random_number, gfc_check_random_seed,
3320         gfc_check_second_sub, gfc_check_system_clock,
3321         gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
3322         gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
3323         gfc_check_unlink_sub): Fix formatting issues.
3324
3325 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3326
3327         * gfortran.h: Remove outdated comment.  Don't include stdio.h
3328         explicitly.
3329
3330 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3331
3332         * gfortranspec.c (lang_specific_driver): Change year to 2005 in
3333         output of 'gfortran --version'.
3334
3335 2005-01-03  Steven G. Kargl  <kargls@comcast.net>
3336
3337         * arith.c: Add system.h; remove string.h
3338         * decl.c: Ditto
3339         * matchexp.c: Ditto
3340         * parse.c: Ditto
3341         * resolve.c: Ditto
3342         * st.c: Ditto
3343         * check.c: Remove stdlib.h and stdarg.h
3344         * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
3345         * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
3346         * f95-lang.c: Add system.h; remove stdio.h
3347         * interface.c: Add system.h; remove stdlib.h and string.h
3348         * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
3349         * io.c: Remove string.h
3350         * simplify.c: Ditto
3351         * match.c: Remove stdarg.h and string.h
3352         * misc.c: Update copyright; add system.h; remove stdlib.h,
3353         string.h, and sys/stat.h
3354         * module.c: Add system.h; remove string.h, stdio.h, errno.h,
3355         unistd.h, and time.h
3356         * option.c: Remove string.h and stdlib.h
3357         * primary.c: Ditto
3358         * scanner.c: Update copyright; add system.h; remove stdlib.h,
3359         stdio.h, string.h, and strings.h
3360         * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
3361         * trans-array.c: Remove stdio.h and gmp.h
3362         * trans-const.c: Ditto
3363         * trans-expr.c: Ditto
3364         * trans-io.c: Ditto
3365         * trans-stmt.c: Ditto
3366         * trans.c: Ditto
3367         * trans-intrinsic.c: Remove stdio.h and string.h
3368
3369 2004-12-29  Steven G. Kargl  <kargls@comcast.net>
3370
3371         * gfortran.h (gfc_case): fix typo in comment.
3372
3373 2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3374
3375         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
3376         logical shift.  Call fold.  Remove 0-bit shift shortcut.
3377         (gfc_conv_intrinsic_ishftc): Convert first argument to at least
3378         4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
3379         result if width(arg 1) < 4 bytes.  Call fold.
3380
3381         PR fortran/19032
3382         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
3383         in front of function to match the standard.  Correct handling
3384         of MODULO.
3385
3386 2004-12-27  Andrew Pinski  <pinskia@physics.uc.edu>
3387
3388         * trans-expr.c (gfc_conv_cst_int_power): Only check for
3389         flag_unsafe_math_optimizations if we have a float type.
3390
3391 2004-12-23  Steven G. Kargl  <kargls@comcast.net>
3392
3393         * gfortran.texi: Fix typo.
3394
3395 2004-12-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3396
3397         * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
3398         comment typo.
3399
3400 2004-12-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3401
3402         PR fortran/18993
3403         * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
3404         (gfc_match_nullify): Make sure that ')' is in front of the end of
3405         statement.
3406
3407         * scanner.c (skip_fixed_comments): Fix typo in comment preceding
3408         function.
3409
3410 2004-12-14  Richard Henderson  <rth@redhat.com>
3411
3412         * gfortran.h (gfc_expr.function.name): Make const.
3413         (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
3414         (gfc_get_string): Update prototype.
3415         * iresolve.c: Include tree.h.
3416         (string_node, HASH_SIZE, string_head, hash): Remove.
3417         (gfc_get_string): Use vsnprintf, get_identifier.
3418         (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
3419         * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
3420         (gfc_done_1): Don't call gfc_iresolve_done_1.
3421         * module.c (mio_allocated_string): Take and return const char *,
3422         instead of modifying char**.
3423         (mio_expr): Update to match.
3424         * resolve.c (pure_function): Constify name argument.
3425         (resolve_function): Constify name.
3426         * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
3427
3428 2004-12-12  Richard Henderson  <rth@redhat.com>
3429
3430         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
3431         gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
3432         gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
3433         gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
3434         gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
3435         gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
3436         gfc_resolve_unpack: Use PREFIX.
3437
3438 2004-12-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3439
3440         PR fortran/18869
3441         * match.c (gfc_match_common): Skip whitespace.
3442
3443 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
3444
3445         PR fortran/16581
3446         * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
3447         gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
3448         integer kind check; Issue error for -std=f95 when needed.
3449         * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
3450         GFC_STD_F95.
3451         * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
3452         Promote arguments to same kind.
3453
3454 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
3455         Paul Brook  <paul@codesourcery.com>
3456
3457         PR fortran/16222
3458         * resolve.c (gfc_resolve_iterator_expr): New function.
3459         (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
3460         start, end and stride to correct type.
3461         (resolve_code): Pass extra argument.
3462         * array.c (resolve_array_list): Pass extra argument.
3463         * gfortran.h (gfc_resolve): Add prototype.
3464         * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
3465         Handle real type iterators.
3466
3467 2004-12-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3468
3469         PR fortran/17175
3470         * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
3471         same kind as C's 'int'.
3472         (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
3473
3474 2004-12-08  Richard Henderson  <rth@redhat.com>
3475
3476         * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
3477         to the output expression.
3478         * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
3479         warning conversion.
3480         (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
3481         to index kind.
3482
3483 2004-12-08  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3484
3485         PR fortran/18826
3486         * resolve.c (resolve_code): Impose correct restrictions on
3487         assigned variable.
3488
3489         * decl.c (gfc_match_end): Use locus of END when eos is an error.
3490
3491 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
3492         Paul Brook  <paul@codesourcery.com>
3493
3494         * check.c (gfc_check_flush, gfc_check_fnum): New functions.
3495         (gfc_check_fstat, gfc_check_fstat_sub): New functions.
3496         (gfc_check_stat, gfc_check_stat_sub): New functions.
3497         * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
3498         * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
3499         fstat, and stat to intrinsics symbol tables.
3500         * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
3501         (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
3502         * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
3503         (gfc_resolve_stat, gfc_resolve_flush): New functions.
3504         (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
3505         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
3506
3507 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
3508
3509         * intrinsic.c: Fix and add comments, fix function declarations
3510         (OPTIONAL,REQUIRED): New symbols
3511         (add_functions,add_subroutines): Use symbols
3512         (gmp.h): Remove unused include
3513
3514 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
3515
3516         * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
3517         in diagnostics.
3518
3519 2004-11-24  Steven Bosscher  <stevenb@suse.de>
3520
3521         * options.c (gfc_post_options): Don't clear flag_inline_functions.
3522
3523 2004-11-20  Steven G. Kargl  <kargls@comcast.net>
3524
3525         * check.c (gfc_check_getcwd_sub): Fix seg fault.
3526
3527         * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
3528         gfc_check_unlink,gfc_check_unlink_sub): New functions
3529         * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
3530         * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
3531         exit to intrinsics symbol tables.
3532         * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
3533         gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
3534         gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
3535         gfc_resolve_unlink_sub): Add and sort prototypes.
3536         * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
3537         gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
3538         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
3539
3540 2004-11-16  Paul Brook  <paul@codesourcery.com>
3541
3542         PR fortran/13010
3543         * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
3544         (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
3545         * trans-types.c (gfc_get_dtype): Accept array type rather than element
3546         type.
3547         (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
3548         (gfc_get_array_type_bounds): Ditto.
3549         (gfc_get_derived_type): Recurse into derived type pointers.
3550         * trans-types.h (gfc_get_dtype): Add prototype.
3551         * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
3552
3553 2004-11-15  Paul Brook  <paul@codesourcery.com>
3554
3555         * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
3556
3557 2004-11-10  Paul Brook  <paul@codesourcery.com>
3558
3559         PR fortran/18375
3560         * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
3561         * trans-io.c (transfer_array_component): Ditto.
3562
3563 2004-11-10  Paul Brook  <paul@codesourcery.com>
3564
3565         * invoke.texi: Fix typo.
3566
3567 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3568
3569         * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
3570         gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
3571         module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
3572         trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
3573         trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
3574
3575 2004-11-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3576
3577         PR fortran/18023
3578         * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
3579
3580 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
3581
3582         * gfortranspec.c: Replace GNU CC with GCC.
3583
3584 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3585
3586         * gfortranspec.c (lang_specific_driver): Change year to 2004.
3587
3588 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3589
3590         PR fortran/18111
3591         *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
3592         hidden parameters.
3593
3594 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3595
3596         PR fortran/15164
3597         * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
3598         module procedures as if they were module variables.
3599
3600 2004-11-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3601
3602         PR fortran/17535
3603         PR fortran/17583
3604         PR fortran/17713
3605         * module.c (write_symbol1): Set module_name for dummy arguments.
3606
3607 2004-11-02  Paul Brook  <paul@codesourcery.com>
3608
3609         * intrinsic.c (check_intrinsic_standard): Include error locus.
3610         Remove VLA.
3611         (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
3612         locus to check_intrinsic_standard.
3613
3614 2004-10-31  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3615
3616         PR fortran/17590
3617         * gfortran.h: Change GFC_STD_* flags to more appropriate
3618         ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
3619         gfc_option_t): Add field for warning about use of nonstandard
3620         intrinsics.
3621         * intrinsic.c (add_sym): Add parameter for standard version, check
3622         this against current standard.
3623         (add_sym_0): Pass standard parameter to add_sym.
3624         (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
3625         (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
3626         (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
3627         (make_generic): Add parameter for standard, check this
3628         against currently selected standard.
3629         (add_functions, add_subroutines): Add parameter to tell which
3630         standard an intrinsic belongs to.
3631         (check_intrinsic_standard): New function.
3632         (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
3633         (gfc_intrinsic_sub_interface): Ditto.
3634         * lang.opt: Add Wnonstd-intrinsics option.
3635         * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
3636         init new warning.
3637         (set_Wall): Add warning about nonstd intrinsics.
3638         (gfc_handle_option): Change to use new GFC_STD_* flags,
3639         handle new warning.
3640         * invoke.texi: Update manual to include -Wnonstd-intrinsics.
3641
3642 2004-10-30  Andrew Pinski  <pinskia@physics.uc.edu>
3643
3644         * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
3645
3646 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3647
3648         * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
3649
3650 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3651
3652         * trans.c (gfc_trans_code): Set global locus after recursing. Fix
3653         comment typo.
3654
3655 2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>
3656
3657         * check.c (gfc_check_rand): Allow missing optional argument.
3658         (gfc_check_irand): Ditto.
3659         * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
3660
3661 2004-10-28  Scott Robert Ladd  <scott.ladd@coyotegulch.com>
3662
3663         PR fortran/13490, PR fortran/17912
3664         * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
3665         * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
3666         * gcc/fortran/arith.c: Added support for an "asymmetric integer"
3667         warning when compiling with pedantic.
3668         * gcc/fortran/arith.c: Set minimum integer values to reflect
3669         realities of two's complement signed integers. Added
3670         pedantic minimum.
3671
3672 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
3673
3674         * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
3675         (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
3676         link it in.
3677
3678 2004-10-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3679
3680         * trans-decl.c (generate_local_decl): Simplify logic, fix comment
3681         typo.
3682         (gfc_generate_function_code): Fix formatting issue.
3683
3684 2004-10-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3685
3686         * module.c: Fix formatting issues.
3687
3688 2004-10-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3689
3690         * module.c (mio_interface_rest): Set where member of interface
3691         while loading.
3692
3693 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
3694
3695         PR fortran/17901
3696         * options.c (gfc_handle_option): Add break after handing the
3697         J/M option.
3698
3699 2004-10-08  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
3700
3701         * arith.c: Fix formatting issues.
3702
3703 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3704
3705         PR fortran/17676
3706         * resolve.c (resolve_operator): Use correct operator name in message.
3707
3708 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3709
3710         * primary.c (match_boz_constant): Allow kind parameter suffixes.
3711         Move standard warning further to the front.
3712
3713 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
3714
3715         * trans-stmt.c: Fix a comment typo.
3716
3717 2004-10-07  Paul Brook  <paul@codesourcery.com>
3718
3719         PR fortran/17678
3720         * trans-array.c (gfc_trans_deferred_array): Leave use associated
3721         variables alone.
3722
3723 2004-10-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3724
3725         PR fortran/17568
3726         * simplify.c (twos_complement): New function.
3727         (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
3728
3729         * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
3730
3731 2004-10-06  Paul Brook  <paul@codesourcery.com>
3732
3733         * trans-stmt.c (gfc_trans_simple_do): New function.
3734         (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
3735         loop.  Update comments.
3736
3737 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3738
3739         PR fortran/17283
3740         * iresolve.c (gfc_resolve_pack): Choose function depending if mask
3741         is scalar.
3742
3743         PR fortran/17631
3744         * intrinsic.c (add_sym_5): Remove.
3745         (add_subroutines): Add resolution function for MVBITS.
3746         * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
3747         MVBITS
3748         * iresolve.c (gfc_resolve_mvbits): New function.
3749         (gfc_resolve_random_number): Remove empty line at end of function.
3750
3751         * trans-const.c (gfc_build_cstring_const): New function.
3752         (gfc_init_cst): Use new function.
3753         * trans-const.h (gfc_build_cstring_const): Add prototype.
3754         * trans-io.c (set_string, set_error_locus): Use new function.
3755         * trans-stmt.c (gfc_trans_goto): Use new function.
3756
3757         PR fortran/17708
3758         * parse.c (accept_statement): Don't treat END DO like END IF and
3759         END SELECT.
3760         (parse_do_block): Generate possible END DO label inside END DO
3761         block.
3762
3763         PR fortran/17776
3764         * check.c (gfc_check_system_sub): New function.
3765         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
3766         * intrinsic.c (add_functions): Add 'system'.
3767         (add_subroutines): Add 'system'.
3768         * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
3769         Move prototypes to other suborutines.
3770         (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
3771         Add prototype.
3772         (gfc_resolve_system_clock): Fix formatting of prototype.
3773         * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
3774         functions.
3775         * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
3776         GFC_ISYM_SYSTEM.
3777
3778 2004-10-04  Erik Schnetter  <schnetter@aei.mpg.de>
3779
3780         * scanner.c (preprocessor_line): Accept preprocessor lines without
3781         file names.  Check file names for closing quotes.  Handle escaped
3782         quotes in file names.
3783
3784 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3785         Paul Brook  <paul@codesourcery.com>
3786
3787         * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
3788         Use gfc_get_expr_charlen.
3789         * trans-expr.c (gfc_get_expr_charlen): New function.
3790         * trans.h (gfc_get_expr_charlen): Add prototype.
3791
3792 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
3793
3794         * trans-intrinsic.c: Fix a comment typo.
3795
3796 2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3797
3798         * simplify.c (range_check): Remove blank line at beginning of function.
3799         (gfc_simplify_dint): Same at end of function.
3800         (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
3801         (gfc_simplify_bound): Fix indentation.
3802         (gfc_simplify_log10): Simplify calculation.
3803         (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
3804         of function.
3805         (gfc_simplify_nearest): Same at end of function.
3806         (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
3807         function.
3808         (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
3809         gfc_simplify_spacing): Simplify calulations.
3810
3811 2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>
3812
3813         * trans-intrinsic.c: Fix comments on spacing and rrspacing
3814         (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
3815
3816 2004-10-01  Jan Hubicka  <jh@suse.cz>
3817
3818         * f95-lang.c (gfc_expand_function): Update call of
3819         tree_rest_of_compilation.
3820         * trans-decl.c (gfc_generate_constructors): Likewise.
3821
3822 2004-09-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3823
3824         * trans-intrinsic.c: Comment fixes.
3825
3826 2004-09-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3827
3828         * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
3829
3830 2004-09-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3831
3832         * trans-types.c (gfc_return_by_reference): Remove superfluous
3833         assertion.
3834
3835         * intrinsic.h (gfc_resolve_getcwd): Update prototype.
3836         * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
3837
3838         PR fortran/17615
3839         * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
3840         function to determine return type.
3841
3842 2004-09-20  Jan Hubicka  <jh@suse.cz>
3843
3844         * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
3845         tree.
3846         (gfc_generate_function_code): Likewise.
3847
3848 2004-09-20  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3849
3850         PR fortran/15957
3851         * simplify.c (gfc_simplify_reshape): Set shape of return value
3852         correctly.
3853
3854 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
3855             Zack Weinberg  <zack@codesourcery.com>
3856
3857         * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
3858         enumeration constants.
3859
3860 2004-09-17  Paul Brook  <paul@codesourcery.com>
3861
3862         * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
3863         (gfc_linebuf_header_size): Define.
3864         * scanner.c (load_file): Use it.
3865
3866 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
3867
3868         * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
3869         interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
3870         resolve.c, scanner.c, trans-array.c, trans-array.h,
3871         trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
3872         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
3873         trans.h: Fix comment typos.  Follow spelling conventions.
3874
3875 2004-09-16  Victor Leikehman  <lei@il.ibm.com>
3876
3877         PR/15364
3878         * trans-io.c (transfer_array_component): New function.
3879         (transfer_expr): For array fields, call transfer_array_component.
3880
3881 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
3882
3883         * gfortran.texi: Fix a typo.
3884
3885 2004-09-15  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3886
3887         * parse.c (eof_buf): Rename eof to eof_buf.
3888         (unexpected_eof): Same.
3889         (gfc_parse_file): Same.
3890
3891 2004-09-15  Steven G.