OSDN Git Service

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