OSDN Git Service

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