OSDN Git Service

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