OSDN Git Service

2005-07-08 Daniel Berlin <dberlin@dberlin.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
2         
3         * trans-decl.c (create_function_arglist): DECL_ARG_TYPE_AS_WRITTEN
4         is removed.
5
6 2005-07-08  Jakub Jelinek  <jakub@redhat.com>
7
8         * primary.c (gfc_match_rvalue): Handle ENTRY the same way
9         as FUNCTION.
10
11 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
12
13         * scanner.c (load_line): Add pbuflen argument, don't make
14         buflen static.  If maxlen == 0 or preprocessor_flag,
15         don't truncate at buflen, but at maxlen.  In xrealloc add
16         1 byte at the end for the terminating '\0'.  Don't fill
17         with spaces up to buflen, but gfc_option.fixed_line_length.
18         (load_file): Adjust load_line caller.  Add line_len variable.
19
20         * scanner.c (preprocessor_line): Only set current_file->line when errors
21         have not been encountered.  Warn and don't crash if a file leave
22         preprocessor line has no corresponding entering line.  Formatting.
23
24 2005-07-07  Steven Bosscher  <stevenb@suse.de>
25
26         * primary.c (match_hollerith_constant): Use int, not unsigned int,
27         for the hollerith length.  Fix indentation.
28
29 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
30
31         PR fortran/16531
32         PR fortran/15966
33         PR fortran/18781
34         * arith.c (gfc_hollerith2int, gfc_hollerith2real,
35         gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
36         New functions.
37         (eval_intrinsic): Don't evaluate if Hollerith constant arguments exist.
38         * arith.h (gfc_hollerith2int, gfc_hollerith2real,
39         gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
40         Add prototypes.
41         * expr.c (free_expr0): Free memery allocated for Hollerith constant.
42         (gfc_copy_expr): Allocate and copy string if Expr is from Hollerith.
43         (gfc_check_assign): Enable conversion from Hollerith to other.
44         * gfortran.h (bt): Add BT_HOLLERITH.
45         (gfc_expr): Add from_H flag.
46         * intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH.
47         (add_conversions): Add conversions from Hollerith constant to other.
48         (do_simplify): Don't simplify if  Hollerith constant arguments exist.
49         * io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU.
50         * misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH.
51         (gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH.
52         * primary.c (match_hollerith_constant): New function.
53         (gfc_match_literal_constant): Add match Hollerith before Integer.
54         * simplify.c (gfc_convert_constant): Add conversion from Hollerith
55         to other.
56         * trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to
57         convert Hollerith constant to tree.
58         * trans-io.c (gfc_convert_array_to_string): Get array's address and
59         length to set string expr.
60         (set_string): Deal with array assigned Hollerith constant and character
61         array.
62         * gfortran.texi: Document Hollerith constants as extention support.
63
64 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
65
66         PR fortran/22327
67         * trans-array.c (gfc_trans_array_constructor_value): Fix index of data.
68
69 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
70
71         * decl.c (gfc_match_entry): Allow ENTRY without parentheses
72         even in FUNCTIONs.
73
74 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
75
76         * gfortran.texi, intrinsic.texi: Fix typos.
77         * symbol.c: Fix a comment typo.
78
79 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
80
81         * error.c (error_printf, error_print): Use ATTRIBUTE_GCC_GFC.
82         * gfortran.h (ATTRIBUTE_GCC_GFC): New.
83         (gfc_warning, gfc_warning_now, gfc_error, gfc_error_now,
84         gfc_fatal_error, gfc_internal_error, gfc_notify_std): Use
85         ATTRIBUTE_GCC_GFC.
86
87 2005-07-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
88
89         PR fortran/20842
90         * io.c (match_dt_element): Do not allow END tag in PRINT or
91         WRITE statement.
92
93 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
94
95         * lang.opt: Remove "." from end of help texts.
96
97 2005-07-01  Jerry DeLisle  <jvdelisle@verizon.net>
98
99         * gfortran.texi: Fix typos and grammar.
100         * invoke.texi: Fix typos and grammar.
101         * intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and
102         exit. Fixed alignment of text for dtime syntax. Fixed a few line
103         lengths.
104
105 2005-06-25  Jakub Jelinek  <jakub@redhat.com>
106
107         * trans-stmt.c (gfc_trans_forall_1): Prefer to use smaller logical
108         type than boolean_type_node.
109
110 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
111
112         * all files: Update FSF address in copyright headers.
113
114 2005-06-24  Jerry DeLisle <jvdelisle@verizon.net>
115
116         PR fortran/21915
117         * gfortran.h: Add symbols for new intrinsic functions.
118         * intrinsic.c: Add new functions acosh, asinh, and atanh.
119         * intrinsic.h: Add prototypes for the new functions.
120         * iresolve.c (gfc_resolve_acosh): New function.
121         (gfc_resolve_asinh): New function.
122         (gfc_resolve_atanh): New function.
123         * mathbuiltins.def: Add defines.
124         * simplify.c (gfc_simplify_acosh): New function.
125         (gfc_simplify_asinh): New function.
126         (gfc_simplify_atanh): New function.
127
128 2005-06-24  Feng Wang  <fengwang@nudt.edu.cn>
129
130         * simplify.c (gfc_simplify_modulo): Don't clear before get result.
131
132 2005-06-22  Paul Brook  <paul@codesourcery.com>
133
134         PR fortran/21034
135         * symbol.c (gfc_is_var_automatic): New function.
136         (save_symbol): Use it.
137
138 2005-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
139             Paul Thomas  <pault@gcc.gnu.org>
140
141         PR fortran/22010
142         Port from g95.
143         * module.c (mio_namelist): New function. Correct to set
144         namelist_tail and to give error on renaming namelist by use
145         association.
146         (mio_symbol): Call mio_namelist.
147
148 2005-06-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
149
150         * gfortran.h: Add flag_backslash compile-time option.
151         * lang.opt: Add support for -fbackslash option.
152         * options.c: Likewise.
153         * primary.c: Implement behavior for -fno-backslash.
154         * invoke.texi: Add doc for -fbackslash option.
155         * gfortran.texi: Remove mention of -fno-backslash as a
156         possible extension.
157
158 2005-06-20  Steven G. Kargl  <kargls@comcast.net>
159         (port from g95)
160
161         PR fortran/21257
162         * match.c (gfc_match_label): Detect duplicate labels.
163
164
165 2005-06-20  Erik Edelmann  <erik.edelmann@iki.fi>
166
167         * intrinsic.c (check_intrinsic_standard): Fix spelling error
168         in a warning message.
169
170 2005-06-18  Erik Edelman  <eedelman@acclab.helsinki.fi>
171             Steven G. Kargl <kargls@comast.net>
172
173         PR fortran/19926
174         * primary.c (gfc_match_rvalue):  expr_type can be EXPR_CONSTANT
175         for an array; check that sym->as is NULL.
176
177
178 2005-06-18  Steven G. Kargl  <kargls@comcast.net>
179
180         * intrinsic.c (gfc_intrinsic_func_interface): Enable errors for generic
181         functions whose simplification routine return FAILURE.
182
183 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
184
185         * Make-lang.in (fortran.install-man): Doesn't depend on installdirs.
186         (rule for installing f95.1 manpage): Does depend on installdirs.
187
188 2005-06-13  Jakub Jelinek  <jakub@redhat.com>
189
190         PR fortran/22038
191         * trans-stmt.c (gfc_trans_forall_loop): Only increment maskindex
192         in the innermost loop.
193
194         * trans-expr.c (gfc_conv_function_call): Return int instead of
195         void.  Use a local variable for has_alternate_specifier and
196         return it.  Avoid modification of function type's return value
197         in place, since it may be shared.
198         * trans.h (has_alternate_specifier): Remove.
199         (gfc_conv_function_call): Change return type.
200         * trans-stmt.c (has_alternate_specifier): Remove.
201         (gfc_trans_call): Add a local has_alternate_specifier variable,
202         set it from gfc_conv_function_call return value.
203
204 2005-06-12  Richard Henderson  <rth@redhat.com>
205
206         * trans-array.c (gfc_conv_descriptor_data_get): Rename from
207         gfc_conv_descriptor_data.  Cast the result to the DATAPTR type.
208         (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): New.
209         (gfc_trans_allocate_array_storage): Use them.
210         (gfc_array_allocate, gfc_array_deallocate): Likewise.
211         (gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor): Likewise.
212         (gfc_trans_deferred_array): Likewise.
213         * trans-expr.c (gfc_conv_function_call): Likewise.
214         (gfc_trans_subcomponent_assign): Likewise.
215         (gfc_trans_pointer_assignment): Likewise.
216         * trans-intrinsic.c (gfc_conv_allocated): Likewise.
217         * trans-types.c (gfc_array_descriptor_base): New.
218         (gfc_get_element_type): Use GFC_TYPE_ARRAY_DATAPTR_TYPE.
219         (gfc_get_array_descriptor_base): Break out from ...
220         (gfc_get_array_type_bounds): ... here.  Create type variants.
221         * trans-array.h (gfc_conv_descriptor_data_get): Declare.
222         (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): Declare.
223
224 2005-06-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
225
226         * trans-expr.c (gfc_conv_variable): POINTER results don't need f2c
227         calling conventions.  Look at sym instead of sym->result.
228         * trans-types.c (gfc_sym_type): Remove workaround for frontend bug.
229         Remove condition which is always false with workaround removed.
230         (gfc_return_by_reference): Always look at sym, never at sym->result.
231
232 2005-06-11  Steven G. Kargl  <kargls@comcast.net>
233         
234         PR fortran/17792
235         PR fortran/21375
236         * trans-array.c (gfc_array_deallocate): pstat is new argument
237         (gfc_array_allocate): update gfc_array_deallocate() call.
238         (gfc_trans_deferred_array): ditto.
239         * trans-array.h: update gfc_array_deallocate() prototype.
240         * trans-decl.c (gfc_build_builtin_function_decls): update declaration
241         * trans-stmt.c (gfc_trans_deallocate): Implement STAT= feature.
242
243 2005-06-07  Jerry DeLisle <jvdelisle@verizon.net>
244
245         * intrinsic.texi: Add documentation for dcmplx, digits,
246         dim, idim, ddim, dot_product, dprod, dreal, and dtime.
247
248 2005-06-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
249
250         PR fortran/21912
251         * trans-array.c (gfc_trans_array_constructor_value): Slightly reorder.
252         Generate correct exit condition in case of negative steps in
253         implied-do loops.
254
255         * invoke.texi: Fix description of flags required for compatibility
256         with g77.
257
258 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
259         Erik Schnetter  <schnetter@aei.mpg.de>
260
261         PR fortran/19195
262         * trans.c (gfc_get_backend_locus): Remove unnecessary adjustment,
263         remove FIXME comment. 
264
265 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
266
267         * match.c (match_forall_iterator): Don't immediately give error if '='
268         is not followed by an expression.
269
270 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
271         Erik Edelmann  <erik.edelmann@iki.fi>
272
273         * array.c (gfc_match_array_constructor): Disallow empty array
274         constructor.
275
276 2005-06-03  Jerry DeLisle <jvdelisle@verizon.net>
277
278         * fortran/intrinsic.texi: Add documentation for
279         command_argument_count, conjg, dconjg, count,
280         cpu_time, cshift, date_and_time, dble, dfloat.
281
282 2005-06-01  Roger Sayle  <roger@eyesopen.com>
283
284         * intrinsic.c (add_conv): No longer take a "simplify" argument as
285         its always gfc_convert_constant, instead take a "standard" argument.
286         (add_conversions): Change all existing calls of add_conv to pass
287         GFC_STD_F77 as appropriate.  Additionally, if we're allowing GNU
288         extensions support integer-logical and logical-integer conversions.
289         (gfc_convert_type_warn): Warn about use the use of these conversions
290         as a extension when appropriate, i.e. with -pedantic.
291         * simplify.c (gfc_convert_constant): Add support for integer to
292         logical and logical to integer conversions, using gfc_int2log and
293         gfc_log2int.
294         * arith.c (gfc_log2int, gfc_int2log): New functions.
295         * arith.h (gfc_log2int, gfc_int2log): Prototype here.
296         * gfortran.texi: Document this new GNU extension.
297
298 2005-06-01  Paul Thomas  <pault@gcc.gnu.org>
299
300         * fortran/trans-expr.c (gfc_conv_variable): Clean up bracketting.
301         * fortran/trans-expr.c (gfc_conv_function_call): Insert spaces.
302         Correct comments and replace convert of integer_one_node with
303         build_int_cst.
304
305 2005-06-01  Jakub Jelinek  <jakub@redhat.com>
306
307         PR fortran/21729
308         * resolve.c (resolve_contained_fntype): Use sym->attr.untyped
309         to avoid giving error multiple times.
310         (resolve_entries): Don't error about BT_UNKNOWN here.
311         (resolve_unknown_f): Capitalize IMPLICIT for consistency.
312         (resolve_fntype): New function.
313         (gfc_resolve): Call resolve_fntype.
314
315 2005-06-01  Feng Wang  <fengwang@nudt.edu.cn>
316
317         PR fortran/20883
318         * fortran/io.c (resolve_tag): Fix error message.
319
320 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
321
322         * fortran/trans-decl.c: Don't include errors.h.
323         * fortran/Make-lang.in: Updates dependencies.
324
325 2005-05-31  Paul Thomas  <pault@gcc.gnu.org>
326
327         PR fortran/18109
328         PR fortran/18283
329         PR fortran/19107
330         * fortran/trans-array.c (gfc_conv_expr_descriptor): Obtain the
331         string length from the expression typespec character length value
332         and set temp_ss->stringlength and backend_decl. Obtain the
333         tree expression from gfc_conv_expr rather than gfc_conv_expr_val.
334         Dereference the expression to obtain the character.
335         * fortran/trans-expr.c (gfc_conv_component_ref): Remove the
336         dereference of scalar character pointer structure components.
337         * fortran/trans-expr.c (gfc_trans_subarray_assign): Obtain the
338         string length for the structure component from the component
339         expression.
340
341 2005-05-30  Roger Sayle  <roger@eyesopen.com>
342
343         * gfortran.h (GFC_STD_LEGACY): New "standard" macro.  Reindent.
344         * options.c (gfc_init_options): By default, allow legacy extensions
345         but warn about them.
346         (gfc_post_options): Make -pedantic warn about legacy extensions
347         even with -std=legacy.
348         (gfc_handle_option): Make -std=gnu follow the default behaviour
349         of warning about legacy extensions, but allowing them. Make the
350         new -std=legacy accept everything and warn about nothing.
351         * lang.opt (std=legacy): New F95 command line option.
352         * invoke.texi: Document both -std=f2003 and -std=legacy.
353         * gfortran.texi: Explain the two types of extensions and document
354         how they are affected by the various -std= command line options.
355
356 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
357
358         * trans-expr.c: Remove trailing ^M.
359
360         * trans-expr.c: Fix comment typos.
361
362 2005-05-29  Paul Thomas  <pault@gcc.gnu.org>
363
364         PR fortran/16939
365         PR fortran/17192
366         PR fortran/17193
367         PR fortran/17202
368         PR fortran/18689
369         PR fortran/18890
370         * fortran/trans-array.c (gfc_conv_resolve_dependencies): Add string
371         length to temp_ss for character pointer array assignments.
372         * fortran/trans-expr.c (gfc_conv_variable): Correct errors in
373         dereferencing of characters and character pointers.
374         * fortran/trans-expr.c (gfc_conv_function_call): Provide string
375         length as return argument for various kinds of handling of return.
376         Return a char[]* temporary for character pointer functions and
377         dereference the temporary upon return.
378
379 2005-05-29  Janne Blomqvist  <jblomqvi@vipunen.hut.fi>
380             Steven G. Kargl  <kargls@comcast.net>
381   
382         fortran/PR20846
383         * io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage.
384
385 2005-05-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
386
387         PR libfortran/20006
388         * io.c (format_item_1): Add check and extension warning for
389         $ edit descriptor.
390
391 2005-05-28  Steven G. Kargl  <kargls@comcast.net>
392
393         * arith.c (gfc_arith_init_1): Fix off by one problem;
394         (gfc_check_integer_range): Chop extra bits in subnormal numbers.
395
396 2005-05-28  Jerry DeLisle   <jvdelisle@verizon.net>
397             Steven G. Kargl  <kargls@comcast.net>
398
399         * intrinsic.texi: added documentation for BIT_SIZE, BTEST, CHAR, CEILING
400         and CMPLX
401
402 2005-05-27  Steven G. Kargl  <kargls@comcast.net>
403
404         * trans-array.c (gfc_trans_deferred_array): Use build_int_cst to force
405         like types in comparsion.
406
407 2005-05-26  Kazu Hirata  <kazu@cs.umass.edu>
408
409         * data.c, parse.c, trans-array.c, trans-decl.c,
410         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
411         trans.h: Fix comment typos.  Follow spelling conventions.
412
413 2005-05-22  Roger Sayle  <roger@eyesopen.com>
414
415         * gfortran.texi: Document some more GNU extensions.
416
417 2005-05-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
418
419         * error.c (gfc_warning): Fix typo in comment.
420
421 2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>
422
423         PR libfortran/21127
424         * fortran/iresolve.c (gfc_resolve_reshape): Add 
425         gfc_type_letter (BT_COMPLEX) for complex to
426         to resolved function name.
427
428 2005-05-18 Erik Edelmann <erik.edelmann@iki.fi>
429
430         * array.c (gfc_match_array_constructor): Support [ ... ]
431         style array constructors.
432
433 2005-05-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
434
435         * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_TRUNC
436         and BUILT_IN_TRUNCF instead of BUILT_IN_FLOOR and BUILT_IN_FLOORF.
437         * trans-intrinsic.c (build_fix_expr): Change 'op' argument
438         to correct enum type.
439         (gfc_conv_intrinsic_aint): Likewise.  Clarify comment in front of
440         function.  Add default case to switch, deal with FIX_TRUNC_EXPR
441         instead of FIX_FLOOR_EXPR.
442
443 2005-05-18  Feng Wang  <fengwang@nudt.edu.cn>
444
445         PR fortran/20954
446         * trans-const.c (gfc_conv_const_charlen): Use gfc_charlen_type_node to
447         build character length.
448
449 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
450
451         * trans-types.c (gfc_array_range_type): New variable.
452         (gfc_init_types): Initialize gfc_array_range_type.
453         (gfc_get_array_type_bounds): Use gfc_array_range_type.
454
455 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
456
457         PR fortran/15080
458         * trans-stmt.c (generate_loop_for_temp_to_lhs): Remove SIZE and COUNT2
459         arguments.  If LSS is gfc_ss_terminator, increment COUNT1 by 1, instead
460         of incrementing COUNT2 and using COUNT1+COUNT2 increment COUNT1 and use
461         just that as index.
462         (generate_loop_for_rhs_to_temp): Likewise.
463         (compute_overall_iter_number): Add INNER_SIZE_BODY argument.
464         It non-NULL, add it to body.
465         (allocate_temp_for_forall_nest_1): New function, split from
466         allocate_temp_for_forall_nest.
467         (allocate_temp_for_forall_nest): Add INNER_SIZE_BODY argument,
468         propagate it down to compute_overall_iter_number.  Use
469         allocate_temp_for_forall_nest_1.
470         (gfc_trans_assign_need_temp): Remove COUNT2.  Call
471         compute_inner_temp_size into a new stmtblock_t.  Adjust calls to
472         allocate_temp_for_forall_nest, generate_loop_for_rhs_to_temp
473         and generate_loop_for_temp_to_lhs.
474         (gfc_trans_pointer_assign_need_temp): Adjust calls to
475         allocate_temp_for_forall_nest.
476         (gfc_evaluate_where_mask): Call compute_inner_temp_size into a new
477         stmtblock_t.  Call compute_overall_iter_number just once, then
478         allocate_temp_for_forall_nest_1 twice with the same size.
479         Initialize mask indexes if nested_forall_info != NULL.
480         (gfc_trans_where_2): Initialize mask indexes before calling
481         gfc_trans_nested_forall_loop.
482
483 2005-05-15  Feng Wang <fengwang@nudt.edu.cn>
484         Jerry DeLisle <jvdelisle@verizon.net>
485
486         PR fortran/17432
487         * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to 
488         resolve ICE on assign of format label.
489         * trans-io.c (set_string): add fold-convert to properly
490         handle assigned format label in write.
491  
492 2005-05-13  Paul Brook  <paul@codesourcery.com>
493
494         * trans-stmt.c (gfc_trans_forall_1): Fix comment typo.
495
496 2005-05-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
497
498         * trans-types.c (gfc_is_nodesc_array): Remove redundant check.
499
500 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
501
502         PR fortran/21260
503         * io.c (check_format): Look for literal characters inside
504         hollerith constant.
505
506 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
507
508         * resolve.c (resolve_symbol): Copy 'pointer' and 'dimension'
509         attribute from result symbol to function symbol.
510         * trans-expr.c (gfc_conv_function_call): Look at sym->attr.dimension
511         instead of sym->result->attr.dimension.
512
513 2005-05-10  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
514
515         PR fortran/20178
516         * gfortran.h (gfc_option): Add flag_f2c.
517         * invoke.texi: Document '-ff2c' command line option.  Adapt
518         documentation for '-fno-second-underscore' and '-fno-underscoring'.
519         * lang.opt (ff2c): New entry.
520         * options.c (gfc-init_options): Set default calling convention
521         to -fno-f2c.  Mark -fsecond-underscore unset.
522         (gfc_post_options): Set -fsecond-underscore if not explicitly set
523         by user.        
524         (handle_options): Set gfc_option.flag_f2c according to requested
525         calling convention.
526         * trans-decl.c (gfc_get_extern_function_decl): Use special f2c
527         intrinsics where necessary.
528         (gfc_trans_deferred_vars): Change todo error to assertion.
529         * trans-expr.c (gfc_conv_variable): Dereference access
530         to hidden result argument.
531         (gfc_conv_function_call): Add hidden result argument to argument
532         list if f2c calling conventions requested.  Slightly restructure
533         tests.  Convert result of default REAL function to requested type
534         if f2c calling conventions are used.  Dereference COMPLEX result
535         if f2c cc are used.
536         * trans-types.c (gfc_sym_type):  Return double for default REAL
537         function if f2c cc are used.
538         (gfc_return_by_reference): Slightly restructure logic.  Return
539         COMPLEX by reference depending on calling conventions.
540         (gfc_get_function_type): Correctly make hidden result argument a
541         pass-by-reference argument for COMPLEX.  Remove old code which does
542         this for derived types.
543
544 2005-05-09  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
545
546         * match.c (gfc_match_return): Only require space after keyword when
547         it is obligatory.  Only give stdwarn to after matching is successful.
548         * dump-parse-tree.c (gfc_show_symbol): Deal with alternate returns.
549
550 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
551
552         * intrinsic.texi: Fix typos.
553
554 2005-05-07  Steven G. Kargl  <kargls@comcast.net>
555
556         * intrinsic.texi:  Document ASSOCIATED and ATAN2.  Update Bessel function
557         description to include information about scalar arguments.
558
559 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
560
561         * Make-lang.in, dump-parse-tree.c, invoke.texi, lang.opt,
562         match.h, trans-array.h: Update copyright.
563
564 2005-04-29  Tom Tromey  <tromey@redhat.com>
565
566         * f95-lang.c (poplevel): Updated for change to build_block.
567
568 2005-04-29  Jakub Jelinek  <jakub@redhat.com>
569
570         PR fortran/13082
571         PR fortran/18824
572         * trans-expr.c (gfc_conv_variable): Handle return values in functions
573         with alternate entry points.
574         * resolve.c (resolve_entries): Remove unnecessary string termination
575         after snprintf.  Set result of entry master.
576         If all entries have the same type, set entry master's type
577         to that common type, otherwise set mixed_entry_master attribute.
578         * trans-types.c (gfc_get_mixed_entry_union): New function.
579         (gfc_get_function_type): Use it for mixed_entry_master functions.
580         * gfortran.h (symbol_attribute): Add mixed_entry_master bit.
581         * decl.c (gfc_match_entry): Set entry->result properly for
582         function ENTRY.
583         * trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over
584         __entry argument.
585         (build_entry_thunks): Handle return values in entry thunks.
586         Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not
587         shared between multiple contexts.
588         (gfc_get_fake_result_decl): Use DECL_ARGUMENTS from
589         current_function_decl instead of sym->backend_decl.  Skip over
590         entry master's entry id argument.  For mixed_entry_master entries or
591         their results, return a COMPONENT_REF of the fake result.
592         (gfc_trans_deferred_vars): Don't warn about missing return value if
593         at least one entry point uses RESULT.
594         (gfc_generate_function_code): For entry master returning
595         CHARACTER, copy ts.cl->backend_decl to all entry result syms.
596         * trans-array.c (gfc_trans_dummy_array_bias): Don't consider return
597         values optional just because they are in entry master.
598
599 2005-04-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
600
601         * gfortran.h (gfc_namespace): Add seen_implicit_none field,
602         Tobias forgot this in previous commit.
603         
604 2005-04-29  Paul Brook   <paul@codesourcery.com>
605
606         * trans-expr.c (gfc_conv_expr_present): Fix broken assert.  Update
607         comment.
608
609 2005-04-29  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
610
611         * gfortran.h (gfc_namespace): Add seen_implicit_none field.
612         * symbol.c (gfc_set_implicit_none): Give error if there's a previous
613         IMPLICIT NONE, set seen_implicit_none.
614         (gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement.
615
616 2005-04-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
617
618         * gfortran.h (gfc_gsymbol): Make name a const char *.
619         * symbol.c (gfc_get_gsymbol): Allocate gsymbol name via
620         gfc_get_string.
621
622 2005-04-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
623
624         PR fortran/20865
625         * resolve.c (resolve_actual_arglist): Issue an error if a statement
626         functions is used as actual argument.
627
628 2005-04-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
629
630         PR fortran/21177
631         * interface.c (compare_parameter): Ignore type for EXPR_NULL
632         only if type is BT_UNKNOWN.
633
634 2005-04-25  Paul Brook  <paul@codesourcery.com>
635         Steven G. Kargl  <kargls@comcast.net>
636
637         PR fortran/20879
638         * check.c (gfc_check_ichar_iachar): New function.
639         * instinsic.h (gfc_check_ichar_iachar): Add prototype.
640         * intrinsic.c (add_functions): Use it.
641         * primary.c (match_varspec, gfc_match_rvalue): Clear incorrect
642         character expression lengths.
643
644 2005-04-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
645
646         PR fortran/20059
647         * trans-common.c (translate_common): Cast offset and
648         common_segment->offset to type int for warning message.
649
650 2005-04-23  DJ Delorie  <dj@redhat.com>
651
652         * trans-decl.c: Adjust warning() callers.
653
654 2005-04-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
655
656         * trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as
657         intermediate representation.  Fix typo in comment.
658
659 2005-04-21  Steven G. Kargl  <kargls@comcast.net>
660
661         * trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation;
662         simplify logic; Add a gcc_assert.
663
664 2005-04-19  Steven G. Kargl  <kargls@comcast.net>
665
666         * trans-const.c (gfc_conv_mpz_to_tree): Fix comment.
667
668 2005-04-19  Arnaud Desitter  <arnaud.desitter@ouce.ox.ac.uk>
669             Steven G. Kargl  <kargls@comcast.net>
670
671         * invoke.texi: Update -Waliasing description
672
673 2005-04-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
674
675         PR fortran/16861
676         * resolve.c (resolve_variable): If e->symtree is not set, this
677         ought to be a FAILURE, and not a segfault.
678
679 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
680
681         PR fortran/17472
682         PR fortran/18209
683         PR fortran/18396
684         PR fortran/19467
685         PR fortran/19657
686         * fortran/trans-io.c (gfc_build_io_library_fndecls): Create
687         declaration for st_set_nml_var and st_set_nml_var_dim. Remove
688         declarations of old namelist functions.
689         (build_dt): Simplified call to transfer_namelist_element.
690         (nml_get_addr_expr): Generates address expression for start of 
691         object data. New function.
692         (nml_full_name): Qualified name for derived type components. New 
693         function.
694         (transfer_namelist_element): Modified for calls to new functions 
695         and improved derived type handling.
696
697 2005-04-17  Richard Guenther  <rguenth@gcc.gnu.org>
698
699         * scanner.c (gfc_next_char_literal): Reset truncation flag
700         for lines ending in a comment for both fixed and free form.
701         (load_line): Do not set truncated flag if only truncating
702         the EOL marker.
703
704 2005-04-15  Richard Guenther  <rguenth@gcc.gnu.org>
705
706         PR fortran/14569
707         * gfortran.h (gfc_linebuf): Add truncated field.
708         * parse.c (next_statement): Handle warning for truncated
709         lines.
710         * scanner.c (load_line): Return if line was truncated.
711         No longer warn for truncated lines.  Remove unused parameters.
712         (load_file): Store load_line return value to linebuf.
713         (gfc_error_recovery): Do not advance line at the end.
714
715 2005-04-14  Steven G. Kargl  <kargls@comcast.net>
716
717         * gfortran.h (gfc_real_info): Add subnormal struct member.
718         * arith.c (gfc_arith_init_1): Set it.
719         (gfc_check_real_range): Use it.
720         * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
721
722 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
723
724         * simplify.c: Fix a comment typo.
725
726 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
727
728         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
729
730 2005-04-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
731
732         * simplify.c (gfc_simplify_nearest): Overhaul.
733
734 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
735
736         * interface.c: Fix a comment typo.
737
738 2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
739
740         * match.c (match_arithmetic_if): Arithmetic IF is obsolete in
741         Fortran 95.
742
743 2005-04-09  Steven G. Kargl  <kargls@comcast.net>
744
745         * simplify.c (gfc_simplify_anint): Use mpfr_round()
746         (gfc_simplify_dnint): ditto.
747         (gfc_simplify_nint): ditto.
748
749 2005-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
750
751         PR fortran/13257
752         * io.c (check_format): Allow an optional comma
753         between descriptors.
754
755 2005-04-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
756
757         * match.c (match_arithmetic_if): Remove gfc_ prefix and correct
758         comment according to GNU coding style.
759         (gfc_match_if): Remove gfc_ prefix in call to
760         match_arithmetic_if.
761
762 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
763
764         * match.c (gfc_match_arithmetic_if): Declare static.
765
766 2005-04-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
767
768         PR fortran/17229
769         * match.c (gfc_match_arithmetic_if): New function to match an
770         arithmetic IF statement.
771         (gfc_match_if): Use gfc_match_arithmetic_if to match an
772         arithmetic IF statement embedded in a simple IF statement.
773
774 2005-04-07  Steven G. Kargl  <kargls@comcast.net>
775
776         * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x))
777
778 2005-04-06  Steven G. Kargl  <kargls@comcast.net>
779
780         * invoke.texi: Remove documentation of -std=f90 
781
782 2005-04-06  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
783
784         * expr.c (gfc_check_assign): Don't allow NULL as rhs in a
785         non-pointer assignment.
786
787 2005-04-05  Feng Wang  <fengwang@nudt.edu.cn>
788
789         PR fortran/15959
790         PR fortran/20713
791
792         * array.c (resolve_character_array_constructor): New function. Set
793         constant character array's character length.
794         (gfc_resolve_array_constructor): Use it.
795         * decl.c (add_init_expr_to_sym): Set symbol and initializer character
796         length.
797         (gfc_set_constant_character_len): New function. Set constant character
798         expression according the given length.
799         * match.h (gfc_set_constant_character_len): Add prototype.
800
801 2005-04-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
802
803         * intrinsic.texi: BES?? functions are not in the f95 standard.
804
805 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
806
807         * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN.
808
809 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
810
811         * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1,
812         BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.
813
814 2005-04-02  Steven G. Kargl  <kargls@comcast.net>
815
816         * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; fix typos
817
818 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
819
820         * decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c,
821         trans.h: Fix comment typos.
822
823 2005-03-29  Steven G. Kargl  <kargls@comcast.net>
824
825         * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
826         flag_default_integer, flag_default_real
827         * invoke.texi: Update documentation
828         * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8   
829         fdefault-integer-8, and fdefault-real-8 definitions.
830         * options.c (gfc_init_options): Set option defaults
831         (gfc_handle_option): Handle command line options.
832         * trans-types.c (gfc_init_kinds): Use options.
833
834 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
835
836         * f95-lang.c (builtin_function): Process the attrs parameter
837         and apply the "const" attribute to the builtin if found.
838
839 2005-03-27  Steven G. Kargl  <kargls@comcast.net>
840
841         * intrinsic.texi: Document AIMAG, AINT, ALL
842
843 2005-03-26  Steven G. Kargl  <kargls@comcast.net>
844
845         * arith.c (check_result): Fix illogical logic.
846
847 2005-03-26  Canqun Yang  <canqun@nudt.edu.cn>
848
849         * trans-common.c (create_common): Build RECORD_NODE for common blocks
850         contain no equivalence objects.
851         (add_equivalences): New argument saw_equiv.
852         (trans_common): New local variable saw_equiv.
853         (finish_equivalences): Add a local variable dummy, Always pass true
854         for the 3rd parameter to create_common.
855
856 2005-03-25  Steven G. Kargl  <kargls@comcast.net>
857
858         * intrinsic.texi: Fix "make dvi"
859
860 2005-03-24  Steven G. Kargl  <kargls@comcast.net>
861
862         * intrinsic.texi: New file.
863         * gfortran.texi: Include it; white space change; fix typo.
864
865 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
866
867         * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
868
869 2005-03-23  Steven Bosscher  <stevenb@suse.de>
870
871         * convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
872         * trans-array.c (gfc_trans_allocate_array_storage,
873         gfc_trans_allocate_temp_array gfc_trans_array_constructor_value,
874         gfc_conv_array_index_ref, gfc_trans_array_bound_check,
875         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
876         gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride,
877         gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds,
878         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
879         gfc_conv_expr_descriptor): Likewise.
880         * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp,
881         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
882         * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound,
883         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign,
884         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
885         gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop,
886         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
887         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc,
888         gfc_conv_intrinsic_merge, prepare_arg_info,
889         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise.
890         * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while,
891         gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs,
892         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
893         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
894         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign):
895         Likewise.
896         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise.
897         * trans.c (gfc_add_modify_expr): Likewise.
898
899 2005-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
900
901         * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
902         gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
903         gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
904         gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
905         gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
906         gfc_check_perror): new functions to check newly implemented
907         g77 intrinsics.
908         * gfortran.h: adding symbols for new intrinsics.
909         * intrinsic.c (add_functions): adding new intrinsics.
910         (add_subroutines): adding new intrinsics.
911         * intrinsic.h: prototype for all checking and resolving
912         functions.
913         * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
914         gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
915         gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
916         gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
917         gfc_resolve_kill_sub, gfc_resolve_link_sub,
918         gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
919         gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
920         gfc_resolve_perror): new functions to resolve intrinsics.
921         * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
922         for new symbols.
923
924 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
925
926         * dump-parse-tree.c (gfc_show_expr): Dump name of namespace
927         in which the variable is declared.
928
929         PR fortran/18525
930         * resolve.c (was_declared): Also check for dummy attribute.
931
932 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
933
934         * gfortran.h (arith): Remove ARITH_0TO0.
935         * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
936         (gfc_arith_power): Remove special casing of zero to integral
937         power zero.
938
939 2005-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
940
941         * Make-lang.in (fortran-warn): Remove -Wno-error.
942         (expr.o-warn, resolve.o-warn, simplify.o-warn,
943         trans-common.o-warn): Specify -Wno-error.
944
945 2005-03-17  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
946
947         * trans-array.c (gfc_trans_static_array_pointer,
948         get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix
949         comment and formatting typos.
950
951 2005-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
952
953         * invoke.texi: Fix typos.
954
955 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
956
957         * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
958
959 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
960
961         * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
962         to zero on label_tree.
963
964 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
965
966         PR fortran/18827
967         * io.c (resolve_tag): Add checking on assigned label.
968         (match_dt_format): Does not set symbol assign attribute.
969         * match.c (gfc_match_goto):Does not set symbol assign attribute.
970         * resolve.c (resolve_code): Add checking on assigned label.
971         * trans-common.c (build_field): Deals with common variable assigned
972         a label.
973         * trans-stmt.c (gfc_conv_label_variable): New function.
974         (gfc_trans_label_assign): Use it.
975         (gfc_trans_goto): Ditto.
976         * trans-io.c (set_string): Ditto.
977         * trans.h (gfc_conv_label_variable): Add prototype.
978
979 2005-03-14  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
980
981         PR fortran/20467
982         * symbol.c (check_conflict): A dummy argument can't be a statement
983         function.
984
985 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
986
987         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
988         the argument of the shift to the unsigned type.
989
990 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
991
992         PR fortran/16907
993         * resolve.c (gfc_resolve_index): Allow REAL indices as an extension.
994
995 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
996
997         PR fortran/20323
998         * resolve.c (gfc_resolve): Check if character lengths are
999         specification expressions.
1000
1001 2005-03-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1002
1003         PR fortran/20361
1004         * trans-array.c (gfc_stack_space_left): Remove unused variable.
1005         (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
1006         code.
1007         * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
1008         Remove declaration / prototype.
1009         * trans-common.c (build_equiv_decl): Give union a name.  Check if
1010         it can be put on the stack.
1011         * trans-decl.c (gfc_stack_space_left): Move function here.
1012         (gfc_build_qualified_array): Fix comment typo.
1013         * trans.h (gfc_put_var_on_stack): Add prototype.
1014
1015 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1016
1017         * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
1018         * decl.c, trans.c: Don't use C++ style comments.
1019         * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access,
1020         ifsrc): Give names to enums and use ENUM_BITFIELD.
1021         (gfc_access): Remove trailing comma.
1022
1023 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
1024
1025         PR 19936
1026         * primary.c (match_complex_constant): Mangled complex constant may
1027         be an implied do-loop.  Give implied do-loop matcher a chance.
1028
1029 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
1030
1031         PR fortran/19754
1032         * resolve.c (compare_shapes):  New function.
1033         (resolve_operator): Use it.
1034
1035 2005-03-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1036
1037         * trans-const.c (gfc_conv_constant_to_tree): Use correct tree
1038         type for COMPLEX constants.
1039
1040 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1041
1042         PR fortran/19673
1043         * trans-expr.c (gfc_conv_function_call): Correctly dereference
1044         argument from a pointer function also if it has a result clause.
1045
1046 2005-03-04  Steven G. Kargl  <kargls@comcast.net>
1047
1048         * expr.c (gfc_copy_shape_excluding): Change && to ||.
1049
1050 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1051
1052         * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
1053         clarify comment.
1054
1055 2005-02-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1056         (port from g95)
1057
1058         PR fortran/19479
1059         * simplify.c (gfc_simplify_bound): Rename to ...
1060         (simplify_bound): ... this and overhaul.
1061
1062 2005-02-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1063
1064         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
1065         (gfc_conv_intrinsic_function): update function calls
1066
1067 2005-02-27  Steven G. Kargl  <kargl@gcc.gnu.org>
1068
1069         PR fortran/20058
1070         * trans-types.c (gfc_max_integer_kind): Declare
1071         (gfc_init_kinds): Initialize it.
1072         * gfortran.h (gfc_max_integer_kind): extern it.
1073         * primary.c (match_boz_constant): Use it; remove gfortran extension
1074         of kind suffixes on BOZ literal constants
1075
1076
1077 2005-02-27  Steven G. Kargl  <kargls@comcast.net>
1078
1079         * arith.c (gfc_check_real_range):  Remove multiple returns
1080         (check_result): New function.
1081         (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
1082         gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.
1083
1084
1085 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1086
1087         * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
1088
1089
1090 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-meunchen.de>
1091
1092         Unrevert previously reverted patch.  Adding this fix:
1093         * module.c (find_true_name): Deal with NULL module.
1094
1095 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1096
1097         Revert yesterday's patch:
1098         2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1099
1100                 * gfortran.h (gfc_component, gfc_actual_arglist, ...
1101                 ... argument.  Copy string instead of pointing to it.
1102
1103 2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1104
1105         * gfortran.h (gfc_get_namespace): Add second argument to prototype.
1106         * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
1107         gfc_get_namespace.
1108         * module.c (mio_namespace_ref, load_needed): Likewise.
1109         * parse.c (parse_interface, parse_contained): Likewise.  Here the
1110         correct second argument matters.
1111         * symbol.c (gfc_get_namespace): Add parent_types argument, only copy
1112         parent's implicit types if this is set.
1113         (gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
1114         * trans-common.c (build_common_decl): Likewise.
1115
1116         * gfortran.h (symbol_attribute): New 'untyped' field, fix comment
1117         formatting.
1118         * symbol.c (gfc_set_default_type): Issue error only once, by setting
1119         and checking 'untyped' attribute.
1120
1121         * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
1122         fields into new struct 'op' inside the 'value' union.
1123         * arith.c (eval_intrinsic): Adapt all users.
1124         * dependency.c (gfc_check_dependency): Likewise.
1125         * dump-parse-tree.c (gfc_show_expr): Likewise.
1126         * expr.c (gfc_get_expr): Don't clear removed fields.
1127         (free_expr0, gfc_copy_expr, gfc_type_convert_binary,
1128         gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
1129         check_intrinsic_op): Adapt to new field names.
1130         * interface.c (gfc_extend_expr): Likewise.  Also explicitly
1131         nullify 'esym' and 'isym' fields of new function call.
1132         * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
1133         Adapt to renamed structure fields.
1134         * matchexp.c (build_node, match_level_1, match_expr): Likewise.
1135         * module.c (mio_expr): Likewise.
1136         * resolve.c (resolve_operator): Likewise.
1137         (gfc_find_forall_index): Likewise.  Only look through operands
1138         if dealing with EXPR_OP
1139         * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
1140         * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
1141         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
1142
1143         [ Reverted ]
1144         * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
1145         'name' a 'const char *'.
1146         (gfc_symbol): Likewise, also for 'module'.
1147         (gfc_symtree): Make 'name' a 'const char *'.
1148         (gfc_intrinsic_sym): Likewise, also for 'lib_name'.
1149         (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
1150         'char *' argument.
1151         (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
1152         initialize 'SYM->module'.
1153         * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
1154         pointer instead of empty string.
1155         * dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
1156         * interface.c (gfc_compare_types): Adapt check to account for possible
1157         NULL pointer.
1158         (compare_actual_formal): Check for NULL pointer instead of empty
1159         string.
1160         * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
1161         Add 'const' qualifier.
1162         (conv_name): Return a heap allocated string.
1163         (find_conv): Add 'const' qualifier to 'target'.
1164         (add_sym): Use 'gfc_get_string' instead of 'strcpy'.
1165         (make_generic): Check for NULL pointer instead of empty string.
1166         (make_alias): Use 'gfc_get_string' instead of 'strcpy'.
1167         (add_conv): No need to strcpy result from 'conv_name'.
1168         (sort_actual): Check for NULL pointer instead of empty  string.
1169         * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
1170         Adapt prototype.
1171         * module.c (compare_true_names): Compare pointers instead of strings
1172         for 'module' member.
1173         (find_true_name): Initialize string fields with gfc_get_string.
1174         (mio_pool_string): New function.
1175         (mio_internal_string): Adapt comment.
1176         (mio_component_ref, mio_component, mio_actual_arg): Use
1177         'mio_pool_string' instead of 'mio_internal_string'.
1178         (mio_symbol_interface): Add 'const' qualifier to string arguments.
1179         Add level of indirection. Use 'mio_pool_string' instead of
1180         'mio_internal_string'.
1181         (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
1182         (write_common, write_symbol): Use 'mio_pool_string' instead of
1183         'mio_internal_string'.
1184         (write_symbol0, write_symbol1): Likewise, also check for NULL pointer
1185         instead of empty string.
1186         (write_operator, write_generic): Pass correct type variable to
1187         'mio_symbol_interface'.
1188         (write_symtree): Use 'mio_pool_string' instead of
1189         'mio_internal_string'.
1190         * primary.c (match_keyword_arg): Adapt check to possible
1191         case of NULL pointer.  Use 'gfc_get_string' instead of 'strcpy'.
1192         * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
1193         gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
1194         'strcpy'.
1195         (ambiguous_symbol): Check for NULL pointer instead of empty string.
1196         (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
1197         arguments.
1198         * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
1199         pointer instead of empty string.
1200         * trans-decl.c (gfc_sym_mangled_identifier,
1201         gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
1202         gfc_get_symbol_decl): Likewise.
1203         * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
1204         argument.  Copy string instead of pointing to it.
1205
1206 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
1207
1208         * intrinsic.h, st.c: Update copyright.
1209
1210 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
1211
1212         * symbol.c: Typos in comments.
1213
1214 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
1215
1216         * expr.c (gfc_type_convert_binary): Typo in comment.
1217
1218 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
1219
1220         * check.c (gfc_check_selected_int_kind): New function.
1221         * intrinsic.h: Prototype it.
1222         * intrinsic.c (add_function): Use it.
1223         * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
1224           BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
1225
1226 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
1227
1228         * check.c (gfc_check_int): improve checking of optional kind
1229         * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER
1230
1231 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
1232
1233         * check.c (gfc_check_achar): New function
1234         * intrinsic.h: Prototype it.
1235         * intrinsic.c (add_function): Use it.
1236
1237 2005-02-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1238
1239         * trans-stmt.c (generate_loop_for_temp_to_lhs,
1240         generate_loop_for_rhs_to_temp): Remove if whose condition is
1241         always true.
1242
1243 2005-02-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1244
1245         * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
1246         (gfc_use_derived): ... this function.
1247
1248 2005-02-09  Richard Henderson  <rth@redhat.com>
1249
1250         * f95-lang.c (gfc_init_builtin_functions): Call
1251         build_common_builtin_nodes; do not define any functions handled
1252         by it.
1253
1254 2005-02-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1255
1256         * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for
1257         EXPR_SUBSTRING.
1258         (gfc_is_constant_expr): Check 'ref' to determine if substring
1259         reference is constant.
1260         (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'.
1261         (check_init_expr, check_restricted): Check 'ref' instead of 'op1'
1262         and 'op2'.
1263         * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'.
1264
1265 2005-02-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1266
1267         * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save,
1268         gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data,
1269         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
1270         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
1271         gfc_add_procedure): Add argument.
1272         * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name,
1273         gfc_match_null, match_type_spec, match_attr_spec,
1274         gfc_match_formal_arglist, match_result, gfc_match_function_decl):
1275         Update callers to match.
1276         (gfc_match_entry) : Likewise, fix comment typo.
1277         (gfc_match_subroutine, attr_decl1, gfc_add_dimension,
1278         access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc,
1279         gfc_match_derived_decl): Update callers.
1280         * interface.c (gfc_match_interface): Likewise.
1281         * match.c (gfc_match_label, gfc_add_flavor,
1282         gfc_match_call, gfc_match_common, gfc_match_block_data,
1283         gfc_match_namelist, gfc_match_module, gfc_match_st_function):
1284         Likewise.
1285         * parse.c (parse_derived, parse_interface, parse_contained),
1286         primary.c (gfc_match_rvalue, gfc_match_variable): Likewise.
1287         * resolve.c (resolve_formal_arglist, resolve_entries): Update callers.
1288         * symbol.c (check_conflict, check_used): Add new 'name' argument,
1289         use when printing error message.
1290         (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy,
1291         gfc_add_generic, gfc_add_in_common, gfc_add_data,
1292         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
1293         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
1294         gfc_add_procedure): Add new 'name' argument.  Pass along to
1295         check_conflict and check_used.
1296         (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic,
1297         gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental,
1298         gfc_add_pure, gfc_add_recursive, gfc_add_intent,
1299         gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new
1300         argument in calls to any of the modified functions.
1301
1302 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1303
1304         * gfortran.texi: Don't give last update date.
1305
1306 2006-01-30  Richard Henderson  <rth@redhat.com>
1307
1308         * options.c (gfc_init_options): Zero flag_errno_math.
1309
1310 2005-01-29  Paul Brook  <paul@codesourcery.com>
1311
1312         PR fortran/18565
1313         * check.c (real_or_complex_check): New function.
1314         (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions.
1315         * intrinsic.c (add_functions): Use new check functions.
1316         * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc):
1317         Add prototypes.
1318
1319 2005-01-29  Steven G. Kargl  <kargls@comcast.net>
1320
1321         PR fortran/19589
1322         * expr.c (gfc_check_assign):  Check for conformance of logical operands
1323
1324 2004-01-27  Steven Bosscher  <stevenb@suse.de>
1325
1326         * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
1327         TREE_USED for all labels.
1328         (gfc_trans_entry_master_switch): Use it instead of building a
1329         label by hand.
1330         * trans-io.c (add_case): Likewise.
1331         * trans-stmt.c (gfc_trans_integer_select): Likewise.
1332
1333 2004-01-23  Paul Brook  <paul@codesourcery.com>
1334         Steven G. Kargl  <kargls@comcast.net>
1335
1336         PR fortran/17941
1337         * arith.c (gfc_convert_real): Remove sign handling.
1338         * primary.c (match_digits): Allow whitespace after initial sign.
1339         (match_real_const): Handle signs here.  Allow whitespace after
1340         initial sign.  Remove dead code.
1341         (match_const_complex_part): Remove.
1342         (match_complex_part): Use match_{real,integer}_const.
1343         (match_complex_constant): Cross-promote integer types.
1344
1345 2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
1346
1347         PR fortran/19294
1348         * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
1349         transpose_c8 for complex types.
1350
1351 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
1352
1353         * data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
1354         trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
1355         trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
1356         Follow spelling conventions.
1357
1358 2005-01-22  Bud Davis  <bdavis9659@comcast.net>
1359
1360         PR fortran/19313
1361         * trans-io.c (gfc_trans_inquire): Added code to support
1362         pad.
1363
1364 2005-01-22  Steven G. Kargl  <kargls@comcast.net>
1365
1366         * intrinsic.c (make_alias):  Add standard argument.
1367         (add_functions): Update make_alias calls.
1368
1369 2005-01-22  Paul Brook  <paul@codesourcery.com>
1370
1371         * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
1372
1373 2005-01-22  Paul Brook  <paul@codesourcery.com>
1374
1375         * gfortran.h (gfc_check_access): Add prototype.
1376         * match.c (gfc_match_namelist): Remove TODO.
1377         * module.c (check_access): Rename ...
1378         (gfc_check_access): ... to this.  Boolify.  Update callers.
1379         * resolve.c (resolve_symbol): Check for private objects in public
1380         namelists.
1381
1382 2005-01-22  Paul Brook  <paul@codesourcery.com>
1383
1384         * primary.c (gfc_match_rvalue): Only apply implicit type if variable
1385         does not have an explicit type.
1386         (gfc_match_variable): Resolve implicit derived types in all cases.
1387         Resolve contained function types from their own namespace, not the
1388         parent.
1389         * resolve.c (resolve_contained_fntype): Remove duplicate sym->result
1390         checking.  Resolve from the contained namespace, not the parent.
1391
1392 2005-01-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1393
1394         PR fortran/19543
1395         * trans-const.c (gfc_conv_constant_to_tree): Give logical
1396         constants the correct type.
1397
1398         PR fortran/19194
1399         * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
1400         length parameters.
1401         (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
1402         pointer fields.
1403
1404 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
1405
1406         * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
1407         gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
1408         match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
1409         scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
1410         trans-io.c, trans-stmt.c, trans.c: Update copyright.
1411
1412 2005-01-17  Ira Rosen  <irar@il.ibm.com>
1413
1414         * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
1415
1416 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1417
1418         PR fortran/19182
1419         * error.c (error_char): Line-buffer errors / warnings.
1420
1421 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1422
1423         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
1424         unsigned issue.  Use build_int_cst instead of converting
1425         integer_zero_node.  Remove unnecessary conversion.
1426
1427         * trans-types.c (gfc_get_character_type_len): : Use
1428         gfc_charlen_type_node as basic type for the range field.
1429
1430         * trans-intrinsic.c (build_fixbound_expr,
1431         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
1432         gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
1433         gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
1434         of converting 'integer_zero_node' or 'integer_one_node'
1435         respectively.
1436         (gfc_conv_intrinsic_ishftc): Same, but store in local variable to
1437         evade re-building.
1438         (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
1439         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
1440         'build_int_cst' instead of converting 'integer_zero_node' or
1441         'integer_one_node' respectively.
1442
1443         * trans-intrinsic.c (gfc_conv_intrinsic_index,
1444         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
1445         'gfc'-prefix from local variable, remove dead code, use correct
1446         type when inserting argument.
1447
1448         * trans-intrinsic.c, trans-types.c: Update copyright years.
1449
1450 2005-01-16  Steven G. Kargl  <kargls@comcast.net>
1451
1452         PR 19168
1453         * resolve.c (check_case_overlap): Typo in comment.
1454         (validate_case_label_expr):  Fix up kinds of case values
1455         (resolve_select): Properly handle kind mismatches.
1456
1457 2004-01-16  Paul Brook  <paul@codesourcery.com>
1458
1459         PR fortran/17675
1460         * trans-common.c (translate_common): Remove duplicate function call.
1461         (finish_equivalences): Preserve alignment when biasing offsets.
1462
1463 2005-01-15  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de
1464
1465         * primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
1466         ASCII-like character encoding.
1467
1468 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
1469
1470         * resolve.c (compare_case): Cleanup.
1471
1472 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
1473
1474         * resolve.c (compare_case): Give arguments correct type.
1475
1476 2005-01-13  Kazu Hirata  <kazu@cs.umass.edu>
1477
1478         * iresolve.c, trans-common.c, trans-types.c: Fix comment
1479         typos.
1480
1481 2005-01-09  Paul Brook  <paul@codesourcery.com>
1482
1483         PR fortran/17675
1484         * trans-common.c (current_common, current_offset): Remove.
1485         (create_common): Add head argument.
1486         (align_segment): New function.
1487         (apply_segment_offset): New function.
1488         (translate_common): Merge code from new_segment.  Handle alignment.
1489         (new_segment): Remove.
1490         (finish_equivalences): Ensure proper alignment.
1491
1492 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1493
1494         * trans-const.c: Don't include unused math.h.
1495
1496         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
1497         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
1498         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
1499         trailing whitespace.
1500         (prepare_arg_info): Fix formatting, indenting and remove trailing
1501         whitespace.
1502         (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
1503         trailing whitespace.
1504
1505         * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
1506         gfc_constant_result, gfc_range_check, gfc_arith_power,
1507         eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
1508         gfc_real2complex, gfc_complex2int, gfc_complex2real,
1509         gfc_complex2complex): Fix whitespace issues.
1510         * check.c (must_be, type_check, numeric_check, int_or_real_check,
1511         logical_array_check, array_check, scalar_check, nonoptional_check,
1512         variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
1513         gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
1514         gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
1515         gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
1516         gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
1517         gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
1518         gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
1519         gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
1520         gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
1521         gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
1522         gfc_check_lbound, gfc_check_logical, min_max_args,
1523         gfc_check_min_max_integer, gfc_check_min_max_real,
1524         gfc_check_min_max_double, gfc_check_matmul,
1525         gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
1526         gfc_check_pack, gfc_check_precision, gfc_check_radix,
1527         gfc_check_range, gfc_check_real, gfc_check_repeat,
1528         gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
1529         gfc_check_set_exponent): Fix formatting issues.
1530         (gfc_check_size, gfc_check_sign): Alphabetize function order,
1531         remove whitespace-only line.
1532         (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
1533         gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
1534         gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
1535         gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
1536         gfc_check_random_number, gfc_check_random_seed,
1537         gfc_check_second_sub, gfc_check_system_clock,
1538         gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
1539         gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
1540         gfc_check_unlink_sub): Fix formatting issues.
1541
1542 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1543
1544         * gfortran.h: Remove outdated comment.  Don't include stdio.h
1545         explicitly.
1546
1547 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1548
1549         * gfortranspec.c (lang_specific_driver): Change year to 2005 in
1550         output of 'gfortran --version'.
1551
1552 2005-01-03  Steven G. Kargl  <kargls@comcast.net>
1553
1554         * arith.c: Add system.h; remove string.h
1555         * decl.c: Ditto
1556         * matchexp.c: Ditto
1557         * parse.c: Ditto
1558         * resolve.c: Ditto
1559         * st.c: Ditto
1560         * check.c: Remove stdlib.h and stdarg.h
1561         * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
1562         * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
1563         * f95-lang.c: Add system.h; remove stdio.h
1564         * interface.c: Add system.h; remove stdlib.h and string.h
1565         * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
1566         * io.c: Remove string.h
1567         * simplify.c: Ditto
1568         * match.c: Remove stdarg.h and string.h
1569         * misc.c: Update copyright; add system.h; remove stdlib.h,
1570         string.h, and sys/stat.h
1571         * module.c: Add system.h; remove string.h, stdio.h, errno.h,
1572         unistd.h, and time.h
1573         * option.c: Remove string.h and stdlib.h
1574         * primary.c: Ditto
1575         * scanner.c: Update copyright; add system.h; remove stdlib.h,
1576         stdio.h, string.h, and strings.h
1577         * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
1578         * trans-array.c: Remove stdio.h and gmp.h
1579         * trans-const.c: Ditto
1580         * trans-expr.c: Ditto
1581         * trans-io.c: Ditto
1582         * trans-stmt.c: Ditto
1583         * trans.c: Ditto
1584         * trans-intrinsic.c: Remove stdio.h and string.h
1585
1586 2004-12-29  Steven G. Kargl  <kargls@comcast.net>
1587
1588         * gfortran.h (gfc_case): fix typo in comment.
1589
1590 2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1591
1592         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
1593         logical shift.  Call fold.  Remove 0-bit shift shortcut.
1594         (gfc_conv_intrinsic_ishftc): Convert first argument to at least
1595         4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
1596         result if width(arg 1) < 4 bytes.  Call fold.
1597
1598         PR fortran/19032
1599         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
1600         in front of function to match the standard.  Correct handling
1601         of MODULO.
1602
1603 2004-12-27  Andrew Pinski  <pinskia@physics.uc.edu>
1604
1605         * trans-expr.c (gfc_conv_cst_int_power): Only check for
1606         flag_unsafe_math_optimizations if we have a float type.
1607
1608 2004-12-23  Steven G. Kargl  <kargls@comcast.net>
1609
1610         * gfortran.texi: Fix typo.
1611
1612 2004-12-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1613
1614         * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
1615         comment typo.
1616
1617 2004-12-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1618
1619         PR fortran/18993
1620         * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
1621         (gfc_match_nullify): Make sure that ')' is in front of the end of
1622         statement.
1623
1624         * scanner.c (skip_fixed_comments): Fix typo in comment preceding
1625         function.
1626
1627 2004-12-14  Richard Henderson  <rth@redhat.com>
1628
1629         * gfortran.h (gfc_expr.function.name): Make const.
1630         (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
1631         (gfc_get_string): Update prototype.
1632         * iresolve.c: Include tree.h.
1633         (string_node, HASH_SIZE, string_head, hash): Remove.
1634         (gfc_get_string): Use vsnprintf, get_identifier.
1635         (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
1636         * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
1637         (gfc_done_1): Don't call gfc_iresolve_done_1.
1638         * module.c (mio_allocated_string): Take and return const char *,
1639         instead of modifying char**.
1640         (mio_expr): Update to match.
1641         * resolve.c (pure_function): Constify name argument.
1642         (resolve_function): Constify name.
1643         * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
1644
1645 2004-12-12  Richard Henderson  <rth@redhat.com>
1646
1647         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
1648         gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
1649         gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
1650         gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
1651         gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
1652         gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
1653         gfc_resolve_unpack: Use PREFIX.
1654
1655 2004-12-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1656
1657         PR fortran/18869
1658         * match.c (gfc_match_common): Skip whitespace.
1659
1660 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
1661
1662         PR fortran/16581
1663         * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
1664         gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
1665         integer kind check; Issue error for -std=f95 when needed.
1666         * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
1667         GFC_STD_F95.
1668         * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
1669         Promote arguments to same kind.
1670
1671 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
1672         Paul Brook  <paul@codesourcery.com>
1673
1674         PR fortran/16222
1675         * resolve.c (gfc_resolve_iterator_expr): New function.
1676         (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
1677         start, end and stride to correct type.
1678         (resolve_code): Pass extra argument.
1679         * array.c (resolve_array_list): Pass extra argument.
1680         * gfortran.h (gfc_resolve): Add prototype.
1681         * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
1682         Handle real type iterators.
1683
1684 2004-12-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1685
1686         PR fortran/17175
1687         * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
1688         same kind as C's 'int'.
1689         (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
1690
1691 2004-12-08  Richard Henderson  <rth@redhat.com>
1692
1693         * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
1694         to the output expression.
1695         * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
1696         warning conversion.
1697         (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
1698         to index kind.
1699
1700 2004-12-08  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1701
1702         PR fortran/18826
1703         * resolve.c (resolve_code): Impose correct restrictions on
1704         assigned variable.
1705
1706         * decl.c (gfc_match_end): Use locus of END when eos is an error.
1707
1708 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
1709         Paul Brook  <paul@codesourcery.com>
1710
1711         * check.c (gfc_check_flush, gfc_check_fnum): New functions.
1712         (gfc_check_fstat, gfc_check_fstat_sub): New functions.
1713         (gfc_check_stat, gfc_check_stat_sub): New functions.
1714         * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
1715         * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
1716         fstat, and stat to intrinsics symbol tables.
1717         * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
1718         (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
1719         * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
1720         (gfc_resolve_stat, gfc_resolve_flush): New functions.
1721         (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
1722         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
1723
1724 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
1725
1726         * intrinsic.c: Fix and add comments, fix function declarations
1727         (OPTIONAL,REQUIRED): New symbols
1728         (add_functions,add_subroutines): Use symbols
1729         (gmp.h): Remove unused include
1730
1731 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1732
1733         * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
1734         in diagnostics.
1735
1736 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1737
1738         * options.c (gfc_post_options): Don't clear flag_inline_functions.
1739
1740 2004-11-20  Steven G. Kargl  <kargls@comcast.net>
1741
1742         * check.c (gfc_check_getcwd_sub): Fix seg fault.
1743
1744         * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
1745         gfc_check_unlink,gfc_check_unlink_sub): New functions
1746         * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
1747         * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
1748         exit to intrinsics symbol tables.
1749         * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
1750         gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
1751         gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
1752         gfc_resolve_unlink_sub): Add and sort prototypes.
1753         * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
1754         gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
1755         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
1756
1757 2004-11-16  Paul Brook  <paul@codesourcery.com>
1758
1759         PR fortran/13010
1760         * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
1761         (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
1762         * trans-types.c (gfc_get_dtype): Accept array type rather than element
1763         type.
1764         (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
1765         (gfc_get_array_type_bounds): Ditto.
1766         (gfc_get_derived_type): Recurse into derived type pointers.
1767         * trans-types.h (gfc_get_dtype): Add prototype.
1768         * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
1769
1770 2004-11-15  Paul Brook  <paul@codesourcery.com>
1771
1772         * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
1773
1774 2004-11-10  Paul Brook  <paul@codesourcery.com>
1775
1776         PR fortran/18375
1777         * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
1778         * trans-io.c (transfer_array_component): Ditto.
1779
1780 2004-11-10  Paul Brook  <paul@codesourcery.com>
1781
1782         * invoke.texi: Fix typo.
1783
1784 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1785
1786         * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
1787         gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
1788         module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
1789         trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
1790         trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
1791
1792 2004-11-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1793
1794         PR fortran/18023
1795         * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
1796
1797 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1798
1799         * gfortranspec.c: Replace GNU CC with GCC.
1800
1801 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1802
1803         * gfortranspec.c (lang_specific_driver): Change year to 2004.
1804
1805 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1806
1807         PR fortran/18111
1808         *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
1809         hidden parameters.
1810
1811 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1812
1813         PR fortran/15164
1814         * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
1815         module procedures as if they were module variables.
1816
1817 2004-11-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1818
1819         PR fortran/17535
1820         PR fortran/17583
1821         PR fortran/17713
1822         * module.c (write_symbol1): Set module_name for dummy arguments.
1823
1824 2004-11-02  Paul Brook  <paul@codesourcery.com>
1825
1826         * intrinsic.c (check_intrinsic_standard): Include error locus.
1827         Remove VLA.
1828         (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
1829         locus to check_intrinsic_standard.
1830
1831 2004-10-31  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1832
1833         PR fortran/17590
1834         * gfortran.h: Change GFC_STD_* flags to more appropriate
1835         ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
1836         gfc_option_t): Add field for warning about use of nonstandard
1837         intrinsics.
1838         * intrinsic.c (add_sym): Add parameter for standard version, check
1839         this against current standard.
1840         (add_sym_0): Pass standard parameter to add_sym.
1841         (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
1842         (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
1843         (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
1844         (make_generic): Add parameter for standard, check this
1845         against currently selected standard.
1846         (add_functions, add_subroutines): Add parameter to tell which
1847         standard an intrinsic belongs to.
1848         (check_intrinsic_standard): New function.
1849         (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
1850         (gfc_intrinsic_sub_interface): Ditto.
1851         * lang.opt: Add Wnonstd-intrinsics option.
1852         * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
1853         init new warning.
1854         (set_Wall): Add warning about nonstd intrinsics.
1855         (gfc_handle_option): Change to use new GFC_STD_* flags,
1856         handle new warning.
1857         * invoke.texi: Update manual to include -Wnonstd-intrinsics.
1858
1859 2004-10-30  Andrew Pinski  <pinskia@physics.uc.edu>
1860
1861         * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
1862
1863 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1864
1865         * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
1866
1867 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1868
1869         * trans.c (gfc_trans_code): Set global locus after recursing. Fix
1870         comment typo.
1871
1872 2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>
1873
1874         * check.c (gfc_check_rand): Allow missing optional argument.
1875         (gfc_check_irand): Ditto.
1876         * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
1877
1878 2004-10-28  Scott Robert Ladd  <scott.ladd@coyotegulch.com>
1879
1880         PR fortran/13490, PR fortran/17912
1881         * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
1882         * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
1883         * gcc/fortran/arith.c: Added support for an "asymmetric integer"
1884         warning when compiling with pedantic.
1885         * gcc/fortran/arith.c: Set minimum integer values to reflect
1886         realities of two's complement signed integers. Added
1887         pedantic minimum.
1888
1889 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1890
1891         * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
1892         (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
1893         link it in.
1894
1895 2004-10-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1896
1897         * trans-decl.c (generate_local_decl): Simplify logic, fix comment
1898         typo.
1899         (gfc_generate_function_code): Fix formatting issue.
1900
1901 2004-10-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1902
1903         * module.c: Fix formatting issues.
1904
1905 2004-10-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1906
1907         * module.c (mio_interface_rest): Set where member of interface
1908         while loading.
1909
1910 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1911
1912         PR fortran/17901
1913         * options.c (gfc_handle_option): Add break after handing the
1914         J/M option.
1915
1916 2004-10-08  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
1917
1918         * arith.c: Fix formatting issues.
1919
1920 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1921
1922         PR fortran/17676
1923         * resolve.c (resolve_operator): Use correct operator name in message.
1924
1925 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1926
1927         * primary.c (match_boz_constant): Allow kind parameter suffixes.
1928         Move standard warning further to the front.
1929
1930 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1931
1932         * trans-stmt.c: Fix a comment typo.
1933
1934 2004-10-07  Paul Brook  <paul@codesourcery.com>
1935
1936         PR fortran/17678
1937         * trans-array.c (gfc_trans_deferred_array): Leave use associated
1938         variables alone.
1939
1940 2004-10-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1941
1942         PR fortran/17568
1943         * simplify.c (twos_complement): New function.
1944         (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
1945
1946         * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
1947
1948 2004-10-06  Paul Brook  <paul@codesourcery.com>
1949
1950         * trans-stmt.c (gfc_trans_simple_do): New function.
1951         (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
1952         loop.  Update comments.
1953
1954 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1955
1956         PR fortran/17283
1957         * iresolve.c (gfc_resolve_pack): Choose function depending if mask
1958         is scalar.
1959
1960         PR fortran/17631
1961         * intrinsic.c (add_sym_5): Remove.
1962         (add_subroutines): Add resolution function for MVBITS.
1963         * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
1964         MVBITS
1965         * iresolve.c (gfc_resolve_mvbits): New function.
1966         (gfc_resolve_random_number): Remove empty line at end of function.
1967
1968         * trans-const.c (gfc_build_cstring_const): New function.
1969         (gfc_init_cst): Use new function.
1970         * trans-const.h (gfc_build_cstring_const): Add prototype.
1971         * trans-io.c (set_string, set_error_locus): Use new function.
1972         * trans-stmt.c (gfc_trans_goto): Use new function.
1973
1974         PR fortran/17708
1975         * parse.c (accept_statement): Don't treat END DO like END IF and
1976         END SELECT.
1977         (parse_do_block): Generate possible END DO label inside END DO
1978         block.
1979
1980         PR fortran/17776
1981         * check.c (gfc_check_system_sub): New function.
1982         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
1983         * intrinsic.c (add_functions): Add 'system'.
1984         (add_subroutines): Add 'system'.
1985         * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
1986         Move prototypes to other suborutines.
1987         (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
1988         Add prototype.
1989         (gfc_resolve_system_clock): Fix formatting of prototype.
1990         * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
1991         functions.
1992         * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
1993         GFC_ISYM_SYSTEM.
1994
1995 2004-10-04  Erik Schnetter  <schnetter@aei.mpg.de>
1996
1997         * scanner.c (preprocessor_line): Accept preprocessor lines without
1998         file names.  Check file names for closing quotes.  Handle escaped
1999         quotes in file names.
2000
2001 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2002         Paul Brook  <paul@codesourcery.com>
2003
2004         * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
2005         Use gfc_get_expr_charlen.
2006         * trans-expr.c (gfc_get_expr_charlen): New function.
2007         * trans.h (gfc_get_expr_charlen): Add prototype.
2008
2009 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
2010
2011         * trans-intrinsic.c: Fix a comment typo.
2012
2013 2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2014
2015         * simplify.c (range_check): Remove blank line at beginning of function.
2016         (gfc_simplify_dint): Same at end of function.
2017         (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
2018         (gfc_simplify_bound): Fix indentation.
2019         (gfc_simplify_log10): Simplify calculation.
2020         (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
2021         of function.
2022         (gfc_simplify_nearest): Same at end of function.
2023         (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
2024         function.
2025         (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
2026         gfc_simplify_spacing): Simplify calulations.
2027
2028 2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>
2029
2030         * trans-intrinsic.c: Fix comments on spacing and rrspacing
2031         (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
2032
2033 2004-10-01  Jan Hubicka  <jh@suse.cz>
2034
2035         * f95-lang.c (gfc_expand_function): Update call of
2036         tree_rest_of_compilation.
2037         * trans-decl.c (gfc_generate_constructors): Likewise.
2038
2039 2004-09-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2040
2041         * trans-intrinsic.c: Comment fixes.
2042
2043 2004-09-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2044
2045         * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
2046
2047 2004-09-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2048
2049         * trans-types.c (gfc_return_by_reference): Remove superfluous
2050         assertion.
2051
2052         * intrinsic.h (gfc_resolve_getcwd): Update prototype.
2053         * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
2054
2055         PR fortran/17615
2056         * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
2057         function to determine return type.
2058
2059 2004-09-20  Jan Hubicka  <jh@suse.cz>
2060
2061         * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
2062         tree.
2063         (gfc_generate_function_code): Likewise.
2064
2065 2004-09-20  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2066
2067         PR fortran/15957
2068         * simplify.c (gfc_simplify_reshape): Set shape of return value
2069         correctly.
2070
2071 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
2072             Zack Weinberg  <zack@codesourcery.com>
2073
2074         * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
2075         enumeration constants.
2076
2077 2004-09-17  Paul Brook  <paul@codesourcery.com>
2078
2079         * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
2080         (gfc_linebuf_header_size): Define.
2081         * scanner.c (load_file): Use it.
2082
2083 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
2084
2085         * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
2086         interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
2087         resolve.c, scanner.c, trans-array.c, trans-array.h,
2088         trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
2089         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
2090         trans.h: Fix comment typos.  Follow spelling conventions.
2091
2092 2004-09-16  Victor Leikehman  <lei@il.ibm.com>
2093
2094         PR/15364
2095         * trans-io.c (transfer_array_component): New function.
2096         (transfer_expr): For array fields, call transfer_array_component.
2097
2098 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
2099
2100         * gfortran.texi: Fix a typo.
2101
2102 2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2103
2104         * parse.c (eof_buf): Rename eof to eof_buf.
2105         (unexpected_eof): Same.
2106         (gfc_parse_file): Same.
2107
2108 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
2109
2110         * check.c (gfc_check_getcwd_sub): New function.
2111         * gfortran.h (GFC_ISYM_GETCWD): New symbol.
2112         * intrinsic.c (add_functions): Add function definition;
2113         Use symbol.
2114         * intrinsic.c (add_subroutines): Add subroutine definitions.
2115         * intrinsic.h: Add prototypes.
2116         * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
2117         New functions.
2118         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
2119
2120 2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2121
2122         PR fortran/16485
2123         * module.c (write_symbol): Don't fill in module name here.
2124         (write_symbol0): Fill in here instead.
2125
2126 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
2127
2128         * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
2129         trans-array.c, trans-common.c, trans-expr.c,
2130         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
2131         comment typos.  Follow spelling conventions.
2132
2133 2004-09-09  Paul Brook  <paul@codesourcery.com>
2134
2135         * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
2136
2137 2004-09-08  Paul Brook  <paul@codesourcery.com>
2138
2139         * array.c: Don't include assert.h.
2140         * data.c: Don't include assert.h.  Replace assert and abort with
2141         gcc_assert and gcc_unreachable.
2142         * dependency.c: Ditto.
2143         * f95-lang.c: Ditto.
2144         * iresolve.c: Ditto.
2145         * resolve.c: Ditto.
2146         * simplify.c: Ditto.
2147         * symbol.c: Ditto.
2148         * trans-array.c: Ditto.
2149         * trans-common.c: Ditto.
2150         * trans-const.c: Ditto.
2151         * trans-decl.c: Ditto.
2152         * trans-expr.c: Ditto.
2153         * trans-intrinsic.c: Ditto.
2154         * trans-io.c: Ditto.
2155         * trans-stmt.c: Ditto.
2156         * trans-types.c: Ditto.
2157         * trans.c: Ditto.
2158
2159 2004-09-07  Per Bothner  <per@bothner.com>
2160         Paul Brook  <paul@codesourcery.com>
2161
2162         * error.c (show_locus): Handle mapped locations.
2163         * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
2164         * gfortran.h: Include input.h.
2165         (struct gfc_linebuf): Use source_location.
2166         * scanner.c (get_file): Initialize linemap.
2167         (preprocessor_line): Pass extra argument to get_file.
2168         (load_file): Ditto.  Setup linemap.
2169         (gfc_new_file): Handle mapped locations.
2170         * trans-common.c (build_field, build_equiv_decl, build_common_decl):
2171         Set decl source locations.
2172         (gfc_trans_common): Set blank common block location.
2173         * trans-decl.c (gfc_set_decl_location): New function.
2174         (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
2175         (trans_function_start): Move call to gfc_set_backend_locus..
2176         (build_function_decl): ... to here.
2177         (build_entry_thunks): Set and restore the backend locus.
2178         (gfc_generate_constructors): Remove excess arguments to
2179         init_function_start.
2180         (gfc_generate_block_data): Add comments.  Set the decl locus.
2181         * trans-io.c (set_error_locus): Handle mapped locations.
2182         * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
2183         (gfc_trans_code): Use SET_EXPR_LOCATION.
2184         (gfc_generate_code): Override the location of the new symbol.
2185         * trans.h (gfc_set_decl_location): Add prototype.
2186
2187 2004-08-31  Paul Brook  <paul@codesourcery.com>
2188
2189         * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
2190
2191 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2192
2193         PR fortran/15327
2194         * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
2195         strings.
2196
2197 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2198
2199         PR fortran/16400
2200         PR fortran/16404
2201         (port from g95)
2202         * resolve.c (resolve_transfer): New function.
2203         (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
2204
2205 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2206
2207         PR fortran/16579
2208         * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
2209         unsigned char.
2210
2211 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2212
2213         * CONTRIB, NEWS, README, TODO: Remove obsolete files.
2214
2215 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2216
2217         PR fortran/17244
2218         * trans-types.c (gfc_return_by_reference): Remove TODO error,
2219         add comment pointing out possible issue WRT compatibility with g77.
2220
2221 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2222
2223         * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
2224         all occurences of 'gfc_strlen_type_node' by
2225         'gfc_charlen_type_node'.
2226         * trans-types.h: Same. Also update comment accordingly.
2227
2228 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2229
2230         * primary.c: Update copyright boilerplate to say GCC.
2231         * f95-lang.c: Change initial comment to say gfortran.
2232
2233 2004-08-31  Paul Brook  <paul@codesourcery.com>
2234
2235         * trans-types.h: Add comments.
2236         (intmax_type_node, string_type_node, const_string_type_node): Remove.
2237
2238 2004-08-30  Richard Henderson  <rth@redhat.com>
2239
2240         * Make-lang.in (fortran/f95-lang.o): Update dependencies.
2241         (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
2242         * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
2243         c_long, c_long_long.
2244         (gfc_logical_info): Add c_bool.
2245         (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
2246         * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
2247         rather than gfc_int[48]_type_node for allocate choice.
2248         * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
2249         local copies of some kind type nodes.
2250         (gfc_build_builtin_function_decls): Likewise.
2251         * trans-expr.c (gfc_conv_power_op): Likewise.
2252         * trans-intrinsic.c (gfc_conv_intrinsic_index,
2253         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
2254         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
2255         * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
2256         gfc_trans_character_select, gfc_trans_allocate): Likewise.
2257         * trans-io.c (gfc_pint4_type_node): Move into ...
2258         (gfc_build_io_library_fndecls): ... here.  Cache local copies of
2259         some kind type nodes.
2260         * trans-types.c (gfc_type_nodes): Remove.
2261         (gfc_character1_type_node, gfc_strlen_type_node): New.
2262         (gfc_integer_types, gfc_logical_types): New.
2263         (gfc_real_types, gfc_complex_types): New.
2264         (gfc_init_kinds): Fill in real mode_precision.
2265         (gfc_build_int_type, gfc_build_real_type): New.
2266         (gfc_build_complex_type, gfc_build_logical_type): New.
2267         (c_size_t_size): New.
2268         (gfc_init_types): Loop over kinds.
2269         (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
2270         (gfc_get_complex_type, gfc_get_logical_type): Likewise.
2271         (gfc_get_character_type_len): Likewise.
2272         (gfc_type_for_size): Loop over kinds; use a reduced set of
2273         unsigned type nodes.
2274         (gfc_type_for_mode): Loop over kinds.
2275         (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
2276         (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
2277         * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
2278         F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
2279         F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
2280         F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
2281         F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
2282         F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
2283         gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
2284         gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
2285         gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
2286         gfc_complex8_type_node, gfc_complex16_type_node,
2287         gfc_logical1_type_node, gfc_logical2_type_node,
2288         gfc_logical4_type_node, gfc_logical8_type_node,
2289         gfc_logical16_type_node, gfc_strlen_kind): Remove.
2290         (gfc_character1_type_node): Turn in to a variable.
2291         (gfc_strlen_type_node): Likewise.
2292
2293 2004-08-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2294
2295         * gfortran.h (gfc_namespace): Add new field is_block_data.
2296         * parse.c (accept_statement): Remove special handling for BLOCK DATA.
2297         (parse_block_data): Record BLOCK DATA name, set is_block_data field.
2298         * trans.c (gfc_generate_code): Handle BLOCK DATA units.
2299         * trans.h (gfc_generate_block_data): Add prototype.
2300         * trans-decl.c (gfc_generate_block_data): New function.
2301
2302 2004-08-29  Richard Henderson  <rth@redhat.com>
2303
2304         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
2305         * trans-types.c (gfc_init_kinds): Reject integer kinds larger
2306         than two HOST_WIDE_INT.
2307
2308 2004-08-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2309
2310         PR fortran/13910
2311         * decl.c (free_variable, free_value, gfc_free_data, var_list,
2312         var_element, top_var_list, match_data_constant, top_val_list,
2313         gfc_match_data): Move here from match.c.
2314         (match_old_style_init): New function.
2315         (variable_decl): Match old-style initialization.
2316         * expr.c (gfc_get_variable_expr): New function.
2317         * gfortran.h (gfc_get_variable_expr): Add prototype.
2318         * gfortran.texi: Start documentation for supported extensions.
2319         * match.c: Remove the functions moved to decl.c.
2320         * match.h (gfc_match_data): Move prototype to under decl.c.
2321         * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
2322         comments.
2323
2324 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
2325         Paul Brook  <paul@codesourcery.com>
2326
2327         * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
2328         * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
2329         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
2330         (build_builtin_fntypes): New function.
2331         (gfc_init_builtin_functions): Use it.
2332         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
2333         and GFC_ISYM_ERF{,C}.
2334         (gfc_c_int_kind): Declare.
2335         * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
2336         * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
2337         gfc_resolve_g77_math1): Add prototypes.
2338         * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
2339         * mathbuiltins.def: Add comment.  Change third argument.  Use
2340         DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
2341         * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
2342         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
2343         * trans-types.c (gfc_c_int_kind): Declare.
2344         (gfc_init_kinds): Set it.
2345
2346 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
2347         Paul Brook  <paul@codesourcery.com>
2348
2349         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
2350         (gfc_check_f, gfc_simplify_f): Add f0.
2351         * intrinsic.c (do_check): Call f0.  Flatten.
2352         (add_sym_0): Fix prototype.  Set f0.
2353         (add_functions): Add getgid, getgid and getuid.
2354         (resolve_intrinsic): Remove obsolete comment.
2355         (do_simplify): Call f0.
2356         * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
2357         gfc_resolve_getuid): Add prototypes.
2358         * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
2359         gfc_resolve_getuid): New functions.
2360         * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
2361         GFC_ISYM_GET?ID.
2362
2363 2004-08-28  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2364
2365         * error.c (gfc_error_init_1): Remove blank line in front of
2366         function body. Add missing blank.
2367         (gfc_buffer_error, error_char, error_string): Remove blank line in
2368         front of function body.
2369         (show_locus): Add comma in comment.
2370         (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
2371         gfc_push_error, gfc_pop_error): Remove blank line in front of
2372         function body.
2373         (gfc_get_errors): Typo fix in comment in front of function. Remove
2374         blank line in front of function body.
2375
2376 2004-08-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2377
2378         * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
2379         variable declaration of same name.
2380         * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
2381         intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
2382         resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
2383         Replace all calls to gfc_default_*_kind with variable accesses.
2384         * trans-types.c: Same as above.
2385         (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
2386         static qualifier. Replace all occurences.
2387         (gfc_default_*_kind): Remove functions.
2388
2389 2004-08-26  Richard Henderson  <rth@redhat.com>
2390
2391         * arith.c: Include system.h, not real system headers.
2392         (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
2393         DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
2394         GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
2395         GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
2396         (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
2397         gfc_index_integer_kind, gfc_default_integer_kind,
2398         gfc_default_real_kind,gfc_default_double_kind,
2399         gfc_default_character_kind, gfc_default_logical_kind,
2400         gfc_default_complex_kind, validate_integer, validate_real,
2401         validate_logical, validate_character,
2402         gfc_validate_kind): Move to trans-types.c.
2403         (gfc_set_model_kind): Use gfc_validate_kind.
2404         (gfc_set_model): Just copy the current precision to default.
2405         (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
2406         * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
2407         * gfortran.h: Update file commentary.
2408         * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
2409         (gfc_default_integer_kind_1, gfc_default_real_kind_1,
2410         gfc_default_double_kind_1, gfc_default_character_kind_1,
2411         gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
2412         (gfc_init_kinds): New.
2413         (gfc_init_types): Don't set gfc_index_integer_kind here.
2414         * trans-types.h (gfc_init_kinds): Declare.
2415         * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
2416
2417 2004-08-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2418
2419         * check.c (gfc_check_atan2): New function.
2420         * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
2421         * intrinsic.h (gfc_check_atan2): Add prototype.
2422
2423 2004-08-25  Richard Henderson  <rth@redhat.com>
2424
2425         * arith.c (gfc_validate_kind): Add may_fail argument; abort if
2426         false and we don't validate the kind.
2427         (gfc_check_integer_range, gfc_check_real_range): Update to match.
2428         * check.c (kind_check): Likewise.
2429         * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
2430         (match_char_spec, match_logical_spec): Likewise.
2431         * gfortran.h (gfc_validate_kind): Likewise.
2432         * options.c (gfc_handle_option): Likewise.
2433         * primary.c (match_integer_constant, match_real_constant,
2434         match_string_constant, match_logical_constant,
2435         match_const_complex_part): Likewise.
2436         * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
2437         gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
2438         gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
2439         gfc_simplify_maxexponent, gfc_simplify_minexponent,
2440         gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
2441         gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
2442         gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
2443         gfc_simplify_tiny): Likewise.
2444         * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
2445         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
2446         prepare_arg_info): Likewise.
2447
2448 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2449
2450         * expr.c (gfc_check_assign): Add comment. Add new warning.
2451         * trans-expr.c (gfc_conv_function_call): Correctly dereference
2452         result of pointer valued function when not in pointer assignment.
2453
2454 2004-08-25  Paul Brook  <paul@codesourcery.com>
2455
2456         * config-lang.in: Remove dead commented line.
2457         * module.c: Replace g95 with gfortran in comment.
2458
2459 2004-08-25  Paul Brook  <paul@codesourcery.com>
2460
2461         PR fortran/17190
2462         * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
2463
2464 2004-08-25  Paul Brook  <paul@codesourcery.com>
2465
2466         PR fortran/17144
2467         * trans-array.c (gfc_trans_allocate_temp_array): Remove
2468         string_length argument.
2469         (gfc_trans_array_ctor_element): New function.
2470         (gfc_trans_array_constructor_subarray): Use it.
2471         (gfc_trans_array_constructor_value): Ditto.  Handle constant
2472         character arrays.
2473         (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
2474         (gfc_trans_array_constructor): Use them.
2475         (gfc_add_loop_ss_code): Update to new gfc_ss layout.
2476         (gfc_conv_ss_descriptor): Remember section string length.
2477         (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
2478         (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
2479         (gfc_conv_expr_descriptor): Ditto.
2480         (gfc_conv_loop_setup): Ditto.  Spelling fixes.
2481         * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
2482         * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
2483         * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
2484         (gfc_conv_variable): Set string_length from section.
2485         (gfc_conv_function_call): Remove extra argument.
2486         (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
2487         * trans-types.c (gfc_get_character_type_len): New function.
2488         (gfc_get_character_type): Use it.
2489         (gfc_get_dtype): Return zero for internal types.
2490         * trans-types.h (gfc_get_character_type_len): Add prototype.
2491         * trans.h (struct gfc_ss): Move string_length out of union.
2492
2493 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2494
2495         * trans.h (build2_v, build3_v): New macros.
2496         (build_v): Remove.
2497         * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
2498         build.
2499         * trans-array.c (gfc_conv_descriptor_data,
2500         gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
2501         gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
2502         gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
2503         gfc_trans_allocate_temp_array,
2504         gfc_trans_array_constructor_subarray,
2505         gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
2506         gfc_trans_array_bound_check, gfc_conv_array_index_offset,
2507         gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
2508         gfc_conv_array_ref, gfc_trans_preloop_setup,
2509         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
2510         gfc_conv_loop_setup, gfc_array_init_size,
2511         gfc_conv_array_initializer, gfc_trans_array_bounds,
2512         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
2513         gfc_conv_expr_descriptor, gfc_conv_array_parameter,
2514         gfc_trans_deferred_array): Use buildN and buildN_v macros instead
2515         of build and build_v as appropriate.
2516         * trans-common.c (create_common): Same.
2517         * trans-decl.c (gfc_trans_auto_character_variable,
2518         gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
2519         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
2520         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
2521         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
2522         gfc_conv_expr_op, gfc_conv_function_call,
2523         gfc_trans_structure_assign): Same.
2524         * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
2525         gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
2526         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
2527         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
2528         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
2529         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
2530         gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
2531         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
2532         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
2533         gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
2534         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
2535         gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
2536         gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
2537         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
2538         gfc_conv_intrinsic_iargc): Same.
2539         * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
2540         set_flag, add_case, io_result, transfer_namelist_element,
2541         transfer_expr): Same.
2542         * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
2543         gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
2544         gfc_trans_integer_select, gfc_trans_logical_select,
2545         gfc_trans_character_select, gfc_trans_forall_loop,
2546         gfc_trans_nested_forall_loop, gfc_do_allocate,
2547         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
2548         compute_inner_temp_size, compute_overall_iter_number,
2549         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
2550         gfc_trans_forall_1, gfc_evaluate_where_mask,
2551         gfc_trans_where_assign, gfc_trans_allocate): Same.
2552         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
2553         * trans.c (gfc_add_modify_expr, gfc_finish_block,
2554         gfc_build_array_ref, gfc_build_function_call,
2555         gfc_trans_runtime_check): Same.
2556
2557 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2558
2559         * trans-const.c (gfc_conv_mpz_to_tree): Change call to
2560         build_int_cst to build_int_cst_wide in accordance to Nathan's
2561         previous patch.
2562
2563 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
2564
2565         * trans-array.c (gfc_trans_array_constructor_value): Adjust
2566         build_int_cst calls.
2567         * trans-const.c (gfc_build_string_const, gfc_init_constants,
2568         gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
2569         * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
2570         gfc_trans_entry_master_switch): Likewise.
2571         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
2572         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
2573         * trans-io.c (add_case, set_error_locus,
2574         transfer_namelist_element, transfer_expr): Likewise.
2575         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
2576         gfc_trans_stop, gfc_trans_character_select): Likewise.
2577         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
2578         * trans.c (gfc_trans_runtime_check): Likewise.
2579
2580 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2581
2582         * trans-decl.c, trans-types.c: Add and remove blank lines as
2583         required.
2584
2585 2004-08-24  Richard Henderson  <rth@redhat.com>
2586
2587         * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
2588
2589 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2590
2591         * resolve.c (merge_argument_lists): Revert unintentionally
2592         committed change.
2593
2594 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2595
2596         * trans-decl.c (build_function_decl): Fix spelling in comment.
2597         (build_entry_thunks): Remove code with no function.
2598         (gfc_build_intrinsic_function_decls): Remove empty line.
2599
2600         * resolve.c (resolve_entries): Fix a bunch of comment typos.
2601
2602 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
2603
2604         * f95-lang.c (gfc_init_decl_processing): Adjust
2605         build_common_tree_nodes call.
2606
2607 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2608
2609         * trans-types.c: Spelling and formatting fixes.
2610
2611 2004-08-23  Richard Henderson  <rth@redhat.com>
2612
2613         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
2614         of going through an intermediate string.  Fix 32/64 int/long bug.
2615
2616 2004-08-23  Eric Christopher  <echristo@redhat.com>
2617
2618         * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
2619         usage. Use build_vector_type_for_mode for vector types.
2620
2621 2004-08-22  Richard Henderson  <rth@redhat.com>
2622
2623         PR 13465
2624         * data.c (find_con_by_offset): Search ordered list; handle
2625         elements with repeat counts.
2626         (gfc_assign_data_value_range): New.
2627         * gfortran.h (struct gfc_data_value): Make repeat unsigned.
2628         (gfc_assign_data_value_range): Declare.
2629         * match.c (top_val_list): Extract repeat count into a temporary.
2630         * resolve.c (values): Make left unsigned.
2631         (next_data_value): Don't decrement left.
2632         (check_data_variable): Use gfc_assign_data_value_range.
2633
2634 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2635
2636         * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
2637
2638 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2639
2640         * check.c (gfc_check_reduction): Rename to ...
2641         (check_reduction): ... this. Make static. Don't check type of
2642         first argument.
2643         (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
2644         * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
2645         SUM to use new check functions.
2646         (check_specific): Change logic to call new functions.
2647         * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
2648         Add prototypes.
2649         (gfc_check_reduction): Remove prototype.
2650
2651 2004-08-20  Paul Brook  <paul@codesourcery.com>
2652         Canqun Yang  <canqun@nudt.edu.cn>
2653
2654         PR fortran/17077
2655         * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
2656         for automatic arrays.
2657         * trans-types.c (gfc_get_nodesc_array_type): Add comment.
2658
2659 2004-08-19  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2660         (Port from g95)
2661
2662         PR fortran/17074
2663         * match.c (match_simple_forall, match_simple_where): Forward-declare.
2664         (gfc_match_if): Order statement list alphabetically, add WHERE and
2665         FORALL, remove double PAUSE.
2666         (gfc_match_simple_where, match_forall_header,
2667         gfc_match_simple_forall): New functions.
2668         (gfc_match_forall): Use match_forall_header.
2669
2670 2004-08-19  Paul Brook  <paul@codesourcery.com>
2671
2672         PR fortran/17091
2673         * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
2674         * symbol.c (gfc_clear_attr): Use memset.
2675
2676 2004-08-19  Paul Brook  <paul@codesourcery.com>
2677
2678         PR fortran/14976
2679         PR fortran/16228
2680         * data.c (assign_substring_data_value): Remove.
2681         (create_character_intializer): New function.
2682         (gfc_assign_data_value): Track the typespec for the current
2683         subobject.  Use create_character_intializer.
2684
2685 2004-08-19  Erik Schnetter  <schnetter@aei.mpg.de>
2686
2687         PR fortran/16946
2688         * check.c (gfc_check_reduction): New function.
2689         (gfc_check_minval_maxval): Removed.
2690         (gfc_check_product): Removed.
2691         (gfc_check_sum): Removed.
2692         * intrinsic.h: Add/remove declarations for these.
2693         * gfortran.h: Add field f3red to union gfc_check_f.
2694         * intrinsic.c (add_sym_3red): New function.
2695         (add_functions): Register maxval, minval, product, and sum intrinsics
2696         through add_sym_3red.
2697         (check_specific): Handle f3red union field.
2698         * iresolve.c: Whitespace change.
2699
2700 2004-08-18  Paul Brook  <paul@codesourcery.com>
2701
2702         * trans-types.c (gfc_sym_type): Use pointer types for optional args.
2703
2704 2004-08-18  Victor Leikehman  <lei@il.ibm.com>
2705
2706         PR fortran/13278
2707         * trans-io.c (transfer_namelist_element): New. Recursively handle
2708         derived-type variables.  Pass string lengths.
2709         (build_dt): Code moved to build_namelist, with some
2710         changes and additions.
2711         (gfc_build_io_library_fndecls): Declare the fifth
2712         argument in st_set_nml_var_char -- string_length.
2713
2714 2004-08-17  Paul Brook  <paul@codesourcery.com>
2715         Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2716
2717         PR fortran/13082
2718         * decl.c (get_proc_name): Update mystery comment.
2719         (gfc_match_entry): Check for errors earlier.  Add entry point to list.
2720         * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
2721         * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
2722         (struct gfc_entry_list): Define.
2723         (gfc_get_entry_list): Define.
2724         (struct gfc_namespace): Add refs and entries.
2725         (enum gfc_exec_op): Add EXEC_ENTRY.
2726         (struct gfc_code): Add ext.entry.
2727         * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
2728         (mio_symbol_attribute): Don't save/reture addr->entry.
2729         (mio_namespace_ref): Refcount namespaces.
2730         * parse.c (accept_statement): Handle ST_ENTRY.
2731         (gfc_fixup_sibling_symbols): Mark symbol as referenced.
2732         (parse_contained): Fixup sibling references to entry points
2733         after parsing the procedure body.
2734         * resolve.c (resolve_contained_fntype): New function.
2735         (merge_argument_lists, resolve_entries): New functions.
2736         (resolve_contained_functions): Use them.
2737         (resolve_code): Handle EXEC_ENTRY.
2738         (gfc_resolve): Call resolve_entries.
2739         * st.c (gfc_free_statement): Handle EXEC_ENTRY.
2740         * symbol.c (gfc_get_namespace): Refcount namespaces.
2741         (gfc_free_namespace): Ditto.
2742         * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
2743         optional when multiple entry points are present.
2744         * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
2745         (gfc_get_extern_function_decl): Add assertion.  Fix coment.
2746         (create_function_arglist, trans_function_start, build_entry_thunks):
2747         New functions.
2748         (gfc_build_function_decl): Rename ...
2749         (build_function_decl): ... to this.
2750         (gfc_create_function_decl): New function.
2751         (gfc_generate_contained_functions): Use it.
2752         (gfc_trans_entry_master_switch): New function.
2753         (gfc_generate_function_code): Use new functions.
2754         * trans-stmt.c (gfc_trans_entry): New function.
2755         * trans-stmt.h (gfc_trans_entry): Add prototype.
2756         * trans-types.c (gfc_get_function_type): Add entry point argument.
2757         * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
2758         (gfc_generate_module_code): Call gfc_create_function_decl.
2759         * trans.h (gfc_build_function_decl): Remove.
2760         (gfc_create_function_decl): Add prototype.
2761
2762 2004-08-15  Andrew Pinski  <apinski@apple.com>
2763
2764         PR fortran/17030
2765         * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
2766         for cabs{,f} and copysign{,f}.
2767         * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
2768         (gfor_fndecl_math_cabs): Delete.
2769         (gfor_fndecl_math_sign4): Delete.
2770         (gfor_fndecl_math_sign8): Delete.
2771         (gfc_build_intrinsic_function_decls): Remove the
2772         initializing of cabs{,f} and copysign{,f} functions.
2773         * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
2774         instead of the functions definitions.
2775         (gfc_conv_intrinsic_sign): Likewise.
2776         * trans.h (gfor_fndecl_math_cabsf): Delete.
2777         (gfor_fndecl_math_cabs): Delete.
2778         (gfor_fndecl_math_sign4): Delete.
2779         (gfor_fndecl_math_sign8): Delete.
2780
2781 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
2782
2783         * trans-array.c (gfc_trans_array_constructor_value): Use
2784         build_int_cst.
2785         * trans-const.c (gfc_build_string_const,
2786         gfc_init_constants, gfc_conv_mpz_to_tree,
2787         gfc_conv_constant_to_tree): Likewise.
2788         * trans-decl.c (gfc_get_symbol_decl): Likewise.
2789         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
2790         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
2791         * trans-io.c (add_case, set_error_locus, build_dt,
2792         transfer_expr): Likewise.
2793         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
2794         gfc_trans_stop, gfc_trans_character_select): Likewise.
2795         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
2796         * trans.c (gfc_trans_runtime_check): Likewise.
2797
2798 2004-08-14  Paul Brook  <paul@codesourcery.com>
2799
2800         * trans-decl.c (gfc_build_function_decl): Remove dead code.
2801
2802 2004-08-14  Paul Brook  <paul@codesourcery.com>
2803
2804         * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
2805
2806 2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2807
2808         * gfortran.h: Add comments.
2809         * parse.c (parse_contained): Fix comment typo.
2810         * resolve.c (was_declared): Ditto.
2811         * symbol.c: Ditto.
2812
2813 2004-08-11  Paul Brook  <paul@codeourcery.com>
2814
2815         PR fortran/16917
2816         * intrinsic.c (add_functions): Add dfloat as an alias for dble.
2817
2818 2004-08-10  Richard Henderson  <rth@redhat.com>
2819
2820         * f95-lang.c (gfc_init_builtin_functions): Remove
2821          __builtin_stack_alloc, add __builtin_alloca.
2822         * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
2823         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
2824
2825 2004-08-10  Paul Brook  <paul@codesourcery.com>
2826
2827         * trans-io.c (transfer_expr): Handle pointters.
2828
2829 2004-08-10  Paul Brook  <paul@codesourcery.com>
2830
2831         PR fortran/16919
2832         * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
2833         (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
2834         (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
2835         Handle GFC_SS_COMPONENT.
2836         (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
2837         (gfc_conv_loop_setup): Tweak commends. Remove dead code.
2838         Use ss->shape.
2839         (gfc_conv_array_initializer): Call specific initializer routines.
2840         * trans-expr.c (gfc_trans_structure_assign): New function.
2841         (gfc_trans_subarray_assign): New function.
2842         (gfc_trans_subcomponent_assign): New fucntion
2843         (gfc_conv_structure): Use them.
2844         * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
2845         (gfc_ss): Add shape.
2846
2847 2004-08-08  Victor Leikehman  <lei@il.ibm.com>
2848
2849         * simplify.c (gfc_simplify_shape): Bugfix.
2850         * expr.c (gfc_copy_shape_excluding): New function.
2851         * gfortran.h (gfc_get_shape): Bugfix.
2852         (gfc_copy_shape_excluding): Added declaration.
2853         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
2854         gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
2855         gfc_resolve_ubound, gfc_resolve_transpose): Added compile
2856         time resolution of shape.
2857
2858 2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2859
2860         * intrinsic.c (add_subroutines): Add getenv and
2861         get_environment_variable. (add_sym_5s): New function.
2862         * intrinsic.h (gfc_resolve_get_environment_variable): Add
2863         prototype.
2864         * iresolve.c (gfc_resolve_get_environment_variable): New
2865         function.
2866
2867 2004-08-06  Feng Wang  <fengwang@nudt.edu.cn>
2868
2869         * f95-lang.c (gfc_init_builtin_functions): Fix the number of
2870         __builtin_pow[f] arguments.
2871
2872 2004-08-06  Steven G. Kargl  <kargls@comcast.net>
2873
2874         * arith.c: Add #define for model numbers.  Remove global GMP variables.
2875         (natural_logarithm,common_logarithm,exponential,sine,
2876         cosine,arctangent,hypercos,hypersine ): Remove.
2877         (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
2878         (arctangent2,gfc_arith_init_1,gfc_arith_done_1
2879         gfc_check_real_range, gfc_constant_result, gfc_range_check,
2880         gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
2881         gfc_arith_divide,complex_reciprocal,complex_pow_ui,
2882         gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
2883         gfc_convert_complex,gfc_int2real,gfc_int2complex,
2884         gfc_real2int,gfc_real2real,gfc_real2complex,
2885         gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
2886         to MPFR, use new functions.
2887         * arith.h: Remove extern global variables.
2888         (natural_logarithm,common_logarithm,exponential, sine, cosine,
2889         arctangent,hypercos,hypersine): Remove prototypes.
2890         (arctangent2): Update prototype from GMP to MPFR.
2891         (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
2892         * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
2893         * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
2894         * gfortran.h (GFC_REAL_BITS): Remove.
2895         (arith): Add ARITH_NAN.
2896         Include mpfr.h.  Define GFC_RND_MODE.
2897         Rename GCC_GFORTRAN_H GFC_GFC_H.
2898         (gfc_expr): Convert GMP to MPFR.
2899         * module.c: Add arith.h, correct type in comment.
2900         (mio_gmp_real): Convert GMP to MPFR.
2901         (mio_expr):  Use gfc_set_model_kind().
2902         * primary.c:  Update copyright date with 2004.
2903         (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
2904         * simplify.c: Remove global GMP variables
2905         (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
2906         gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
2907         gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
2908         gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
2909         gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
2910         gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
2911         gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
2912         gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
2913         gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
2914         gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
2915         gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
2916         gfc_simplify_rrspacing,gfc_simplify_scale,
2917         gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
2918         gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
2919         gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
2920         gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
2921         Use new functions.
2922         * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
2923         gfc_conv_mpf_to_tree.  Convert it to use MPFR
2924         (gfc_conv_constant_to_tree): Use it.
2925         * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
2926         * trans-intrinsic.c: Add arith.h, remove gmp.h
2927         (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
2928
2929 2004-08-06  Victor Leikehman  <lei@il.ibm.com>
2930         Paul Brook  <paul@codesourcery.com>
2931
2932         * trans-array.c (gfc_trans_allocate_array_storage,
2933         gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
2934         gfc_conv_loop_setup): For functions, if the shape of the result
2935         is not known in compile-time, generate an empty array descriptor for
2936         the result and let the callee to allocate the memory.
2937         (gfc_trans_dummy_array_bias): Do nothing for pointers.
2938         (gfc_conv_expr_descriptor): Use function return values directly.
2939         * trans-expr.c (gfc_conv_function_call): Always add byref call
2940         insn to pre chain.
2941         (gfc_trans_pointer_assignment): Add comments.
2942         (gfc_trans_arrayfunc_assign): Don't chain on expression.
2943
2944 2004-08-01  Roger Sayle  <roger@eyesopen.com>
2945
2946         * options.c (gfc_init_options): Don't warn about the use GNU
2947         extensions by default.
2948         (gfc_post_options): Warn about GNU extensions with -pedantic.
2949         (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
2950
2951 2004-07-30  Richard Henderson  <rth@redhat.com>
2952
2953         * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
2954         for TREE_CONSTANTs.
2955
2956 2004-07-25  Richard Henderson  <rth@redhat.com>
2957
2958         * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
2959         and DECL_IGNORED_P on RESULT_DECL.
2960         (gfc_generate_constructors): Likewise.
2961
2962 2004-07-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2963
2964         PR fortran/16465
2965         * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
2966         options.
2967         (ffixed-line-length-80, ffixed-line-length-132): Remove.
2968         * options.c (gfc_handle_options): Deal with changed options.
2969         * scanner.c (load_line): Change second arg to 'char **',
2970         allocate if pointing to NULL. Keep track of buffer's length.
2971         Adapt buffer size to overlong lines. Pad lines to full length
2972         in fixed form.
2973         (load_file): Adapt to new interface of load_line.
2974
2975 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
2976
2977         * trans.h (builtin_function): Declare.
2978
2979 2004-07-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2980
2981         PR fortran/16404
2982         (parts ported from g95)
2983         * parse.h (gfc_state_data): New field do_variable.
2984         (gfc_check_do_variable): Add prototype.
2985         * parse.c (push_state): Initialize field 'do_variable'.
2986         (gfc_check_do_variable): New function.
2987         (parse_do_block): Remember do iterator variable.
2988         (parse_file): Initialize field 'do_variable'.
2989         * match.c (gfc_match_assignment, gfc_match_do,
2990         gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
2991         Add previously missing checks.
2992         (gfc_match_return): Reformat error message.
2993         * io.c (match_out_tag): New function.
2994         (match_open_element, match_close_element,
2995         match_file_element, match_dt_element): Call match_out_tag
2996         instead of match_vtag where appropriate.
2997         (match_io_iterator, match_io_element): Add missing check.
2998         (match_io): Reformat error message.
2999         (match_inquire_element): Call match_out_tag where appropriate.
3000
3001         * parse.c (gfc_check_do_variable): Fix error locus.
3002
3003 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3004
3005         PR fortran/15129
3006         * trans-decl.c (gfc_build_function_decl): Create a new chardecl
3007         for every assumed length character dummy argument.
3008
3009         PR fortran/15140
3010         * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
3011
3012         PR fortran/13792
3013         * simplify.c (gfc_simplify_bound): Copy the bound expression.
3014
3015 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3016
3017         PR fortran/15324
3018         * trans-array.c gfc_trans_g77_array,
3019         gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
3020         for assumed length characters.
3021         (gfc_conv_expr_descriptor): Set se->string_length if dealing
3022         with a character expression.
3023         (gfc_cvonv_array_parameter): Pass string length when passing
3024         character array according to g77 conventions.
3025
3026 2004-07-12  Paul Brook  <paul@codesourcery.com>
3027
3028         * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
3029         * trans-array.c (gfc_trans_auto_array_allocation): Remove
3030         initialization code.
3031         * trans-common.c (create_common): Use gfc_conv_initializer.
3032         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
3033         * trans-expr.c (gfc_conv_initializer): New function.
3034         (gfc_conv_structure): Use it.
3035         * trans.h (gfc_conv_initializer): Add prototype.
3036
3037 2004-07-11  Paul Brook  <paul@codesourcery.com>
3038
3039         PR fortran/15986
3040         * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
3041         variables.
3042         (parse_contained): Mark contained symbols as referenced.
3043
3044 2004-07-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3045
3046         PR fortran/16455
3047         * module.c (gfc_dump_module, gfc_use_module): Print locus
3048         when opening of module file fails.
3049
3050         PR fortran/16404
3051         * io.c (match_io): Flag 'WRITE(...), ...' as extension.
3052
3053         PR fortran/16404
3054         * match.c (gfc_match_program): A program name is obligatory.
3055         (gfc_match_return): RETURN in main program is an extension.
3056         (gfc_match_block_data): A space is required before a block data
3057         name.
3058
3059         PR fortran/16433
3060         * primary.c (match_boz_constant): Call gfc_notify_std only if
3061         we actually have a non-standard boz-literal-constant.
3062
3063         PR fortran/15754
3064         * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
3065         warning if assigning NULL().
3066
3067 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3068
3069         * f95-lang.c (set_block): Remove.
3070         (gfc_clear_binding_stack): New.
3071         (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
3072         (struct binding_level): Remove block_created_by_back_end.
3073         (clear_binding_level): Likewise.
3074         (poplevel): Don't handle block_created_by_back_end.
3075
3076 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3077
3078         * trans-decl.c (gfc_create_module_variable): Nothing to do if
3079         symbol is in common, because we ...
3080         (gfc_generate_module_vars): Call gfc_trans_common.
3081
3082 2004-07-10  Paul Brook  <paul@codesourcery.com>
3083
3084         * trans-array.c (gfc_build_null_descriptor): New function.
3085         (gfc_trans_static_array_pointer): Use it.
3086         * trans-array.h (gfc_build_null_descriptor): Add prototype.
3087         * trans-expr.c (gfc_conv_structure): Handle array pointers.
3088
3089 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3090
3091         PR fortran/16336
3092         * decl.c (gfc_match_save): Use-associated common block
3093         doesn't collide.
3094         * gfortran.h (gfc_common_head): Add new field 'name'.
3095         Fix typo in comment after #endif.
3096         * match.c (gfc_get_common): Add new argument from_common,
3097         mangle name if flag is set, fill in new field in structure
3098         gfc_common_head.
3099         (match_common): Set new arg in call to gfc_get_common,
3100         use-associated common block doesn't collide.
3101         * match.h (gfc_get_common): Adapt prototype.
3102         * module.c (load_commons): Set new arg in call to
3103         gfc_get_common.
3104         * symbol.c (free_common_tree): New function.
3105         (gfc_free_namespace): Call new function.
3106         * trans-common.c (several functions): Remove argument
3107         'name', use name from gfc_common_head instead.
3108
3109 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3110
3111         * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
3112         and RHS match. Return early if the RHS is NULL().
3113
3114         PR fortran/16336
3115         * match.c (match_common): Fix error reporting for used common.
3116
3117         PR fortran/15969
3118         * trans-expr.c (gfc_conv_structure): Handle initialization
3119         of scalar pointer components.
3120
3121         * parse.c (decode_statement): Fix matching of BLOCK DATA.
3122
3123         * trans-decl.c (generate_local_decl): Remove workaround obsoleted
3124         by fix for PR 15481.
3125
3126 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3127
3128         * trans-common.c: Fix whitespace issues, make variable names
3129         more readable.
3130         (create_common): Additionally, make loop logic more obvious.
3131
3132 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3133         Paul Brook  <paul@codesourcery.com>
3134
3135         PR fortran/13415
3136         * trans-common.c (calculate_length): Remove ...
3137         (get_segment_info): Merge into here.  Save field type.
3138         (build_field): Use saved type.
3139         (create_common, new_condition, new_segment, finish_equivalences):
3140         Use new get_segment_info.
3141         * trans-types.c: Update comment.
3142
3143 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3144
3145         PR fortran/14077
3146         * moduele.c (mio_symbol): Don't I/O initial values unless
3147         symbol is a parameter.
3148
3149 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3150
3151         PR fortran/13201
3152         * resolve.c (resolve_symbol): Verify that the shape of a
3153         parameter array is not only explicit, but also constant.
3154         * array.c (gfc_is_compile_time_shape): New function.
3155         * gfortran.h (gfc_is_compile_time_shape): Add prototype.
3156
3157 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3158
3159         PR fortran/15481
3160         PR fortran/13372
3161         PR fortran/13575
3162         PR fortran/15978
3163         * module.c (write_symbol, write_symtree): Remove workaround.
3164         * primary.c (match_actual_arglist): Enhance comment.
3165         (gfc_match_rvalue): Handle function call with first argument
3166         a keyword argument correctly.
3167         * resolve.c (resolve_symbol): Change call to
3168         gfc_set_default_type to issue error if no implicit type
3169         can be found.
3170         * trans-decl.c (gfc_create_module_variable): Remove workaround.
3171
3172 2004-07-08  Paul Brook  <paul@codesourcery.com>
3173
3174         * intrinsic.c (add_sym_4s): New function.
3175         (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
3176
3177 2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3178         Paul Brook  <paul@codesourcery.com>
3179
3180         PR fortran/15280
3181         PR fortran/15665
3182         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
3183         GFC_ISYM_COMMAND_ARGUMENT_COUNT.
3184         * intrinsic.c (add_functions):  Identify iargc.  Add
3185         command_argument_count.
3186         (add_subroutines): Resolve getarg.  Add get_command and
3187         get_command_argument.
3188         * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
3189         gfc_resolve_get_command_argument): Add prototypes.
3190         * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
3191         gfc_resolve_get_command_argument): New functions.
3192         * trans-decl.c (gfor_fndecl_iargc): New variable.
3193         (gfc_build_intrinsic_function_decls): Set it.
3194         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
3195         (gfc_conv_intrinsic_function): Use it.
3196         * trans.h (gfor_fndecl_iargc): Declare.
3197
3198 2004-07-04  Matthias Klose  <doko@debian.org>
3199
3200         * Make-lang.in: Generate and install gfortran man page.
3201         * invoke.texi: Remove extra '@c man end'.
3202
3203 2004-07-04  Richard Henderson  <rth@redhat.com>
3204
3205         * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
3206
3207 2004-07-04  Paul Brook  <paul@codesourcery.com>
3208
3209         * decl.c (gfc_match_implicit_range): Don't use typespec.
3210         (gfc_match_implicit): Handle character selectors.
3211         * gfortran.h (gfc_set_implicit): Remove prototype.
3212         (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
3213         * parse.c (accept_statement): Don't call gfc_set_implicit.
3214         * symbol.c (new_ts): Remove.
3215         (gfc_set_implicit_none): Use same loop bounds as other functions.
3216         (gfc_set_implicit): Remove.
3217         (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
3218         (gfc_merge_new_implicit): Combine with gfc_set_implicit.
3219
3220 2004-06-30  Richard Henderson  <rth@redhat.com>
3221
3222         * match.c (var_element): Remove unused variable.
3223
3224         * trans-decl.c (gfc_generate_function_code): Don't set
3225         x_whole_function_mode_p.
3226         (gfc_generate_constructors): Likewise.
3227
3228 2004-06-30  Richard Henderson  <rth@redhat.com>
3229
3230         * trans-decl.c (gfc_generate_function_code): Don't set
3231         immediate_size_expand.
3232         (gfc_generate_constructors): Likewise.
3233
3234 2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3235
3236         PR fortran/16161
3237         * decl.c (gfc_match_type_spec): Rename second argument to
3238         'implicit_flag', reverse meaning. Don't match_char_spec if
3239         'implicit_flag' is set. Rename to ...
3240         (match_type_spec): ... this.
3241         (gfc_match_implicit_none, match_implicit_range): Move here
3242         from match.c.
3243         (gfc_match_implicit): Move here from match.c, try to
3244         match_char_len if match_implicit_range doesn't succeed for
3245         CHARACTER implicits. Call renamed fucntion match_type_spec.
3246         (gfc_match_data_decl, match_prefix): Call renamed function
3247         match_type_spec.
3248         * match.c (gfc_match_implicit_none, match_implicit_range,
3249         gfc_match_implicit): Move to decl.c.
3250         * match.h (gfc_match_implicit_none, gfc_match_implicit):
3251         Move protoypes to section 'decl.c'.
3252         (gfc_match_type_spec): Remove prototype.
3253
3254 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3255
3256         * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
3257         copyright years.
3258
3259 2004-06-29  Steven Bosscher  <stevenb@suse.de>
3260
3261         Make sure types in assignments are compatible.  Mostly mechanical.
3262         * trans-const.h (gfc_index_one_node): New define.
3263         * trans-array.c (gfc_trans_allocate_array_storage,
3264         gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
3265         gfc_trans_array_constructor_value, gfc_trans_array_constructor,
3266         gfc_conv_array_ubound, gfc_conv_array_ref,
3267         gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
3268         gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
3269         gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
3270         gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
3271         types in assignments, conversions and conditionals for expressions.
3272         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
3273         gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
3274         gfc_conv_function_call, gfc_trans_pointer_assignment,
3275         gfc_trans_scalar_assign): Likewise.
3276         * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
3277         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
3278         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
3279         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
3280         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
3281         gfc_conv_allocated, gfc_conv_associated,
3282         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
3283         * trans-io.c (set_string): Likewise.
3284         * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
3285         gfc_do_allocate, generate_loop_for_temp_to_lhs,
3286         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
3287         compute_overall_iter_number, gfc_trans_assign_need_temp,
3288         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
3289         gfc_evaluate_where_mask, gfc_trans_where_assign,
3290         gfc_trans_where_2): Likewise.
3291         * trans-types.c (gfc_get_character_type, gfc_build_array_type,
3292         gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
3293
3294         * trans.c (gfc_add_modify_expr): Add sanity check that types
3295         for the lhs and rhs are the same for scalar assignments.
3296
3297 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3298
3299         * dump-parse-tree.c (show_common): New function.
3300         (gfc_show_namespace): Show commons.
3301
3302 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3303         Andrew Vaught  <andyv@firstinter.net>
3304
3305         PR fortran/13249
3306         PR fortran/15481
3307         * decl.c (gfc_match_save): Adapt to new common structures,
3308         don't allow saving USE-associated common.
3309         * dump-parse-tree (gfc_show_attr): (saved_)common are not
3310         symbol attributes any longer.
3311         (gfc_show_symbol): Don't show old-style commons any longer.
3312         (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
3313         interface.
3314         * gfortran.h (symbol_attribute): Remove common and saved_common
3315         attributes.
3316         (gfc_symbol): Remove common_head element.
3317         (gfc_common_head): New struct.
3318         (gfc_get_common_head): New macro.
3319         (gfc_symtree): Add field 'common' to union.
3320         (gfc_namespace): Add field 'common_root'; change type of field
3321         'blank_common' to blank_common.
3322         (gfc_add_data): New prototype.
3323         (gfc_traverse_symtree): Expect a symtree as first argument
3324         instead of namespace.
3325         * match.c (gfc_get_common): New function.
3326         (match_common_name): Change to take char * as argument, adapt,
3327         fix bug with empty name.
3328         (gfc_match_common): Adapt to new data structures. Disallow
3329         redeclaration of USE-associated COMMON-block. Fix bug with
3330         empty common.
3331         (var_element): Adapt to new common structures.
3332         * match.h (gfc_get_common): Declare.
3333         * module.c: Add 2004 to copyright years, add commons to module
3334         file layout description.
3335         (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
3336         for removed attributes.
3337         (mio_symbol): Adapt to new way of storing common relations.
3338         (load_commons): New function.
3339         (read_module): Skip common list on first pass, load_commons at
3340         second.
3341         (write_commons): New function.
3342         (write_module): Call write_commons().
3343         * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
3344         functions related to removed attributes.
3345         (gfc_add_data): New fun