OSDN Git Service

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