OSDN Git Service

2005-08-07 Janne Blomqvist <jblomqvi@cc.hut.fi>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2005-08-07   Janne Blomqvist <jblomqvi@cc.hut.fi>
2
3         PR fortran/22390 
4         * dump-parse-tree.c (gfc_show_code_node): Add case for FLUSH.
5         * gfortran.h: Add enums for FLUSH.
6         * io.c (gfc_free_filepos,match_file_element,match_filepos): Modify
7         comment appropriately.  (gfc_match_flush): New function.
8         * match.c (gfc_match_if): Add match for flush.
9         * match.h: Add prototype.
10         * parse.c (decode_statement): Add flush to 'f' case.
11         (next_statement): Add case for flush. (gfc_ascii_statement): Likewise.
12         * resolve.c (resolve_code): Add flush case.
13         * st.c (gfc_free_statement): Add flush case.
14         * trans-io.c: Add prototype for flush.
15         (gfc_build_io_library_fndecls): Build fndecl for flush.
16         (gfc_trans_flush): New function.
17         * trans-stmt.h: Add prototype.
18         * trans.c (gfc_trans_code): Add case for flush.
19
20 2005-08-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
21
22         * primary.c (match_hollerith_constant): Fix typo.
23
24 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
25
26         * decl.c, dump-parse-tree.c, gfortran.texi, intrinsic.texi,
27         invoke.texi, resolve.c, trans-array.c, trans-array.h,
28         trans-common.c, trans-expr.c, trans-io.c, trans.h: Fix
29         comment/doc typos.  Follow spelling conventions.
30
31 2005-08-06  Jakub Jelinek  <jakub@redhat.com>
32
33         PR fortran/18833
34         PR fortran/20850
35         * primary.c (match_varspec): If equiv_flag, don't look at sym's
36         attributes, call gfc_match_array_ref up to twice and don't do any
37         substring or component processing.
38         * resolve.c (resolve_equivalence): Transform REF_ARRAY into
39         REF_SUBSTRING or nothing if needed.  Check that substrings
40         don't have zero length.
41
42 2005-08-05  Thomas Koenig  <Thomas.Koenig@online.de>
43
44         * trans-expr.c  (gfc_build_builtin_function_decls):  Mark
45         stop_numeric and stop_string as non-returning.
46
47 2005-08-04  Paul Brook  <paul@codesourcery.com>
48
49         * trans-expr.c (gfc_conv_expr, gfc_conv_expr_type): Update comments.
50         (gfc_conv_expr_lhs): Fix assertion.
51         (gfc_conv_expr_val): Merge post block.  Set se.expr to new value.
52
53 2005-08-02  David Edelsohn  <edelsohn@gnu.org>
54
55         PR fortran/22491
56         * expr.c (simplify_parameter_variable): Do not copy the subobject
57         references if the expression value is a constant.
58
59         * expr.c (gfc_simplify_expr): Evaluate constant substrings.
60
61 2005-07-31  Jerry DeLisle  <jvdelisle@verizon.net>
62
63         * intrinsic.texi: Add documentation for exponent, floor, and fnum and
64         fix description of ceiling in index.
65
66 2005-07-31  Steven Bosscher  <stevenb@suse.de>
67
68         * trans-decl.c (gfc_build_builtin_function_decls): Give the internal
69         malloc functions the 'malloc' attribute.  Give runtime_error the
70         'noreturn' attribute.
71
72 2005-07-31  Steven Bosscher  <stevenb@suse.de>
73
74         * trans-stmt.c (gfc_trans_goto): Jump to the known label instead
75         of the assigned goto variable.
76
77 2005-07-29  Steven Bosscher  <stevenb@suse.de>
78
79         * trans-types.h (gfc_array_range_type): Add missing GTY decl for this.
80
81 2005-07-28  Andrew Pinski  <pinskia@physics.uc.edu>
82
83         * fortran/f95-lang.c (language_function): Remove
84         named_labels, shadowed_labels, returns_value, returns_abnormally,
85         warn_about_return_type, and extern_inline fields.
86         (named_labels): Remove variable.
87         (gfc_init_decl_processing): Remove setting of named_labels.
88
89 2005-07-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
90
91         PR fortran/22503
92         * resolve.c (resolve_operator): Improve diagnostic for comparison
93         of logicals with invalid operator.
94
95 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
96
97         PR fortran/20063
98         * data.c (gfc_assign_data_value_range): Call
99         create_character_initializer if last_ts is a character type.
100
101 2005-07-22  Manfred Hollstein  <mh@suse.com>
102
103         * match.c (gfc_match_symbol): Fix uninitialised warnings.
104         * matchexp.c (gfc_match_expr): Likewise.
105
106 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
107
108         Make CONSTRUCTOR use VEC to store initializers.
109         * trans-array.c (gfc_build_null_descriptor,
110         gfc_trans_array_constructor_value, gfc_conv_array_initializer):
111         Update to cope with VEC in CONSTRUCTOR_ELTS.
112         * trans-common.c (create_common): Likewise.
113         * trans-expr.c (gfc_conv_structure): Likewise.
114         * trans-stmt.c (gfc_trans_character_select): Use
115         build_constructor_from_list instead of build_constructor.
116
117 2005-07-19 Paul Thomas  <pault@gcc.gnu.org>
118
119         PR fortran/16940
120         * resolve.c (resolve_symbol): A symbol with FL_UNKNOWN
121         is matched against interfaces in parent namespaces. If there
122         the symtree is set to point to the interface.
123
124 2005-07-16  David Edelsohn  <edelsohn@gnu.org>
125
126         PR fortran/21730
127         * decl.c (do_parm): Adjust character initializer to character length
128         of symbol before assigning.
129
130 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
131
132         * trans-types.c (MAX_REAL_KINDS): Increase from 4 to 5.
133
134 2005-07-14  Jakub Jelinek  <jakub@redhat.com>
135
136         * gfortran.h (MAX_ERROR_MESSAGE): Remove.
137         (gfc_error_buf): Add allocated and index fields.  Change message
138         field from array to a pointer.
139         * error.c (use_warning_buffer, error_ptr, warning_ptr): Remove.
140         (cur_error_buffer): New variable.
141         (error_char): Use cur_error_buffer->{message,index} instead of
142         {warning,error}_{buffer.message,ptr}.  Reallocate message buffer
143         if too small.
144         (gfc_warning, gfc_notify_std, gfc_error, gfc_error_now): Setup
145         cur_error_buffer and its index rather than {warning,error}_ptr
146         and use_warning_buffer.
147         (gfc_warning_check, gfc_error_check): Don't print anything if
148         message is NULL.
149         (gfc_push_error): Allocate saved message with xstrdup.
150         (gfc_pop_error): Free saved message with gfc_free.
151         (gfc_free_error): New function.
152         * primary.c (match_complex_constant): Call gfc_free_error if
153         gfc_pop_error will not be called.
154         * match.c (gfc_match_st_function): Likewise.
155
156         PR fortran/22417
157         * scanner.c (preprocessor_line): Don't treat flag 3 as the start of a new
158         file.  Fix file left but not entered warning.
159
160 2005-07-14  Feng Wang  <fengwang@nudt.edu.cn>
161         Steven G. Kargl  <kargls@comcast.net>
162
163         * array.c (resolve_character_array_constructor): Allocate gfc_charlen
164         for the array and attach to namespace list for automatic deallocation.
165
166 2005-07-13  Andreas Schwab  <schwab@suse.de>
167
168         * Make-lang.in (fortran/dependency.o): Depend on
169         $(GFORTRAN_TRANS_DEPS).
170
171 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
172
173         * trans-stmt.c (gfc_trans_forall_loop): Clear maskindex before
174         the outermost loop.
175         (gfc_trans_assign_need_temp, gfc_trans_pointer_assign_need_temp,
176         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_2):
177         Don't clear maskindexes here.
178
179 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
180         
181         * trans-decl.c (create_function_arglist): DECL_ARG_TYPE_AS_WRITTEN
182         is removed.
183
184 2005-07-08  Jakub Jelinek  <jakub@redhat.com>
185
186         * primary.c (gfc_match_rvalue): Handle ENTRY the same way
187         as FUNCTION.
188
189 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
190
191         * scanner.c (load_line): Add pbuflen argument, don't make
192         buflen static.  If maxlen == 0 or preprocessor_flag,
193         don't truncate at buflen, but at maxlen.  In xrealloc add
194         1 byte at the end for the terminating '\0'.  Don't fill
195         with spaces up to buflen, but gfc_option.fixed_line_length.
196         (load_file): Adjust load_line caller.  Add line_len variable.
197
198         * scanner.c (preprocessor_line): Only set current_file->line when errors
199         have not been encountered.  Warn and don't crash if a file leave
200         preprocessor line has no corresponding entering line.  Formatting.
201
202 2005-07-07  Steven Bosscher  <stevenb@suse.de>
203
204         * primary.c (match_hollerith_constant): Use int, not unsigned int,
205         for the hollerith length.  Fix indentation.
206
207 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
208
209         PR fortran/16531
210         PR fortran/15966
211         PR fortran/18781
212         * arith.c (gfc_hollerith2int, gfc_hollerith2real,
213         gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
214         New functions.
215         (eval_intrinsic): Don't evaluate if Hollerith constant arguments exist.
216         * arith.h (gfc_hollerith2int, gfc_hollerith2real,
217         gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
218         Add prototypes.
219         * expr.c (free_expr0): Free memery allocated for Hollerith constant.
220         (gfc_copy_expr): Allocate and copy string if Expr is from Hollerith.
221         (gfc_check_assign): Enable conversion from Hollerith to other.
222         * gfortran.h (bt): Add BT_HOLLERITH.
223         (gfc_expr): Add from_H flag.
224         * intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH.
225         (add_conversions): Add conversions from Hollerith constant to other.
226         (do_simplify): Don't simplify if  Hollerith constant arguments exist.
227         * io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU.
228         * misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH.
229         (gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH.
230         * primary.c (match_hollerith_constant): New function.
231         (gfc_match_literal_constant): Add match Hollerith before Integer.
232         * simplify.c (gfc_convert_constant): Add conversion from Hollerith
233         to other.
234         * trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to
235         convert Hollerith constant to tree.
236         * trans-io.c (gfc_convert_array_to_string): Get array's address and
237         length to set string expr.
238         (set_string): Deal with array assigned Hollerith constant and character
239         array.
240         * gfortran.texi: Document Hollerith constants as extention support.
241
242 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
243
244         PR fortran/22327
245         * trans-array.c (gfc_trans_array_constructor_value): Fix index of data.
246
247 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
248
249         * decl.c (gfc_match_entry): Allow ENTRY without parentheses
250         even in FUNCTIONs.
251
252 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
253
254         * gfortran.texi, intrinsic.texi: Fix typos.
255         * symbol.c: Fix a comment typo.
256
257 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
258
259         * error.c (error_printf, error_print): Use ATTRIBUTE_GCC_GFC.
260         * gfortran.h (ATTRIBUTE_GCC_GFC): New.
261         (gfc_warning, gfc_warning_now, gfc_error, gfc_error_now,
262         gfc_fatal_error, gfc_internal_error, gfc_notify_std): Use
263         ATTRIBUTE_GCC_GFC.
264
265 2005-07-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
266
267         PR fortran/20842
268         * io.c (match_dt_element): Do not allow END tag in PRINT or
269         WRITE statement.
270
271 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
272
273         * lang.opt: Remove "." from end of help texts.
274
275 2005-07-01  Jerry DeLisle  <jvdelisle@verizon.net>
276
277         * gfortran.texi: Fix typos and grammar.
278         * invoke.texi: Fix typos and grammar.
279         * intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and
280         exit. Fixed alignment of text for dtime syntax. Fixed a few line
281         lengths.
282
283 2005-06-25  Jakub Jelinek  <jakub@redhat.com>
284
285         * trans-stmt.c (gfc_trans_forall_1): Prefer to use smaller logical
286         type than boolean_type_node.
287
288 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
289
290         * all files: Update FSF address in copyright headers.
291
292 2005-06-24  Jerry DeLisle <jvdelisle@verizon.net>
293
294         PR fortran/21915
295         * gfortran.h: Add symbols for new intrinsic functions.
296         * intrinsic.c: Add new functions acosh, asinh, and atanh.
297         * intrinsic.h: Add prototypes for the new functions.
298         * iresolve.c (gfc_resolve_acosh): New function.
299         (gfc_resolve_asinh): New function.
300         (gfc_resolve_atanh): New function.
301         * mathbuiltins.def: Add defines.
302         * simplify.c (gfc_simplify_acosh): New function.
303         (gfc_simplify_asinh): New function.
304         (gfc_simplify_atanh): New function.
305
306 2005-06-24  Feng Wang  <fengwang@nudt.edu.cn>
307
308         * simplify.c (gfc_simplify_modulo): Don't clear before get result.
309
310 2005-06-22  Paul Brook  <paul@codesourcery.com>
311
312         PR fortran/21034
313         * symbol.c (gfc_is_var_automatic): New function.
314         (save_symbol): Use it.
315
316 2005-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
317             Paul Thomas  <pault@gcc.gnu.org>
318
319         PR fortran/22010
320         Port from g95.
321         * module.c (mio_namelist): New function. Correct to set
322         namelist_tail and to give error on renaming namelist by use
323         association.
324         (mio_symbol): Call mio_namelist.
325
326 2005-06-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
327
328         * gfortran.h: Add flag_backslash compile-time option.
329         * lang.opt: Add support for -fbackslash option.
330         * options.c: Likewise.
331         * primary.c: Implement behavior for -fno-backslash.
332         * invoke.texi: Add doc for -fbackslash option.
333         * gfortran.texi: Remove mention of -fno-backslash as a
334         possible extension.
335
336 2005-06-20  Steven G. Kargl  <kargls@comcast.net>
337         (port from g95)
338
339         PR fortran/21257
340         * match.c (gfc_match_label): Detect duplicate labels.
341
342
343 2005-06-20  Erik Edelmann  <erik.edelmann@iki.fi>
344
345         * intrinsic.c (check_intrinsic_standard): Fix spelling error
346         in a warning message.
347
348 2005-06-18  Erik Edelman  <eedelman@acclab.helsinki.fi>
349             Steven G. Kargl <kargls@comast.net>
350
351         PR fortran/19926
352         * primary.c (gfc_match_rvalue):  expr_type can be EXPR_CONSTANT
353         for an array; check that sym->as is NULL.
354
355
356 2005-06-18  Steven G. Kargl  <kargls@comcast.net>
357
358         * intrinsic.c (gfc_intrinsic_func_interface): Enable errors for generic
359         functions whose simplification routine return FAILURE.
360
361 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
362
363         * Make-lang.in (fortran.install-man): Doesn't depend on installdirs.
364         (rule for installing f95.1 manpage): Does depend on installdirs.
365
366 2005-06-13  Jakub Jelinek  <jakub@redhat.com>
367
368         PR fortran/22038
369         * trans-stmt.c (gfc_trans_forall_loop): Only increment maskindex
370         in the innermost loop.
371
372         * trans-expr.c (gfc_conv_function_call): Return int instead of
373         void.  Use a local variable for has_alternate_specifier and
374         return it.  Avoid modification of function type's return value
375         in place, since it may be shared.
376         * trans.h (has_alternate_specifier): Remove.
377         (gfc_conv_function_call): Change return type.
378         * trans-stmt.c (has_alternate_specifier): Remove.
379         (gfc_trans_call): Add a local has_alternate_specifier variable,
380         set it from gfc_conv_function_call return value.
381
382 2005-06-12  Richard Henderson  <rth@redhat.com>
383
384         * trans-array.c (gfc_conv_descriptor_data_get): Rename from
385         gfc_conv_descriptor_data.  Cast the result to the DATAPTR type.
386         (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): New.
387         (gfc_trans_allocate_array_storage): Use them.
388         (gfc_array_allocate, gfc_array_deallocate): Likewise.
389         (gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor): Likewise.
390         (gfc_trans_deferred_array): Likewise.
391         * trans-expr.c (gfc_conv_function_call): Likewise.
392         (gfc_trans_subcomponent_assign): Likewise.
393         (gfc_trans_pointer_assignment): Likewise.
394         * trans-intrinsic.c (gfc_conv_allocated): Likewise.
395         * trans-types.c (gfc_array_descriptor_base): New.
396         (gfc_get_element_type): Use GFC_TYPE_ARRAY_DATAPTR_TYPE.
397         (gfc_get_array_descriptor_base): Break out from ...
398         (gfc_get_array_type_bounds): ... here.  Create type variants.
399         * trans-array.h (gfc_conv_descriptor_data_get): Declare.
400         (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): Declare.
401
402 2005-06-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
403
404         * trans-expr.c (gfc_conv_variable): POINTER results don't need f2c
405         calling conventions.  Look at sym instead of sym->result.
406         * trans-types.c (gfc_sym_type): Remove workaround for frontend bug.
407         Remove condition which is always false with workaround removed.
408         (gfc_return_by_reference): Always look at sym, never at sym->result.
409
410 2005-06-11  Steven G. Kargl  <kargls@comcast.net>
411         
412         PR fortran/17792
413         PR fortran/21375
414         * trans-array.c (gfc_array_deallocate): pstat is new argument
415         (gfc_array_allocate): update gfc_array_deallocate() call.
416         (gfc_trans_deferred_array): ditto.
417         * trans-array.h: update gfc_array_deallocate() prototype.
418         * trans-decl.c (gfc_build_builtin_function_decls): update declaration
419         * trans-stmt.c (gfc_trans_deallocate): Implement STAT= feature.
420
421 2005-06-07  Jerry DeLisle <jvdelisle@verizon.net>
422
423         * intrinsic.texi: Add documentation for dcmplx, digits,
424         dim, idim, ddim, dot_product, dprod, dreal, and dtime.
425
426 2005-06-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
427
428         PR fortran/21912
429         * trans-array.c (gfc_trans_array_constructor_value): Slightly reorder.
430         Generate correct exit condition in case of negative steps in
431         implied-do loops.
432
433         * invoke.texi: Fix description of flags required for compatibility
434         with g77.
435
436 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
437         Erik Schnetter  <schnetter@aei.mpg.de>
438
439         PR fortran/19195
440         * trans.c (gfc_get_backend_locus): Remove unnecessary adjustment,
441         remove FIXME comment. 
442
443 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
444
445         * match.c (match_forall_iterator): Don't immediately give error if '='
446         is not followed by an expression.
447
448 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
449         Erik Edelmann  <erik.edelmann@iki.fi>
450
451         * array.c (gfc_match_array_constructor): Disallow empty array
452         constructor.
453
454 2005-06-03  Jerry DeLisle <jvdelisle@verizon.net>
455
456         * fortran/intrinsic.texi: Add documentation for
457         command_argument_count, conjg, dconjg, count,
458         cpu_time, cshift, date_and_time, dble, dfloat.
459
460 2005-06-01  Roger Sayle  <roger@eyesopen.com>
461
462         * intrinsic.c (add_conv): No longer take a "simplify" argument as
463         its always gfc_convert_constant, instead take a "standard" argument.
464         (add_conversions): Change all existing calls of add_conv to pass
465         GFC_STD_F77 as appropriate.  Additionally, if we're allowing GNU
466         extensions support integer-logical and logical-integer conversions.
467         (gfc_convert_type_warn): Warn about use the use of these conversions
468         as a extension when appropriate, i.e. with -pedantic.
469         * simplify.c (gfc_convert_constant): Add support for integer to
470         logical and logical to integer conversions, using gfc_int2log and
471         gfc_log2int.
472         * arith.c (gfc_log2int, gfc_int2log): New functions.
473         * arith.h (gfc_log2int, gfc_int2log): Prototype here.
474         * gfortran.texi: Document this new GNU extension.
475
476 2005-06-01  Paul Thomas  <pault@gcc.gnu.org>
477
478         * fortran/trans-expr.c (gfc_conv_variable): Clean up bracketting.
479         * fortran/trans-expr.c (gfc_conv_function_call): Insert spaces.
480         Correct comments and replace convert of integer_one_node with
481         build_int_cst.
482
483 2005-06-01  Jakub Jelinek  <jakub@redhat.com>
484
485         PR fortran/21729
486         * resolve.c (resolve_contained_fntype): Use sym->attr.untyped
487         to avoid giving error multiple times.
488         (resolve_entries): Don't error about BT_UNKNOWN here.
489         (resolve_unknown_f): Capitalize IMPLICIT for consistency.
490         (resolve_fntype): New function.
491         (gfc_resolve): Call resolve_fntype.
492
493 2005-06-01  Feng Wang  <fengwang@nudt.edu.cn>
494
495         PR fortran/20883
496         * fortran/io.c (resolve_tag): Fix error message.
497
498 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
499
500         * fortran/trans-decl.c: Don't include errors.h.
501         * fortran/Make-lang.in: Updates dependencies.
502
503 2005-05-31  Paul Thomas  <pault@gcc.gnu.org>
504
505         PR fortran/18109
506         PR fortran/18283
507         PR fortran/19107
508         * fortran/trans-array.c (gfc_conv_expr_descriptor): Obtain the
509         string length from the expression typespec character length value
510         and set temp_ss->stringlength and backend_decl. Obtain the
511         tree expression from gfc_conv_expr rather than gfc_conv_expr_val.
512         Dereference the expression to obtain the character.
513         * fortran/trans-expr.c (gfc_conv_component_ref): Remove the
514         dereference of scalar character pointer structure components.
515         * fortran/trans-expr.c (gfc_trans_subarray_assign): Obtain the
516         string length for the structure component from the component
517         expression.
518
519 2005-05-30  Roger Sayle  <roger@eyesopen.com>
520
521         * gfortran.h (GFC_STD_LEGACY): New "standard" macro.  Reindent.
522         * options.c (gfc_init_options): By default, allow legacy extensions
523         but warn about them.
524         (gfc_post_options): Make -pedantic warn about legacy extensions
525         even with -std=legacy.
526         (gfc_handle_option): Make -std=gnu follow the default behaviour
527         of warning about legacy extensions, but allowing them. Make the
528         new -std=legacy accept everything and warn about nothing.
529         * lang.opt (std=legacy): New F95 command line option.
530         * invoke.texi: Document both -std=f2003 and -std=legacy.
531         * gfortran.texi: Explain the two types of extensions and document
532         how they are affected by the various -std= command line options.
533
534 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
535
536         * trans-expr.c: Remove trailing ^M.
537
538         * trans-expr.c: Fix comment typos.
539
540 2005-05-29  Paul Thomas  <pault@gcc.gnu.org>
541
542         PR fortran/16939
543         PR fortran/17192
544         PR fortran/17193
545         PR fortran/17202
546         PR fortran/18689
547         PR fortran/18890
548         * fortran/trans-array.c (gfc_conv_resolve_dependencies): Add string
549         length to temp_ss for character pointer array assignments.
550         * fortran/trans-expr.c (gfc_conv_variable): Correct errors in
551         dereferencing of characters and character pointers.
552         * fortran/trans-expr.c (gfc_conv_function_call): Provide string
553         length as return argument for various kinds of handling of return.
554         Return a char[]* temporary for character pointer functions and
555         dereference the temporary upon return.
556
557 2005-05-29  Janne Blomqvist  <jblomqvi@vipunen.hut.fi>
558             Steven G. Kargl  <kargls@comcast.net>
559   
560         fortran/PR20846
561         * io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage.
562
563 2005-05-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
564
565         PR libfortran/20006
566         * io.c (format_item_1): Add check and extension warning for
567         $ edit descriptor.
568
569 2005-05-28  Steven G. Kargl  <kargls@comcast.net>
570
571         * arith.c (gfc_arith_init_1): Fix off by one problem;
572         (gfc_check_integer_range): Chop extra bits in subnormal numbers.
573
574 2005-05-28  Jerry DeLisle   <jvdelisle@verizon.net>
575             Steven G. Kargl  <kargls@comcast.net>
576
577         * intrinsic.texi: added documentation for BIT_SIZE, BTEST, CHAR, CEILING
578         and CMPLX
579
580 2005-05-27  Steven G. Kargl  <kargls@comcast.net>
581
582         * trans-array.c (gfc_trans_deferred_array): Use build_int_cst to force
583         like types in comparsion.
584
585 2005-05-26  Kazu Hirata  <kazu@cs.umass.edu>
586
587         * data.c, parse.c, trans-array.c, trans-decl.c,
588         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
589         trans.h: Fix comment typos.  Follow spelling conventions.
590
591 2005-05-22  Roger Sayle  <roger@eyesopen.com>
592
593         * gfortran.texi: Document some more GNU extensions.
594
595 2005-05-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
596
597         * error.c (gfc_warning): Fix typo in comment.
598
599 2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>
600
601         PR libfortran/21127
602         * fortran/iresolve.c (gfc_resolve_reshape): Add 
603         gfc_type_letter (BT_COMPLEX) for complex to
604         to resolved function name.
605
606 2005-05-18 Erik Edelmann <erik.edelmann@iki.fi>
607
608         * array.c (gfc_match_array_constructor): Support [ ... ]
609         style array constructors.
610
611 2005-05-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
612
613         * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_TRUNC
614         and BUILT_IN_TRUNCF instead of BUILT_IN_FLOOR and BUILT_IN_FLOORF.
615         * trans-intrinsic.c (build_fix_expr): Change 'op' argument
616         to correct enum type.
617         (gfc_conv_intrinsic_aint): Likewise.  Clarify comment in front of
618         function.  Add default case to switch, deal with FIX_TRUNC_EXPR
619         instead of FIX_FLOOR_EXPR.
620
621 2005-05-18  Feng Wang  <fengwang@nudt.edu.cn>
622
623         PR fortran/20954
624         * trans-const.c (gfc_conv_const_charlen): Use gfc_charlen_type_node to
625         build character length.
626
627 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
628
629         * trans-types.c (gfc_array_range_type): New variable.
630         (gfc_init_types): Initialize gfc_array_range_type.
631         (gfc_get_array_type_bounds): Use gfc_array_range_type.
632
633 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
634
635         PR fortran/15080
636         * trans-stmt.c (generate_loop_for_temp_to_lhs): Remove SIZE and COUNT2
637         arguments.  If LSS is gfc_ss_terminator, increment COUNT1 by 1, instead
638         of incrementing COUNT2 and using COUNT1+COUNT2 increment COUNT1 and use
639         just that as index.
640         (generate_loop_for_rhs_to_temp): Likewise.
641         (compute_overall_iter_number): Add INNER_SIZE_BODY argument.
642         It non-NULL, add it to body.
643         (allocate_temp_for_forall_nest_1): New function, split from
644         allocate_temp_for_forall_nest.
645         (allocate_temp_for_forall_nest): Add INNER_SIZE_BODY argument,
646         propagate it down to compute_overall_iter_number.  Use
647         allocate_temp_for_forall_nest_1.
648         (gfc_trans_assign_need_temp): Remove COUNT2.  Call
649         compute_inner_temp_size into a new stmtblock_t.  Adjust calls to
650         allocate_temp_for_forall_nest, generate_loop_for_rhs_to_temp
651         and generate_loop_for_temp_to_lhs.
652         (gfc_trans_pointer_assign_need_temp): Adjust calls to
653         allocate_temp_for_forall_nest.
654         (gfc_evaluate_where_mask): Call compute_inner_temp_size into a new
655         stmtblock_t.  Call compute_overall_iter_number just once, then
656         allocate_temp_for_forall_nest_1 twice with the same size.
657         Initialize mask indexes if nested_forall_info != NULL.
658         (gfc_trans_where_2): Initialize mask indexes before calling
659         gfc_trans_nested_forall_loop.
660
661 2005-05-15  Feng Wang <fengwang@nudt.edu.cn>
662         Jerry DeLisle <jvdelisle@verizon.net>
663
664         PR fortran/17432
665         * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to 
666         resolve ICE on assign of format label.
667         * trans-io.c (set_string): add fold-convert to properly
668         handle assigned format label in write.
669  
670 2005-05-13  Paul Brook  <paul@codesourcery.com>
671
672         * trans-stmt.c (gfc_trans_forall_1): Fix comment typo.
673
674 2005-05-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
675
676         * trans-types.c (gfc_is_nodesc_array): Remove redundant check.
677
678 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
679
680         PR fortran/21260
681         * io.c (check_format): Look for literal characters inside
682         hollerith constant.
683
684 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
685
686         * resolve.c (resolve_symbol): Copy 'pointer' and 'dimension'
687         attribute from result symbol to function symbol.
688         * trans-expr.c (gfc_conv_function_call): Look at sym->attr.dimension
689         instead of sym->result->attr.dimension.
690
691 2005-05-10  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
692
693         PR fortran/20178
694         * gfortran.h (gfc_option): Add flag_f2c.
695         * invoke.texi: Document '-ff2c' command line option.  Adapt
696         documentation for '-fno-second-underscore' and '-fno-underscoring'.
697         * lang.opt (ff2c): New entry.
698         * options.c (gfc-init_options): Set default calling convention
699         to -fno-f2c.  Mark -fsecond-underscore unset.
700         (gfc_post_options): Set -fsecond-underscore if not explicitly set
701         by user.        
702         (handle_options): Set gfc_option.flag_f2c according to requested
703         calling convention.
704         * trans-decl.c (gfc_get_extern_function_decl): Use special f2c
705         intrinsics where necessary.
706         (gfc_trans_deferred_vars): Change todo error to assertion.
707         * trans-expr.c (gfc_conv_variable): Dereference access
708         to hidden result argument.
709         (gfc_conv_function_call): Add hidden result argument to argument
710         list if f2c calling conventions requested.  Slightly restructure
711         tests.  Convert result of default REAL function to requested type
712         if f2c calling conventions are used.  Dereference COMPLEX result
713         if f2c cc are used.
714         * trans-types.c (gfc_sym_type):  Return double for default REAL
715         function if f2c cc are used.
716         (gfc_return_by_reference): Slightly restructure logic.  Return
717         COMPLEX by reference depending on calling conventions.
718         (gfc_get_function_type): Correctly make hidden result argument a
719         pass-by-reference argument for COMPLEX.  Remove old code which does
720         this for derived types.
721
722 2005-05-09  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
723
724         * match.c (gfc_match_return): Only require space after keyword when
725         it is obligatory.  Only give stdwarn to after matching is successful.
726         * dump-parse-tree.c (gfc_show_symbol): Deal with alternate returns.
727
728 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
729
730         * intrinsic.texi: Fix typos.
731
732 2005-05-07  Steven G. Kargl  <kargls@comcast.net>
733
734         * intrinsic.texi:  Document ASSOCIATED and ATAN2.  Update Bessel function
735         description to include information about scalar arguments.
736
737 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
738
739         * Make-lang.in, dump-parse-tree.c, invoke.texi, lang.opt,
740         match.h, trans-array.h: Update copyright.
741
742 2005-04-29  Tom Tromey  <tromey@redhat.com>
743
744         * f95-lang.c (poplevel): Updated for change to build_block.
745
746 2005-04-29  Jakub Jelinek  <jakub@redhat.com>
747
748         PR fortran/13082
749         PR fortran/18824
750         * trans-expr.c (gfc_conv_variable): Handle return values in functions
751         with alternate entry points.
752         * resolve.c (resolve_entries): Remove unnecessary string termination
753         after snprintf.  Set result of entry master.
754         If all entries have the same type, set entry master's type
755         to that common type, otherwise set mixed_entry_master attribute.
756         * trans-types.c (gfc_get_mixed_entry_union): New function.
757         (gfc_get_function_type): Use it for mixed_entry_master functions.
758         * gfortran.h (symbol_attribute): Add mixed_entry_master bit.
759         * decl.c (gfc_match_entry): Set entry->result properly for
760         function ENTRY.
761         * trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over
762         __entry argument.
763         (build_entry_thunks): Handle return values in entry thunks.
764         Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not
765         shared between multiple contexts.
766         (gfc_get_fake_result_decl): Use DECL_ARGUMENTS from
767         current_function_decl instead of sym->backend_decl.  Skip over
768         entry master's entry id argument.  For mixed_entry_master entries or
769         their results, return a COMPONENT_REF of the fake result.
770         (gfc_trans_deferred_vars): Don't warn about missing return value if
771         at least one entry point uses RESULT.
772         (gfc_generate_function_code): For entry master returning
773         CHARACTER, copy ts.cl->backend_decl to all entry result syms.
774         * trans-array.c (gfc_trans_dummy_array_bias): Don't consider return
775         values optional just because they are in entry master.
776
777 2005-04-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
778
779         * gfortran.h (gfc_namespace): Add seen_implicit_none field,
780         Tobias forgot this in previous commit.
781         
782 2005-04-29  Paul Brook   <paul@codesourcery.com>
783
784         * trans-expr.c (gfc_conv_expr_present): Fix broken assert.  Update
785         comment.
786
787 2005-04-29  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
788
789         * gfortran.h (gfc_namespace): Add seen_implicit_none field.
790         * symbol.c (gfc_set_implicit_none): Give error if there's a previous
791         IMPLICIT NONE, set seen_implicit_none.
792         (gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement.
793
794 2005-04-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
795
796         * gfortran.h (gfc_gsymbol): Make name a const char *.
797         * symbol.c (gfc_get_gsymbol): Allocate gsymbol name via
798         gfc_get_string.
799
800 2005-04-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
801
802         PR fortran/20865
803         * resolve.c (resolve_actual_arglist): Issue an error if a statement
804         functions is used as actual argument.
805
806 2005-04-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
807
808         PR fortran/21177
809         * interface.c (compare_parameter): Ignore type for EXPR_NULL
810         only if type is BT_UNKNOWN.
811
812 2005-04-25  Paul Brook  <paul@codesourcery.com>
813         Steven G. Kargl  <kargls@comcast.net>
814
815         PR fortran/20879
816         * check.c (gfc_check_ichar_iachar): New function.
817         * instinsic.h (gfc_check_ichar_iachar): Add prototype.
818         * intrinsic.c (add_functions): Use it.
819         * primary.c (match_varspec, gfc_match_rvalue): Clear incorrect
820         character expression lengths.
821
822 2005-04-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
823
824         PR fortran/20059
825         * trans-common.c (translate_common): Cast offset and
826         common_segment->offset to type int for warning message.
827
828 2005-04-23  DJ Delorie  <dj@redhat.com>
829
830         * trans-decl.c: Adjust warning() callers.
831
832 2005-04-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
833
834         * trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as
835         intermediate representation.  Fix typo in comment.
836
837 2005-04-21  Steven G. Kargl  <kargls@comcast.net>
838
839         * trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation;
840         simplify logic; Add a gcc_assert.
841
842 2005-04-19  Steven G. Kargl  <kargls@comcast.net>
843
844         * trans-const.c (gfc_conv_mpz_to_tree): Fix comment.
845
846 2005-04-19  Arnaud Desitter  <arnaud.desitter@ouce.ox.ac.uk>
847             Steven G. Kargl  <kargls@comcast.net>
848
849         * invoke.texi: Update -Waliasing description
850
851 2005-04-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
852
853         PR fortran/16861
854         * resolve.c (resolve_variable): If e->symtree is not set, this
855         ought to be a FAILURE, and not a segfault.
856
857 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
858
859         PR fortran/17472
860         PR fortran/18209
861         PR fortran/18396
862         PR fortran/19467
863         PR fortran/19657
864         * fortran/trans-io.c (gfc_build_io_library_fndecls): Create
865         declaration for st_set_nml_var and st_set_nml_var_dim. Remove
866         declarations of old namelist functions.
867         (build_dt): Simplified call to transfer_namelist_element.
868         (nml_get_addr_expr): Generates address expression for start of 
869         object data. New function.
870         (nml_full_name): Qualified name for derived type components. New 
871         function.
872         (transfer_namelist_element): Modified for calls to new functions 
873         and improved derived type handling.
874
875 2005-04-17  Richard Guenther  <rguenth@gcc.gnu.org>
876
877         * scanner.c (gfc_next_char_literal): Reset truncation flag
878         for lines ending in a comment for both fixed and free form.
879         (load_line): Do not set truncated flag if only truncating
880         the EOL marker.
881
882 2005-04-15  Richard Guenther  <rguenth@gcc.gnu.org>
883
884         PR fortran/14569
885         * gfortran.h (gfc_linebuf): Add truncated field.
886         * parse.c (next_statement): Handle warning for truncated
887         lines.
888         * scanner.c (load_line): Return if line was truncated.
889         No longer warn for truncated lines.  Remove unused parameters.
890         (load_file): Store load_line return value to linebuf.
891         (gfc_error_recovery): Do not advance line at the end.
892
893 2005-04-14  Steven G. Kargl  <kargls@comcast.net>
894
895         * gfortran.h (gfc_real_info): Add subnormal struct member.
896         * arith.c (gfc_arith_init_1): Set it.
897         (gfc_check_real_range): Use it.
898         * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
899
900 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
901
902         * simplify.c: Fix a comment typo.
903
904 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
905
906         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
907
908 2005-04-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
909
910         * simplify.c (gfc_simplify_nearest): Overhaul.
911
912 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
913
914         * interface.c: Fix a comment typo.
915
916 2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
917
918         * match.c (match_arithmetic_if): Arithmetic IF is obsolete in
919         Fortran 95.
920
921 2005-04-09  Steven G. Kargl  <kargls@comcast.net>
922
923         * simplify.c (gfc_simplify_anint): Use mpfr_round()
924         (gfc_simplify_dnint): ditto.
925         (gfc_simplify_nint): ditto.
926
927 2005-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
928
929         PR fortran/13257
930         * io.c (check_format): Allow an optional comma
931         between descriptors.
932
933 2005-04-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
934
935         * match.c (match_arithmetic_if): Remove gfc_ prefix and correct
936         comment according to GNU coding style.
937         (gfc_match_if): Remove gfc_ prefix in call to
938         match_arithmetic_if.
939
940 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
941
942         * match.c (gfc_match_arithmetic_if): Declare static.
943
944 2005-04-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
945
946         PR fortran/17229
947         * match.c (gfc_match_arithmetic_if): New function to match an
948         arithmetic IF statement.
949         (gfc_match_if): Use gfc_match_arithmetic_if to match an
950         arithmetic IF statement embedded in a simple IF statement.
951
952 2005-04-07  Steven G. Kargl  <kargls@comcast.net>
953
954         * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x))
955
956 2005-04-06  Steven G. Kargl  <kargls@comcast.net>
957
958         * invoke.texi: Remove documentation of -std=f90 
959
960 2005-04-06  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
961
962         * expr.c (gfc_check_assign): Don't allow NULL as rhs in a
963         non-pointer assignment.
964
965 2005-04-05  Feng Wang  <fengwang@nudt.edu.cn>
966
967         PR fortran/15959
968         PR fortran/20713
969
970         * array.c (resolve_character_array_constructor): New function. Set
971         constant character array's character length.
972         (gfc_resolve_array_constructor): Use it.
973         * decl.c (add_init_expr_to_sym): Set symbol and initializer character
974         length.
975         (gfc_set_constant_character_len): New function. Set constant character
976         expression according the given length.
977         * match.h (gfc_set_constant_character_len): Add prototype.
978
979 2005-04-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
980
981         * intrinsic.texi: BES?? functions are not in the f95 standard.
982
983 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
984
985         * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN.
986
987 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
988
989         * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1,
990         BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.
991
992 2005-04-02  Steven G. Kargl  <kargls@comcast.net>
993
994         * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; fix typos
995
996 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
997
998         * decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c,
999         trans.h: Fix comment typos.
1000
1001 2005-03-29  Steven G. Kargl  <kargls@comcast.net>
1002
1003         * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
1004         flag_default_integer, flag_default_real
1005         * invoke.texi: Update documentation
1006         * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8   
1007         fdefault-integer-8, and fdefault-real-8 definitions.
1008         * options.c (gfc_init_options): Set option defaults
1009         (gfc_handle_option): Handle command line options.
1010         * trans-types.c (gfc_init_kinds): Use options.
1011
1012 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
1013
1014         * f95-lang.c (builtin_function): Process the attrs parameter
1015         and apply the "const" attribute to the builtin if found.
1016
1017 2005-03-27  Steven G. Kargl  <kargls@comcast.net>
1018
1019         * intrinsic.texi: Document AIMAG, AINT, ALL
1020
1021 2005-03-26  Steven G. Kargl  <kargls@comcast.net>
1022
1023         * arith.c (check_result): Fix illogical logic.
1024
1025 2005-03-26  Canqun Yang  <canqun@nudt.edu.cn>
1026
1027         * trans-common.c (create_common): Build RECORD_NODE for common blocks
1028         contain no equivalence objects.
1029         (add_equivalences): New argument saw_equiv.
1030         (trans_common): New local variable saw_equiv.
1031         (finish_equivalences): Add a local variable dummy, Always pass true
1032         for the 3rd parameter to create_common.
1033
1034 2005-03-25  Steven G. Kargl  <kargls@comcast.net>
1035
1036         * intrinsic.texi: Fix "make dvi"
1037
1038 2005-03-24  Steven G. Kargl  <kargls@comcast.net>
1039
1040         * intrinsic.texi: New file.
1041         * gfortran.texi: Include it; white space change; fix typo.
1042
1043 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
1044
1045         * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
1046
1047 2005-03-23  Steven Bosscher  <stevenb@suse.de>
1048
1049         * convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
1050         * trans-array.c (gfc_trans_allocate_array_storage,
1051         gfc_trans_allocate_temp_array gfc_trans_array_constructor_value,
1052         gfc_conv_array_index_ref, gfc_trans_array_bound_check,
1053         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
1054         gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride,
1055         gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds,
1056         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
1057         gfc_conv_expr_descriptor): Likewise.
1058         * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp,
1059         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
1060         * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound,
1061         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign,
1062         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
1063         gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop,
1064         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
1065         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc,
1066         gfc_conv_intrinsic_merge, prepare_arg_info,
1067         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise.
1068         * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while,
1069         gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs,
1070         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
1071         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
1072         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign):
1073         Likewise.
1074         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise.
1075         * trans.c (gfc_add_modify_expr): Likewise.
1076
1077 2005-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1078
1079         * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
1080         gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
1081         gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
1082         gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
1083         gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
1084         gfc_check_perror): new functions to check newly implemented
1085         g77 intrinsics.
1086         * gfortran.h: adding symbols for new intrinsics.
1087         * intrinsic.c (add_functions): adding new intrinsics.
1088         (add_subroutines): adding new intrinsics.
1089         * intrinsic.h: prototype for all checking and resolving
1090         functions.
1091         * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
1092         gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
1093         gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
1094         gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
1095         gfc_resolve_kill_sub, gfc_resolve_link_sub,
1096         gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
1097         gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
1098         gfc_resolve_perror): new functions to resolve intrinsics.
1099         * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
1100         for new symbols.
1101
1102 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1103
1104         * dump-parse-tree.c (gfc_show_expr): Dump name of namespace
1105         in which the variable is declared.
1106
1107         PR fortran/18525
1108         * resolve.c (was_declared): Also check for dummy attribute.
1109
1110 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1111
1112         * gfortran.h (arith): Remove ARITH_0TO0.
1113         * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
1114         (gfc_arith_power): Remove special casing of zero to integral
1115         power zero.
1116
1117 2005-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1118
1119         * Make-lang.in (fortran-warn): Remove -Wno-error.
1120         (expr.o-warn, resolve.o-warn, simplify.o-warn,
1121         trans-common.o-warn): Specify -Wno-error.
1122
1123 2005-03-17  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1124
1125         * trans-array.c (gfc_trans_static_array_pointer,
1126         get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix
1127         comment and formatting typos.
1128
1129 2005-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1130
1131         * invoke.texi: Fix typos.
1132
1133 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
1134
1135         * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
1136
1137 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
1138
1139         * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
1140         to zero on label_tree.
1141
1142 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
1143
1144         PR fortran/18827
1145         * io.c (resolve_tag): Add checking on assigned label.
1146         (match_dt_format): Does not set symbol assign attribute.
1147         * match.c (gfc_match_goto):Does not set symbol assign attribute.
1148         * resolve.c (resolve_code): Add checking on assigned label.
1149         * trans-common.c (build_field): Deals with common variable assigned
1150         a label.
1151         * trans-stmt.c (gfc_conv_label_variable): New function.
1152         (gfc_trans_label_assign): Use it.
1153         (gfc_trans_goto): Ditto.
1154         * trans-io.c (set_string): Ditto.
1155         * trans.h (gfc_conv_label_variable): Add prototype.
1156
1157 2005-03-14  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1158
1159         PR fortran/20467
1160         * symbol.c (check_conflict): A dummy argument can't be a statement
1161         function.
1162
1163 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
1164
1165         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
1166         the argument of the shift to the unsigned type.
1167
1168 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1169
1170         PR fortran/16907
1171         * resolve.c (gfc_resolve_index): Allow REAL indices as an extension.
1172
1173 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1174
1175         PR fortran/20323
1176         * resolve.c (gfc_resolve): Check if character lengths are
1177         specification expressions.
1178
1179 2005-03-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1180
1181         PR fortran/20361
1182         * trans-array.c (gfc_stack_space_left): Remove unused variable.
1183         (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
1184         code.
1185         * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
1186         Remove declaration / prototype.
1187         * trans-common.c (build_equiv_decl): Give union a name.  Check if
1188         it can be put on the stack.
1189         * trans-decl.c (gfc_stack_space_left): Move function here.
1190         (gfc_build_qualified_array): Fix comment typo.
1191         * trans.h (gfc_put_var_on_stack): Add prototype.
1192
1193 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1194
1195         * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
1196         * decl.c, trans.c: Don't use C++ style comments.
1197         * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access,
1198         ifsrc): Give names to enums and use ENUM_BITFIELD.
1199         (gfc_access): Remove trailing comma.
1200
1201 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
1202
1203         PR 19936
1204         * primary.c (match_complex_constant): Mangled complex constant may
1205         be an implied do-loop.  Give implied do-loop matcher a chance.
1206
1207 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
1208
1209         PR fortran/19754
1210         * resolve.c (compare_shapes):  New function.
1211         (resolve_operator): Use it.
1212
1213 2005-03-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1214
1215         * trans-const.c (gfc_conv_constant_to_tree): Use correct tree
1216         type for COMPLEX constants.
1217
1218 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1219
1220         PR fortran/19673
1221         * trans-expr.c (gfc_conv_function_call): Correctly dereference
1222         argument from a pointer function also if it has a result clause.
1223
1224 2005-03-04  Steven G. Kargl  <kargls@comcast.net>
1225
1226         * expr.c (gfc_copy_shape_excluding): Change && to ||.
1227
1228 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1229
1230         * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
1231         clarify comment.
1232
1233 2005-02-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1234         (port from g95)
1235
1236         PR fortran/19479
1237         * simplify.c (gfc_simplify_bound): Rename to ...
1238         (simplify_bound): ... this and overhaul.
1239
1240 2005-02-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1241
1242         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
1243         (gfc_conv_intrinsic_function): update function calls
1244
1245 2005-02-27  Steven G. Kargl  <kargl@gcc.gnu.org>
1246
1247         PR fortran/20058
1248         * trans-types.c (gfc_max_integer_kind): Declare
1249         (gfc_init_kinds): Initialize it.
1250         * gfortran.h (gfc_max_integer_kind): extern it.
1251         * primary.c (match_boz_constant): Use it; remove gfortran extension
1252         of kind suffixes on BOZ literal constants
1253
1254
1255 2005-02-27  Steven G. Kargl  <kargls@comcast.net>
1256
1257         * arith.c (gfc_check_real_range):  Remove multiple returns
1258         (check_result): New function.
1259         (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
1260         gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.
1261
1262
1263 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1264
1265         * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
1266
1267
1268 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-meunchen.de>
1269
1270         Unrevert previously reverted patch.  Adding this fix:
1271         * module.c (find_true_name): Deal with NULL module.
1272
1273 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1274
1275         Revert yesterday's patch:
1276         2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1277
1278                 * gfortran.h (gfc_component, gfc_actual_arglist, ...
1279                 ... argument.  Copy string instead of pointing to it.
1280
1281 2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1282
1283         * gfortran.h (gfc_get_namespace): Add second argument to prototype.
1284         * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
1285         gfc_get_namespace.
1286         * module.c (mio_namespace_ref, load_needed): Likewise.
1287         * parse.c (parse_interface, parse_contained): Likewise.  Here the
1288         correct second argument matters.
1289         * symbol.c (gfc_get_namespace): Add parent_types argument, only copy
1290         parent's implicit types if this is set.
1291         (gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
1292         * trans-common.c (build_common_decl): Likewise.
1293
1294         * gfortran.h (symbol_attribute): New 'untyped' field, fix comment
1295         formatting.
1296         * symbol.c (gfc_set_default_type): Issue error only once, by setting
1297         and checking 'untyped' attribute.
1298
1299         * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
1300         fields into new struct 'op' inside the 'value' union.
1301         * arith.c (eval_intrinsic): Adapt all users.
1302         * dependency.c (gfc_check_dependency): Likewise.
1303         * dump-parse-tree.c (gfc_show_expr): Likewise.
1304         * expr.c (gfc_get_expr): Don't clear removed fields.
1305         (free_expr0, gfc_copy_expr, gfc_type_convert_binary,
1306         gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
1307         check_intrinsic_op): Adapt to new field names.
1308         * interface.c (gfc_extend_expr): Likewise.  Also explicitly
1309         nullify 'esym' and 'isym' fields of new function call.
1310         * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
1311         Adapt to renamed structure fields.
1312         * matchexp.c (build_node, match_level_1, match_expr): Likewise.
1313         * module.c (mio_expr): Likewise.
1314         * resolve.c (resolve_operator): Likewise.
1315         (gfc_find_forall_index): Likewise.  Only look through operands
1316         if dealing with EXPR_OP
1317         * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
1318         * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
1319         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
1320
1321         [ Reverted ]
1322         * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
1323         'name' a 'const char *'.
1324         (gfc_symbol): Likewise, also for 'module'.
1325         (gfc_symtree): Make 'name' a 'const char *'.
1326         (gfc_intrinsic_sym): Likewise, also for 'lib_name'.
1327         (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
1328         'char *' argument.
1329         (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
1330         initialize 'SYM->module'.
1331         * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
1332         pointer instead of empty string.
1333         * dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
1334         * interface.c (gfc_compare_types): Adapt check to account for possible
1335         NULL pointer.
1336         (compare_actual_formal): Check for NULL pointer instead of empty
1337         string.
1338         * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
1339         Add 'const' qualifier.
1340         (conv_name): Return a heap allocated string.
1341         (find_conv): Add 'const' qualifier to 'target'.
1342         (add_sym): Use 'gfc_get_string' instead of 'strcpy'.
1343         (make_generic): Check for NULL pointer instead of empty string.
1344         (make_alias): Use 'gfc_get_string' instead of 'strcpy'.
1345         (add_conv): No need to strcpy result from 'conv_name'.
1346         (sort_actual): Check for NULL pointer instead of empty  string.
1347         * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
1348         Adapt prototype.
1349         * module.c (compare_true_names): Compare pointers instead of strings
1350         for 'module' member.
1351         (find_true_name): Initialize string fields with gfc_get_string.
1352         (mio_pool_string): New function.
1353         (mio_internal_string): Adapt comment.
1354         (mio_component_ref, mio_component, mio_actual_arg): Use
1355         'mio_pool_string' instead of 'mio_internal_string'.
1356         (mio_symbol_interface): Add 'const' qualifier to string arguments.
1357         Add level of indirection. Use 'mio_pool_string' instead of
1358         'mio_internal_string'.
1359         (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
1360         (write_common, write_symbol): Use 'mio_pool_string' instead of
1361         'mio_internal_string'.
1362         (write_symbol0, write_symbol1): Likewise, also check for NULL pointer
1363         instead of empty string.
1364         (write_operator, write_generic): Pass correct type variable to
1365         'mio_symbol_interface'.
1366         (write_symtree): Use 'mio_pool_string' instead of
1367         'mio_internal_string'.
1368         * primary.c (match_keyword_arg): Adapt check to possible
1369         case of NULL pointer.  Use 'gfc_get_string' instead of 'strcpy'.
1370         * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
1371         gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
1372         'strcpy'.
1373         (ambiguous_symbol): Check for NULL pointer instead of empty string.
1374         (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
1375         arguments.
1376         * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
1377         pointer instead of empty string.
1378         * trans-decl.c (gfc_sym_mangled_identifier,
1379         gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
1380         gfc_get_symbol_decl): Likewise.
1381         * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
1382         argument.  Copy string instead of pointing to it.
1383
1384 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
1385
1386         * intrinsic.h, st.c: Update copyright.
1387
1388 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
1389
1390         * symbol.c: Typos in comments.
1391
1392 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
1393
1394         * expr.c (gfc_type_convert_binary): Typo in comment.
1395
1396 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
1397
1398         * check.c (gfc_check_selected_int_kind): New function.
1399         * intrinsic.h: Prototype it.
1400         * intrinsic.c (add_function): Use it.
1401         * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
1402           BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
1403
1404 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
1405
1406         * check.c (gfc_check_int): improve checking of optional kind
1407         * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER
1408
1409 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
1410
1411         * check.c (gfc_check_achar): New function
1412         * intrinsic.h: Prototype it.
1413         * intrinsic.c (add_function): Use it.
1414
1415 2005-02-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1416
1417         * trans-stmt.c (generate_loop_for_temp_to_lhs,
1418         generate_loop_for_rhs_to_temp): Remove if whose condition is
1419         always true.
1420
1421 2005-02-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1422
1423         * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
1424         (gfc_use_derived): ... this function.
1425
1426 2005-02-09  Richard Henderson  <rth@redhat.com>
1427
1428         * f95-lang.c (gfc_init_builtin_functions): Call
1429         build_common_builtin_nodes; do not define any functions handled
1430         by it.
1431
1432 2005-02-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1433
1434         * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for
1435         EXPR_SUBSTRING.
1436         (gfc_is_constant_expr): Check 'ref' to determine if substring
1437         reference is constant.
1438         (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'.
1439         (check_init_expr, check_restricted): Check 'ref' instead of 'op1'
1440         and 'op2'.
1441         * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'.
1442
1443 2005-02-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1444
1445         * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save,
1446         gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data,
1447         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
1448         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
1449         gfc_add_procedure): Add argument.
1450         * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name,
1451         gfc_match_null, match_type_spec, match_attr_spec,
1452         gfc_match_formal_arglist, match_result, gfc_match_function_decl):
1453         Update callers to match.
1454         (gfc_match_entry) : Likewise, fix comment typo.
1455         (gfc_match_subroutine, attr_decl1, gfc_add_dimension,
1456         access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc,
1457         gfc_match_derived_decl): Update callers.
1458         * interface.c (gfc_match_interface): Likewise.
1459         * match.c (gfc_match_label, gfc_add_flavor,
1460         gfc_match_call, gfc_match_common, gfc_match_block_data,
1461         gfc_match_namelist, gfc_match_module, gfc_match_st_function):
1462         Likewise.
1463         * parse.c (parse_derived, parse_interface, parse_contained),
1464         primary.c (gfc_match_rvalue, gfc_match_variable): Likewise.
1465         * resolve.c (resolve_formal_arglist, resolve_entries): Update callers.
1466         * symbol.c (check_conflict, check_used): Add new 'name' argument,
1467         use when printing error message.
1468         (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy,
1469         gfc_add_generic, gfc_add_in_common, gfc_add_data,
1470         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
1471         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
1472         gfc_add_procedure): Add new 'name' argument.  Pass along to
1473         check_conflict and check_used.
1474         (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic,
1475         gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental,
1476         gfc_add_pure, gfc_add_recursive, gfc_add_intent,
1477         gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new
1478         argument in calls to any of the modified functions.
1479
1480 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1481
1482         * gfortran.texi: Don't give last update date.
1483
1484 2006-01-30  Richard Henderson  <rth@redhat.com>
1485
1486         * options.c (gfc_init_options): Zero flag_errno_math.
1487
1488 2005-01-29  Paul Brook  <paul@codesourcery.com>
1489
1490         PR fortran/18565
1491         * check.c (real_or_complex_check): New function.
1492         (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions.
1493         * intrinsic.c (add_functions): Use new check functions.
1494         * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc):
1495         Add prototypes.
1496
1497 2005-01-29  Steven G. Kargl  <kargls@comcast.net>
1498
1499         PR fortran/19589
1500         * expr.c (gfc_check_assign):  Check for conformance of logical operands
1501
1502 2004-01-27  Steven Bosscher  <stevenb@suse.de>
1503
1504         * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
1505         TREE_USED for all labels.
1506         (gfc_trans_entry_master_switch): Use it instead of building a
1507         label by hand.
1508         * trans-io.c (add_case): Likewise.
1509         * trans-stmt.c (gfc_trans_integer_select): Likewise.
1510
1511 2004-01-23  Paul Brook  <paul@codesourcery.com>
1512         Steven G. Kargl  <kargls@comcast.net>
1513
1514         PR fortran/17941
1515         * arith.c (gfc_convert_real): Remove sign handling.
1516         * primary.c (match_digits): Allow whitespace after initial sign.
1517         (match_real_const): Handle signs here.  Allow whitespace after
1518         initial sign.  Remove dead code.
1519         (match_const_complex_part): Remove.
1520         (match_complex_part): Use match_{real,integer}_const.
1521         (match_complex_constant): Cross-promote integer types.
1522
1523 2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
1524
1525         PR fortran/19294
1526         * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
1527         transpose_c8 for complex types.
1528
1529 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
1530
1531         * data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
1532         trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
1533         trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
1534         Follow spelling conventions.
1535
1536 2005-01-22  Bud Davis  <bdavis9659@comcast.net>
1537
1538         PR fortran/19313
1539         * trans-io.c (gfc_trans_inquire): Added code to support
1540         pad.
1541
1542 2005-01-22  Steven G. Kargl  <kargls@comcast.net>
1543
1544         * intrinsic.c (make_alias):  Add standard argument.
1545         (add_functions): Update make_alias calls.
1546
1547 2005-01-22  Paul Brook  <paul@codesourcery.com>
1548
1549         * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
1550
1551 2005-01-22  Paul Brook  <paul@codesourcery.com>
1552
1553         * gfortran.h (gfc_check_access): Add prototype.
1554         * match.c (gfc_match_namelist): Remove TODO.
1555         * module.c (check_access): Rename ...
1556         (gfc_check_access): ... to this.  Boolify.  Update callers.
1557         * resolve.c (resolve_symbol): Check for private objects in public
1558         namelists.
1559
1560 2005-01-22  Paul Brook  <paul@codesourcery.com>
1561
1562         * primary.c (gfc_match_rvalue): Only apply implicit type if variable
1563         does not have an explicit type.
1564         (gfc_match_variable): Resolve implicit derived types in all cases.
1565         Resolve contained function types from their own namespace, not the
1566         parent.
1567         * resolve.c (resolve_contained_fntype): Remove duplicate sym->result
1568         checking.  Resolve from the contained namespace, not the parent.
1569
1570 2005-01-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1571
1572         PR fortran/19543
1573         * trans-const.c (gfc_conv_constant_to_tree): Give logical
1574         constants the correct type.
1575
1576         PR fortran/19194
1577         * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
1578         length parameters.
1579         (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
1580         pointer fields.
1581
1582 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
1583
1584         * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
1585         gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
1586         match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
1587         scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
1588         trans-io.c, trans-stmt.c, trans.c: Update copyright.
1589
1590 2005-01-17  Ira Rosen  <irar@il.ibm.com>
1591
1592         * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
1593
1594 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1595
1596         PR fortran/19182
1597         * error.c (error_char): Line-buffer errors / warnings.
1598
1599 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1600
1601         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
1602         unsigned issue.  Use build_int_cst instead of converting
1603         integer_zero_node.  Remove unnecessary conversion.
1604
1605         * trans-types.c (gfc_get_character_type_len): : Use
1606         gfc_charlen_type_node as basic type for the range field.
1607
1608         * trans-intrinsic.c (build_fixbound_expr,
1609         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
1610         gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
1611         gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
1612         of converting 'integer_zero_node' or 'integer_one_node'
1613         respectively.
1614         (gfc_conv_intrinsic_ishftc): Same, but store in local variable to
1615         evade re-building.
1616         (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
1617         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
1618         'build_int_cst' instead of converting 'integer_zero_node' or
1619         'integer_one_node' respectively.
1620
1621         * trans-intrinsic.c (gfc_conv_intrinsic_index,
1622         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
1623         'gfc'-prefix from local variable, remove dead code, use correct
1624         type when inserting argument.
1625
1626         * trans-intrinsic.c, trans-types.c: Update copyright years.
1627
1628 2005-01-16  Steven G. Kargl  <kargls@comcast.net>
1629
1630         PR 19168
1631         * resolve.c (check_case_overlap): Typo in comment.
1632         (validate_case_label_expr):  Fix up kinds of case values
1633         (resolve_select): Properly handle kind mismatches.
1634
1635 2004-01-16  Paul Brook  <paul@codesourcery.com>
1636
1637         PR fortran/17675
1638         * trans-common.c (translate_common): Remove duplicate function call.
1639         (finish_equivalences): Preserve alignment when biasing offsets.
1640
1641 2005-01-15  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de
1642
1643         * primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
1644         ASCII-like character encoding.
1645
1646 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
1647
1648         * resolve.c (compare_case): Cleanup.
1649
1650 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
1651
1652         * resolve.c (compare_case): Give arguments correct type.
1653
1654 2005-01-13  Kazu Hirata  <kazu@cs.umass.edu>
1655
1656         * iresolve.c, trans-common.c, trans-types.c: Fix comment
1657         typos.
1658
1659 2005-01-09  Paul Brook  <paul@codesourcery.com>
1660
1661         PR fortran/17675
1662         * trans-common.c (current_common, current_offset): Remove.
1663         (create_common): Add head argument.
1664         (align_segment): New function.
1665         (apply_segment_offset): New function.
1666         (translate_common): Merge code from new_segment.  Handle alignment.
1667         (new_segment): Remove.
1668         (finish_equivalences): Ensure proper alignment.
1669
1670 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1671
1672         * trans-const.c: Don't include unused math.h.
1673
1674         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
1675         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
1676         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
1677         trailing whitespace.
1678         (prepare_arg_info): Fix formatting, indenting and remove trailing
1679         whitespace.
1680         (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
1681         trailing whitespace.
1682
1683         * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
1684         gfc_constant_result, gfc_range_check, gfc_arith_power,
1685         eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
1686         gfc_real2complex, gfc_complex2int, gfc_complex2real,
1687         gfc_complex2complex): Fix whitespace issues.
1688         * check.c (must_be, type_check, numeric_check, int_or_real_check,
1689         logical_array_check, array_check, scalar_check, nonoptional_check,
1690         variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
1691         gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
1692         gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
1693         gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
1694         gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
1695         gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
1696         gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
1697         gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
1698         gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
1699         gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
1700         gfc_check_lbound, gfc_check_logical, min_max_args,
1701         gfc_check_min_max_integer, gfc_check_min_max_real,
1702         gfc_check_min_max_double, gfc_check_matmul,
1703         gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
1704         gfc_check_pack, gfc_check_precision, gfc_check_radix,
1705         gfc_check_range, gfc_check_real, gfc_check_repeat,
1706         gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
1707         gfc_check_set_exponent): Fix formatting issues.
1708         (gfc_check_size, gfc_check_sign): Alphabetize function order,
1709         remove whitespace-only line.
1710         (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
1711         gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
1712         gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
1713         gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
1714         gfc_check_random_number, gfc_check_random_seed,
1715         gfc_check_second_sub, gfc_check_system_clock,
1716         gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
1717         gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
1718         gfc_check_unlink_sub): Fix formatting issues.
1719
1720 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1721
1722         * gfortran.h: Remove outdated comment.  Don't include stdio.h
1723         explicitly.
1724
1725 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1726
1727         * gfortranspec.c (lang_specific_driver): Change year to 2005 in
1728         output of 'gfortran --version'.
1729
1730 2005-01-03  Steven G. Kargl  <kargls@comcast.net>
1731
1732         * arith.c: Add system.h; remove string.h
1733         * decl.c: Ditto
1734         * matchexp.c: Ditto
1735         * parse.c: Ditto
1736         * resolve.c: Ditto
1737         * st.c: Ditto
1738         * check.c: Remove stdlib.h and stdarg.h
1739         * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
1740         * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
1741         * f95-lang.c: Add system.h; remove stdio.h
1742         * interface.c: Add system.h; remove stdlib.h and string.h
1743         * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
1744         * io.c: Remove string.h
1745         * simplify.c: Ditto
1746         * match.c: Remove stdarg.h and string.h
1747         * misc.c: Update copyright; add system.h; remove stdlib.h,
1748         string.h, and sys/stat.h
1749         * module.c: Add system.h; remove string.h, stdio.h, errno.h,
1750         unistd.h, and time.h
1751         * option.c: Remove string.h and stdlib.h
1752         * primary.c: Ditto
1753         * scanner.c: Update copyright; add system.h; remove stdlib.h,
1754         stdio.h, string.h, and strings.h
1755         * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
1756         * trans-array.c: Remove stdio.h and gmp.h
1757         * trans-const.c: Ditto
1758         * trans-expr.c: Ditto
1759         * trans-io.c: Ditto
1760         * trans-stmt.c: Ditto
1761         * trans.c: Ditto
1762         * trans-intrinsic.c: Remove stdio.h and string.h
1763
1764 2004-12-29  Steven G. Kargl  <kargls@comcast.net>
1765
1766         * gfortran.h (gfc_case): fix typo in comment.
1767
1768 2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1769
1770         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
1771         logical shift.  Call fold.  Remove 0-bit shift shortcut.
1772         (gfc_conv_intrinsic_ishftc): Convert first argument to at least
1773         4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
1774         result if width(arg 1) < 4 bytes.  Call fold.
1775
1776         PR fortran/19032
1777         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
1778         in front of function to match the standard.  Correct handling
1779         of MODULO.
1780
1781 2004-12-27  Andrew Pinski  <pinskia@physics.uc.edu>
1782
1783         * trans-expr.c (gfc_conv_cst_int_power): Only check for
1784         flag_unsafe_math_optimizations if we have a float type.
1785
1786 2004-12-23  Steven G. Kargl  <kargls@comcast.net>
1787
1788         * gfortran.texi: Fix typo.
1789
1790 2004-12-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1791
1792         * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
1793         comment typo.
1794
1795 2004-12-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1796
1797         PR fortran/18993
1798         * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
1799         (gfc_match_nullify): Make sure that ')' is in front of the end of
1800         statement.
1801
1802         * scanner.c (skip_fixed_comments): Fix typo in comment preceding
1803         function.
1804
1805 2004-12-14  Richard Henderson  <rth@redhat.com>
1806
1807         * gfortran.h (gfc_expr.function.name): Make const.
1808         (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
1809         (gfc_get_string): Update prototype.
1810         * iresolve.c: Include tree.h.
1811         (string_node, HASH_SIZE, string_head, hash): Remove.
1812         (gfc_get_string): Use vsnprintf, get_identifier.
1813         (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
1814         * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
1815         (gfc_done_1): Don't call gfc_iresolve_done_1.
1816         * module.c (mio_allocated_string): Take and return const char *,
1817         instead of modifying char**.
1818         (mio_expr): Update to match.
1819         * resolve.c (pure_function): Constify name argument.
1820         (resolve_function): Constify name.
1821         * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
1822
1823 2004-12-12  Richard Henderson  <rth@redhat.com>
1824
1825         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
1826         gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
1827         gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
1828         gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
1829         gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
1830         gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
1831         gfc_resolve_unpack: Use PREFIX.
1832
1833 2004-12-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1834
1835         PR fortran/18869
1836         * match.c (gfc_match_common): Skip whitespace.
1837
1838 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
1839
1840         PR fortran/16581
1841         * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
1842         gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
1843         integer kind check; Issue error for -std=f95 when needed.
1844         * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
1845         GFC_STD_F95.
1846         * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
1847         Promote arguments to same kind.
1848
1849 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
1850         Paul Brook  <paul@codesourcery.com>
1851
1852         PR fortran/16222
1853         * resolve.c (gfc_resolve_iterator_expr): New function.
1854         (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
1855         start, end and stride to correct type.
1856         (resolve_code): Pass extra argument.
1857         * array.c (resolve_array_list): Pass extra argument.
1858         * gfortran.h (gfc_resolve): Add prototype.
1859         * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
1860         Handle real type iterators.
1861
1862 2004-12-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1863
1864         PR fortran/17175
1865         * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
1866         same kind as C's 'int'.
1867         (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
1868
1869 2004-12-08  Richard Henderson  <rth@redhat.com>
1870
1871         * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
1872         to the output expression.
1873         * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
1874         warning conversion.
1875         (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
1876         to index kind.
1877
1878 2004-12-08  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1879
1880         PR fortran/18826
1881         * resolve.c (resolve_code): Impose correct restrictions on
1882         assigned variable.
1883
1884         * decl.c (gfc_match_end): Use locus of END when eos is an error.
1885
1886 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
1887         Paul Brook  <paul@codesourcery.com>
1888
1889         * check.c (gfc_check_flush, gfc_check_fnum): New functions.
1890         (gfc_check_fstat, gfc_check_fstat_sub): New functions.
1891         (gfc_check_stat, gfc_check_stat_sub): New functions.
1892         * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
1893         * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
1894         fstat, and stat to intrinsics symbol tables.
1895         * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
1896         (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
1897         * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
1898         (gfc_resolve_stat, gfc_resolve_flush): New functions.
1899         (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
1900         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
1901
1902 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
1903
1904         * intrinsic.c: Fix and add comments, fix function declarations
1905         (OPTIONAL,REQUIRED): New symbols
1906         (add_functions,add_subroutines): Use symbols
1907         (gmp.h): Remove unused include
1908
1909 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1910
1911         * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
1912         in diagnostics.
1913
1914 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1915
1916         * options.c (gfc_post_options): Don't clear flag_inline_functions.
1917
1918 2004-11-20  Steven G. Kargl  <kargls@comcast.net>
1919
1920         * check.c (gfc_check_getcwd_sub): Fix seg fault.
1921
1922         * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
1923         gfc_check_unlink,gfc_check_unlink_sub): New functions
1924         * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
1925         * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
1926         exit to intrinsics symbol tables.
1927         * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
1928         gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
1929         gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
1930         gfc_resolve_unlink_sub): Add and sort prototypes.
1931         * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
1932         gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
1933         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
1934
1935 2004-11-16  Paul Brook  <paul@codesourcery.com>
1936
1937         PR fortran/13010
1938         * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
1939         (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
1940         * trans-types.c (gfc_get_dtype): Accept array type rather than element
1941         type.
1942         (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
1943         (gfc_get_array_type_bounds): Ditto.
1944         (gfc_get_derived_type): Recurse into derived type pointers.
1945         * trans-types.h (gfc_get_dtype): Add prototype.
1946         * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
1947
1948 2004-11-15  Paul Brook  <paul@codesourcery.com>
1949
1950         * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
1951
1952 2004-11-10  Paul Brook  <paul@codesourcery.com>
1953
1954         PR fortran/18375
1955         * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
1956         * trans-io.c (transfer_array_component): Ditto.
1957
1958 2004-11-10  Paul Brook  <paul@codesourcery.com>
1959
1960         * invoke.texi: Fix typo.
1961
1962 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1963
1964         * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
1965         gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
1966         module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
1967         trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
1968         trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
1969
1970 2004-11-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1971
1972         PR fortran/18023
1973         * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
1974
1975 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1976
1977         * gfortranspec.c: Replace GNU CC with GCC.
1978
1979 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1980
1981         * gfortranspec.c (lang_specific_driver): Change year to 2004.
1982
1983 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1984
1985         PR fortran/18111
1986         *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
1987         hidden parameters.
1988
1989 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1990
1991         PR fortran/15164
1992         * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
1993         module procedures as if they were module variables.
1994
1995 2004-11-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1996
1997         PR fortran/17535
1998         PR fortran/17583
1999         PR fortran/17713
2000         * module.c (write_symbol1): Set module_name for dummy arguments.
2001
2002 2004-11-02  Paul Brook  <paul@codesourcery.com>
2003
2004         * intrinsic.c (check_intrinsic_standard): Include error locus.
2005         Remove VLA.
2006         (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
2007         locus to check_intrinsic_standard.
2008
2009 2004-10-31  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2010
2011         PR fortran/17590
2012         * gfortran.h: Change GFC_STD_* flags to more appropriate
2013         ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
2014         gfc_option_t): Add field for warning about use of nonstandard
2015         intrinsics.
2016         * intrinsic.c (add_sym): Add parameter for standard version, check
2017         this against current standard.
2018         (add_sym_0): Pass standard parameter to add_sym.
2019         (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
2020         (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
2021         (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
2022         (make_generic): Add parameter for standard, check this
2023         against currently selected standard.
2024         (add_functions, add_subroutines): Add parameter to tell which
2025         standard an intrinsic belongs to.
2026         (check_intrinsic_standard): New function.
2027         (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
2028         (gfc_intrinsic_sub_interface): Ditto.
2029         * lang.opt: Add Wnonstd-intrinsics option.
2030         * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
2031         init new warning.
2032         (set_Wall): Add warning about nonstd intrinsics.
2033         (gfc_handle_option): Change to use new GFC_STD_* flags,
2034         handle new warning.
2035         * invoke.texi: Update manual to include -Wnonstd-intrinsics.
2036
2037 2004-10-30  Andrew Pinski  <pinskia@physics.uc.edu>
2038
2039         * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
2040
2041 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2042
2043         * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
2044
2045 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2046
2047         * trans.c (gfc_trans_code): Set global locus after recursing. Fix
2048         comment typo.
2049
2050 2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>
2051
2052         * check.c (gfc_check_rand): Allow missing optional argument.
2053         (gfc_check_irand): Ditto.
2054         * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
2055
2056 2004-10-28  Scott Robert Ladd  <scott.ladd@coyotegulch.com>
2057
2058         PR fortran/13490, PR fortran/17912
2059         * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
2060         * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
2061         * gcc/fortran/arith.c: Added support for an "asymmetric integer"
2062         warning when compiling with pedantic.
2063         * gcc/fortran/arith.c: Set minimum integer values to reflect
2064         realities of two's complement signed integers. Added
2065         pedantic minimum.
2066
2067 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
2068
2069         * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
2070         (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
2071         link it in.
2072
2073 2004-10-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2074
2075         * trans-decl.c (generate_local_decl): Simplify logic, fix comment
2076         typo.
2077         (gfc_generate_function_code): Fix formatting issue.
2078
2079 2004-10-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2080
2081         * module.c: Fix formatting issues.
2082
2083 2004-10-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2084
2085         * module.c (mio_interface_rest): Set where member of interface
2086         while loading.
2087
2088 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2089
2090         PR fortran/17901
2091         * options.c (gfc_handle_option): Add break after handing the
2092         J/M option.
2093
2094 2004-10-08  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
2095
2096         * arith.c: Fix formatting issues.
2097
2098 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2099
2100         PR fortran/17676
2101         * resolve.c (resolve_operator): Use correct operator name in message.
2102
2103 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2104
2105         * primary.c (match_boz_constant): Allow kind parameter suffixes.
2106         Move standard warning further to the front.
2107
2108 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2109
2110         * trans-stmt.c: Fix a comment typo.
2111
2112 2004-10-07  Paul Brook  <paul@codesourcery.com>
2113
2114         PR fortran/17678
2115         * trans-array.c (gfc_trans_deferred_array): Leave use associated
2116         variables alone.
2117
2118 2004-10-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2119
2120         PR fortran/17568
2121         * simplify.c (twos_complement): New function.
2122         (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
2123
2124         * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
2125
2126 2004-10-06  Paul Brook  <paul@codesourcery.com>
2127
2128         * trans-stmt.c (gfc_trans_simple_do): New function.
2129         (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
2130         loop.  Update comments.
2131
2132 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2133
2134         PR fortran/17283
2135         * iresolve.c (gfc_resolve_pack): Choose function depending if mask
2136         is scalar.
2137
2138         PR fortran/17631
2139         * intrinsic.c (add_sym_5): Remove.
2140         (add_subroutines): Add resolution function for MVBITS.
2141         * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
2142         MVBITS
2143         * iresolve.c (gfc_resolve_mvbits): New function.
2144         (gfc_resolve_random_number): Remove empty line at end of function.
2145
2146         * trans-const.c (gfc_build_cstring_const): New function.
2147         (gfc_init_cst): Use new function.
2148         * trans-const.h (gfc_build_cstring_const): Add prototype.
2149         * trans-io.c (set_string, set_error_locus): Use new function.
2150         * trans-stmt.c (gfc_trans_goto): Use new function.
2151
2152         PR fortran/17708
2153         * parse.c (accept_statement): Don't treat END DO like END IF and
2154         END SELECT.
2155         (parse_do_block): Generate possible END DO label inside END DO
2156         block.
2157
2158         PR fortran/17776
2159         * check.c (gfc_check_system_sub): New function.
2160         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
2161         * intrinsic.c (add_functions): Add 'system'.
2162         (add_subroutines): Add 'system'.
2163         * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
2164         Move prototypes to other suborutines.
2165         (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
2166         Add prototype.
2167         (gfc_resolve_system_clock): Fix formatting of prototype.
2168         * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
2169         functions.
2170         * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
2171         GFC_ISYM_SYSTEM.
2172
2173 2004-10-04  Erik Schnetter  <schnetter@aei.mpg.de>
2174
2175         * scanner.c (preprocessor_line): Accept preprocessor lines without
2176         file names.  Check file names for closing quotes.  Handle escaped
2177         quotes in file names.
2178
2179 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2180         Paul Brook  <paul@codesourcery.com>
2181
2182         * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
2183         Use gfc_get_expr_charlen.
2184         * trans-expr.c (gfc_get_expr_charlen): New function.
2185         * trans.h (gfc_get_expr_charlen): Add prototype.
2186
2187 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
2188
2189         * trans-intrinsic.c: Fix a comment typo.
2190
2191 2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2192
2193         * simplify.c (range_check): Remove blank line at beginning of function.
2194         (gfc_simplify_dint): Same at end of function.
2195         (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
2196         (gfc_simplify_bound): Fix indentation.
2197         (gfc_simplify_log10): Simplify calculation.
2198         (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
2199         of function.
2200         (gfc_simplify_nearest): Same at end of function.
2201         (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
2202         function.
2203         (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
2204         gfc_simplify_spacing): Simplify calulations.
2205
2206 2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>
2207
2208         * trans-intrinsic.c: Fix comments on spacing and rrspacing
2209         (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
2210
2211 2004-10-01  Jan Hubicka  <jh@suse.cz>
2212
2213         * f95-lang.c (gfc_expand_function): Update call of
2214         tree_rest_of_compilation.
2215         * trans-decl.c (gfc_generate_constructors): Likewise.
2216
2217 2004-09-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2218
2219         * trans-intrinsic.c: Comment fixes.
2220
2221 2004-09-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2222
2223         * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
2224
2225 2004-09-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2226
2227         * trans-types.c (gfc_return_by_reference): Remove superfluous
2228         assertion.
2229
2230         * intrinsic.h (gfc_resolve_getcwd): Update prototype.
2231         * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
2232
2233         PR fortran/17615
2234         * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
2235         function to determine return type.
2236
2237 2004-09-20  Jan Hubicka  <jh@suse.cz>
2238
2239         * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
2240         tree.
2241         (gfc_generate_function_code): Likewise.
2242
2243 2004-09-20  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2244
2245         PR fortran/15957
2246         * simplify.c (gfc_simplify_reshape): Set shape of return value
2247         correctly.
2248
2249 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
2250             Zack Weinberg  <zack@codesourcery.com>
2251
2252         * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
2253         enumeration constants.
2254
2255 2004-09-17  Paul Brook  <paul@codesourcery.com>
2256
2257         * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
2258         (gfc_linebuf_header_size): Define.
2259         * scanner.c (load_file): Use it.
2260
2261 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
2262
2263         * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
2264         interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
2265         resolve.c, scanner.c, trans-array.c, trans-array.h,
2266         trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
2267         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
2268         trans.h: Fix comment typos.  Follow spelling conventions.
2269
2270 2004-09-16  Victor Leikehman  <lei@il.ibm.com>
2271
2272         PR/15364
2273         * trans-io.c (transfer_array_component): New function.
2274         (transfer_expr): For array fields, call transfer_array_component.
2275
2276 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
2277
2278         * gfortran.texi: Fix a typo.
2279
2280 2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2281
2282         * parse.c (eof_buf): Rename eof to eof_buf.
2283         (unexpected_eof): Same.
2284         (gfc_parse_file): Same.
2285
2286 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
2287
2288         * check.c (gfc_check_getcwd_sub): New function.
2289         * gfortran.h (GFC_ISYM_GETCWD): New symbol.
2290         * intrinsic.c (add_functions): Add function definition;
2291         Use symbol.
2292         * intrinsic.c (add_subroutines): Add subroutine definitions.
2293         * intrinsic.h: Add prototypes.
2294         * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
2295         New functions.
2296         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
2297
2298 2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2299
2300         PR fortran/16485
2301         * module.c (write_symbol): Don't fill in module name here.
2302         (write_symbol0): Fill in here instead.
2303
2304 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
2305
2306         * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
2307         trans-array.c, trans-common.c, trans-expr.c,
2308         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
2309         comment typos.  Follow spelling conventions.
2310
2311 2004-09-09  Paul Brook  <paul@codesourcery.com>
2312
2313         * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
2314
2315 2004-09-08  Paul Brook  <paul@codesourcery.com>
2316
2317         * array.c: Don't include assert.h.
2318         * data.c: Don't include assert.h.  Replace assert and abort with
2319         gcc_assert and gcc_unreachable.
2320         * dependency.c: Ditto.
2321         * f95-lang.c: Ditto.
2322         * iresolve.c: Ditto.
2323         * resolve.c: Ditto.
2324         * simplify.c: Ditto.
2325         * symbol.c: Ditto.
2326         * trans-array.c: Ditto.
2327         * trans-common.c: Ditto.
2328         * trans-const.c: Ditto.
2329         * trans-decl.c: Ditto.
2330         * trans-expr.c: Ditto.
2331         * trans-intrinsic.c: Ditto.
2332         * trans-io.c: Ditto.
2333         * trans-stmt.c: Ditto.
2334         * trans-types.c: Ditto.
2335         * trans.c: Ditto.
2336
2337 2004-09-07  Per Bothner  <per@bothner.com>
2338         Paul Brook  <paul@codesourcery.com>
2339
2340         * error.c (show_locus): Handle mapped locations.
2341         * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
2342         * gfortran.h: Include input.h.
2343         (struct gfc_linebuf): Use source_location.
2344         * scanner.c (get_file): Initialize linemap.
2345         (preprocessor_line): Pass extra argument to get_file.
2346         (load_file): Ditto.  Setup linemap.
2347         (gfc_new_file): Handle mapped locations.
2348         * trans-common.c (build_field, build_equiv_decl, build_common_decl):
2349         Set decl source locations.
2350         (gfc_trans_common): Set blank common block location.
2351         * trans-decl.c (gfc_set_decl_location): New function.
2352         (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
2353         (trans_function_start): Move call to gfc_set_backend_locus..
2354         (build_function_decl): ... to here.
2355         (build_entry_thunks): Set and restore the backend locus.
2356         (gfc_generate_constructors): Remove excess arguments to
2357         init_function_start.
2358         (gfc_generate_block_data): Add comments.  Set the decl locus.
2359         * trans-io.c (set_error_locus): Handle mapped locations.
2360         * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
2361         (gfc_trans_code): Use SET_EXPR_LOCATION.
2362         (gfc_generate_code): Override the location of the new symbol.
2363         * trans.h (gfc_set_decl_location): Add prototype.
2364
2365 2004-08-31  Paul Brook  <paul@codesourcery.com>
2366
2367         * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
2368
2369 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2370
2371         PR fortran/15327
2372         * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
2373         strings.
2374
2375 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2376
2377         PR fortran/16400
2378         PR fortran/16404
2379         (port from g95)
2380         * resolve.c (resolve_transfer): New function.
2381         (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
2382
2383 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2384
2385         PR fortran/16579
2386         * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
2387         unsigned char.
2388
2389 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2390
2391         * CONTRIB, NEWS, README, TODO: Remove obsolete files.
2392
2393 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2394
2395         PR fortran/17244
2396         * trans-types.c (gfc_return_by_reference): Remove TODO error,
2397         add comment pointing out possible issue WRT compatibility with g77.
2398
2399 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2400
2401         * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
2402         all occurences of 'gfc_strlen_type_node' by
2403         'gfc_charlen_type_node'.
2404         * trans-types.h: Same. Also update comment accordingly.
2405
2406 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2407
2408         * primary.c: Update copyright boilerplate to say GCC.
2409         * f95-lang.c: Change initial comment to say gfortran.
2410
2411 2004-08-31  Paul Brook  <paul@codesourcery.com>
2412
2413         * trans-types.h: Add comments.
2414         (intmax_type_node, string_type_node, const_string_type_node): Remove.
2415
2416 2004-08-30  Richard Henderson  <rth@redhat.com>
2417
2418         * Make-lang.in (fortran/f95-lang.o): Update dependencies.
2419         (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
2420         * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
2421         c_long, c_long_long.
2422         (gfc_logical_info): Add c_bool.
2423         (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
2424         * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
2425         rather than gfc_int[48]_type_node for allocate choice.
2426         * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
2427         local copies of some kind type nodes.
2428         (gfc_build_builtin_function_decls): Likewise.
2429         * trans-expr.c (gfc_conv_power_op): Likewise.
2430         * trans-intrinsic.c (gfc_conv_intrinsic_index,
2431         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
2432         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
2433         * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
2434         gfc_trans_character_select, gfc_trans_allocate): Likewise.
2435         * trans-io.c (gfc_pint4_type_node): Move into ...
2436         (gfc_build_io_library_fndecls): ... here.  Cache local copies of
2437         some kind type nodes.
2438         * trans-types.c (gfc_type_nodes): Remove.
2439         (gfc_character1_type_node, gfc_strlen_type_node): New.
2440         (gfc_integer_types, gfc_logical_types): New.
2441         (gfc_real_types, gfc_complex_types): New.
2442         (gfc_init_kinds): Fill in real mode_precision.
2443         (gfc_build_int_type, gfc_build_real_type): New.
2444         (gfc_build_complex_type, gfc_build_logical_type): New.
2445         (c_size_t_size): New.
2446         (gfc_init_types): Loop over kinds.
2447         (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
2448         (gfc_get_complex_type, gfc_get_logical_type): Likewise.
2449         (gfc_get_character_type_len): Likewise.
2450         (gfc_type_for_size): Loop over kinds; use a reduced set of
2451         unsigned type nodes.
2452         (gfc_type_for_mode): Loop over kinds.
2453         (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
2454         (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
2455         * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
2456         F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
2457         F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
2458         F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
2459         F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
2460         F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
2461         gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
2462         gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
2463         gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
2464         gfc_complex8_type_node, gfc_complex16_type_node,
2465         gfc_logical1_type_node, gfc_logical2_type_node,
2466         gfc_logical4_type_node, gfc_logical8_type_node,
2467         gfc_logical16_type_node, gfc_strlen_kind): Remove.
2468         (gfc_character1_type_node): Turn in to a variable.
2469         (gfc_strlen_type_node): Likewise.
2470
2471 2004-08-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2472
2473         * gfortran.h (gfc_namespace): Add new field is_block_data.
2474         * parse.c (accept_statement): Remove special handling for BLOCK DATA.
2475         (parse_block_data): Record BLOCK DATA name, set is_block_data field.
2476         * trans.c (gfc_generate_code): Handle BLOCK DATA units.
2477         * trans.h (gfc_generate_block_data): Add prototype.
2478         * trans-decl.c (gfc_generate_block_data): New function.
2479
2480 2004-08-29  Richard Henderson  <rth@redhat.com>
2481
2482         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
2483         * trans-types.c (gfc_init_kinds): Reject integer kinds larger
2484         than two HOST_WIDE_INT.
2485
2486 2004-08-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2487
2488         PR fortran/13910
2489         * decl.c (free_variable, free_value, gfc_free_data, var_list,
2490         var_element, top_var_list, match_data_constant, top_val_list,
2491         gfc_match_data): Move here from match.c.
2492         (match_old_style_init): New function.
2493         (variable_decl): Match old-style initialization.
2494         * expr.c (gfc_get_variable_expr): New function.
2495         * gfortran.h (gfc_get_variable_expr): Add prototype.
2496         * gfortran.texi: Start documentation for supported extensions.
2497         * match.c: Remove the functions moved to decl.c.
2498         * match.h (gfc_match_data): Move prototype to under decl.c.
2499         * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
2500         comments.
2501
2502 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
2503         Paul Brook  <paul@codesourcery.com>
2504
2505         * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
2506         * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
2507         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
2508         (build_builtin_fntypes): New function.
2509         (gfc_init_builtin_functions): Use it.
2510         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
2511         and GFC_ISYM_ERF{,C}.
2512         (gfc_c_int_kind): Declare.
2513         * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
2514         * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
2515         gfc_resolve_g77_math1): Add prototypes.
2516         * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
2517         * mathbuiltins.def: Add comment.  Change third argument.  Use
2518         DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
2519         * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
2520         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
2521         * trans-types.c (gfc_c_int_kind): Declare.
2522         (gfc_init_kinds): Set it.
2523
2524 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
2525         Paul Brook  <paul@codesourcery.com>
2526
2527         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
2528         (gfc_check_f, gfc_simplify_f): Add f0.
2529         * intrinsic.c (do_check): Call f0.  Flatten.
2530         (add_sym_0): Fix prototype.  Set f0.
2531         (add_functions): Add getgid, getgid and getuid.
2532         (resolve_intrinsic): Remove obsolete comment.
2533         (do_simplify): Call f0.
2534         * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
2535         gfc_resolve_getuid): Add prototypes.
2536         * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
2537         gfc_resolve_getuid): New functions.
2538         * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
2539         GFC_ISYM_GET?ID.
2540
2541 2004-08-28  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2542
2543         * error.c (gfc_error_init_1): Remove blank line in front of
2544         function body. Add missing blank.
2545         (gfc_buffer_error, error_char, error_string): Remove blank line in
2546         front of function body.
2547         (show_locus): Add comma in comment.
2548         (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
2549         gfc_push_error, gfc_pop_error): Remove blank line in front of
2550         function body.
2551         (gfc_get_errors): Typo fix in comment in front of function. Remove
2552         blank line in front of function body.
2553
2554 2004-08-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2555
2556         * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
2557         variable declaration of same name.
2558         * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
2559         intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
2560         resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
2561         Replace all calls to gfc_default_*_kind with variable accesses.
2562         * trans-types.c: Same as above.
2563         (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
2564         static qualifier. Replace all occurences.
2565         (gfc_default_*_kind): Remove functions.
2566
2567 2004-08-26  Richard Henderson  <rth@redhat.com>
2568
2569         * arith.c: Include system.h, not real system headers.
2570         (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
2571         DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
2572         GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
2573         GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
2574         (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
2575         gfc_index_integer_kind, gfc_default_integer_kind,
2576         gfc_default_real_kind,gfc_default_double_kind,
2577         gfc_default_character_kind, gfc_default_logical_kind,
2578         gfc_default_complex_kind, validate_integer, validate_real,
2579         validate_logical, validate_character,
2580         gfc_validate_kind): Move to trans-types.c.
2581         (gfc_set_model_kind): Use gfc_validate_kind.
2582         (gfc_set_model): Just copy the current precision to default.
2583         (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
2584         * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
2585         * gfortran.h: Update file commentary.
2586         * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
2587         (gfc_default_integer_kind_1, gfc_default_real_kind_1,
2588         gfc_default_double_kind_1, gfc_default_character_kind_1,
2589         gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
2590         (gfc_init_kinds): New.
2591         (gfc_init_types): Don't set gfc_index_integer_kind here.
2592         * trans-types.h (gfc_init_kinds): Declare.
2593         * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
2594
2595 2004-08-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2596
2597         * check.c (gfc_check_atan2): New function.
2598         * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
2599         * intrinsic.h (gfc_check_atan2): Add prototype.
2600
2601 2004-08-25  Richard Henderson  <rth@redhat.com>
2602
2603         * arith.c (gfc_validate_kind): Add may_fail argument; abort if
2604         false and we don't validate the kind.
2605         (gfc_check_integer_range, gfc_check_real_range): Update to match.
2606         * check.c (kind_check): Likewise.
2607         * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
2608         (match_char_spec, match_logical_spec): Likewise.
2609         * gfortran.h (gfc_validate_kind): Likewise.
2610         * options.c (gfc_handle_option): Likewise.
2611         * primary.c (match_integer_constant, match_real_constant,
2612         match_string_constant, match_logical_constant,
2613         match_const_complex_part): Likewise.
2614         * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
2615         gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
2616         gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
2617         gfc_simplify_maxexponent, gfc_simplify_minexponent,
2618         gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
2619         gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
2620         gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
2621         gfc_simplify_tiny): Likewise.
2622         * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
2623         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
2624         prepare_arg_info): Likewise.
2625
2626 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2627
2628         * expr.c (gfc_check_assign): Add comment. Add new warning.
2629         * trans-expr.c (gfc_conv_function_call): Correctly dereference
2630         result of pointer valued function when not in pointer assignment.
2631
2632 2004-08-25  Paul Brook  <paul@codesourcery.com>
2633
2634         * config-lang.in: Remove dead commented line.
2635         * module.c: Replace g95 with gfortran in comment.
2636
2637 2004-08-25  Paul Brook  <paul@codesourcery.com>
2638
2639         PR fortran/17190
2640         * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
2641
2642 2004-08-25  Paul Brook  <paul@codesourcery.com>
2643
2644         PR fortran/17144
2645         * trans-array.c (gfc_trans_allocate_temp_array): Remove
2646         string_length argument.
2647         (gfc_trans_array_ctor_element): New function.
2648         (gfc_trans_array_constructor_subarray): Use it.
2649         (gfc_trans_array_constructor_value): Ditto.  Handle constant
2650         character arrays.
2651         (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
2652         (gfc_trans_array_constructor): Use them.
2653         (gfc_add_loop_ss_code): Update to new gfc_ss layout.
2654         (gfc_conv_ss_descriptor): Remember section string length.
2655         (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
2656         (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
2657         (gfc_conv_expr_descriptor): Ditto.
2658         (gfc_conv_loop_setup): Ditto.  Spelling fixes.
2659         * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
2660         * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
2661         * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
2662         (gfc_conv_variable): Set string_length from section.
2663         (gfc_conv_function_call): Remove extra argument.
2664         (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
2665         * trans-types.c (gfc_get_character_type_len): New function.
2666         (gfc_get_character_type): Use it.
2667         (gfc_get_dtype): Return zero for internal types.
2668         * trans-types.h (gfc_get_character_type_len): Add prototype.
2669         * trans.h (struct gfc_ss): Move string_length out of union.
2670
2671 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2672
2673         * trans.h (build2_v, build3_v): New macros.
2674         (build_v): Remove.
2675         * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
2676         build.
2677         * trans-array.c (gfc_conv_descriptor_data,
2678         gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
2679         gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
2680         gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
2681         gfc_trans_allocate_temp_array,
2682         gfc_trans_array_constructor_subarray,
2683         gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
2684         gfc_trans_array_bound_check, gfc_conv_array_index_offset,
2685         gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
2686         gfc_conv_array_ref, gfc_trans_preloop_setup,
2687         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
2688         gfc_conv_loop_setup, gfc_array_init_size,
2689         gfc_conv_array_initializer, gfc_trans_array_bounds,
2690         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
2691         gfc_conv_expr_descriptor, gfc_conv_array_parameter,
2692         gfc_trans_deferred_array): Use buildN and buildN_v macros instead
2693         of build and build_v as appropriate.
2694         * trans-common.c (create_common): Same.
2695         * trans-decl.c (gfc_trans_auto_character_variable,
2696         gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
2697         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
2698         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
2699         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
2700         gfc_conv_expr_op, gfc_conv_function_call,
2701         gfc_trans_structure_assign): Same.
2702         * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
2703         gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
2704         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
2705         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
2706         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
2707         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
2708         gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
2709         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
2710         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
2711         gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
2712         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
2713         gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
2714         gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
2715         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
2716         gfc_conv_intrinsic_iargc): Same.
2717         * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
2718         set_flag, add_case, io_result, transfer_namelist_element,
2719         transfer_expr): Same.
2720         * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
2721         gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
2722         gfc_trans_integer_select, gfc_trans_logical_select,
2723         gfc_trans_character_select, gfc_trans_forall_loop,
2724         gfc_trans_nested_forall_loop, gfc_do_allocate,
2725         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
2726         compute_inner_temp_size, compute_overall_iter_number,
2727         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
2728         gfc_trans_forall_1, gfc_evaluate_where_mask,
2729         gfc_trans_where_assign, gfc_trans_allocate): Same.
2730         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
2731         * trans.c (gfc_add_modify_expr, gfc_finish_block,
2732         gfc_build_array_ref, gfc_build_function_call,
2733         gfc_trans_runtime_check): Same.
2734
2735 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2736
2737         * trans-const.c (gfc_conv_mpz_to_tree): Change call to
2738         build_int_cst to build_int_cst_wide in accordance to Nathan's
2739         previous patch.
2740
2741 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
2742
2743         * trans-array.c (gfc_trans_array_constructor_value): Adjust
2744         build_int_cst calls.
2745         * trans-const.c (gfc_build_string_const, gfc_init_constants,
2746         gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
2747         * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
2748         gfc_trans_entry_master_switch): Likewise.
2749         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
2750         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
2751         * trans-io.c (add_case, set_error_locus,
2752         transfer_namelist_element, transfer_expr): Likewise.
2753         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
2754         gfc_trans_stop, gfc_trans_character_select): Likewise.
2755         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
2756         * trans.c (gfc_trans_runtime_check): Likewise.
2757
2758 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2759
2760         * trans-decl.c, trans-types.c: Add and remove blank lines as
2761         required.
2762
2763 2004-08-24  Richard Henderson  <rth@redhat.com>
2764
2765         * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
2766
2767 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2768
2769         * resolve.c (merge_argument_lists): Revert unintentionally
2770         committed change.
2771
2772 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2773
2774         * trans-decl.c (build_function_decl): Fix spelling in comment.
2775         (build_entry_thunks): Remove code with no function.
2776         (gfc_build_intrinsic_function_decls): Remove empty line.
2777
2778         * resolve.c (resolve_entries): Fix a bunch of comment typos.
2779
2780 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
2781
2782         * f95-lang.c (gfc_init_decl_processing): Adjust
2783         build_common_tree_nodes call.
2784
2785 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2786
2787         * trans-types.c: Spelling and formatting fixes.
2788
2789 2004-08-23  Richard Henderson  <rth@redhat.com>
2790
2791         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
2792         of going through an intermediate string.  Fix 32/64 int/long bug.
2793
2794 2004-08-23  Eric Christopher  <echristo@redhat.com>
2795
2796         * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
2797         usage. Use build_vector_type_for_mode for vector types.
2798
2799 2004-08-22  Richard Henderson  <rth@redhat.com>
2800
2801         PR 13465
2802         * data.c (find_con_by_offset): Search ordered list; handle
2803         elements with repeat counts.
2804         (gfc_assign_data_value_range): New.
2805         * gfortran.h (struct gfc_data_value): Make repeat unsigned.
2806         (gfc_assign_data_value_range): Declare.
2807         * match.c (top_val_list): Extract repeat count into a temporary.
2808         * resolve.c (values): Make left unsigned.
2809         (next_data_value): Don't decrement left.
2810         (check_data_variable): Use gfc_assign_data_value_range.
2811
2812 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2813
2814         * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
2815
2816 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2817
2818         * check.c (gfc_check_reduction): Rename to ...
2819         (check_reduction): ... this. Make static. Don't check type of
2820         first argument.
2821         (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
2822         * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
2823         SUM to use new check functions.
2824         (check_specific): Change logic to call new functions.
2825         * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
2826         Add prototypes.
2827         (gfc_check_reduction): Remove prototype.
2828
2829 2004-08-20  Paul Brook  <paul@codesourcery.com>
2830         Canqun Yang  <canqun@nudt.edu.cn>
2831
2832         PR fortran/17077
2833         * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
2834         for automatic arrays.
2835         * trans-types.c (gfc_get_nodesc_array_type): Add comment.
2836
2837 2004-08-19  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2838         (Port from g95)
2839
2840         PR fortran/17074
2841         * match.c (match_simple_forall, match_simple_where): Forward-declare.
2842         (gfc_match_if): Order statement list alphabetically, add WHERE and
2843         FORALL, remove double PAUSE.
2844         (gfc_match_simple_where, match_forall_header,
2845         gfc_match_simple_forall): New functions.
2846         (gfc_match_forall): Use match_forall_header.
2847
2848 2004-08-19  Paul Brook  <paul@codesourcery.com>
2849
2850         PR fortran/17091
2851         * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
2852         * symbol.c (gfc_clear_attr): Use memset.
2853
2854 2004-08-19  Paul Brook  <paul@codesourcery.com>
2855
2856         PR fortran/14976
2857         PR fortran/16228
2858         * data.c (assign_substring_data_value): Remove.
2859         (create_character_intializer): New function.
2860         (gfc_assign_data_value): Track the typespec for the current
2861         subobject.  Use create_character_intializer.
2862
2863 2004-08-19  Erik Schnetter  <schnetter@aei.mpg.de>
2864
2865         PR fortran/16946
2866         * check.c (gfc_check_reduction): New function.
2867         (gfc_check_minval_maxval): Removed.
2868         (gfc_check_product): Removed.
2869         (gfc_check_sum): Removed.
2870         * intrinsic.h: Add/remove declarations for these.
2871         * gfortran.h: Add field f3red to union gfc_check_f.
2872         * intrinsic.c (add_sym_3red): New function.
2873         (add_functions): Register maxval, minval, product, and sum intrinsics
2874         through add_sym_3red.
2875         (check_specific): Handle f3red union field.
2876         * iresolve.c: Whitespace change.
2877
2878 2004-08-18  Paul Brook  <paul@codesourcery.com>
2879
2880         * trans-types.c (gfc_sym_type): Use pointer types for optional args.
2881
2882 2004-08-18  Victor Leikehman  <lei@il.ibm.com>
2883
2884         PR fortran/13278
2885         * trans-io.c (transfer_namelist_element): New. Recursively handle
2886         derived-type variables.  Pass string lengths.
2887         (build_dt): Code moved to build_namelist, with some
2888         changes and additions.
2889         (gfc_build_io_library_fndecls): Declare the fifth
2890         argument in st_set_nml_var_char -- string_length.
2891
2892 2004-08-17  Paul Brook  <paul@codesourcery.com>
2893         Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2894
2895         PR fortran/13082
2896         * decl.c (get_proc_name): Update mystery comment.
2897         (gfc_match_entry): Check for errors earlier.  Add entry point to list.
2898         * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
2899         * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
2900         (struct gfc_entry_list): Define.
2901         (gfc_get_entry_list): Define.
2902         (struct gfc_namespace): Add refs and entries.
2903         (enum gfc_exec_op): Add EXEC_ENTRY.
2904         (struct gfc_code): Add ext.entry.
2905         * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
2906         (mio_symbol_attribute): Don't save/reture addr->entry.
2907         (mio_namespace_ref): Refcount namespaces.
2908         * parse.c (accept_statement): Handle ST_ENTRY.
2909         (gfc_fixup_sibling_symbols): Mark symbol as referenced.
2910         (parse_contained): Fixup sibling references to entry points
2911         after parsing the procedure body.
2912         * resolve.c (resolve_contained_fntype): New function.
2913         (merge_argument_lists, resolve_entries): New functions.
2914         (resolve_contained_functions): Use them.
2915         (resolve_code): Handle EXEC_ENTRY.
2916         (gfc_resolve): Call resolve_entries.
2917         * st.c (gfc_free_statement): Handle EXEC_ENTRY.
2918         * symbol.c (gfc_get_namespace): Refcount namespaces.
2919         (gfc_free_namespace): Ditto.
2920         * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
2921         optional when multiple entry points are present.
2922         * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
2923         (gfc_get_extern_function_decl): Add assertion.  Fix coment.
2924         (create_function_arglist, trans_function_start, build_entry_thunks):
2925         New functions.
2926         (gfc_build_function_decl): Rename ...
2927         (build_function_decl): ... to this.
2928         (gfc_create_function_decl): New function.
2929         (gfc_generate_contained_functions): Use it.
2930         (gfc_trans_entry_master_switch): New function.
2931         (gfc_generate_function_code): Use new functions.
2932         * trans-stmt.c (gfc_trans_entry): New function.
2933         * trans-stmt.h (gfc_trans_entry): Add prototype.
2934         * trans-types.c (gfc_get_function_type): Add entry point argument.
2935         * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
2936         (gfc_generate_module_code): Call gfc_create_function_decl.
2937         * trans.h (gfc_build_function_decl): Remove.
2938         (gfc_create_function_decl): Add prototype.
2939
2940 2004-08-15  Andrew Pinski  <apinski@apple.com>
2941
2942         PR fortran/17030
2943         * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
2944         for cabs{,f} and copysign{,f}.
2945         * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
2946         (gfor_fndecl_math_cabs): Delete.
2947         (gfor_fndecl_math_sign4): Delete.
2948         (gfor_fndecl_math_sign8): Delete.
2949         (gfc_build_intrinsic_function_decls): Remove the
2950         initializing of cabs{,f} and copysign{,f} functions.
2951         * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
2952         instead of the functions definitions.
2953         (gfc_conv_intrinsic_sign): Likewise.
2954         * trans.h (gfor_fndecl_math_cabsf): Delete.
2955         (gfor_fndecl_math_cabs): Delete.
2956         (gfor_fndecl_math_sign4): Delete.
2957         (gfor_fndecl_math_sign8): Delete.
2958
2959 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
2960
2961         * trans-array.c (gfc_trans_array_constructor_value): Use
2962         build_int_cst.
2963         * trans-const.c (gfc_build_string_const,
2964         gfc_init_constants, gfc_conv_mpz_to_tree,
2965         gfc_conv_constant_to_tree): Likewise.
2966         * trans-decl.c (gfc_get_symbol_decl): Likewise.
2967         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
2968         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
2969         * trans-io.c (add_case, set_error_locus, build_dt,
2970         transfer_expr): Likewise.
2971         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
2972         gfc_trans_stop, gfc_trans_character_select): Likewise.
2973         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
2974         * trans.c (gfc_trans_runtime_check): Likewise.
2975
2976 2004-08-14  Paul Brook  <paul@codesourcery.com>
2977
2978         * trans-decl.c (gfc_build_function_decl): Remove dead code.
2979
2980 2004-08-14  Paul Brook  <paul@codesourcery.com>
2981
2982         * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
2983
2984 2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2985
2986         * gfortran.h: Add comments.
2987         * parse.c (parse_contained): Fix comment typo.
2988         * resolve.c (was_declared): Ditto.
2989         * symbol.c: Ditto.
2990
2991 2004-08-11  Paul Brook  <paul@codeourcery.com>
2992
2993         PR fortran/16917
2994         * intrinsic.c (add_functions): Add dfloat as an alias for dble.
2995
2996 2004-08-10  Richard Henderson  <rth@redhat.com>
2997
2998         * f95-lang.c (gfc_init_builtin_functions): Remove
2999          __builtin_stack_alloc, add __builtin_alloca.
3000         * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
3001         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
3002
3003 2004-08-10  Paul Brook  <paul@codesourcery.com>
3004
3005         * trans-io.c (transfer_expr): Handle pointters.
3006
3007 2004-08-10  Paul Brook  <paul@codesourcery.com>
3008
3009         PR fortran/16919
3010         * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
3011         (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
3012         (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
3013         Handle GFC_SS_COMPONENT.
3014         (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
3015         (gfc_conv_loop_setup): Tweak commends. Remove dead code.
3016         Use ss->shape.
3017         (gfc_conv_array_initializer): Call specific initializer routines.
3018         * trans-expr.c (gfc_trans_structure_assign): New function.
3019         (gfc_trans_subarray_assign): New function.
3020         (gfc_trans_subcomponent_assign): New fucntion
3021         (gfc_conv_structure): Use them.
3022         * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
3023         (gfc_ss): Add shape.
3024
3025 2004-08-08  Victor Leikehman  <lei@il.ibm.com>
3026
3027         * simplify.c (gfc_simplify_shape): Bugfix.
3028         * expr.c (gfc_copy_shape_excluding): New function.
3029         * gfortran.h (gfc_get_shape): Bugfix.
3030         (gfc_copy_shape_excluding): Added declaration.
3031         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
3032         gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
3033         gfc_resolve_ubound, gfc_resolve_transpose): Added compile
3034         time resolution of shape.
3035
3036 2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3037
3038         * intrinsic.c (add_subroutines): Add getenv and
3039         get_environment_variable. (add_sym_5s): New function.
3040         * intrinsic.h (gfc_resolve_get_environment_variable): Add
3041         prototype.
3042         * iresolve.c (gfc_resolve_get_environment_variable): New
3043         function.
3044
3045 2004-08-06  Feng Wang  <fengwang@nudt.edu.cn>
3046
3047         * f95-lang.c (gfc_init_builtin_functions): Fix the number of
3048         __builtin_pow[f] arguments.
3049
3050 2004-08-06  Steven G. Kargl  <kargls@comcast.net>
3051
3052         * arith.c: Add #define for model numbers.  Remove global GMP variables.
3053         (natural_logarithm,common_logarithm,exponential,sine,
3054         cosine,arctangent,hypercos,hypersine ): Remove.
3055         (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
3056         (arctangent2,gfc_arith_init_1,gfc_arith_done_1
3057         gfc_check_real_range, gfc_constant_result, gfc_range_check,
3058         gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
3059         gfc_arith_divide,complex_reciprocal,complex_pow_ui,
3060         gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
3061         gfc_convert_complex,gfc_int2real,gfc_int2complex,
3062         gfc_real2int,gfc_real2real,gfc_real2complex,
3063         gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
3064         to MPFR, use new functions.
3065         * arith.h: Remove extern global variables.
3066         (natural_logarithm,common_logarithm,exponential, sine, cosine,
3067         arctangent,hypercos,hypersine): Remove prototypes.
3068         (arctangent2): Update prototype from GMP to MPFR.
3069         (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
3070         * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
3071         * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
3072         * gfortran.h (GFC_REAL_BITS): Remove.
3073         (arith): Add ARITH_NAN.
3074         Include mpfr.h.  Define GFC_RND_MODE.
3075         Rename GCC_GFORTRAN_H GFC_GFC_H.
3076         (gfc_expr): Convert GMP to MPFR.
3077         * module.c: Add arith.h, correct type in comment.
3078         (mio_gmp_real): Convert GMP to MPFR.
3079         (mio_expr):  Use gfc_set_model_kind().
3080         * primary.c:  Update copyright date with 2004.
3081         (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
3082         * simplify.c: Remove global GMP variables
3083         (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
3084         gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
3085         gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
3086         gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
3087         gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
3088         gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
3089         gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
3090         gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
3091         gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
3092         gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
3093         gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
3094         gfc_simplify_rrspacing,gfc_simplify_scale,
3095         gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
3096         gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
3097         gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
3098         gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
3099         Use new functions.
3100         * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
3101         gfc_conv_mpf_to_tree.  Convert it to use MPFR
3102         (gfc_conv_constant_to_tree): Use it.
3103         * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
3104         * trans-intrinsic.c: Add arith.h, remove gmp.h
3105         (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
3106
3107 2004-08-06  Victor Leikehman  <lei@il.ibm.com>
3108         Paul Brook  <paul@codesourcery.com>
3109
3110         * trans-array.c (gfc_trans_allocate_array_storage,
3111         gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
3112         gfc_conv_loop_setup): For functions, if the shape of the result
3113         is not known in compile-time, generate an empty array descriptor for
3114         the result and let the callee to allocate the memory.
3115         (gfc_trans_dummy_array_bias): Do nothing for pointers.
3116         (gfc_conv_expr_descriptor): Use function return values directly.
3117         * trans-expr.c (gfc_conv_function_call): Always add byref call
3118         insn to pre chain.
3119         (gfc_trans_pointer_assignment): Add comments.
3120         (gfc_trans_arrayfunc_assign): Don't chain on expression.
3121
3122 2004-08-01  Roger Sayle  <roger@eyesopen.com>
3123
3124         * options.c (gfc_init_options): Don't warn about the use GNU
3125         extensions by default.
3126         (gfc_post_options): Warn about GNU extensions with -pedantic.
3127         (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
3128
3129 2004-07-30  Richard Henderson  <rth@redhat.com>
3130
3131         * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
3132         for TREE_CONSTANTs.
3133
3134 2004-07-25  Richard Henderson  <rth@redhat.com>
3135
3136         * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
3137         and DECL_IGNORED_P on RESULT_DECL.
3138         (gfc_generate_constructors): Likewise.
3139
3140 2004-07-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3141
3142         PR fortran/16465
3143         * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
3144         options.
3145         (ffixed-line-length-80, ffixed-line-length-132): Remove.
3146         * options.c (gfc_handle_options): Deal with changed options.
3147         * scanner.c (load_line): Change second arg to 'char **',
3148         allocate if pointing to NULL. Keep track of buffer's length.
3149         Adapt buffer size to overlong lines. Pad lines to full length
3150         in fixed form.
3151         (load_file): Adapt to new interface of load_line.
3152
3153 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
3154
3155         * trans.h (builtin_function): Declare.
3156
3157 2004-07-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3158
3159         PR fortran/16404
3160         (parts ported from g95)
3161         * parse.h (gfc_state_data): New field do_variable.
3162         (gfc_check_do_variable): Add prototype.
3163         * parse.c (push_state): Initialize field 'do_variable'.
3164         (gfc_check_do_variable): New function.
3165         (parse_do_block): Remember do iterator variable.
3166         (parse_file): Initialize field 'do_variable'.
3167         * match.c (gfc_match_assignment, gfc_match_do,
3168         gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
3169         Add previously missing checks.
3170         (gfc_match_return): Reformat error message.
3171         * io.c (match_out_tag): New function.
3172         (match_open_element, match_close_element,
3173         match_file_element, match_dt_element): Call match_out_tag
3174         instead of match_vtag where appropriate.
3175         (match_io_iterator, match_io_element): Add missing check.
3176         (match_io): Reformat error message.
3177         (match_inquire_element): Call match_out_tag where appropriate.
3178
3179         * parse.c (gfc_check_do_variable): Fix error locus.
3180
3181 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3182
3183         PR fortran/15129
3184         * trans-decl.c (gfc_build_function_decl): Create a new chardecl
3185         for every assumed length character dummy argument.
3186
3187         PR fortran/15140
3188         * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
3189
3190         PR fortran/13792
3191         * simplify.c (gfc_simplify_bound): Copy the bound expression.
3192
3193 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3194
3195         PR fortran/15324
3196         * trans-array.c gfc_trans_g77_array,
3197         gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
3198         for assumed length characters.
3199         (gfc_conv_expr_descriptor): Set se->string_length if dealing
3200         with a character expression.
3201         (gfc_cvonv_array_parameter): Pass string length when passing
3202         character array according to g77 conventions.
3203
3204 2004-07-12  Paul Brook  <paul@codesourcery.com>
3205
3206         * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
3207         * trans-array.c (gfc_trans_auto_array_allocation): Remove
3208         initialization code.
3209         * trans-common.c (create_common): Use gfc_conv_initializer.
3210         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
3211         * trans-expr.c (gfc_conv_initializer): New function.
3212         (gfc_conv_structure): Use it.
3213         * trans.h (gfc_conv_initializer): Add prototype.
3214
3215 2004-07-11  Paul Brook  <paul@codesourcery.com>
3216
3217         PR fortran/15986
3218         * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
3219         variables.
3220         (parse_contained): Mark contained symbols as referenced.
3221
3222 2004-07-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3223
3224         PR fortran/16455
3225         * module.c (gfc_dump_module, gfc_use_module): Print locus
3226         when opening of module file fails.
3227
3228         PR fortran/16404
3229         * io.c (match_io): Flag 'WRITE(...), ...' as extension.
3230
3231         PR fortran/16404
3232         * match.c (gfc_match_program): A program name is obligatory.
3233         (gfc_match_return): RETURN in main program is an extension.
3234         (gfc_match_block_data): A space is required before a block data
3235         name.
3236
3237         PR fortran/16433
3238         * primary.c (match_boz_constant): Call gfc_notify_std only if
3239         we actually have a non-standard boz-literal-constant.
3240
3241         PR fortran/15754
3242         * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
3243         warning if assigning NULL().
3244
3245 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3246
3247         * f95-lang.c (set_block): Remove.
3248         (gfc_clear_binding_stack): New.
3249         (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
3250         (struct binding_level): Remove block_created_by_back_end.
3251         (clear_binding_level): Likewise.
3252         (poplevel): Don't handle block_created_by_back_end.
3253
3254 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3255
3256         * trans-decl.c (gfc_create_module_variable): Nothing to do if
3257         symbol is in common, because we ...
3258         (gfc_generate_module_vars): Call gfc_trans_common.
3259
3260 2004-07-10  Paul Brook  <paul@codesourcery.com>
3261
3262         * trans-array.c (gfc_build_null_descriptor): New function.
3263         (gfc_trans_static_array_pointer): Use it.
3264         * trans-array.h (gfc_build_null_descriptor): Add prototype.
3265         * trans-expr.c (gfc_conv_structure): Handle array pointers.
3266
3267 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3268
3269         PR fortran/16336
3270         * decl.c (gfc_match_save): Use-associated common block
3271         doesn't collide.
3272         * gfortran.h (gfc_common_head): Add new field 'name'.
3273         Fix typo in comment after #endif.
3274         * match.c (gfc_get_common): Add new argument from_common,
3275         mangle name if flag is set, fill in new field in structure
3276         gfc_common_head.
3277         (match_common): Set new arg in call to gfc_get_common,
3278         use-associated common block doesn't collide.
3279         * match.h (gfc_get_common): Adapt prototype.
3280         * module.c (load_commons): Set new arg in call to
3281         gfc_get_common.
3282         * symbol.c (free_common_tree): New function.
3283         (gfc_free_namespace): Call new function.
3284         * trans-common.c (several functions): Remove argument
3285         'name', use name from gfc_common_head instead.
3286
3287 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3288
3289         * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
3290         and RHS match. Return early if the RHS is NULL().
3291
3292         PR fortran/16336
3293         * match.c (match_common): Fix error reporting for used common.
3294
3295         PR fortran/15969
3296         * trans-expr.c (gfc_conv_structure): Handle initialization
3297         of scalar pointer components.
3298
3299         * parse.c (decode_statement): Fix matching of BLOCK DATA.
3300
3301         * trans-decl.c (generate_local_decl): Remove workaround obsoleted
3302         by fix for PR 15481.
3303
3304 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3305
3306         * trans-common.c: Fix whitespace issues, make variable names
3307         more readable.
3308         (create_common): Additionally, make loop logic more obvious.
3309
3310 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3311         Paul Brook  <paul@codesourcery.com>
3312
3313         PR fortran/13415
3314         * trans-common.c (calculate_length): Remove ...
3315         (get_segment_info): Merge into here.  Save field type.
3316         (build_field): Use saved type.
3317         (create_common, new_condition, new_segment, finish_equivalences):
3318         Use new get_segment_info.
3319         * trans-types.c: Update comment.
3320
3321 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3322
3323         PR fortran/14077
3324         * moduele.c (mio_symbol): Don't I/O initial values unless
3325         symbol is a parameter.
3326
3327 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3328
3329         PR fortran/13201
3330         * resolve.c (resolve_symbol): Verify that the shape of a
3331         parameter array is not only explicit, but also constant.
3332         * array.c (gfc_is_compile_time_shape): New function.
3333         * gfortran.h (gfc_is_compile_time_shape): Add prototype.
3334
3335 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3336
3337         PR fortran/15481
3338         PR fortran/13372
3339         PR fortran/13575
3340         PR fortran/15978
3341         * module.c (write_symbol, write_symtree): Remove workaround.
3342         * primary.c (match_actual_arglist): Enhance comment.
3343         (gfc_match_rvalue): Handle function call with first argument
3344         a keyword argument correctly.
3345         * resolve.c (resolve_symbol): Change call to
3346         gfc_set_default_type to issue error if no implicit type
3347         can be found.
3348         * trans-decl.c (gfc_create_module_variable): Remove workaround.
3349
3350 2004-07-08  Paul Brook  <paul@codesourcery.com>
3351
3352         * intrinsic.c (add_sym_4s): New function.
3353         (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
3354
3355 2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3356         Paul Brook  <paul@codesourcery.com>
3357
3358         PR fortran/15280
3359         PR fortran/15665
3360         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
3361         GFC_ISYM_COMMAND_ARGUMENT_COUNT.
3362         * intrinsic.c (add_functions):  Identify iargc.  Add
3363         command_argument_count.
3364         (add_subroutines): Resolve getarg.  Add get_command and
3365         get_command_argument.
3366         * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
3367         gfc_resolve_get_command_argument): Add prototypes.
3368         * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
3369         gfc_resolve_get_command_argument): New functions.
3370         * trans-decl.c (gfor_fndecl_iargc): New variable.
3371         (gfc_build_intrinsic_function_decls): Set it.
3372         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
3373         (gfc_conv_intrinsic_function): Use it.
3374         * trans.h (gfor_fndecl_iargc): Declare.
3375
3376 2004-07-04  Matthias Klose  <doko@debian.org>
3377
3378         * Make-lang.in: Generate and install gfortran man page.
3379         * invoke.texi: Remove extra '@c man end'.
3380
3381 2004-07-04  Richard Henderson  <rth@redhat.com>
3382
3383         * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
3384
3385 2004-07-04  Paul Brook  <paul@codesourcery.com>
3386
3387         * decl.c (gfc_match_implicit_range): Don't use typespec.
3388         (gfc_match_implicit): Handle character selectors.
3389         * gfortran.h (gfc_set_implicit): Remove prototype.
3390         (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
3391         * parse.c (accept_statement): Don't call gfc_set_implicit.
3392         * symbol.c (new_ts): Remove.
3393         (gfc_set_implicit_none): Use same loop bounds as other functions.
3394         (gfc_set_implicit): Remove.
3395         (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
3396         (gfc_merge_new_implicit): Combine with gfc_set_implicit.
3397
3398 2004-06-30  Richard Henderson  <rth@redhat.com>
3399
3400         * match.c (var_element): Remove unused variable.
3401
3402         * trans-decl.c (gfc_generate_function_code): Don't set
3403         x_whole_function_mode_p.
3404         (gfc_generate_constructors): Likewise.
3405
3406 2004-06-30  Richard Henderson  <rth@redhat.com>
3407
3408         * trans-decl.c (gfc_generate_function_code): Don't set
3409         immediate_size_expand.
3410         (gfc_generate_constructors): Likewise.
3411
3412 2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3413
3414         PR fortran/16161
3415         * decl.c (gfc_match_type_spec): Rename second argument to
3416         'implicit_flag', reverse meaning. Don't match_char_spec if
3417         'implicit_flag' is set. Rename to ...
3418         (match_type_spec): ... this.
3419         (gfc_match_implicit_none, match_implicit_range): Move here
3420         from match.c.
3421         (gfc_match_implicit): Move here from match.c, try to
3422         match_char_len if match_implicit_range doesn't succeed for
3423         CHARACTER implicits. Call renamed fucntion match_type_spec.
3424         (gfc_match_data_decl, match_prefix): Call renamed function
3425         match_type_spec.
3426         * match.c (gfc_match_implicit_none, match_implicit_range,
3427         gfc_match_implicit): Move to decl.c.
3428         * match.h (gfc_match_implicit_none, gfc_match_implicit):
3429         Move protoypes to section 'decl.c'.
3430         (gfc_match_type_spec): Remove prototype.
3431
3432 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3433
3434         * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
3435         copyright years.
3436
3437 2004-06-29  Steven Bosscher  <stevenb@suse.de>
3438
3439         Make sure types in assignments are compatible.  Mostly mechanical.
3440         * trans-const.h (gfc_index_one_node): New define.
3441         * trans-array.c (gfc_trans_allocate_array_storage,
3442         gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
3443         gfc_trans_array_constructor_value, gfc_trans_array_constructor,
3444         gfc_conv_array_ubound, gfc_conv_array_ref,
3445         gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
3446         gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
3447         gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
3448         gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
3449         types in assignments, conversions and conditionals for expressions.
3450         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
3451         gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
3452         gfc_conv_function_call, gfc_trans_pointer_assignment,
3453         gfc_trans_scalar_assign): Likewise.
3454         * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
3455         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
3456         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
3457         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
3458         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
3459         gfc_conv_allocated, gfc_conv_associated,
3460         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
3461         * trans-io.c (set_string): Likewise.
3462         * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
3463         gfc_do_allocate, generate_loop_for_temp_to_lhs,
3464         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
3465         compute_overall_iter_number, gfc_trans_assign_need_temp,
3466         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
3467         gfc_evaluate_where_mask, gfc_trans_where_assign,
3468         gfc_trans_where_2): Likewise.
3469         * trans-types.c (gfc_get_character_type, gfc_build_array_type,
3470         gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
3471
3472         * trans.c (gfc_add_modify_expr): Add sanity check that types
3473         for the lhs and rhs are the same for scalar assignments.
3474
3475 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3476
3477         * dump-parse-tree.c (show_common): New function.
3478         (gfc_show_namespace): Show commons.
3479
3480 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3481         Andrew Vaught  <andyv@firstinter.net>
3482
3483         PR fortran/13249
3484         PR fortran/15481
3485         * decl.c (gfc_match_save): Adapt to new common structures,
3486         don't allow saving USE-associated common.
3487         * dump-parse-tree (gfc_show_attr): (saved_)common are not
3488         symbol attributes any longer.
3489         (gfc_show_symbol): Don't show old-style commons any longer.
3490         (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
3491         interface.
3492         * gfortran.h (symbol_attribute): Remove common and saved_common
3493         attributes.
3494         (gfc_symbol): Remove common_head element.
3495         (gfc_common_head): New struct.
3496         (gfc_get_common_head): New macro.
3497         (gfc_symtree): Add field 'common' to union.
3498         (gfc_namespace): Add field 'common_root'; change type of field
3499         'blank_common' to blank_common.
3500         (gfc_add_data): New prototype.
3501         (gfc_traverse_symtree): Expect a symtree as first argument
3502         instead of namespace.
3503         * match.c (gfc_get_common): New function.
3504         (match_common_name): Change to take char * as argument, adapt,
3505         fix bug with empty name.
3506         (gfc_match_common): Adapt to new data structures. Disallow
3507         redeclaration of USE-associated COMMON-block. Fix bug with
3508         empty common.
3509         (var_element): Adapt to new common structures.
3510         * match.h (gfc_get_common): Declare.
3511         * module.c: Add 2004 to copyright years, add commons to module
3512         file layout description.
3513         (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
3514         for removed attributes.
3515         (mio_symbol): Adapt to new way of storing common relations.
3516         (load_commons): New function.
3517         (read_module): Skip common list on first pass, load_commons at
3518         second.
3519         (write_commons): New function.
3520         (write_module): Call write_commons().
3521         * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
3522         functions related to removed attributes.
3523         (gfc_add_data): New function.
3524         (gfc_clear_attr): Don't set removed attributes.
3525         (gfc_copy_attr): Don't copy removed attributes.
3526         (traverse_symtree): Remove.
3527         (gfc_traverse_symtree): Don't traverse symbol
3528         tree of the passed namespace, but require a symtree to be passed
3529         instead. Unify with traverse_symtree.
3530         (gfc_traverse_ns): Call gfc_traverse_symtree according to new
3531         interface.
3532         (save_symbol): Remove setting of removed attribute.
3533         * trans-common.c (gfc_sym_mangled_common_id): Change to
3534         take 'char *' argument instead of 'gfc_symbol'.
3535         (build_common_decl, new_segment, translate_common): Adapt to new
3536         data structures, add new
3537         argument name.
3538         (create_common): Adapt to new data structures, add new
3539         argument name. Fix typo in intialization of derived types.
3540         (finish_equivalences): Add second argument in call to
3541         create_common.
3542         (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
3543         (gfc_trans_common): Adapt to new data structures.
3544         * trans-decl.c (gfc_create_module_variables): Remove test for
3545         removed attribute.
3546
3547 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3548
3549         * io.c: Add 2004 to copyright years.
3550
3551 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3552         Andrew Vaught  <andyv@firstinter.net>
3553
3554         * gfortran.h (gfc_gsymbol): New typedef.
3555         (gfc_gsym_root): New variable.
3556         (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
3557         * parse.c (global_used): New function.
3558         (parse_block_data): Check for double empty BLOCK DATA,
3559         use global symbol table.
3560         (parse_module): Use global symbol table.
3561         (add_global_procedure, add_global_program): New functions.
3562         (gfc_parse_file): Use global symbol table.
3563         * symbol.c (gfc_gsym_root): New variable.
3564         (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
3565         functions.
3566
3567 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3568
3569         * module.c (mio_gmp_real): Correct writing of negative numbers.
3570
3571 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3572
3573         PR fortran/15963
3574         * expr.c (check_intrinsic_op): Allow comparison of characters.
3575         Make logic easier.
3576
3577 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3578         Andrew Vaught  <andyv@firstinter.net>
3579
3580         * decl.c (contained_procedure): New function.
3581         (match_end): Verify correctness of END STATEMENT in
3582         all cases.
3583
3584 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3585         Andrew Vaught  <andyv@firstinter.net>
3586
3587         PR fortran/15190
3588         * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
3589         (decode_statement): Enforce required space in free-form.
3590
3591 2004-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3592
3593         * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
3594         * trans-array.c (gfc_conv_descriptor_data): Add operand
3595         for COMPONENT_REF.
3596         (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
3597         (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
3598         (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
3599         * trans-common.c (create_common): Likewise.
3600         * trans-expr.c (gfc_conv_component_ref): Likewise.
3601         * trans-io.c (set_parameter_value): Likewise.
3602         (set_parameter_ref, set_string, set_flag, io_result): Likewise.
3603         (transfer_expr): Likewise.
3604         * trans-decl.c (gfc_trans_auto_character_variable):
3605         Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
3606         (gfc_gimplify_function): New function.
3607         (gfc_generate_function-code): Properly handle nested functions.
3608         * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
3609
3610 2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3611
3612         PR fortran/15750
3613         * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
3614         (gfc_resolve_inquire): Resolve the iolength tag.  Return
3615         SUCCESS at end of function if no failure has occured.
3616         * resolve.c (resolve_code): Resolve if iolength is encountered.
3617         * trans-io.c: (ioparm_iolength, iocall_iolength,
3618         iocall_iolength_done): New variables.
3619         (last_dt): Add IOLENGTH.
3620         (gfc_build_io_library_fndecls ): Set iolength related variables.
3621         (gfc_trans_iolength): Implement.
3622         (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
3623
3624 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de
3625
3626         PR fortran/15511
3627         * scanner.c (load_line): Don't truncate preprocessor lines.
3628         Reformat error message.
3629         (preprocessor_line): Issue warning in case of malformed
3630         preprocessor line.
3631
3632 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3633
3634         * resolve.c (resolve_symbol): Add comment in function body.
3635         (check_data_variable): Change type of mark to ar_type, adapt code
3636         accordingly.
3637
3638 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3639
3640         * array.c (gfc_insert_constructor): Avoid redundant call to
3641         mpz_comp. Add 2004 to copyright years.
3642
3643 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
3644
3645         * trans.h (stmtblock_t): Change has_scope to unsigned int.
3646
3647 2004-06-20  Steven G. Kargl  <kargls@comcast.net>
3648
3649         * arith.c (gfc_range_check): correct complex underflow.
3650
3651 2004-06-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3652
3653         PR fortran/15962
3654         * match.c (match_case_selector): Call gfc_match_init_expr
3655         instead of gfc_match_expr.
3656         * resolve.c (validate_case_label_expr): No need to check for
3657         constant, since it wouldn't have been matched with the fix to
3658         match.c.
3659
3660 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3661
3662         PR fortran/15211
3663         * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
3664         of strings.
3665
3666 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3667
3668         PR fortran/15510
3669         * trans-deecl.c (generate_local_decl): Do not issue warning for
3670         unused variables if they're use associated.
3671
3672 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3673         Andrew Vaught <andyv@firstinter.net>
3674
3675         PR fortran/14928
3676         * gfortran.h (gfc_check_f): Add new field f3ml.
3677         * check.c (gfc_check_minloc_maxloc): Take argument list instead
3678         of individual arguments, reorder if necessary.
3679         * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
3680         * intrinsic.c (add_sym_3ml): New function.
3681         (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
3682         (check_specific): Catch special case MINLOC, MAXLOC.
3683
3684 2004-06-14  Paul Brook  <paul@codesourcery.com>
3685
3686         * intrinsic.c (add_sym_2s): Use correct function types.
3687
3688 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3689
3690         * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
3691         * data.c (gfc_get_section_index):  Remove dependency on trans.h.
3692
3693 2004-06-12  Steven G. Kargl  <kargls@comcast.net>
3694
3695         * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
3696         gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
3697         * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
3698         GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
3699         * trans-intrinsic.c:  Use symbols.
3700         * intrinsic.c (add_sym_2s): New function.
3701         * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
3702         * intrinsic.h: Function prototypes.
3703         * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
3704         gfc_resolve_srand):  New functions.
3705
3706 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3707
3708         PR fortran/14957
3709         * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
3710         contained procedure.
3711
3712 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3713
3714         PR fortran/12841
3715         * interface.c (compare_parameter, compare_actual_formal): Don't
3716         check types and array shapes for NULL()
3717         * trans-expr.c (conv_function_call): No double indirection for
3718         NULL()
3719
3720 2004-06-09  Toon Moene  <toon@moene.indiv.nluug.nl>
3721
3722         * trans-expr.c (gfc_conv_cst_int_power): Compute
3723         x**(-n) by converting it to (1/x)**n instead of
3724         1/x**n.
3725
3726 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3727
3728         PR fortran/13372
3729         * module.c (write_symbol, write_symtree): Don't write symbols
3730         wrongly added to namespace.
3731         * trans-decl.c (gfc_create_module_variable): Don't create a
3732         backend decl for a symbol incorrectly added to namespace.
3733
3734 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3735
3736         PR fortran/13201
3737         * resolve.c (resolve_symbol): Verify that parameter array has an
3738         explicit shape. Fix typos and coding style issues in surrounding
3739         lines.
3740
3741 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3742
3743         PR fortran/15478
3744         * gfortran.texi: The documentation doesn't contain infomration on
3745         how to report bugs, and shouldn't, so remove the line which
3746         says it does.
3747
3748 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3749
3750         * intrinsic.c (sort_actual): Keep track of type of missing
3751         arguments. (Missing from previous commit.)
3752
3753 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3754
3755         * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
3756         * interface.c (compare_actual_formal): Keep type of omitted
3757         optional arguments.
3758         * trans-expr.c (gfc_conv_function_call): Add string length
3759         argument for omitted string argument.
3760
3761 2004-06-03  Paul Brook  <paul@codesourcery.com>
3762
3763         * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
3764         lists instead of compound expr chains.
3765         (gfc_trans_code): Annotate statement lists.
3766
3767 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3768
3769         * trans-array.c: Fix spelling in comments.
3770
3771 2004-06-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3772
3773         PR fortran/15557
3774         * data.c (assign_substring_data_value): New function.
3775         (gfc_assign_data_value): Call the new function if we're dealing
3776         with a substring LHS.
3777
3778 2004-06-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3779
3780         PR fortran/15477
3781         * gfortran.h (GFC_VERSION): Remove.
3782         * gfortran.texi (version-gfortran): Remove, replace by version-GCC
3783         where used.
3784
3785 2004-05-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3786
3787         * trans-types.c: Fix spelling & layout in comments.
3788
3789 2004-05-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3790
3791         PR fortran/14067
3792         * trans-const.c (gfc_conv_string_init): Allow variable string
3793         length lower than initialization string length.
3794
3795 2004-05-30  Paul Brook  <paul@codesourcery.com>
3796
3797         PR fortran/15620
3798         * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
3799         * trans-expr.c (gfc_trans_string_copy): New function.
3800         (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
3801         character lengths.
3802         (gfc_conv_string_parameter): Use gfc_trans_string_copy.
3803         * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
3804         * trans.h (struct gfc_saved_var): Define.
3805         (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
3806
3807 2004-05-30  Steven G. Kargl  <kargls@comcast.net>
3808
3809         * iresolve.c (gfc_resolve_random_number): Clean up conditional.
3810
3811 2004-05-29  Steven G. Kargl  <kargls@comcast.net>
3812
3813         * simplify.c (gfc_simplify_log): Remove useless line of code.
3814
3815 2004-05-29  Paul Brook  <paul@codesourcery.com>
3816
3817         * trans-common.c (find_equivalence): Find multiple rules.
3818
3819 2004-05-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3820
3821         * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
3822         (gfc_current_locus): Declare new global variable.
3823         * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
3824         (gfc_current_locus1): Rename ...
3825         (gfc_current_locus): ... to this.
3826         (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
3827         skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
3828         gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
3829         gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
3830         and gfc_current_locus(), respectively.
3831         * array.c (match_subscript, gfc_match_array_ref, match_array_list,
3832         match_array_cons_element, gfc_match_array_constructor):
3833         Read/modify gfc_current_locus instead of calling gfc_set_locus()
3834         and gfc_current_locus().
3835         * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
3836         match_attr_spec, gfc_match_function_decl, gfc_match_end,
3837         attr_decl1, gfc_match_save): Likewise.
3838         * error.c (error_print, gfc_internal_error): Likewise.
3839         * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
3840         * interface.c (gfc_add_interface): Likewise.
3841         * io.c (gfc_match_format, match_dt_format, match_dt_element,
3842         match_io_iterator, match_io): Likewise.
3843         * match.c (gfc_match_space, gfc_match_eos,
3844         gfc_match_small_literal_int, gfc_match_st_label,
3845         gfc_match_strings, gfc_match_name, gfc_match_iterator,
3846         gfc_match_char, gfc_match, gfc_match_assignment,
3847         gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
3848         gfc_match_nullify, gfc_match_call, match_implicit_range,
3849         gfc_match_implicit, gfc_match_data, match_case_selector,
3850         gfc_match_case, match_forall_iterator): Likewise.
3851         * matchexp.c (gfc_match_defined_op_name, next_operator,
3852         match_level_1, match_mult_operand, match_ext_mult_operand,
3853         match_add_operand, match_ext_add_operand, match_level_2,
3854         match_level_3, match_level_4, match_and_operand, match_or_operand,
3855         match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
3856         * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
3857         * parse.c (match_word, decode_statement, next_free, next_fixed,
3858         add_statement, verify_st_order, parse_if_block, gfc_parse_file):
3859         Likewise.
3860         * primary.c (match_digits, match_integer_constant,
3861         match_boz_constant, match_real_constant, match_substring,
3862         next_string_char, match_charkind_name, match_string_constant,
3863         match_logical_constant, match_const_complex_part,
3864         match_complex_constant, match_actual_arg, match_keyword_arg,
3865         gfc_match_actual_arglist, gfc_match_structure_constructor,
3866         gfc_match_rvalue, gfc_match_variable): Likewise.
3867         * st.c (gfc_get_code): Likewise.
3868         * symbol.c (check_conflict, check_used, check_done,
3869         duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
3870         gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
3871         gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
3872
3873 2004-05-26  Roger Sayle  <roger@eyesopen.com>
3874
3875         * io.c (format_asterisk): Silence compiler warnings by correcting
3876         the number of elements of a "locus" initializer.
3877
3878 2004-05-25  Roger Sayle  <roger@eyesopen.com>
3879
3880         PR fortran/13912
3881         * matchexp.c: Allow unary operators after arithmetic operators
3882         as a GNU extension.
3883         (match_ext_mult_operand, match_ext_add_operand): New functions.
3884         (match_mult_operand): Tweak to call match_ext_mult_operand.
3885         (match_add_operand): Tweak to call match_ext_mult_operand.
3886         (match_level_2): Rearrange to call match_ext_add_operand.
3887
3888 2004-05-25  Paul Brook  <paul@codesourcery.com>
3889
3890         * expr.c (check_inquiry): Remove bogus tests.
3891
3892 2004-05-23  Paul Brook  <paul@codesourcery.com>
3893
3894         PR fortran/13773
3895         * expr.c (restricted_args): Remove redundant checks/argument.
3896         (external_spec_function): Update to match.
3897         (restricted_intrinsic): Rewrite.
3898
3899 2004-05-23  Paul Brook  <paul@codesourcery.com>
3900         Victor Leikehman  <lei@haifasphere.co.il>
3901
3902         * gfortran.h (struct gfc_symbol): Add equiv_built.
3903         * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
3904         messages.
3905         (current_length): Remove.
3906         (add_segments): New function.
3907         (build_equiv_decl): Create initialized common blocks.
3908         (build_common_decl): Always add decl to bindings.
3909         (create_common): Create initializers.
3910         (find_segment_info): Reformat to match coding conventions.
3911         (new_condition): Use add_segments.
3912         (add_condition, find_equivalence, add_equivalences): Move iteration
3913         inside functions.  Only process each segment once.
3914         (new_segment, finish_equivalences, translate_common): Simplify.
3915
3916 2004-05-23  Steven G. Kargl  <kargls@comcast.net>
3917
3918         * check.c (gfc_check_random_seed): Issue for too many arguments.
3919
3920 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
3921
3922         * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
3923
3924 2004-05-22  Paul Brook  <paul@codesourcery.com>
3925
3926         * dump-parse-tree.c (gfc_show_equiv): New function.
3927         (gfc_show_namespace): Use it.
3928
3929 2004-05-22  Victor Leikehman  <lei@haifasphere.co.il>
3930
3931         PR fortran/13249
3932         * symbol.c (gfc_add_common): Disable checks to work around other more
3933         fundamental inadequacies.
3934
3935 2004-05-22  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
3936
3937         * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
3938         only for functions.
3939         (gfc_build_function_decl): Likewise.
3940
3941 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
3942
3943         * check.c (gfc_check_system_clock): New function.
3944         * intrinsic.c (add_sym_3s): New function.
3945         (add_subroutines): Use it.
3946         * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
3947         Add prototypes.
3948         * iresolve.c (gfc_resolve_system_clock): New function.
3949
3950 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
3951
3952         * invoke.texi: Document -Wunderflow and spell check.
3953         * lang.opt: Add Wunderflow.
3954         * gfortran.h (gfc_option_t): Add warn_underflow option.
3955         * options.c (gfc_init_options, set_Wall): Use it.
3956         * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
3957         * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
3958         gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
3959         gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
3960         * arith.c (common_logarithm): Fix typo in comment.
3961
3962 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3963
3964         * io.c (check_format): As a GNU extension, allow the comma after a
3965         string literal to be optional in a format.  Use gfc_notify_std to
3966         issue an error/warning as appropriate.
3967
3968 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3969
3970         * io.c (check_format): Use gfc_notify_std to determine whether to
3971         issue an error/warning for omitting the digits from the X format.
3972
3973 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3974
3975         * io.c (check_format): Allow the number before the X format to
3976         be optional when not -pedantic.
3977
3978 2004-05-18  Feng Wang  <fengwang@nudt.edu.cn>
3979         Paul Brook  <paul@codesourcery.com>
3980
3981         * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
3982         Create decls for __builtin_pow{,f}.
3983         * gfortran.h (PREFIX_LEN): Define.
3984         * trans-decl.c (gfor_fndecl_math_powi): Add.
3985         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
3986         (gfc_build_intrinsic_function_decls): Create decls for powi.
3987         * trans-expr.c (powi_table): Add.
3988         (gfc_conv_integer_power): Remove.
3989         (gfc_conv_powi): New function.
3990         (gfc_conv_cst_int_power): New function.
3991         (gfc_conv_power_op): Use new powi routines.
3992         * trans.h (struct gfc_powdecl_list): Add.
3993         (gfor_fndecl_math_powi): Add.
3994         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
3995
3996 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3997
3998         * trans.c, trans-decl.c: Fix comment typos.
3999
4000 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4001
4002         * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
4003
4004 2004-05-18  Steve Kargl  <kargls@comcast.net>
4005
4006         * arith.c (gfc_int2complex): Fix incorrect range checking.
4007
4008 2004-05-18  Paul Brook  <paul@codesourcery.com>
4009
4010         PR fortran/13930
4011         * decl.c (add_init_expr_to_sym): Remove incorrect check.
4012         (default_initializer): Move to expr.c.
4013         (variable_decl): Don't assign default initializer to variables.
4014         * expr.c (gfc_default_initializer): Move to here.
4015         * gfortran.h (gfc_default_initializer): Add prototype.
4016         * resolve.c (resolve_symbol): Check for illegal initializers.
4017         Assign default initializer.
4018
4019 2004-05-17  Steve Kargl  <kargls@comcast.net>
4020
4021         * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
4022
4023 2004-05-17  Steve Kargl  <kargls@comcast.net>
4024
4025         * arith.c (gfc_real2complex): Range checking wrong part of complex
4026         number.
4027
4028 2004-05-16  Paul Brook  <paul@codesourcery.com>
4029
4030         * options.c (gfc_handle_module_path_options): Fix buffer overrun.
4031
4032 2004-05-16  Paul Brook  <paul@codesourcery.com>
4033
4034         * arith.c (gfc_range_check): Fix logic error.
4035
4036 2004-05-16  Steve Kargl  <sgk@troutmask.apl.washington.edu>
4037
4038         * arith.c: Fix comment typos.
4039
4040 2004-05-15  Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
4041
4042         PR fortran/13742
4043         * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
4044         not initialized in a disallowed fashion.
4045         * match.c (gfc_match_common): Likewise.
4046         (var_element): Verify that variable is not in the blank COMMON,
4047         if it is in a common.
4048
4049 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
4050
4051         * Make-lang.in (f95.generated-manpages): Remove.
4052         (f95.srcextra): New.
4053         (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
4054         f95.maintainer-clean): Generate info and dvi files in objdir/doc.
4055         (f95.dvi): Remove.
4056         (dvi): New.
4057         (f95.install-info): Remove.
4058         (install-info): New.
4059
4060 2004-05-15  Victor Leikehman  <lei@haifasphere.co.il>
4061
4062         * decl.c (add_init_expr_to_sym): Check for variable size arrays.
4063
4064 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4065
4066         * primary.c (match_boz_constant): Use gfc_notify_std() for
4067         issuing a warning or an error.
4068
4069 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4070
4071         PR fortran/13826
4072         * primary.c (match_structure_constructor): Rename ...
4073         (gfc_match_structure_constructor): ... to this. Make non-static.
4074         (gfc_match_rvalue): Call renamed function.
4075         * match.h (gfc_match_structure_constructor): Declare.
4076         * match.c (gfc_match_data_constant): Handle structure
4077         constructor.
4078
4079 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4080
4081         PR fortran/13702
4082         (Port from g95)
4083         * gfortran.h (gfc_linebuf): New typedef.
4084         (linebuf): Remove.
4085         (gfc_file): Revamped, use new gfc_linebuf.
4086         (locus): Revamped, use new types.
4087         (gfc_current_file): Remove.
4088         (gfc_current_form, gfc_source_file): New global variables.
4089         * match.c (gfc_match_space, gfc_match_strings): Use
4090         gfc_current_form to find source form.
4091         * module.c (gfc_dump_module): Use gfc_source_file when printing
4092         module header.
4093         * error.c (show_locus, show_loci) Use new data structures to print
4094         locus.
4095         * scanner.c (first_file, first_duplicated_file, gfc_current_file):
4096         Remove.
4097         (file_head, current_file, gfc_current_form, line_head, line_tail,
4098         gfc_current_locus1, gfc_source_file): New global variables.
4099         (gfc_scanner_init1): Set new global variables.
4100         (gfc_scanner_done1): Free new data structures.
4101         (gfc_current_locus): Return pointer to gfc_current_locus1.
4102         (gfc_set_locus): Set gfc_current_locus1.
4103         (gfc_at_eof): Set new variables.
4104         (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
4105         to new locus structure.
4106         (gfc_check_include): Remove.
4107         (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
4108         (gfc_skip_comments): Use gfc_current_form, find locus with
4109         gfc_current_locus1.
4110         (gfc_next_char): Use gfc_current_form.
4111         (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
4112         (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
4113         comment formatting.
4114         (get_file): New function.
4115         (preprocessor_line, include_line): New functions.
4116         (load_file): Move down, rewrite to match new data structures.
4117         (gfc_new_file): Rewrite to match new data structures.
4118         * parse.c (next_statement): Remove code which is now useless. Use
4119         gfc_source_form and gfc_source_file where appropriate.
4120         * trans-decl.c (gfc_get_label_decl): adapt to new data structures
4121         when determining locus of frontend code.
4122         * trans-io.c (set_error_locus): Same.
4123         * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
4124         * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
4125         preprocessor flags.
4126         (all): Add missing initializers.
4127
4128 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4129
4130         * Make-lang.in (trans-common.o): Remove redundant dependency.
4131         (data.c): Replace object file name ...
4132         (data.o): ... by the correct one.
4133
4134 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4135
4136         * dump-parse-tree.c (gfc_show_array_ref): Print colon only
4137         for ranges when dumping array references.
4138
4139 2004-05-14  Victor Leikehman  <lei@haifasphere.co.il>
4140
4141         * decl.c (variable_decl): Always apply default initializer.
4142
4143 2004-05-08  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
4144
4145         PR fortran/15206
4146         * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
4147         handle zero correctly.
4148
4149 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4150
4151         * match.c (gfc_match): Eliminate dead code.
4152
4153 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4154
4155         * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
4156         Detect bad continuation line in fixed form sources.
4157
4158 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4159
4160         PR fortran/15205
4161         * iresolve.c (gfc_resolve_nearest): Add new function.
4162         * intrinsic.h: ... declare it here.
4163         * intrinsic.c (add_functions): ... add it as resolving function
4164         for NEAREST.
4165
4166 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4167
4168         PR fortran/14066
4169         * match.c (gfc_match_do): Allow infinite loops with
4170         label-do-stmt. Do not enforce space after comma.
4171
4172 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4173
4174         PR fortran/15051
4175         * parse.c (parse_interface): Allow empty INTERFACE, remove
4176         seen_body.
4177
4178 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4179
4180         * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
4181         decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
4182         expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
4183         intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
4184         matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
4185         primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
4186         trans-array.c, trans-array.h, trans-common.c, trans-const.c,
4187         trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
4188         trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
4189         trans-types.h, trans.c, trans.h: Update copyright years and
4190         boilerplate.
4191         * data.c: Likewise, also removed two whitespace-only lines.
4192         * gfortranspec.c, lang.opt: Update copyright years.
4193
4194 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4195
4196         PR fortran/14568
4197         * trans-decl.c (generate_local_decl): Don't warn for unused
4198         variables which are in common blocks.
4199
4200 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4201
4202         * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
4203         trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
4204         trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
4205
4206 2004-05-13  Victor Leikehman  <lei@haifasphere.co.il>
4207
4208         PR fortran/15314
4209         * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
4210
4211 2004-05-13  Joseph S. Myers  <jsm@polyomino.org.uk>
4212
4213         * gfortran.texi: Use @table @emph instead of @itemize @emph.
4214         Remove "set DEVELOPMENT".
4215         (Compiling GFORTRAN): Remove.
4216
4217 2004-05-09  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
4218
4219         * array.c (match_subscript, match_array_ref): Add comments
4220         explaining argument 'init'.
4221         * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
4222         trans-expr.c, trans.c: Fix some typos in comments.
4223         * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
4224         * primary.c (match_digits, match_integer_constant): Add comment
4225         explaining signflag.
4226
4227 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
4228
4229         PR fortran/13940
4230         * primary.c: Include system.h and flags.h, needed for pedantic.
4231         (match_boz_constant): Allow "x" for hexadecimal constants, warn if
4232         pedantic is set.
4233
4234 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
4235
4236         PR fortran/13940
4237         * match.c (match_data_constant): Handle case where
4238         gfc_find_symbol sets sym to NULL
4239
4240 2004-04-28  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
4241
4242         * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
4243         dependency on mathbuiltins.def
4244
4245 2004-04-24  Victor Leikehman  <lei@il.ibm.com>
4246
4247         * trans-io.c (transfer_expr): Implemented recursive printing
4248         of derived types.
4249
4250 2004-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
4251
4252         * gfortranspec.c: Do not include multilib.h.
4253
4254 2004-04-24  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
4255
4256         * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
4257         2004 to copyright years.
4258         * trans-expr.c, trans-decl.c: Comment update, we now generate
4259         GENERIC, not SIMPLE. Add 2004 to copyright years.
4260
4261 2004-04-24  Paul Brook  <paul@codesourcery.com>
4262
4263         * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
4264
4265 2004-04-24  Feng Wang  <fengwang@nudt.edu.cn>
4266
4267         PR 14817
4268         * arith.c (gfc_arith_divide): Fix complex divide.
4269
4270 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
4271
4272         * gfortranspec.c: Include the target headers.
4273
4274 2004-04-18  Feng Wang  <fengwang@nudt.edu.cn>
4275
4276         PR fortran/14921
4277         PR fortran/14540
4278         * arith.c (arctangent2): New function.
4279         * arith.h (arctangent2): Add function prototype.
4280         * simplify.c (gfc_simplify_atan2): Use it.
4281         (gfc_simplify_log): Use it.
4282
4283 2004-04-12  Diego Novillo  <dnovillo@redhat.com>
4284
4285         * fortran/f95-lang.c (gfc_expand_stmt): Remove.
4286         (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
4287
4288 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
4289
4290         PR fortran/14872
4291         * trans-io.c (build_dt): Change REC to value.
4292
4293 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
4294
4295         PR 14394
4296         * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
4297         the real value when converting mpf to string.
4298
4299 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
4300
4301         PR 14395
4302         * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
4303         the result.
4304
4305 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
4306
4307         PR fortran/14377
4308         * simplify.c (simplify_min_max): Convert the type of the result.
4309
4310 2004-04-11  Paul Brook  <paul@codesourcery.com>
4311
4312         * gfortran.texi: Use full target triplet.
4313
4314 2004-04-11  Paul Brook  <paul@codesourcery.com>
4315
4316         * Make-lang.in (GFORTRAN_TEXI): Set it.
4317         (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
4318         (fortran/gfortran.info): Ditto.
4319         * gfortran.texi: Major update.
4320         * invoke.texi: New file.
4321
4322 2004-04-10  Paul Brook  <paul@codesourcery.com>
4323
4324         * trans-array.c (gfc_trans_allocate_temp_array,
4325         gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
4326         * trans-decl.c (gfc_build_dummy_array_decl,
4327         gfc_get_symbol_decl, gfc_build_function_decl,
4328         gfc_create_module_variable): Ditto.
4329         * trans-expr.c (gfc_conv_variable): Ditto.
4330         * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
4331         * trans.h (GFC_DECL_STRING): Remove.
4332         (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
4333         GFC_DECL_ASSIGN): Renumber flags.
4334
4335 2004-04-05  Paul Brook  <paul@codesourcery.com>
4336
4337         PR 13252
4338         PR 14081
4339         * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
4340         and stack_restore.
4341         * gfortran.h (struct gfc_charlen): Add backend_decl.
4342         * trans-array.c (gfc_trans_allocate_temp_array,
4343         gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
4344         (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
4345         Remove old, broken string handling.
4346         (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
4347         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
4348         gfc_trans_deferred_array): Handle character arrays.
4349         * trans-const.c (gfc_conv_const_charlen): New function.
4350         * trans-const.h (gfc_conv_const_charlen): Add prototype.
4351         * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
4352         as static.
4353         (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
4354         (gfc_create_string_length): New function.
4355         (gfc_get_symbol_decl): Create lengths for character variables.
4356         (gfc_get_fake_result_decl): Ditto.
4357         (gfc_build_function_decl): Only set length for assumed length
4358         character arguments.
4359         (gfc_trans_dummy_character): New function.
4360         (gfc_trans_auto_character_variable): Rewrite.
4361         (gfc_trans_deferred_vars): Handle more types of character variable.
4362         (gfc_create_module_variable): String lengths have moved.
4363         (gfc_generate_function_code): Initialize deferred var chain earlier.
4364         * trans-expr.c (gfc_conv_init_string_length): Rename ...
4365         (gfc_trans_init_string_length):  ... to this.
4366         (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
4367         gfc_conv_function_call): Update to new format for character variables.
4368         (gfc_conv_string_length): Remove.
4369         (gfc_conv_string_parameter): Update assertion.
4370         * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
4371         * trans-io.c (set_string): Use new macro names.
4372         * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
4373         * trans-types.c (gfc_get_character_type): Use existing length expr.
4374         (gfc_is_nodesc_array): Make public.
4375         (gfc_get_dtype_cst): Rename ...
4376         (gfc_get_dtype): ... to this.  Handle unknown size arrays.
4377         (gfc_get_nodesc_array_type): Use new name.
4378         (gfc_sym_type): New character variable code.
4379         (gfc_get_derived_type): Ditto.
4380         (gfc_get_function_type): Evaluate character variable lengths.
4381         * trans-types.h (gfc_strlen_kind): Define.
4382         (gfc_is_nodesc_array): Add prototype.
4383         * trans.h: Update prototypes.
4384         (struct lang_type): Update comments.
4385         (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
4386         (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
4387
4388 2004-04-04  Paul Brook  <paul@codesourcery.com>
4389
4390         * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
4391         * options.c (gfc_init.options, gfc_handle_option): Ditto.
4392         * trans-expr.c (gfc_conv_function_call): Ditto.
4393         * trans-types.c (gfc_is_nodesc_array): Ditto
4394         * lang.opt (fg77-calls): Remove.
4395
4396 2004-04-04  Paul Brook  <paul@codesourcery.com>
4397
4398         * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
4399         (gfc_conv_descriptor_base): Rename ...
4400         (gfc_conv_descriptor_offset): ... to this.
4401         (gfc_trans_allocate_array_storage): Set offset to zero.
4402         (gfc_conv_array_base): Rename ...
4403         (gfc_conv_array_offset): ... to this.
4404         (gfc_conv_array_index_ref): Add offset parameter.
4405         (gfc_conv_array_ref): Include offset.
4406         (gfc_trans_preloop_setup): Use existing offset.
4407         (gfc_trans_allocate_temp_array,  gfc_array_allocate,
4408         gfc_trans_auto_array_allocation, gfc_trans_g77_array,
4409         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
4410         gfc_conf_ss_descriptor): Set offset.
4411         * trans-array.h: Rename prototypes.
4412         * trans-const.h (gfc_index_zero_node): Define.
4413         * trans-decl.c (gfc_build_qualified_array): Change base to offset.
4414         * trans-types.c (gfc_get_array_type_bounds): Ditto.
4415         (gfc_get_nodesc_array_type): Calculate offset before upper bound.
4416
4417 2004-03-25  Diego Novillo  <dnovillo@redhat.com>
4418
4419         * convert.c (convert): Don't handle WITH_RECORD_EXPR.
4420
4421 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
4422
4423         PR 14055
4424         * arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
4425         before conversion by gmp library call.
4426
4427 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
4428
4429         PR 12921
4430         * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
4431
4432 2004-02-24  Richard Henderson  <rth@redhat.com>
4433
4434         * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
4435
4436 2004-02-19  Loren J. Rittle  <ljrittle@acm.org>
4437
4438         * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
4439         (fortran/gfortran.info): ... to here.
4440         (f95.srcinfo): New.
4441
4442 2004-02-16  Richard Henderson  <rth@redhat.com>
4443
4444         * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
4445         * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
4446         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
4447         (gfc_expand_function): Rename from expand_function_body, make static,
4448         don't do anything except invoke tree_rest_of_compilation.
4449         (gfc_be_parse_file): Invoke cgraph.
4450         (gfc_expand_decl): Remove.
4451         (gfc_init_builtin_functions): Add __builtin_init_trampoline and
4452         __builtin_adjust_trampoline.
4453         * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
4454         (gfc_finalize): New.
4455         (gfc_generate_function_code): Use it.  Lower nested functions.
4456         * trans-expr.c (gfc_conv_function_call): Add static chain operand
4457         to call_expr.
4458         * trans.c (gfc_build_function_call): Likewise.
4459         * trans.h (expand_function_body): Remove.
4460
4461 2004-02-15  Victor Leikehman  <lei@il.ibm.com>
4462
4463         PR gfortran/13433
4464         * trans-decl.c (gfc_build_function_decl) For functions
4465         returning CHARACTER pass an extra length argument,
4466         following g77 calling conventions.
4467         * trans-types.c (gfc_get_function_type) Ditto.
4468         * trans-expr.c (gfc_conv_function_call) Ditto.
4469
4470 2004-02-14  Paul Brook  <paul@codesourcery.com>
4471
4472         * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
4473
4474 2004-02-12  Paul Brook  <paul@nowt.org>
4475
4476         * BUGS: Remove.
4477
4478 2004-02-08  Steve Kargl  <sgk@troutmask.apl.washington.edu>
4479
4480         * gfortran.texi: Fix typos.
4481
4482 2004-02-07  Bud Davis  <bdavis9659@comcast.net>
4483
4484         PR gfortran/13909
4485         * intrinsic.c (add_conversions) Use logical conversion instead
4486         of real.
4487         * trans-types.c (gfc_get_logical_type) implemented logical*1
4488         and logical*2.
4489
4490 2004-01-17  Paul Brook  <paul@codesourcery.com>
4491
4492         * lang-specs.h: Remove %<fixed-form.
4493
4494 2004-01-15  Toon Moene  <toon@moene.indiv.nluug.nl>
4495
4496         * lang-specs.h: Enable preprocessing of source files
4497         ending in .F, .fpp, .FPP, .F90 and .F95.
4498
4499 2004-01-13  Toon Moene  <toon@moene.indiv.nluug.nl>
4500
4501         PR fortran/12912
4502         * lang-specs.h: Enable compilation of files ending
4503         in .f, .for and .FOR.
4504
4505 2004-01-11  Paul Brook  <paul@codesourcery.com>
4506
4507         * trans-stmt.c (gfc_trans_if_1): New function.
4508         (gfc_trans_if): Use it.
4509
4510 2004-01-11  Erik Schnetter  <schnetter@uni-tuebingen.de>
4511
4512         * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
4513         (gfc_option_t): Add max_identifier_length.
4514         * lang.opt: Add fmax-identifier-length.
4515         * match.c (parse_name): Use limit.
4516         * options.c (gfc_init_options): Set max_identifier_length.
4517         (gfc_handle_option): Ditto.
4518
4519 2004-01-11  Feng Wang  <fengwang@nudt.edu.cn>
4520
4521         * intrinsic.c (add_functions): Add resolve function to dcmplx.
4522         * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
4523         * iresolve.c (gfc_resolve_dcmplx): New function.
4524
4525 2004-01-10  Paul Brook  <paul@codesourcery.com>
4526
4527         * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
4528         * trans-types.c (gfc_sym_type): Handle external dummy procedures.
4529         (gfc_return_by_reference): Correct condition.
4530         (gfc_get_function_type): Ditto.
4531
4532 2004-01-10  Paul Brook  <paul@codesourcery.com>
4533
4534         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
4535         types.
4536
4537 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
4538
4539         * iresolve.c: Use correct kind.
4540
4541 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
4542
4543         PR fortran/13467
4544         * trans-decl.c (gfc_create_module_variable):  Output array valued
4545         parameters.
4546
4547 2004-01-10  Paul Brook  <paul@codesourcery.com>
4548
4549         * resolve.c (resolve_branch): Get error message right way round.
4550
4551 2004-01-10  Canqun Yang <canqun@nudt.edu.cn>
4552
4553         * trans-array (gfc_conv_loop_setup): Adjust comment to track
4554         reality.
4555         (gfc_array_allocate): Don't count size of element twice.
4556
4557 2004-01-04  Paul Brook  <paul@codesourcery.com>
4558
4559         * lang.opt (i8, r8, std=*): Remove RejectNegative.
4560
4561 2004-01-04  Paul Brook  <paul@codesourcery.com>
4562
4563         * error.c (gfc_notify_std): New function.
4564         * gfortran.h (gfc_notify_std): Declare.
4565         (GFC_STD_*): Define.
4566         (gfc_option_t): Add warn_std and allow_std.
4567         * intrinsic.c (gfc_init_expr_extensions): Fix logic.
4568         (gfc_intrinsic_func_interface): Use gfc_notify_std.
4569         * check.c (check_rest): Use gfc_notify_std.
4570         * match.c (gfc_match_pause): Ditto.
4571         (gfc_match_assign): Ditto.
4572         (gfc_match_goto): Ditto.
4573         * resolve.c (resolve_branch): Ditto.
4574         * lang.opt: Add std=<foo> and w.
4575         * options.c (gfc_init_options): Set allow_std and warn_std.
4576         (gfc_handle_option): Handle OPT_std_* and OPT_w.
4577
4578 2004-01-01  Paul Brook  <paul@codesourcery.com>
4579
4580         * array.c (gfc_append_constructor): Take constructor, not expression.
4581         * data.c (struct gfc_expr_stack): Remove.
4582         (expr_stack): Remove.
4583         (find_con_by_offset): Rename from find_expr_in_con.
4584         (find_con_by_component): Rename from find_component_in_con.
4585         (gfc_get_expr_stack): Remove.
4586         (gfc_assign_data_value): Rewrite.
4587         (gfc_expr_push): Remove.
4588         (gfc_expr_pop): Remove.
4589         (gfc_advance_section): Rename from
4590         gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
4591         (gfc_get_section_index): Handle unbounded sections.
4592         * gfortran.h: Update prototypes.
4593         * resolve.c (check_data_variable): Array section maight not be the
4594         last ref.
4595
4596 2004-01-01  Paul Brook  <paul@codesourcery.com>
4597
4598         PR fortran/13432
4599         * resolve.c (resolve_symbol): Allow assumed length function results.
4600
4601 2004-01-01  Steve Kargl  <sgk@troutmask.apl.washington.edu>
4602
4603         * match.c (gfc_match_pause): Fix spelling.
4604
4605 2004-01-01  Steven Bosscher  <stevenb@suse.de>
4606
4607         PR fortran/13251
4608         * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
4609         reference from the expression.
4610
4611 2003-12-26  Feng Wang  <fengwang@nudt.edu.cn>
4612
4613         * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
4614         dumping.
4615         * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
4616         (gfc_exec_op): New EXEC_LABEL_ASSIGN.
4617         (symbol_attribute):New variable attribute: assign.
4618         * io.c (resolve_tag):Integer variable is allowed.
4619         (match_dt_format): Add ASSIGN statement. Set assign flag.
4620         * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
4621         (gfc_match_assign): Add ASSIGN statement. Set assign flag.
4622         (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
4623         * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
4624         (next_statement): Add ST_LABEL_ASSIGNMENT.
4625         (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
4626         * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
4627         (resolve_blocks): Resolve ASSIGNED GOTO statement label list.
4628         * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
4629         * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
4630         assign.  Put them into the stuct lang_decl.
4631         * trans-io.c (set_string): Add the assign statement.
4632         * trans-stmt.c (gfc_trans_label_assign): New function.
4633         (gfc_trans_goto): Translate ASSIGNED GOTO statement.
4634         * trans-stmt.h (gfc_trans_label_assign): Added function prototype.
4635         * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
4636         * trans.h (lang_decl):Add shadow variable decl tree needed by assign.
4637         (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
4638         (GFC_DECL_ASSIGN(node)): New macro to access flag.
4639
4640 2003-12-31  Huang Chun <chunhuang73@hotmail.com>
4641
4642         PR fortran/13434
4643         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in
4644         minval/maxval.
4645
4646 2003-12-22  Toon Moene  <toon@moene.indiv.nluug.nl>
4647
4648         * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
4649         that arguments to subroutines/functions can't alias themselves, nor global
4650         memory.
4651
4652 2003-12-20  Steven Bosscher  <stevenb@suse.de>
4653
4654         * trans-expr.c (gfc_conv_expr_op): Fold the result expression.
4655         * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise.
4656
4657 2003-12-12  Huang Chun <chunhuang73@hotmail.com>
4658
4659         * primary.c (match_substring): Fix substring bug for start point
4660         or end point is NULL.
4661         * trans-expr.c (gfc_conv_substring): Ditto
4662         * trans-types.c (gfc_sym_type): Get correct type of scalar
4663         character variables.
4664         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in
4665         derived type.
4666
4667 2003-12-10  Richard Henderson  <rth@redhat.com>
4668
4669         * options.c (gfc_post_options): Don't ever use rtl inlining.
4670
4671 2003-12-05  Canqun Yang  <canqun@nudt.edu.cn>
4672
4673         * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists.
4674         * trans-equivalence.c: Remove.
4675         * trans-decl.c (gfc_get_symbol_decl): Update to match.
4676         (gfc_generate_function_code): Ditto.
4677         * trans-array.c (gfc_conv_array_parameter): Ditto.
4678         * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o
4679         (F95_ADDITIONAL_OBJS): Add stor-layout.o
4680         * trans.h (gfc_trans_equivalence): Remove.
4681         * gfortran.h (struct gfc_equiv): Add used field.
4682         (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring,
4683         equiv_offset fields.
4684
4685 2003-12-05  Richard Henderson  <rth@redhat.com>
4686
4687         * trans.c (gfc_build_addr_expr): New.
4688         (gfc_build_indirect_ref, gfc_build_array_ref): New.
4689         * trans.h: Declare them.
4690         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
4691         trans-stmt.c, trans.c (*): Use them.
4692
4693         * f95-lang.c (gfc_post_options): Remove dead prototype.
4694         * trans-array.c (gfc_trans_deferred_vars): Remove unused variable.
4695         * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list
4696         allocation size.
4697
4698 2003-12-01  Feng Wang  <fengwang@nudt.edu.cn>
4699
4700         * io.c (gfc_match_format): Check for missing format label.
4701
4702 2003-11-30 Huang Chun <chunhuang73@hotmail.com>
4703
4704         PR fortran/13155
4705         * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols
4706         from interfaces in modules.
4707
4708 2003-11-30  Paul Brook  <paul@nowt.org>
4709
4710         * trans-array.c (gfc_trans_g77_array): Make non-static.
4711         (gfc_trans_assumed_size): Remove.
4712         (gfc_trans_dummy_array_bias): Explicitly free temporary.
4713         * trans-array.h (gfc_trans_g77_array): Add prototype.
4714         (gfc_trans_assumed_size): Remove.
4715         * trans-decls.c (gfor_fndecl_push_context): Remove.
4716         (gfor_fndecl_pop_context): Remove.
4717         (gfc_build_function)decls): Don't create them.
4718         (gfc_trans_deferred_vars): Update to match. Remove dead code.
4719         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp.
4720
4721 2003-11-30  Kejia Zhao  <kejia_zh@nudt.edu.cn>
4722
4723         * trans-array.c (gfc_conv_array_parameter): Simplify
4724         array argument passing for array name actual argument.
4725         * trans-expr.c (gfc_conv_function_call): Ditto
4726         * trans-types.c (gfc_is_nodesc_array):Ditto.
4727
4728 2003-11-30  Paul Brook  <paul@nowt.org>
4729
4730         * f95-lang.c (gfc_post_options): Move ...
4731         * options.c (gfc_post_options): .. to here.  Handle inlining options.
4732         * gfortran.h (gfc_post_options): Add prototype.
4733
4734 2003-11-28  Richard Henderson  <rth@redhat.com>
4735
4736         * trans.c (gfc_create_var_np): Use create_tmp_var_raw.
4737
4738 2003-11-28 Huang Chun <chunhuang73@hotmail.com>
4739
4740         * trans.h (has_alternate_specifier): New global variable.
4741         * match.c (gfc_match_call): Handle actual arguments associated with
4742         alternate return indicators.
4743         * trans-expr.c (gfc_conv_function_call): Ditto
4744         * trans-stmt.c (gfc_trans_call): Ditto
4745         (gfc_trans_return): Handle return statement with value.
4746         * trans-decl.c (gfc_generate_function_code): Handle functions with
4747         asterisk dummy.
4748         (gfc_get_fake_result_decl): Ditto
4749         * trans-types.c (gfc_get_function_type): Ditto
4750         * resolve.c (resolve_actual_arglist): Check alternate return indicators.
4751         (resolve_formal_arglist): Check asterisk dummy.
4752
4753 2003-11-27  Paul Brook  <paul@nowt.org>
4754
4755         * trans-array.c (gfc_tran_allocate_array_storage): Use new memory
4756         allocation interface.
4757         (gfc_conv_ array_parameter): Ditto.
4758         (gfc_trans_auto_array_allocation): Ditto. Also free the memory.
4759         * trans-array.c: Update prototype.
4760         * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes.
4761         (gfc_trans_auto_character_variable): Use new memory alloc interface.
4762         * trans-expr.c (gfc_conv_string_tmp): Ditto.
4763         (gfc_conv_function_call): Use gfc_conv_string_tmp.
4764         * trans-stmt.c (gfc_do_allocate):  Use new memory alloc interface.
4765         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto.
4766         * trans.h (gfc_ss_info): Remove unused pdata field.
4767         * trans.c (gfc_create_var_np): Change T to V.
4768
4769 2003-11-26  Richard Henderson  <rth@redhat.com>
4770
4771         * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ...
4772         * trans-intrinsic.c (gfc_intrinsic_map): ... here.  Add SCALE,
4773         FRACTION, NEAREST, SET_EXPONENT.
4774         (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant.
4775         Fix GTY marking.  Remove unnecessary const's.
4776         (LIBM_FUNCTION): Rename from I_LIB.
4777         (LIBF_FUNCTION): New.
4778         (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming
4779         conventions.  Assume the expr signature is correct.  Mark const.
4780         (gfc_conv_intrinsic_exponent): Use library functions.
4781         (gfc_conv_intrinsic_set_exponent): Remove.
4782         (gfc_conv_intrinsic_scale): Remove.
4783         (gfc_conv_intrinsic_nearest): Remove.
4784         (gfc_conv_intrinsic_fraction): Remove.
4785         (gfc_conv_intrinsic_function): Update.
4786         * trans-decl.c (gfor_fndecl_math_exponent4): New.
4787         (gfor_fndecl_math_exponent8): New.
4788         (gfc_build_intrinsic_function_decls): Set them.
4789         * trans.h: Declare them.
4790
4791 2003-11-25  Canqun Yang  <canqun@nudt.edu.cn>
4792
4793         * trans-common.c (gfc_layout_global_equiv): Locate the error for
4794         underflow COMMON block.
4795         (gfc_trans_one_common): Fix bug for size of COMMON block containing
4796         EQUIVALENCE object. Also fix typo in an error message.
4797
4798 2003-11-25  Diego Novillo  <dnovillo@redhat.com>
4799
4800         * Make-lang.in: Add check-gfortran to lang_checks.
4801         (check-f95): Alias for check-gfortran.
4802
4803 2003-11-25  Jason Merrill  <jason@redhat.com>
4804
4805         * Make-lang.in (f95.tags): Create TAGS.sub files in each
4806         directory and TAGS files that include them for each front end.
4807
4808 2003-11-24  Paul Brook  <paul@nowt.org>
4809
4810         PR fortran/13154
4811         * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks.
4812
4813 2003-11-24  Paul Brook  <paul@nowt.org>
4814
4815         * expr.c (simplify_const_ref): Return SUCCESS for things we don't
4816         handle.
4817         * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape.
4818
4819 2003-11-24  Paul Brook  <paul@nowt.org>
4820
4821         PR fortran/13105
4822         * array.c (gfc_array_ref_shape): Handle elemental dimensions.
4823         * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup.
4824
4825 2003-11-20  Richard Henderson  <rth@redhat.com>
4826
4827         * trans-array.c (gfc_trans_allocate_array_storage): Use convert.
4828         (gfc_conv_array_base): Likewise.
4829         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
4830         * trans-expr.c (gfc_conv_string_tmp): Likewise.
4831         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise.
4832         * trans-stmt.c (gfc_trans_character_select): Likewise.
4833
4834 2003-11-13  Paul Brook  <paul@nowt.org>
4835
4836         * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals.
4837
4838 2003-11-13  Canqun Yang  <canqun@nudt.edu.cn>
4839
4840         * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects.
4841         (resolve_equivalence): New function.
4842         (resolve_equivalence_derived): New function.
4843
4844 2003-11-12  Richard Henderson  <rth@redhat.com>
4845
4846         * trans.c (gfc_trans_code): Use annotate_with_locus instead of
4847         annotate_all_with_locus.
4848
4849 2003-11-11  Canqun Yang  <canqun@nudt.edu.cn>
4850
4851         * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768.
4852         * trans-decl.c (gfc_finish_var_decl): Modified.
4853
4854 2003-11-08  Paul Brook  <paul@nowt.org>
4855
4856         PR fortran/12704
4857         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size
4858         arrays.
4859
4860 2003-11-06  Paul Brook  <paul@nowt.org>
4861
4862         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos.
4863
4864 2003-11-02  Canqun Yang  <canqun@nudt.edu.cn>
4865
4866         * match.c (gfc_match_stopcode): Assign '0' to stop_code.
4867
4868 2003-10-27  Anthony Green  <green@redhat.com>
4869
4870         * Make-lang.in (f95.stageprofile): Use tabs, not spaces.
4871         (f95.stagefeedback): Ditto.
4872
4873 2003-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
4874
4875         PR fortran/12682
4876         * Make-lang.in (f95.stageprofile): Add.
4877         (f95.stagefeedback): Add.
4878
4879 2003-10-23  Richard Henderson  <rth@redhat.com>
4880
4881         * f96-lang.c (gfc_gimplify_expr): Remove.
4882         (LANG_HOOKS_GIMPLIFY_EXPR): Remove.
4883         (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New.
4884
4885 2003-10-23  Richard Henderson  <rth@redhat.com>
4886
4887         * f95-lang.c (gfc_gimplify_expr): Return gimplify_status.
4888
4889 2003-10-20  Paul Brook  <paul@nowt.org>
4890
4891         * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node.
4892         * trans-stmt.c (gfc_trans_do_while): Ditto.
4893
4894 2003-10-17  Paul Brook  <paul@nowt.org>
4895
4896         * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size.
4897
4898 2003-10-17  Paul Brook  <paul@nowt.org>
4899
4900         * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC.
4901
4902 2003-10-17  Feng Wang  <wf_cs@yahoo.com>
4903
4904         * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type.
4905         (gfc_resolve_minloc): Ditto.
4906         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types.
4907         Return the value after subtracting the lower bound.
4908
4909 2003-10-16  Richard Henderson  <rth@redhat.com>
4910
4911         * f95-lang.c (expand_function_body): Don't check flag_disable_gimple.
4912
4913 2003-10-16  Steven Bosscher  <steven@gcc.gnu.org>
4914
4915         * lang.c: Remove -M option for now, it's in the way for C.
4916
4917 2003-10-14  Jason Merrill  <jason@redhat.com>
4918
4919         * Make-lang.in (f95.tags): New rule.
4920
4921 2003-10-13  Richard Henderson  <rth@redhat.com>
4922
4923         * trans.c (gfc_trans_code): Use annotate_all_with_locus.
4924
4925 2003-10-13  Paul Brook  <paul@nowt.org>
4926
4927         * trans-decl.c (generate_local_decl): Don't create junk variables.
4928
4929 2003-10-13  Paul Brook  <paul@nowt.org>
4930
4931         * resolve.c (resolve_formal_arglist): Use function result decl in
4932         preference to function decl.
4933
4934 2003-10-12  Richard Henderson  <rth@redhat.com>
4935
4936         * f95-lang.c (gfc_define_builtin): New const_p argument.  Set
4937         TREE_READONLY.  Update all callers.
4938
4939 2003-10-12  Feng Wang  <wf_cs@yahoo.com>
4940
4941         * iresolve.c (gfc_resolve_cshift): Change to match implementation.
4942         * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT.
4943         (gfc_is_intrinsic_libcall): Add CSHIFT.
4944
4945 2003-10-12  Richard Henderson  <rth@redhat.com>
4946
4947         * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT.
4948         (gfc_trans_array_constructor_value): Likewise.
4949         (gfc_conv_array_initializer): Likewise.
4950         * trans-stmt.c (gfc_trans_character_select): Likewise.
4951
4952 2003-11-12  Kejia Zhao  <kejia_zh@yahoo.com.cn>
4953
4954         * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove.
4955
4956 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
4957
4958         * check.c (gfc_check_repeat): Check arguments are scalar.
4959         (gfc_check_trim): New function.
4960         * intrinsic.h (gfc_check_trim): Add prototype.
4961         * intrinsic.c (add_functions): Use it.
4962         * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat):
4963         Decalare.
4964         * trans-decl.c: Ditto.
4965         (gfc_build_intrinsic_fucntion_decls): Set them.
4966         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars.
4967         (gfc_conv_intrinsic_trim): New function.
4968         (gfc_conv_intrinsic_repeat): New function.
4969         (gfc_conv_intrinsic_function): Use them.
4970
4971 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
4972
4973         * trans-types.c (gfc_sym_type): Handle result variables.
4974
4975 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
4976
4977         * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use
4978         gfc_get_character_type.
4979
4980 2003-10-11  Feng Wang  <wf_cs@yahoo.com>
4981
4982         * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl.
4983
4984 2003-10-11  Paul Brook  <paul@nowt.org>
4985
4986         * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions.
4987         (gfc_resolve_dprod): New function.
4988         (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type.
4989         * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare.
4990         (gfc_resolve_dprod): Declare.
4991         * intrinsic.c (add_functions): Use them.
4992         * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg.
4993
4994 2003-10-06  Richard Henderson  <rth@redhat.com>
4995
4996         * f95-lang.c (gfc_init_builtin_functions): Add clzll.
4997         * trans-intrinsic.c (call_builtin_clz): Use it.
4998
4999 2003-10-05  Paul Brook  <paul@nowt.org>
5000
5001         * f95-lang.c (expand_function_body): Call (push|pop)_function_context.
5002         * trans-decl.c (gfc_generate_function_code): Set
5003         cfun->function_end_locus.
5004
5005 2003-09-24  Jason Merrill  <jason@redhat.com>
5006
5007         * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of
5008         TREE_LOCUS.
5009
5010 2003-09-21  Lifang Zeng  <zlf605@hotmail.com>
5011         Paul Brook  <paul@nowt.org>
5012
5013         * Make-lang.in (F95_OBJS): Add fortran/data.o.
5014         * array.c (gfc_inser_constructor): New function.
5015         (gfc_get_constructor): New function.
5016         (gfc_free_constructor): Initialize offset and repeat.
5017         (iterator_stack): Remove.
5018         (expand_info): Add offset, component and repeat fields.
5019         (expand_constructor): Set them.
5020         (expand): Set new fields.
5021         (gfc_copy_constructor): Ditto. Avoid recursion.
5022         * gfortran.h: Add prototypes for new functions.
5023         (gfc_constructor): Add offset, component and repeat.
5024         (iteratio_stack): Move to here.
5025         * resolve.c (check_data_variable): Convert data values into variable
5026         initializers.
5027         (traverse_data_list): Build implicit loop chain.
5028         (gfc_resolve): Ditto.
5029         * trans-array.c (gfc_conv_array_intializer): Handle repeat count.
5030         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure.
5031         * trans-expr.c (gfc_conv_structure): Handle array initializers.
5032         (gfc_conv_expr): Update to match.
5033         * trans.h (gfc_conv_structure): Declare.
5034         * data.c: New file.
5035
5036 2003-09-20  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5037
5038         * trans.h: Add declarations for gfor_fndecl_si_kind and
5039         gfor_fndecl_sr_kind.
5040         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
5041         * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function.
5042         (g95_conv_intrinsic_sr_kind): New function.
5043         (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and
5044         SELECTED_REAL_KIND.
5045
5046 2003-09-17  Lars Segerlund  <Lars.Segerlund@comsys.se>
5047
5048         * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8
5049         instead of _4 and _8 as postfix for libgfortran calls.
5050
5051 2003-09-16  Paul Brook  <paul@nowt.org>
5052
5053         * array.c (compare_bounds): New function.
5054         (gfc_compare_array_spec): Use it.
5055
5056 2003-09-14  Paul Brook  <paul@nowt.org>
5057
5058         * primary.c (gfc_match_rvalue): Make sure sym->result is set.
5059         * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs.
5060
5061 2003-09-14  Paul Brook  <paul@nowt.org>
5062
5063         * check.c (dim_rank_check): Allow assumed bounds if requested.
5064         (gfc_check_lbound): Call it.
5065         (gfc_check_ubound): Ditto.
5066         (gfc_check_size): Change to match.
5067         * simplify.c (gfc_simplify_bound): New function.
5068         (gfc_simplify_lbound): New function.
5069         (gfc_simplify_ubound): New function.
5070         * intrinsic.h: Declare them.
5071         * intrinsic.c (add_functions): Use them.
5072
5073 2003-09-14  Paul Brook  <paul@nowt.org>
5074
5075         * io.c (format_lex): Initialize negative_flag.
5076         (check_format): Intialize repeat.
5077         * trans-io.c (gfc_new_nml_name_expr): Declare static.
5078         (gfc_new_var_expr): Ditto.
5079
5080 2003-09-14  Paul Brook  <paul@nowt.org>
5081
5082         * trans-array.c (gfc_conv_array_initializer): Handle derived types.
5083         * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values.
5084
5085 2003-09-12  Paul Brook  <paul@nowt.org>
5086
5087         * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold.
5088
5089 2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5090
5091         * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr
5092         for a correct expression.
5093
5094 2003-09-10  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5095
5096         * trans-intrinsic.c (real_compnt_info): New struct.
5097         (prepare_arg_info): New function.
5098         (gfc_conv_intrinsic_set_exponent): New function.
5099         (gfc_conv_intrinsic_scale): New function.
5100         (gfc_conv_intrinsic_nearest): New function.
5101         (gfc_conv_intrinsic_fraction): New function.
5102         (gfc_conv_intrinsic_exponent): New function.
5103         (gfc_conv_intrinsic_spacing): New function.
5104         (gfc_conv_intrinsic_rrspacing): New function.
5105         (gfc_conv_intrinsic_function): Use them.
5106
5107 2003-08-24 XiaoQiang Zhang  (zhangapache@yahoo.com>
5108
5109         * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for
5110         build_int_2 changed from (high, low) to (low, high).
5111         * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len,
5112         ioparm_namelist_read_mode, iocall_set_nml_val_int,
5113         iocall_set_nml_val_float, iocall_set_nml_val_char,
5114         iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration.
5115         (gfc_build_io_library_fndecls): Add variable initialization.
5116         (gfc_new_nml_name_expr, get_new_var_expr): New function.
5117         (build_dt): Add namelist support.
5118         * io.c (value): New variable.
5119         (check_format): Support FMT_H now.
5120
5121 2003-09-07  Paul Brook  <paul@nowt.org>
5122
5123         * io.c (gfc_resolve_dt): Error if format label is not defined.
5124
5125 2003-09-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5126
5127         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is
5128         about case_switch's break. The other is about building the condition
5129         statement tree, which judges the argument in the range of the
5130         corresponding integer type.
5131         * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work
5132         for the large values.
5133
5134 2003-09-05  Paul Brook  <paul@nowt.org>
5135
5136         * f95-lang.c (expand_function_body): Gimplify the function.
5137
5138 2003-09-04  Jeff Law  <law@redhat.com>
5139
5140         * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at
5141         index zero!
5142
5143 2003-09-04  Paul Brook  <paul@nowt.org>
5144
5145         * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls.
5146         (gfc_expand_stmt): New function.
5147         (LANG_HOOKS_RTL_EXPAND_STMT): Define.
5148         (expand_function_body): Use tree_rest_of_compilation.
5149         * trans-decl.c (gfc_generate_function_code): Don't free cfun.
5150
5151 2003-09-03  Jeff Law  <law@redhat.com>
5152
5153         * f95-lang.c (gfc_init_builtin_functions): C arrays start at
5154         index zero!
5155
5156 2003-08-30  Paul Brook  <paul@nowt.org>
5157
5158         * f95-lang.c (builtin_function): Remove #if 0 code.
5159         (gfc_define_builtin): New function.
5160         (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def.
5161         * mathbuiltins.def: New file.
5162         * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields.
5163         (gfc_intrinsic_map): Use mathbuiltins.def.
5164         (gfc_intrinsic_builtin_t): Remove.
5165         (gfc_build_intrinsic_lib_fndecls): Update.
5166         * trans-types.c (gfc_init_types): Remove redundant initilaization of
5167         signed_size_type_node.
5168
5169 2003-08-29  Paul Brook  <paul@nowt.org>
5170
5171         * arith.c (gfc_real_kinds): Use correct minimum exponents.
5172
5173 2003-08-22  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5174
5175         * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO.
5176         (gfc_conv_intrinsic_function): Add MODULO.
5177
5178 2003-08-22  Jason Merrill  <jason@redhat.com>
5179
5180         * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates.
5181
5182 2003-08-22  Andreas Jaeger  <aj@suse.de>
5183
5184         * Make-lang.in (f95.install-common): Add DESTDIR support.
5185         * (f95.install-info): Likewise.
5186         (f95.uninstall): Likewise.
5187
5188 2003-08-19  Diego Novillo  <dnovillo@redhat.com>
5189
5190         * trans-types.c (gfc_init_types): Initialize
5191         signed_size_type_node with size_type_node.
5192
5193 2003-08-18  Paul Brook  <paul@nowt.org>
5194
5195         * dependency.c (gfc_dependency): New enum.
5196         (check_another_array_ref): Remove.
5197         (gfc_get_array_from_component): Remove.
5198         (get_x): Remove.
5199         (get_range): Remove.
5200         (get_no_of_elements): Use mpz_t, not mpf_t.
5201         (transform_sections): New function.
5202         (gfc_check_range_range): Rename ...
5203         (gfc_check_section_vs_section): ... to this.  Use new function.
5204         (gfc_is_inside_range): Rewrite to match.
5205         (gfc_check_element_vs_section): Ditto.
5206         (gfc_check_element_vs_element): Ditto.
5207         (get_deps): Ditto.
5208         (gfc_dep_resolver): Ditto.  Remove unused parameter.
5209         * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section,
5210         gfc_check_element_vs_element, gfc_is_inside_range,
5211         gfc_get_array_from_component): Remove prototypes for static functions.
5212         (gfc_dep_resolver): Update prototype.
5213         * trans-array.c (gfc_conv_resolve_dependencies): Change to match.
5214
5215 2003-08-15  Paul Brook  <paul@nowt.org>
5216
5217         * trans-decl.c (gfc_build_qualified_array): Don't add symbols for
5218         return values to parent scope.
5219         (gfc_build_dummy_array_decl): Ditto.
5220
5221 2003-08-14  Paul Brook  <paul@nowt.org>
5222
5223         * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the
5224         size of the type, not the pointer.
5225         * resolve.c (resolve_symbol): Give more accurate error message.
5226
5227 2003-08-10  Paul Brook  <paul@nowt.org>
5228
5229         * trans-decl.c (gfc_build_function_decl): Only mangle global symbols.
5230
5231 2003-08-10  Paul Brook  <paul@nowt.org>
5232
5233         * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived
5234         type components.
5235
5236 2003-08-10  Chun Huang  <compiler@sohu.com>
5237
5238         * resolve.c (resolve_formal_arglist): Resolve STATEMENT function.
5239         (resolve_symbol): Ditto.
5240         * trans-expr.c (gfc_conv_statement_function): New function.
5241         (gfc_conv_function_expr): Use it.
5242
5243 2003-08-10  Paul Brook  <paul@nowt.org>
5244
5245         * trans-array.c (gfc_conv_ss_startstride): Handle functions.
5246         (walk_function_expr): Set section rank.
5247         * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
5248
5249 2003-08-10  Paul Brook  <paul@nowt.org>
5250
5251         * intrinsic.c (add_sym): Prefix names with correct string.
5252         (add_sym_0s): New function.
5253         (add_subroutines): Register abort.
5254
5255 2003-08-10  Erik Schnetter  <schnetter@uni-tuebingen.de>
5256
5257         * gfortran.h: Introduce options to control the mangling.
5258         * lang.opt: Likewise.
5259         * options.c (gfc_init_options): Handle the options.
5260         * trans-common.c (gfc_sym_mangled_common_id): New function.
5261         (gfc_build_common_decl): Call it.
5262         * trans-decl.c (gfc_sym_mangled_function_id): New function.
5263         (gfc_get_extern_function_decl, gfc_build_function_decl): Call it.
5264
5265 2003-08-09  Paul Brook  <paul@nowt.org>
5266
5267         * module.c (mio_symbol): Always ouput a namespace for formal args.
5268         (load_needed): Namespace now belong to their proper symbol.
5269         (gfc_dump_module): Change G95=>GFORTRAN.
5270
5271 2003-08-05  Paul Brook  <paul@nowt.org>
5272
5273         * options.c: Force -fg77-calls.
5274
5275 2003-08-02  Paul Brook  <paul@nowt.org>
5276
5277         * Makelang.in: Rename G95_* to GFORTRAN_*.
5278         * All sources: Rename G95_* to GFC_*.
5279
5280 2003-08-01  Paul Brook  <paul@nowt.org>
5281
5282         * fortran/Make-lang.in: Use GMPLIBS.
5283         * fortran/config-lang.in: Set need_gmp.
5284         * trans-expr.c (gfc_conv_variable): Remove incorrect assertion.
5285
5286 2003-07-27  Andreas Jaeger  <aj@suse.de>
5287
5288         * trans-decl.c (gfc_generate_constructors): Convert prototype to
5289         ISO C90.
5290         * trans-const.c (gfc_init_constants): Likewise.
5291         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise.
5292
5293         * gfortranspec.c: Convert to ISO C90.
5294         (lang_specific_driver): Correct copyright, remove ALT_LIBM usage.
5295
5296 2003-07-26  Paul Brook  <paul@nowt.org>
5297
5298         * lang.opt: Add -fdump-parse-tree.
5299         * options.c (gfc_handle_option): Ditto.
5300         * resolve.c (resolve_forall_iterators): Convert to proper type.
5301         * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type.
5302
5303 2003-07-26  Paul Brook  <paul@nowt.org>
5304
5305         * Makefile.in: Add build dependencies on files common with rest of gcc.
5306
5307 2003-07-26  Lifang Zeng  <zlf605@hotmail.com>
5308
5309         * trans.h: Declare g95_trans_pointer_assignment.
5310         * trans-expr.c (g95_trans_pointer_assignment): New function.
5311         (g95_trans_pointer_assign): Use it.
5312         * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment.
5313         (g95_trans_pointer_assign_need_temp): New function.
5314
5315 2003-07-26  Paul Brook  <paul@nowt.org>
5316
5317         * gfortran.texi: Replace references to g95.
5318
5319 2003-07-26  Paul Brook  <paul@nowt.org>
5320
5321         Rename g95_* to gfc_*.
5322
5323 2003-07-25  Paul Brook  <paul@nowt.org>
5324
5325         * gfortran.h: Rename from g95.h.
5326         * trans-types.c (boolean_type_node, booelan_true_node,
5327         boolean_false_node): Remove.
5328         * trans-types.h: Ditto.
5329
5330 2003-07-25  Chun Huang  <compiler@sohu.com>
5331
5332         * parse.c (accept_statement): Implement BLOCK DATA statement.
5333         * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer
5334         variables.
5335
5336 2003-07-24  Lifang Zeng  <zlf605@hotmail.com>
5337
5338         * trans-stmt.c (temporary_list): Define.
5339         (g95_trans_assign_need_temp): New function.
5340         (g95_trans_forall_1): Modified for WHERE.
5341         (g95_trans_where_assign): Modified.
5342         (g95_trans_where_2): Modified.
5343         (g95_evaluate_where_mask): Modified.
5344         (g95_trans_where): Modified.
5345         (g95_get_temp_expr): Removed.
5346         (g95_add_to_where_stmt_list): Removed.
5347         (compute_overall_iter_number): Modified for WHERE.
5348         * trans.h: Remove where_stmt_list.
5349
5350 2003-07-24  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5351
5352         * lang.opt: Correct description of options -J and -M.
5353
5354 2003-07-23  Steven Bosscher   <steven@gcc.gnu.org>
5355
5356         * lang.opt: Move help text to here.
5357         * lang-options.h: Remove.
5358
5359 2003-07-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5360         * iresolve.c (g95_resolve_transpose): Proper variable in switch.
5361         * simplify.c (g95_simplify_nearest): Fix typo and use a correct test
5362         on kind.
5363
5364 2003-07-22  Steven Bosscher  <steven@gcc.gnu.org>
5365         Paul Brook  <paul@nowt.org>
5366
5367         * check.c (check_rest): Use global pedantic flag.
5368         * io.c (data_desc): Ditto.
5369         * error.c (g95_warning, g95_warning_now): Use global flag.
5370         * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE.
5371         (expand_function_body): Update to new prototypes.
5372         (g95_init): Use new option names.
5373         * g95.h (g95_option_t): Standardize names.
5374         (g95_init_options, g95_handle_option): Update prototypes.
5375         * interface.c: Use new option names.
5376         * match.c: Ditto.
5377         * module.c: Ditto.
5378         * parse.c: Ditto.
5379         * primary.c: Ditto.
5380         * resolve.c: Ditto.
5381         * scanner.c: Ditto.
5382         * simplify.c: Ditto.
5383         * symbol.c: Ditto.
5384         * trans-array.c: Ditto.
5385         * trans-expr.c: Ditto.
5386         * trans-types.c: Ditto.
5387         * trans-decl.c: Ditto.
5388         (g95_build_library_function_decl): Remove obsolete VPARAMS.
5389         * trans.h: Ditto.
5390         * options.c (g95_display_help): Remove.
5391         (g95_init_options): Convert to new scheme.
5392         (set_Wall): Ditto
5393         (g95module_option): Ditto, rename from g95_parse_arg.
5394         (g95_handle_module_path_options): New function.
5395         * trans-equivalence.c: Fix error message.
5396         * lang.opt: Corrections.
5397
5398 2003-07-21  Steven Bosscher  <steven@gcc.gnu.org>
5399
5400         * lang.opt: New file.
5401
5402 2003-07-21  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5403
5404         * decl.c (match_attr_spec): Set colon_seen.
5405
5406 2003-07-14  Paul Brook  <paul@nowt.org>
5407
5408         * trans-array.c: Update comment.
5409         (g95_trans_array_constructor_subarray): Cleanup loopinfo data.
5410         * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith,
5411         minmaxloc,minmaxval): Ditto.
5412         * trans-io.c (g95_trans_transfer): Ditto.
5413         * trans-stmt.c: Remove unneeded prototypes.
5414         (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain.
5415         (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo.
5416         (compute_inner_temp_size): Remove bits of dead code. Add comments.
5417         Don't share loopinfo.
5418         (compute_overall_iter_number): Declare as static.
5419         (allocate_temp_for_forall_nest): Ditto.
5420         (g95_trans_forall_1): Don't pass shared loopinfo.
5421         * trans.c (g95_start_block): Expand comment.
5422
5423 2003-07-12  Paul Brook  <paul@nowt.org>
5424
5425         * arith.c (g95_index_integer_kind): Remove unused initializer.
5426         * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array
5427         index by size of element.
5428         (generate_loop_for_rhs_to_temp): Ditto.
5429         (allocate_temp_for_forall_nest): Use element size, not index size.
5430
5431 2003-07-11  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5432
5433         * arith.c (g95_index_integer_kind): Add a TODO.
5434         * simplify.c (g95_simplify_nearest): Add a TODO.
5435
5436 2003-07-09  Chun Huang  <compiler@sohu.com>
5437
5438         * trans.h: Add declarations for gfor_fndecl_string_scan and
5439         gfor_fndecl_string_verify.
5440         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
5441         * trans-intrinsic.c (g95_conv_intrinsic_scan): New function.
5442         (g95_conv_intrinsic_verify): New function.
5443         (g95_conv_intrinsic_function): Add SCAN and VERIFY.
5444         * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case
5445         of parameter 'BACK=.TRUE.'
5446
5447 2003-07-05  Lifang Zeng  <zlf605@hotmail.com>
5448
5449         * trans-stmt.c (iter_info, forall_info): Define.
5450         (g95_trans_forall_block): Remove.
5451         (g95_trans_forall_loop): Use forall info blocks.
5452         (g95_trans_nested_forall_loop): New function.
5453         (g95_do_allocate): Handle things other than logical masks.
5454         (generate_loop_for_temp_to_lhs): New function.
5455         (generate_loop_for_rsh_to_temp): New function.
5456         (compute_inner_temp_size): New function.
5457         (compute_overall_iter_number): New function.
5458         (allocate_temp_for_forall_nest): New function.
5459         (g95_trans_forall): Move body ...
5460         (g95_trans_forall_1): ... to here.  Handle loops with temporaries.
5461
5462 2003-07-02  Paul Brook  <paul@nowt.org>
5463
5464         * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars
5465         in correct scope.  Change callers to match.
5466         * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays.
5467         * iresolve.c (g95_resolve_reshape): Only use constant shapes.
5468
5469 2003-07-02  Paul Brook  <paul@nowt.org>
5470
5471         * trans-array.c (g95_conv_loop_setup): Remove dead var.  Use
5472         expression shape for all expressions.
5473         * trans-decl.c (g95_symbol_init): Allow adding at very end of list.
5474
5475 2003-07-03  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5476
5477         * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options,
5478         g95_parse_arg), intrinsic.c (g95_convert_type): support of
5479         -Wconversion.
5480         * intrinsic.c, g95.h: Add g95_convert_type_warn,
5481         * resolve.c (g95_resolve_index): Call it.
5482
5483 2003-07-02  Paul Brook  <paul@nowt.org>
5484
5485         * iresolve.c (g95_resolve_reshape): Set expression shape.
5486         (g95_resolve_shape): Ditto.
5487         * simplify.c (g95_simplify_shape): Move common code outside condition.
5488         * trans-array.c (g95_conv_array_initializer): Teach it how to count.
5489
5490 2003-07-01  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5491
5492         * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve
5493         conformance checks.
5494
5495 2003-06-29  Paul Brook  <paul@nowt.org>
5496
5497         * array.c (g95_simplify_iterator_var): Don't bother with return value.
5498         * expr.c (find_array_element, find_component_ref): New functions.
5499         (remove_subobject_ref): New function.
5500         (simplify_const_ref): Use them.  Rename from simplify_component_ref.
5501         (simplify_ref_chain): New function.
5502         (g95_simplify_expr): Use it.  Simplify parameter variable subobjects.
5503         (g95_specification_expr): Simplify the expression.
5504         * resolve.c (resolve_operator): Check simplifications return code.
5505         (g95_resolve_expr): Ditto.
5506
5507 2003-06-26  Paul Brook  <paul@nowt.org>
5508
5509         * expr.c (simplify_component_ref): New function.
5510         (g95_simplify_expr): Use it.
5511         * resolve.c (resolve_structure_cons): Handle references.
5512
5513 2003-06-25  Paul Brook  <paul@nowt.org>
5514
5515         * trans-io.c (build_dt): Handle internal units.
5516
5517 2003-06-25  Canqun Yang  <canqun@yahoo.com.cn>
5518
5519         * trans-common.c (g95_build_common_decl): Array index range starts at 0.
5520         (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common):
5521         Use g95_array_index_type instead of integer_type_node.
5522         (g95_build_common_decl, g95_set_common_master_type): Use
5523         g95_character1_type_node instead of char_type_node.
5524         * trans-equivalence.c (g95_layout_local_equiv): As above.
5525
5526 2003-06-24  Steven G. Kargl  <kargls@attbi.com>
5527
5528         * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg):
5529         remove last remains of -fquiet.
5530
5531 2003-06-22  Paul Brook  <paul@nowt.org>
5532
5533         * resolve.c (resolve_operator): Don't fail if we can't simplify.
5534         (g95_resolve_expr): Ditto.
5535         (resolce_code): Mark as static.
5536         * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the
5537         gimplifer doesn't (yet).
5538
5539 2003-06-20  Paul Brook  <paul@nowt.org>
5540
5541         * g95.h: Add ST_PAUSE and EXEC_PAUSE.
5542         * match.c (g95_match_if): Add ST_PAUSE.
5543         (g95_match_stopcode): New function.
5544         (g95_match_pause, g95_match_stop): Use it.
5545         * parse.c (g95_ascii_statement): Handle ST_PAUSE.
5546         (decode_stmt, next_statement, parse_executable): Ditto.
5547         * resolve.c (resolve_code): Ditto.
5548         * st.c (g95_free_statement): Ditto.
5549         * trans-stmt.c (g95_trans_pause): New function.
5550         * trans-stmt.h: Declare it.
5551         * trans.c (g95_trans_code): Use it.
5552         * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string):
5553         Declare.
5554         (g95_build_builtin_function_decls): Initialize them.
5555         * trans.h: Ditto.
5556         * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE.
5557
5558 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5559
5560         * io.c (g95_match_open , g95_match_close, g95_match_inquire,
5561         match_filepos): Fix error handling.
5562
5563 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5564
5565         * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size):
5566         Add assertions on arguments.
5567         * resolve.c (expression_shape): Remove useless &.
5568         * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits,
5569         g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset,
5570         g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent,
5571         g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range
5572         g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing,
5573         g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions.
5574         (g95_simplify_not, g95_simplify_scale): Add assertions.
5575
5576 2003-06-15  Paul Brook  <paul@nowt.org>
5577
5578         Clean up stuff to work with the ssa optimizers.
5579         * convert.c (convert): Handle BOOLEAN_TYPEs.
5580         * f95-lang.c (g95_truthvalue_conversion): Implement.
5581         * trans-array.c (g95_trans_array_constructor_value): Group multiple
5582         scalar values.
5583         * trans.h (g95_truthvalue_conversion): Declare.
5584         * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants.
5585         * trans-stmt.c (g95_trans_character_select): Don't create array
5586         assignments.  Mark labels as indirect jump targets.
5587         * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes.
5588         (g95_get_dtype_cst): Handle LOGICAL types.
5589
5590 2003-06-14  Paul Brook  <paul@nowt.org>
5591
5592         * f95-lang.c (g95_gimplify_expr): New function.
5593         * trans-array.c (g95_trans_array_constructor_value): Don't create
5594         array assignments.
5595         (g95_conv_expr_descriptor): Rename simple->gimple.
5596         * trans-expr.c (conv_expr_op): Use proper logical operators.
5597         * trans-intrinsic.c (build_fixbound_expr): New function.
5598         (build_fix_expr): Ditto.
5599         (g95_conv_intinsic_aint): Use them. Use builtin functions.
5600         (g95_conv_intrinsic_function): Add FLOOR and CEILING.
5601
5602 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5603
5604         * array.c (g95_compare_array_spec): Remove unreachable code.
5605         * expr.c (g95_copy_expr): Likewise.
5606         * intrinsic.c (g95_convert_type): Likewise.
5607         * misc.c (g95_code2string): Likewise.
5608         * simplify.c (g95_simplify_ishft, g95_simplify_real,
5609         g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise.
5610         * trans-stmt.c (g95_trans_select): Likewise.
5611         * primary.c (extend_ref): Add an assertion.
5612         * simplify.c (g95_convert_constant): Add const.
5613         * intrinsic.h: Remove g95_check_x_ni.
5614         * f95-lang.c (g95_finish): Call g95_release_include_path.
5615
5616 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5617
5618         * resolve.c (resolve_contained_functions): Fix typo introduced on
5619         2003-01-13.
5620
5621 2003-06-09  Paul Brook  <paul@nowt.org>
5622
5623         * g95.h: Include system.h not hwint.h.
5624         * many: use safe-ctype.h not ctype.h.  Change isalpha -> ISALPHA, etc.
5625         * misc.c (g95_getmem): Use xmalloc/memset instead of calloc.
5626
5627 2003-06-09  Paul Brook  <paul@nowt.org>
5628
5629         * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables.
5630         * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE.
5631         * trans-decl.c (g95_add_decl_to_functions): Make non-static.
5632         (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects.
5633         (g95_generate_function_code): Translate COMMON and EQUIVALENCE
5634         objects.
5635         * trans.h (g95_trans_equivalence, g95_trans_common,
5636         g95_add_decl_to_function): Declare.
5637         * trans-common.c, trans-equivalence.c: New files.
5638
5639 2003-06-08  Steven Bosscher  <steven@gcc.gnu.org>
5640
5641         * intrinsic.c (g95_intrinsic_extension): Remove.
5642         (add_functions): Substitute g95_check_x for g95_check_x_ni
5643         everywhere.
5644         (g95_init_expr_extensions): New function.
5645         (g95_intrinsic_func_interface): Use it.
5646         * intrinsic.h: Remove extern decl for g95_intrinsic_extension.
5647         * check.c (g95_check_digit, g95_check_huge, g95_check_kind,
5648         g95_check_precision, g95_check_present, g95_check_radix,
5649         g95_check_range, g95_check_selected_real_kind): Do not set
5650         g95_intrinsic_extension.
5651         (g95_check_x_ni): Remove now duplicate of g95_check_x.
5652
5653         * expr.c (check_inquiry): Add FIXME, fixup some code style.
5654
5655 2003-06-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5656
5657         * g95.h (ref_type): Name this type explicitly.
5658         * module.c (MIO_NAME): Add specialisations of mio_name.
5659         (mio_symbol_attribute, mio_typespec, mio_array_ref,
5660         mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them.
5661         (ab_attribute): Name this type explicitly.
5662         (mio_symbol_attribute, mio_expr): Add cast to call to find_enum.
5663
5664 2003-06-05  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5665
5666         * trans-intrinsic.c (g95_conv_allocated): New function.
5667         (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work.
5668
5669 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
5670
5671         * f95-lang.c: Don't include g95-support.h
5672         (g95_mark_addressable): Add prototype.
5673         (g95_init_decl_processing): Remove C front end hack.
5674         * f95-tree.c: Remove file.
5675         * support.c: Remove file.
5676         * g95-support.h: Remove file.
5677         * trans-types.c (g95_init_types): Set up boolean
5678         type related tree nodes.
5679         * Make-lang.in: Remove rules for dead files and
5680         dependencies on them.
5681
5682 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
5683
5684         * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final
5685         C front end dependency.  Also, convert.c does not depend on
5686         g95-support.h anymore.
5687         * convert.c: Don't include c-common.h and g95-support.h
5688         * f95-lang.c: Don't inlude c-common.h and c-common.def (3x).
5689         (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p,
5690         stmts_are_full_exprs_p, current_stmt_tree,
5691         current_scope_stmt_stack): Remove.
5692         * g95-support.h (unsigned_conversion_warning): Kill proto.
5693         (boolean_type_node, boolean_true_node, boolean_false_node):
5694         Don't define here.  Instead, make then true tree nodes in
5695         trans-types.
5696         * support.c (c_global_trees): Die, C front end, die!!!
5697         (g95_init_c_decl_hacks): Don't touch intmax_type_node,
5698         uintmax_type_node, string_type_node and const_string_type_node.
5699         (decl_constant_value, overflow_warning): Make static functions.
5700         They are in death row too, though.
5701         (default_conversion, c_expand_asm_operands): Remove.
5702         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c,
5703         trans.c: Don't include c-common.h.
5704         * trans-types.c (boolean_type_node, boolean_true_node,
5705         boolean_false_node): Make them real tree nodes.
5706         * trans-types.h (intmax_type_node, string_type_node,
5707         const_string_type_node): Hack to work around C dependencies
5708         in builtin-types.def.
5709
5710 2003-06-04  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5711
5712         * decl.c (decl_types): Add some iterators-like sentinels.
5713         * decl.c (match_attr_spec): Use them.
5714         Use "decl_types" instead of "int".
5715         Add cast in call to g95_match_strings.
5716         * dump-parse-tree.c (g95_show_namespace):  Use "g95_intrinsic_op"
5717         instead of "int".
5718         * g95.h (g95_intrinsic_op): Add some iterators-like sentinels.
5719         (g95_interface_info): Use "g95_intrinsic_op".
5720         * dump-parse-tree.c (g95_show_namespace): Use them.
5721         * interface.c (g95_check_interfaces): Use them.
5722         * module.c (read_module, write_module): Use them.
5723         * symbol.c (g95_get_namespace, g95_free_namespace): Use them.
5724         Use "g95_intrinsic_op".
5725         * interface.c (check_operator_interface): Use "g95_intrinsic_op".
5726         Add a default case in switch statement.
5727         * intrinsic.h (g95_generic_isym_id): Moved to...
5728         * g95.h (g95_generic_isym_id): here.
5729         (g95_intrinsic_sym): Use "g95_generic_isym_id".
5730         * intrinsic.c (make_generic): Use "g95_generice_isym_id".
5731         * trans-intrinsic.c (g95_intrinsic_map_t,
5732          g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id".
5733         * match.c (g95_match_intrinsic_op): Add cast in call to
5734         g95_match_strings.
5735
5736 2003-06-03  Steven Bosscher  <steven@gcc.gnu.org>
5737
5738         * support.c (skip_evaluation, warn_conversion, lvalue_p,
5739         lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment,
5740         constant_fits_type_p, convert_and_check,
5741         unsigned_conversion_warning): Remove these ugly remnants
5742         we inherited from the C front end.
5743         (function_types_compatible): Remove '#if 0'-edcode.
5744         (build_modify_expr): Likewise.
5745         (convert_for_assignment): Don't use the deceased functions.
5746         The parameter fundecl is now unused.
5747         (decl_constant_value): Always just return decl.  In fact
5748         this function is not used at present, but it might be in
5749         the future, when we start using the tree inliner.
5750         (overflow_warning, default_conversion, c_expand_asm_operands):
5751         Abort when these are called, they are part of the C type
5752         checking implementation and therefore poison to Fortran.
5753
5754 2003-06-04  Steven Bosscher  <steven@gcc.gnu.org>
5755
5756         * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on
5757         c-pretty-print.o and c-dump.o.  Add a comment on why we
5758         depend on c-semantics.c.
5759         * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN):
5760         Don't use the C front end tree dumper hook to dump the
5761         language specific tree representation -- we don't have
5762         one.  So instead, inherit the default langhook.
5763
5764 2003-06-02  Paul Brook  <paul@nowt.org>
5765
5766         * trans-expr.c (g95_conv_variable): Remove incorrent assertion.
5767
5768 2003-06-02  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5769
5770         * check.c (g95_check_associated): Use proper types.  Remove
5771         extraneous argument in call to g95_error().
5772
5773 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5774
5775         * resolve.c (resolve_operator): Make logical operands convert to the
5776         type with higher kind.
5777
5778 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5779
5780         * check.c (g95_check_associated): Make sure both pointer and target has
5781         the same type and rank. Null pointer or array section with vector
5782         subscript as target are not allowed.
5783         * trans.h: Declare gfor_fndecl_associated.
5784         * trans-decl.c: (g95_build_builtin_function_decls): Initialize
5785         gfor_fndecl_associated.
5786         * trans-intrinsic.c (g95_conv_associated): New function.
5787         (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work.
5788
5789 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5790
5791         * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER
5792         according to POINTER itself rather than TARGET.
5793         (g95_conv_expr_descriptor): Make lbound start at 1.
5794         * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify.
5795
5796 2003-06-01  Paul Brook  <paul@nowt.org>
5797
5798         * expr.c (g95_type_convert_binary): Make it match the standard.
5799         * g95.texi: Remove dead link.
5800
5801 2003-06-01  Steven Bosscher  <steven@gcc.gnu.org>
5802
5803         * g95.texi: Cleanup somewhat in preparation for inclusion
5804         in GCC CVS.
5805
5806 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5807             Canqun Yang  <canqun@yahoo.com.cn>
5808
5809         * resolve.c (compare_bound_int, resolve_where_shape): Proper return
5810         type.
5811         (g95_find_forall_index): Return proper value.
5812         (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to
5813         compare the return value from g95_find_forall_index.
5814
5815 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5816         * g95.h, io.c (g95_st_label): Remove "length".
5817         (g95_symtree): Remove "link".
5818         (g95_case): Remove "code".
5819         * arith.c, arith.h (g95_compare_string, g95_convert_integer,
5820         g95_convert_real): Make an argument pointer to const.
5821         * decl.c (colon_seen): Add a TODO.
5822         * interface.c (g95_compare_types): Fix typo.
5823         * interface.c (compare_interfaces): Preserve value of "p".
5824         * intrinsic.c (sort_actual): Remove "i".
5825         * match.c (g95_match_assign): Proper type in call to g95_match().
5826         * parse.c (next_free): Avoid duplicate call due to macro.
5827         * parse.c (check_statement_label): wrong type in call to g95_error.
5828         * primary.c (match_real_constant): Add a TODO.
5829         * resolve.c (resolve_select):  Remove useless conditional.
5830         * simplify.c (g95_simplify_repeat): Proper assignment to
5831         "value.character.string".
5832         * simplify.c (g95_simplify_reshape): Wrong variable in call to
5833         g95_error.
5834
5835 2003-05-20  Canqun Yang  <canqun@yahoo.com.cn>
5836
5837         * trans-stmt.c: Remove unnecessary include file defaults.h.
5838
5839 2003-05-19  Lifang Zeng  <zlf605@hotmail.com>
5840
5841         * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative
5842         stride.
5843         (g95_trans_forall): Allow arbitrary number of FORALL indexes and
5844         actual variables used as FORALL indexes.
5845
5846 2003-05-15  Paul Brook  <paul@nowt.org>
5847
5848         * trans-array.c (g95_trans_static_array_pointer): Use
5849         null_pointer_node.
5850         (g95_trans_deferred_array): Initialize static array pointers.
5851         * trans-expr.c (g95_conv_function_call): Use formal arglist to
5852         correctly pass POINTER and absent CHARACTER arguments.
5853
5854 2003-05-14  Lifang Zeng  <zlf605@hotmail.com>
5855
5856         * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement.
5857         (g95_resolve_forall_body): Resolve FORALL body.
5858         (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL.
5859         (g95_resolve_assign_in_forall): Resolve assignment inside FORALL.
5860         (g95_find_forall_index): Check whether the FORALL index appears in
5861         the expression or not.
5862         (resolve_code): Modified.
5863
5864 2003-05-14  Paul Brook  <paul@nowt.org>
5865
5866         * iresolve.c (g95_resolve_spread): Convert ncopies to index_type.
5867
5868 2003-05-13  Paul Brook  <paul@nowt.org>
5869
5870         * trans-types.c (g95_max_array_element_size): Now a tree node.
5871         (g95_init_types): Work out max size properly.
5872         (g95_get_dtype_cst): Modify to match.
5873
5874 2003-05-11  Paul Brook  <paul@nowt.org>
5875
5876         * trans-io.c (add_case): Create a label decl for case labels.
5877
5878 2003-05-11  Paul Brook  <paul@nowt.org>
5879
5880         * arith.c (g95_integer_index_kind): New variable.
5881         * f95-lang.c (g95_init): Move frontend initialization here ...
5882         (g95_post_options): ... from here.
5883         * g95.h (g95_index_integer_kind, g95_resolve_index): Declare.
5884         * intrinsic.c (add_functions): Use index kinds.
5885         * iresolve.c: Convert to index_kind where needed.
5886         * resolve.c (g95_resolve_index): Make public, use index_kind.
5887         (resolve_array_ref): Adjust to match.
5888         * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind.
5889         * trans-stmt.c: Ditto.
5890         * trans-types.c: Ditto.
5891         * trans-types.h (g95_array_index_kind): Remove declaration.
5892         * trans-expr.c (g95_conv_expr_present): Use null_pointer_node.
5893
5894 2003-05-07  Paul Brook  <paul@nowt.org>
5895
5896         * trans-const.c (g95_conv_mpz_to_tree): Typecast constant.
5897         * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type
5898         of bound indices.
5899
5900 2003-05-07  Paul Brook  <paul@nowt.org>
5901
5902         * trans-array.c (trans_static_array_pointer,
5903         g95_trans_array_constructor_value, g95_conv_array_initializer,
5904         g95_conv_structure): CONSTRUCTOR nodes only have one operand.
5905         (g95_add_loop_ss_code): Convert subscripts to the correct type.
5906         * trans-stmt.c (g95_trans_character_select): Ditto.
5907         * trans-types.c (g95_init_types): Ditto.
5908
5909 2003-05-07  Steven Bosscher  <steven@gcc.gnu.org>
5910
5911         * f95-lang.c (expand_function_body): Use input_line, not lineno.
5912         * trans-decl.c (g95_generate_function_code,
5913         g95_generate_constructors): Likewise.
5914         * trans.c (g95_trans_runtime_check, g95_add_block_to_block,
5915         g95_get_backend_locus, g95_set_backend_locus, g95_trans_code):
5916         Likewise.
5917
5918 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5919         * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type
5920         with components point to the DERIVED type itself, and two DERIVED
5921         type with components point to each other.
5922         * trans-expr.c (g95_conv_componet_ref): Modified
5923
5924 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5925         * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into
5926         null_pointer_node.
5927         (g95_trans_pointer_assign): Implement Nullify.
5928
5929 2003-05-01  Paul Brook  <paul@nowt.org>
5930
5931         * trans-array.c (g95_walk_function_expr): Cope with NULL esym.
5932         * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions.
5933
5934 2003-05-01  Paul Brook  <paul@nowr.org>
5935
5936         * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c,
5937         trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and
5938         IS_EMPTY_STMT.
5939
5940 2003-05-01  Canqun Yang  <canqun@yahoo.com.cn>
5941
5942         * trans-stmt.c (g95_trans_integer_select): Add a parameter to build
5943         CASE_LABEL_EXPR.
5944
5945 2003-04-28  Paul Brook  <paul@nowt.org>
5946
5947         * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big
5948         as their kind suggests.
5949         (g95_resolve_reshape): Ditto.
5950
5951 2003-04-28  Chun Huang  <compiler@sohu.com>
5952
5953         * trans-expr.c (g95_conv_substring_expr): New function.
5954         (g95_conv_expr): Use it.
5955
5956 2003-04-28  Paul Brook  <paul@nowt.org>
5957
5958         * iresolve.c (g95_resolve_transpose): Make it match the
5959         implementation.
5960         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE.
5961
5962 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
5963
5964         * trans-types.c (g95_add_field_to_struct): New function to
5965         add a field to a UNION_TYPE or RECORD_TYPE.
5966         * trans-types.h (g95_add_field_to_struct): Prototype.
5967         (g95_get_derived_type): Use g95_add_field_to_struct to add
5968         components.
5969         * trans-io.c (g95_add_field): Remove.
5970         (ADD_FIELD): Use new g95_add_field_to_struct function.
5971         (ADD_STRING): Likewise.
5972         * trans-stmt.c (g95_trans_select): Likewise.
5973         (g95_add_field): Remove duplicated function.
5974
5975 2003-04-18  Canqun Yang  <canqun@yahoo.com.cn>
5976
5977         Port implementation for CHARACTER SELECT from Andy's tree.
5978         * trans-stmt.c (g95_trans_character_select): Implement character
5979         select. (g95_add_field): New function.
5980         * trans-decl.c: Declare 'gfor_gndecl_select_string'.
5981         (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'.
5982         * g95.h (struct g95_case): Add field 'int n'.
5983         * trans.h: Declare 'gfor_fndecl_select_string'.
5984
5985 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
5986
5987         * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove.
5988         (g95_insert_bbd): Die on duplicates.
5989         * g95.h (g95_insert_bbt_with_overlap): Delete prototype.
5990
5991 2003-04-14  Steven Bosscher  <steven@gcc.gnu.org>
5992
5993         * g95.texi: Require GMP 4.0 -- like we actually
5994         do.  Explain the testsuite and what-goes-where.
5995         Don't use undefined texinfo symbol.  Break very
5996         long line.  Remove finished item from the list
5997         of open projects.
5998
5999 2003-04-11  Canqun Yang  <canqun@yahoo.com.cn>
6000
6001         * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries
6002         LOGICAL type.
6003
6004 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
6005
6006         * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL.
6007         (g95_trans_forall_body): New function.
6008
6009 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
6010
6011         * resolve.c (resove_where): New function.
6012         (resolve_where_shape): New function.
6013         (resolve_code): Add call to 'resolve_where'
6014         * trans-stmt.c (g95_trans_where): Modified.
6015         (g95_trans_where_2): New function.
6016         (g95_trans_where_assign): New function.
6017         (g95_evaluate_where_mask): New function.
6018         (g95_add_to_stmt_list): New function.
6019         (g95_get_temp_expr): New function.
6020         * trans.h (where_stmt_list): New structure.
6021
6022 2003-04-10  Paul Brook  <paul@nowt.org>
6023
6024         * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
6025         (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto.
6026
6027 2003-04-10  Steven Bosscher  <steven@gcc.gnu.org>
6028
6029         Update after mainline -> tree-ssa-branch merge.
6030         * f95-lang.c (g95_mark_addressable): Update put_var_into_stack
6031         call.
6032         (g95_init): Update for new lang_hooks definition.
6033         (g95_post_options): New langhook.
6034         (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options.
6035         * scanner.c (g95_new_file): Comment update.
6036
6037 2003-04-09  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
6038
6039         * g95.h, lang-options.h: Add -Wimplicit-interface.
6040         * options.c (g95_init_options, g95_parse_arg): Set it.
6041         * interface.c (check_intents): Warn about call with implicit
6042         interface.
6043         * resolve.c (resolve_unknown_f, resolve_unknown_s): Call
6044         g95_procedure_use.
6045
6046 2003-04-05  Paul Brook  <paul@nowt.org>
6047
6048         * iresolve.c (g95_resolve_spread): Don't resole based on type.
6049         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD.
6050
6051 2003-03-29  Paul Brook  <paul@nowt.org>
6052
6053         * iresolve.c (g95_resolve_pack): Don't bother resolving based on type.
6054         (g95_resolve_unpack): Ditto.
6055         * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function.
6056         (g95_conv_intrinsic_function): Use it.  Remove PACK and UNPACK.
6057         (g95_is_intrinsic_libcall): Add PACK and UNPACK.
6058
6059 2003-03-25  Paul Brook  <paul@nowt.org>
6060
6061         * arith.c (g95_unary_user, g95_user): Remove dead functions.
6062         * arith.h: Ditto.
6063         * array.c (g95_free_array_ref): Ditto.
6064         * g95.h: Ditto.
6065         * symbol.c (g95_use_derived_tree): Ditto.
6066         * intrinsic.c (add_functions): Use simplification for SCALE.
6067         * primary.c (g95_match_rvalue): Test sym, not symtree.
6068
6069 2003-03-25  Paul Brook  <paul@nowt.org>
6070
6071         * trans-decl.c (build_function_decl): Add parameter before it gets
6072         turned into a constant.
6073         * iresolve.c (g95_resolve_eoshift): Resolve to a useful name.
6074         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT.
6075         * trans-decl.c (g95_create_module_variable): Don't pushdecl constants.
6076
6077 2003-03-22  Paul Brook  <paul@nowt.org>
6078
6079         * trans-array.c (g95_conv_array_initializer): Allow scalar
6080         expressions.
6081         * trans-decl.c (g95_finish_var_decl): Result variables are not
6082         module variables.
6083         * trans-intrinsic.c (g95_conv_intrinsic_transfer): New function.
6084         (g95_conv_intrinsic_function): Use it.
6085         * trans-types.h (g95_type_spec): Remove dead declaration.
6086
6087 2003-03-21  Paul Brook  <paul@nowt.org>
6088
6089         * trans-decl.c (g95_build_function_decl): Mark string parameters.
6090
6091 2003-03-20  Paul Brook  <paul@nowt.org>
6092
6093         * trans-decl.c (g95_build_function_decl): Put character length
6094         parameters at the end of the function declaration.
6095         * trans-expr.c (g95_conv_function_call): Ditto.
6096         * trans-types.c (g95_get_function_type): Ditto.
6097
6098 2003-03-20  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
6099
6100         * resolve.c (resolve_formal_arglist): Don't impose intent for
6101         procedure arguments of pure functions.
6102         (resolve_select): Remove redundant assignment.
6103
6104 2003-03-19  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
6105
6106         * arith.c (validate_logical), g95.h, options.c (g95_init_options):
6107         Remove option l1.
6108         * g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const.
6109         * iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add
6110         const.
6111         * lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls.
6112         Order list.
6113         * symbol.c (g95_add_type): Fix typo in comment.
6114
6115
6116 2003-03-16  Paul Brook  <paul@nowt.org>
6117
6118         * dump-parse-tree.c (g95_show_code_node): Print resolved sym name.
6119         * expr.c (g95_build_call): Remove.
6120         * f95-lang.c (puchdecl_top_level): New function.
6121         * g95.h (g95_code): Store resolved symbol, not just the name.
6122         * intrinsic.c (g95_intrinsic_namespace): New global namespace.
6123         (g95_intirinsic_init_1, g95_intrinsic_done_1): Use it.
6124         (g95_get_intrinsic_sub_symbol): New function.
6125         * iresolve.c (g95_resolve_cpu_time): Use it.
6126         (g95_resolve_random_number): Ditto.
6127         * resolve.c: Set code->resolved_sym instead of code->sub_name.
6128         * trans-decl.c (g95_get_extern_function_decl): Give external decls
6129         the correct DECL_CONTEXT.  Add global symbold to the global scope.
6130         * trans-stmt.c (g95_trans_code): Remove hacks now the fronted is
6131         fixed.
6132
6133 2003-03-16  Paul Brook  <paul@nowt.org>
6134
6135         * g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays.
6136         * options.c (g95_parse_arg): Ditto.
6137         * module.c (mio_symbol_attribute): Handle the always_explicit bit.
6138         * resolve.c (resolve_formal_arglist): The always_explicit sould be set
6139         for the procedure, not the parameter.
6140         * trans-array.c (g95_trans_g77_array): New function.
6141         (g95_trans_assumed_size): Use it.
6142         (g95_trans_dummy_array_bias): Ditto.
6143         (g95_conv_array_parameter): Handle g77 arrays. Move existing body ...
6144         (g95_conv_expr_descriptor): ... to here.  Update callers.
6145         * trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays.
6146         (g95_get_symbol_decl): Avoid processing g77 arrays multiple times.
6147         * trans-expr.c (g95_conv_function_call): Handle g77 arrays.
6148         * trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays.
6149         * trans-types.c (g95_is_nodesc_array): Handle g77 arrays.
6150         (g95_sym_type): Ditto.
6151
6152 2003-03-15  Paul Brook  <paul@nowt.org>
6153
6154         * trans-array.c (g95_walk_elemental_function_args): Don't amputate the
6155         first chain.
6156         * trans-expr.c (g95_conv_function_call): Use the resolved symbol.
6157
6158 2003-03-14  Paul Brook  <paul@nowt.org>
6159
6160         * trans-array.c (g95_array_is_packed): Remove.
6161         (g95_conv_array_base): Correctly handle all descriptorless cases.
6162         (g95_conv_array_stride): Use descriptorless strides.
6163         (g95_trans_dummy_array_bias): Don't always repack the array.
6164         (g95_build_dummy_array_decl): Automatic dummy arrays are only partial
6165         packed.
6166         * trans-types.c (g95_get_nodesc_array_type): Differentiate between
6167         dummy and non-dummy arrays...
6168         (g95_sym_type, g95_get_derived_type): ... like these.
6169         (g95_get_array_type_bounds): Allow discontiguous arrays.
6170
6171 2003-03-12  Paul Brook  <paul@nowt.org>
6172
6173         * array.c (g95_resolve_array_spec): Fix comment.
6174         * g95.h (symbol_attributes): New flag always_explicit.
6175         * resolve.c (resolve_formal_arglist): Set it always_explicit.
6176         * iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify.
6177         * trans-array.c (g95_conv_descriptor_dimension): Remove dead assert.
6178         (g95_trans_array_bounds): Allow assumed shape arrays.
6179         (g95_trans_repack_array): Remove.
6180         (g95_trans_dummy_array_bias): Rewite to use descriptorless arrays.
6181         * trans-decl.c (g95_build_qualified_array): Only ignore absent
6182         bounds for assumed size arrays.
6183         (g95_build_dummy_array_decl): Use descriptorless arrays.
6184         * trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays.
6185         (g95_trans_pointer_assign): Fix typo.
6186         * trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead
6187         code.
6188         (g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays.
6189         * trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays.
6190         Also modify callers.
6191         * trans-types.h (g95_get_nodesc_array_type): Modify prototype.
6192
6193 2003-03-08  Paul Brook  <paul@nowt.org>
6194
6195         * trans-array.c (g95_walk_elemental_functions): Don't reverse the SS.
6196         (g95_conv_array_ubound): Provide dummy value for assumed size arrays.
6197         * resolve.c (compare_spec_to_ref): Allow full array sections.
6198
6199 2003-03-08  Paul Brook  <paul@nowt.org>
6200
6201         * expr.c (g95_simplify_expr): Also simplify array index and
6202         substring expressions.
6203         * resolve.c (compare_spec_to_ref): Check for assumed size bounds.
6204         * trans-array.c (g95_trans_array_bounds): New function.
6205         (g95_trans_auto_array_allocation): Use it.
6206         (g95_trans_assumed_size): Rewrite.
6207         * trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
6208         (gfor_fndecl_repack): Remove.
6209         (g95_build_qualified_array): Handle absent upper bounds.
6210         (g95_build_dummy_array_decl): Assumed shape arrays are descriptorless.
6211         (g95_get_symbol_decl): Update.
6212         (g95_build_intrinsic_function_decls): Initialize new decls.
6213         * trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
6214         (gfor_fndecl_repack): Remove.
6215         * trans-io.c (g95_build_io_library_fndecls): Correct prototypes.
6216         * trans-types.c: (g95_build_array_type): Merge duplicated code..
6217         (g95_get_nodesc_array_type): Handle absent bounds.
6218         * trans-types.h (g95_get_nodesc_array_type): Declare.
6219
6220 2003-03-04  Paul Brook  <paul@nowt.org>
6221
6222         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including
6223         builtin-types.def.
6224
6225 2003-03-02  Paul Brook  <paul@nowt.org>
6226
6227         * options.c (g95_init_options): Drfault to 1.
6228         (g95_pasrse_arg): Add -frepack-arrays, use strcmp.
6229         * trans-array.c (g95_conv_array_data, g95_conv_array_base,
6230         g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound):
6231         Handle non-constant size automatic arrays.
6232         (g95_conv_section_upper_bound, g95_conv_section_startstride): Use
6233         generic bound functions.
6234         (g95_trans_auto_array_allocation): Don't create a descriptor.
6235         (g95_trans_assumed_size): New function (broken).
6236         (g95_trans_dummy_array_bias): Remove unused var.
6237         * trans-array.h (g95_trans_assumed_size): Declare.
6238         * trans-decl.c (create_index_var): New fuction.
6239         (g95_build_qualified_array): New function.
6240         (g95_get_symbol_decl): Use it.
6241         (g95_trans_deferred_vars): Handle assumed shape seperately.
6242         * trans-types.c (get_element_type): Handle heap allocated arrays.
6243         (g95_is_nodesc_array): Include non-const size arrays.
6244         (g95_get_nodesc_array_type): Ditto.
6245
6246 2003-02-23  Paul Brook  <paul@nowt.org>
6247
6248         * trans-array.c (g95_array_init_size): Should use stride, not size of
6249         last dimension.
6250
6251 2003-02-18  Paul Brook  <paul@nowt.org>
6252
6253         * trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check
6254         after intrinsic function check.
6255
6256 2003-02-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
6257
6258         * io.c (match_io): Fix missing return value and remove useless
6259         assignment.
6260         * match.c (g95_match): Remove useless assignment.
6261         * module.c (parse_string):  Remove useless post increment.
6262         * simplify.c (g95_simplify_verify): Remove useless assignment.
6263
6264 2003-02-15  Paul Brook  <paul@nowt.org>
6265
6266         * expr.c (restricted_intrinsic): Handle bad values gracefully.
6267         * g95.h (symbol_attribute): Add referenced member.
6268         (g95_symbol): Add dummy_order member.
6269         (g95_set_sym_referenced): Declare.
6270         * match.c (g95_match_assignment, g95_match_call): Use it
6271         * primary.c (match_actual_arg, g95_match_rvalue,
6272         g95_match_variable): Ditto.
6273         * symbol.c (next_dummy_order): New variable.
6274         (g95_set_sym_referenced): New function.
6275         (check_done): New function.
6276         (g95_add_*): Use it.
6277         * trans-decl.c: Make formatting conform to GCC standards.
6278         (g95_defer_symbol_init): Add dummy variables in the right order.
6279         (g95_get_symbol_decl): Only accept referenced variables.
6280         (g95_create_module_variable): Module variables are always required.
6281         (generatr_local_decls): New function.
6282         (generate_local_vars): New function.
6283         (g95_generate_function_code): Use it.
6284
6285 2003-02-13  Paul Brook  <paul@nowt.org>
6286
6287         * trans-decl.c (g95_conv_struct_cons): Remove.
6288         (g95_get_symbol_decl): Use g95_conv_expr for structure initializers.
6289         * trans-expr.c (g95_conv_structure): New function.
6290         (g95_conv_expr): Use it.
6291
6292 2003-02-09  Paul Brook  <paul@nowt.org>
6293
6294         * trans-array.c (g95_array_init_size): Don't evaluate the linit
6295         expressions multiple times.
6296         (g95_trans_auto_arry_allocation): Use pointer not tmp.
6297
6298 2003-02-08  Paul Brook  <paul@nowt.org>
6299
6300         * module.c (mio_symtree_ref): Declare as static.
6301         (mio_expr): Remove dead code.
6302         (read_module): Set the symtree link for fixups.
6303         * trans-intrinsic.c (g95_conv_intrinsic_round): Rename...
6304         (build_round_expr): ... to this.
6305         (g95_conv_intrinsic_aint): New function.
6306         (g95_conv_intrinsic_function): Use it.
6307
6308 2003-02-08  Paul Brook  <paul@nowt.org>
6309
6310         * trans-array.c (g95_trans_array_constructor_value): Use the acutal
6311         offset after modificaton, not the increment expression.
6312         * dependency.c: Kill excess whitespace.
6313
6314 2003-02-07  Sanjiv Gupta  <sanjivg@noida.hcltech.com>
6315
6316         * dependency.h: Remove some function declarations.
6317         * dependency.c (get_no_of_elements): Change this function not to
6318         return int.
6319         * other: Add comments for all modified functions.
6320
6321 2003-02-06  Paul Brook  <paul@nowt.org>
6322
6323         * g95spec.c (lang_specific_functions): Fix initializer warning.
6324         * dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree
6325         for structure type names.
6326         * trans-decl.c (g95_cons_structure_cons): New function.
6327         (g95_get_symbol_decl): Use it.
6328         * trans-expr.c (g95_conv_component_ref): Remove duplicate pointer
6329         referencing code.
6330
6331 2003-02-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
6332
6333         * resolve.c (compare_cases): Add const to casts.
6334
6335 2003-01-30  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
6336
6337         * g95.h (g95_check_f): Change a1 to f1m.
6338         * intrinsic.c (add_sym_1m, check_specific,
6339         g95_intrinsic_func_interface): Use it.
6340
6341         * module.c (init_pi_tree): Remove useless cast.
6342         (fp2): Fix argument type.
6343
6344         * parse.c (parse_select_block): Add comment.
6345
6346 2003-02-05  Toon Moene  <toon@moene.indiv.nluug.nl>
6347
6348         * lang-options.h: Fix warning involving C90 concatenated
6349         strings.
6350
6351 2003-02-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6352             Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
6353
6354         * io.c (format_asterisk): Complete initializer to kill warning.
6355         * arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND,
6356         DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines.
6357         (g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the
6358         new defines to complete initializers.  Kills all warnings.
6359
6360         * Make-lang.in: Comment cleanup.
6361
6362 2003-02-05  Paul Brook  <paul@nowt.org>
6363
6364         * array.c (g95_free_constructor): Handle NULL expressions.
6365         * resolve.c (resolve_structure_cons): Ditto.
6366         * decl.c (g95_match_null): New Function.
6367         (variable_decl): Use it.
6368         * module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE.
6369         * primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE.
6370         * trans-types.c (g95_set_decl_attributes): Remove empty function.
6371
6372 2003-02-05  Paul Brook  <paul@nowt.org>
6373
6374         * trans.h (build1_v): New macro.
6375         (build_v): Remove pointless and incorrect prototype.
6376         * various: Use build1_v for GOTO_EXPR and LABEL_EXPRs.
6377         * f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args.
6378
6379 2003-02-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6380
6381         * Make-lang.in (F95_OBJS): Remove one more dead file.
6382
6383 2003-02-01  Paul Brook  <paul@nowt.org>
6384
6385         * lang-specs.h: Don't pass -ffixed-form to the linker.
6386         * trans-decl.c (g95_generate_function_code): Clear saved decl chain.
6387
6388 2003-02-01  Paul Brook  <paul@nowt.org>
6389
6390         * Make-lang.in (F95_OBJS): Remove dead files.
6391         * trans-array.c (g95_array_init_size): Do the right thing when
6392         ubound=NULL.
6393         * trans-decl.c (g95_generate_function_code): Initialize deffered
6394         symbol list before translating contained subroutines.
6395         * trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute
6396         scalar invariant values here...
6397         (g95_conv_variable, g95_conv_function_call): ... instead of here ...
6398         * trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here.
6399
6400 2003-01-29  Paul Brook  <paul@nowt.org>
6401
6402         * trans-array.c (g95_add_loop_code): Put pre code in the right block.
6403         (g95_walk_elemental_function_args): Reverse chains before adding.
6404         (g95_reverse_ss): Move about a bit.
6405         * trans-expr.c (g95_conv_function_call): Handle scalar intrinsic
6406         function arguments.
6407
6408 2003-01-28  Paul Brook  <paul@nowt.org>
6409
6410         * intrinsic.c (resolve_intrinsic): Use correct union member.
6411         * trans-array.c (g95_trans_dummy_array_bias): Don't touch absent
6412         parameters.
6413         * trans-decl.c (g95_get_symbol_decl): Don't translate initializers for
6414         use associated variables.
6415         * trans-intrinsic.c (g95_conv_intrinsic_present): Move body ...
6416         * trans-expr.c (g95_conv_expr_present): ... to here.
6417         * trans.h: Declare it.
6418         * trans-types.c (g95_sym_type): Assume subroutine if not specified.
6419
6420 2003-01-28  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
6421
6422         * array.c (expand_iterator): Suppress useless assignment.
6423         * decl.c (match_char_spec): Ditto.
6424         * io.c (match_io_iterator): Ditto.
6425         * primary.c (match_real_constant): Ditto.
6426         * interface.c (fold_unary, g95_free_interface, g95_extend_expr):
6427         Ditto.  Also, use g95_intrinsic_op not int for intrinsic operators.
6428         * matchexp.c (match_add_operand, match_level_5): Likewise.
6429         * module.c (parse_atom, find_enum): Likewise.
6430         * resolve.c: move #include <string.h>
6431         (resolve_select): Fix serious typo.
6432
6433 2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.n>
6434
6435         * Make-lang.in: Don't build with broken tree-ssa-pre.
6436
6437 2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6438
6439         * resolve.c (resolve_index): Add a TODO.
6440         * symbol.c: Remove useless "#include <ctype.h>".
6441
6442 2003-01-27  Paul Brook  <paul@nowt.org>
6443
6444         * check.c (check_rest): Allow different type kinds as an extension.
6445         * g95.h (g95_resolve_f): Add f1m.
6446         * intrinsic.c (add_sym_1m, resolve_intrinsic): Use it.
6447         * intrinsic.h: Chenge prototypes for MIN and MAX.
6448         * iresolve.c (g95_resolve_minmax): New function.
6449         (g95_resolve_min, g95_resolve_max): Use it.
6450         * trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate
6451         arguments once.
6452         (g95_conv_intrinsic_present): Fix logic.
6453
6454 2003-01-27  Steven Bossche  <s.bosscher@student.tudelft.nl>
6455
6456         * g95.h (g95_case): Don't be a tree, be a double linked list.
6457         * match.c (match_case_selector): Remove redundant semantics check.
6458         Clean up a few goto's to make it a tiny little bit faster.
6459         * resolve.c (case_tree): Die.
6460         (compare_cases): Accept and compare unbounded cases too.
6461         (check_case_overlap): Don't build a tree.  Instead, merge-sort the
6462         whole list of g95_cases passed from resolve_select.
6463         (sane_logical_select): Die.
6464         (check_case_expr): Return FAILURE if a CASE label is of the wrong
6465         type kind.
6466         (resolve_select): Fixup case expression for computed GOTOs, put it
6467         in expr, not expr2, for easier handing in the parse tree dumper and
6468         the code generator.  Rewrite the rest of the function: Kill
6469         unreachable case labels and unreachable case blocks.
6470         * dump-parse-tree.c (g95_show_code_node): Always dump expr for
6471         an EXEC_SELECT, not case2 anymore.
6472         * trans-const.c (g95_conv_constant_to_tree): New function.
6473         (g95_conv_constant): Use it.
6474         * trans-const.h: Declare prototype for the new function.
6475         * trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select,
6476         g95_trans_character_select): New static functions.
6477         (g95_trans_select): Rewrite.
6478
6479 2003-01-26  Paul Brook  <paul@nowt.org>
6480
6481         * intrinsic.c (add_fnctions): Properly add dreal.
6482         * trans-intrinsic.c (g95_conv_intrinsic_present): New function.
6483         (g95_conv_intrinsic_function): Use it.
6484         * trans-io.c (build_dt): Abort on internal files (unimplemented).
6485
6486 2003-01-26  Paul Brook  <paul@nowt.org>
6487
6488         Widespread changes to the handling of symbols in expressions.  These
6489         are now linked via g95_symtree nodes.
6490         * parse.c (g95_fixup_sibling symbols): New function.
6491         (parse_contained): Use it.
6492         * g95.h (symbol_attribute): Add contained.  Indicates a symbol is a
6493         contained procedure that has bee correctly fixed up.
6494         (g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol.
6495
6496 2003-01-24  Paul Brook  <paul@nowt.org>
6497
6498         * trans-array.c (g95_walk_expr): Function result attributes are in
6499         sym->result.
6500         * trans-expr.c (g95_conv_function_call,
6501         g95_trans_arrayfunc_assign): Ditto.
6502         * trans-decl.c (g95_get_symbol_for_expr): Set sym->result.
6503
6504 2003-01-23  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6505
6506         * expr.c (check_restricted): Fix error message.
6507         * symbol.c (free_st_labels): Plug memleak.
6508
6509 2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6510
6511         * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca,
6512         reduce_binary_aa, reduce_binary, eval_intrinsic,
6513         eval_intrinsic_f2): Use typesafe prototypes for eval functions.
6514         * g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions
6515         for typesafe intrinsics helper functions.
6516         (g95_intrinsic_sym): Use them.
6517         * intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1,
6518         add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4,
6519         add_sym_5, add_conv, resolve_intrinsic, do_simplify,
6520         check_specific, g95_intrinsic_func_interface,
6521         g95_intrinsic_sub_interface): Adjust all calls to intrinsics
6522         helper functions.
6523         * trans-decl.c (g95_get_extern_function_decl): Likewise.
6524         * Make-lang.in: Don't disable warnings for strict prototypes
6525         any longer, everything is typesafe now.
6526
6527 2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6528
6529         * bbt.c (duplicate_node): Make static.
6530         * module.c (module_name): Make static.
6531         * scanner.c (include_dirs): Make static.
6532
6533 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6534
6535         Hard coded _gfor_'s should not show up anymore.
6536         * g95.h (PREFIX): New macro.
6537         * iresolve.c (g95_resolve_cpu_time): Use PREFIX, not
6538         hard-coded "_gfor".
6539         (g95_resolve_random_number): Likewise.
6540         * trans-decl.c (g95_build_intrinsic_function_decls): Likewise.
6541         * trans-io.c: Remove 'prefix' macro.  Replace all uses with
6542         the new PREFIX macro from g95.h.
6543
6544 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6545
6546         The troubles of forking... Andy implemented this just now too.
6547         Let's stick to that and keep the trees close.
6548         * g95.h (g95_st_label): 'format' member is now a g95_expr.
6549         * io.c: Revert previous changes.
6550         (g95_match_format): Match the format string as a character
6551         literal expression.
6552         * match.h (g95_statement_label): Declare external.
6553         * parse.c: Revert previous changes.
6554         * symbol.c (g95_free_st_label): Free a g95_expr instead
6555         if a 'char *'.
6556         * trans-io.c: Revert previous changes.
6557         (build_dt): Use set_string to set the format string.
6558
6559 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6560
6561         * io.c (format_string): Make non-static.
6562         (g95_match_format): Remember the format string.
6563         (terminate_io): Add I/O termination for empty I/O lists.
6564         * match.h: Declare external format_string.
6565         * parse.c (check_statement_label): Attack the format string
6566         to a format label for FORMAT statements.
6567         * trans-io.c (g95_add_field): Define prefix macro.  Replace
6568         all uses of PREFIX define with a use of this macro.
6569         (build_dt): Implement formatted I/O for format labels.
6570
6571 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6572
6573         * lang-options.h: Kill "-std=F".
6574         * options.c: Remove unimplemented "-std=F".  Modify
6575         web address.
6576         * misc.c (g95_terminal_width): New function.
6577         * error.c (g95_error_init_1): Use g95_terminal_width.
6578         * g95.h: Add prototype for g95_terminal_width, remove
6579         fmode flag.
6580
6581 2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6582
6583         * Make-lang.in: Fix typo.
6584
6585 2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6586
6587         * g95.h (struct g95_case): Remove unused cruft, new member
6588         'where' to keep track of the locus of the default case.
6589         * match.c (g95_match_case): Add locus to the current case.
6590         (match_case_selector): Likewise.
6591         * parse.c (parse_select_block): Move semantics check for
6592         multiple DEFAULT cases out of here to...
6593         * resolve.c (check_case_overlap): ...here.  Return sooner
6594         when possible.
6595         (check_case_expr): Take two g95_cases now, use to sure the
6596         expression kinds are the same.
6597         (resolve_select): Cleanup.
6598
6599 2003-01-18  Paul Brook  <paul@nowt.org>
6600
6601         * trans-io.c: Fix typos in ported IO work (set_fla[tg]).
6602         * trans-decl.c (g95_set_symbol_decl): Handle non-array result
6603         variables.
6604         (g95_get_extern_function_decl): Put decls in the correct context.
6605
6606 2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6607
6608         * trans-io.c: Port changes from Andy to set ERR flag.
6609
6610 2003-01-17  Paul Brook  <paul@nowt.org>
6611
6612         * trans-array.c: Add various comments.
6613         (g95_ss_terminator): Declare as const.
6614         (g95_walk_expr): Remove first parameter and update all callers.
6615         (g95_walk_op_expr): Initialize scalar SS properly.
6616         * trans-array.h (g95_walk_expr): Update prototype.
6617         * trans-expr.c: Update for new g95_walk_expr.
6618         * trans-intrinsic.c: Ditto.
6619         * trans-io.c: Ditto.
6620         * trans.h: Various comments for SS chains.
6621
6622 2003-01-17  Paul Brook  <paul@nowt.org>
6623
6624         * intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING
6625         and RRSPACING.
6626         * intrinsic.c (add_functions): Use them.
6627         * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto.
6628         * trans-expr.c (g95_conv_expr_lhs): Abort on impossible error.
6629
6630 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6631
6632         Fallout of a small merge conflict:
6633         * intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE).
6634
6635 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6636
6637         * initrinsic.c: New add_sym_* functions for strong typing.
6638         (add_conv): Make prototype strict.
6639         * dump-parse-tree.c, dependency.c: Include config.h
6640         * resolve.c, trans-io.c: Fix typos.
6641
6642 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6643
6644         * dump-parse-tree.c (g95_show_code_node): Show the
6645         condition for a computed GOTO that was transformed
6646         to a SELECT CASE construct.
6647         * resolve.c (check_case_overlap): Revert previous switch
6648         to treaps, it was too slow and didn't catch all trouble.
6649         (resolve_symbol): Be more flexible about module procedures.
6650         * symbol.c (check_conflict): Point to relevant section in
6651         the standard for dubious conflict.  Allow procedure
6652         dummy arguments to be optional again.
6653         * trans-io (add_field): Rename to g95_add_field.  Change
6654         all callers.
6655         * trans-stmt (trans_select): Handle unbounded cases for
6656         integer SELECT CASE constructs.  Fix/add more comment.
6657
6658 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6659
6660         * g95.h: Uses GCC's function attribute macros.
6661         * error.c, module.c, parse.c, g95.h: More function attributes.
6662
6663 2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6664         Forgot a file...
6665         * trans-decl.c (get_label_decl): Use TREE_LINENO instead
6666         of DECL_SOURCE_LINE, and TREE_FILENAME instead of
6667         DECL_SOURCE_FILE.
6668
6669 2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6670
6671         * f95-lang.c (pushdecl): Use TREE_LINENO instead of
6672         DECL_SOURCE_LINE.
6673         * trans.c (g95_trans_code): Use annotate_all_with_file_line
6674         instead of nowdead wrap_all_with_wfl.
6675
6676 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6677
6678         * parse.c (g95_parse_file): In verbose mode, dump the parse tree
6679         before generating code, so we can still see it even if the code
6680         generation phase dies.
6681
6682 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6683
6684         * decl.c (build_sym): Split out initialization expression parts...
6685         (add_init_expr_to_sym): ...to here.
6686         (variable_decl): Add the symbol following an attribute list to the
6687         symbol tree before parsing the optional initialization expression
6688         if the symbol is not of a derived type.
6689         * primary.c (g95_match_rvalue): Don't assume a symbol always has
6690         a value if it is a PARAMETER.
6691
6692 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6693
6694         * misc.c: Don't #include <mcheck.h>
6695         * module.c: Ditto.  Kill uses of mtrace, muntrace.  If there
6696         ever was a glibc bug, then either this was never reported to
6697         glibc people, or it has been fixed for so long that there's
6698         no information you can find about it, anywhere.
6699
6700 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6701
6702         Fix warnings:
6703         * module.c (attr_bits, bt_types, array_spec_types):
6704         Switch 'const' and 'static'.
6705         * iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'.
6706
6707         GNU'ify source code:
6708         * trans-io.c: Numerous fixes, one fixed warning and a few
6709         TODO markers so that we don't forget about them.
6710
6711 2003-01-13  Paul Brook  <paul@nowt.org>
6712
6713         * intrinsic.c (add_functions): Add G95_ISYM_SCALE.
6714         * intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT.
6715         Add G95_ISYM_SCALE.
6716         * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto
6717         * match.c (g95_match_stop): Fix dumb == -> != error.
6718
6719 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6720
6721         * dump-parse-tree.c (show_indent): Add line breaks.  This
6722         whole dumping process needs cleanups.
6723         * f95-lang.c (g95_mark_addressable): Fix prototype to match
6724         the langhook.  Fix 'return's accordingly.
6725         * g95-support.h: Adjust prototype.
6726         * g95.h: Add 'no_backend' member to 'g95_option_t' struct.
6727         * lang-options.h: Add '-fsyntax-only'.
6728         * options.c (g95_init_options): Init 'no_backend'.
6729         (g95_parse_arg): Deal with '-fsyntax-only'.
6730         * parse.c (g95_parse_file): Do not generate code if 'no_backend'
6731         is set.
6732
6733 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6734         Patch from Arnaud
6735         * resolve.c (resolve_symbol): Assumed shape arrays must be dummy
6736         arguments.  Also make sure that if a symbol is marked INTRINSIC,
6737         an intrinsic with the symbol's name actually exists.
6738         (check_conflict): Make EXTERNAL and DIMENSION attributes conflict.
6739         Do not allow PROCEDURES to have the SAVE, POINTER, TARGET,
6740         ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute.
6741
6742 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6743
6744         * resolve.c (resolve_contained_functions): Fix condition, don't
6745         throw internal_error if a child namespace has no name.  Apparently
6746         this can be the case?
6747
6748 2003-01-11  Paul Brook  <paul@nowt.org>
6749
6750         Port changes from Andy's tree:
6751         * g95.h (g95_code): Add stop_code.
6752         * match.c (g95_match_stop): Detter syntax checking.
6753         * resolve.c (resolve_generic_f0): Return match type.
6754         (resolve_generic_f): Remove dead/duplicated code.
6755         (resolve_specific_f): Ditto.
6756         * dump-parse-tree.c (g95_show_code_node): Handle new STOP format.
6757         * trans-decl.c (gfor_fndel_stop_*): New fndecl nodes.
6758         * trans-stmt.c (g95_trans_stop): Handle new STOP format.
6759
6760 2003-01-11  Paul Brook  <paul@nowt.org>
6761
6762         * trans-array.c: Various documentation/comment changes.
6763         * trans-stmt.c: Ditto.
6764
6765
6766 2003-01-10  Paul Brook  <paul@nowt.org>
6767
6768         * options.c/h: Add -fdump-parse-tree as alias of -v.
6769
6770 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6771
6772         * dump-parse-tree.c (g95_show_namespace): Fixed another
6773         typo.  Sorry, it's Friday...
6774
6775 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6776
6777         Spotted by Tobi:
6778         * trans-array.c, trans-array.h, trans.c, trans-const.c,
6779         trans-const.h, trans-decl.c, trans-expr.c, trans.h
6780         trans-intrinsic.c, trans-io.c, trans-stmt.c, trans-stmt.h
6781         trans-types.c: Fix bogus copyright years, add 2003.
6782         * trans-types.h: Give copyright header.
6783
6784 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6785
6786         * dump-parse-tree.c (g95_show_namespace): Fixed typo.
6787         * expr.c, options.c, scanner.c: Add some more 'const' markers.
6788         * intrinsic.c: Some constant strings moved to read-only memory.
6789         * io.c (format_asterisk): Move to...
6790         * g95.h: ...here.
6791
6792 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6793
6794         * dump-parse-tree.c (g95_show_namespace): Dump implicit
6795         types for ranges instead of per-letter.  Indent the
6796         'CONTAINS' just like everything else.
6797         * resolve.c (resolve_contained_functions): Clarify comment.
6798         Explain non-obvious conditional expression.  Improve
6799         diagnostics if tyoe cannot be resolved.
6800         Port semi-fix from Andy's tree:
6801         (was_declared): Move up before first use.
6802         (generic_sym, specific_sym): New functions.  Code moved
6803         out if procedure_kind.
6804         (procedure_kind): Simplify using new functions.
6805         (resolve_generic_f): Make sure the functions we find in
6806         a parent namespace is generic.
6807         (resolve_specific_f): Ditto for specific functions.
6808
6809 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6810
6811         * trans-stmt.c, trans.c: Fix some code style issues. Add
6812         some more comment (but still not enough!).
6813
6814 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6815
6816         * symbol.c (flavors, procedures, intents, acces_types,
6817         access_types, ifsrc_types): Make const.
6818         * misc.c (g95_string2code): Make 'm' param 'const'.
6819         * module.c (find_enum, write_atom, mio_name): Make
6820         'm' param 'const'.
6821         (attr_bits, bt_types, array_spec_types, array_ref_types,
6822         ref_types, expr_types): Make const.
6823         * g95.h: Adjust external decls.
6824
6825 2003-01-09  Paul Brook  <paul@nowt.org>
6826
6827         * Testsuite: Add a load of new cases.
6828
6829 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6830
6831         * Make-file.in: Add dependency on back end header files;
6832         a parallel build should work now.
6833         * f95-lang-c (lang_identifier): Remove bogus comment.
6834         (g95_be_parse_file): Fix prototype.
6835         (g95_init): Make static.
6836         (g95_finish): Make static.
6837         * error.c (g95_syntax_error): Kill. Make define in...
6838         * g95.h (g95_syntax_error): Define.
6839         (g95.options): Make 'source' member 'const'.
6840         * interface.c (g95_match_interface): Explain
6841         hard-to-read condition.
6842         (g95_match_end_interface): Ditto.
6843         * trans_const.c (g95_build_string_const): Make 's' parameter
6844         'const'.
6845         * trans_const.h: Adjust protoype accordingly.
6846         * trans-decl.c: Include tree-dump.h
6847         (g95_generate_function_code): Build fixes for recent changes
6848         in the tree-ssa branch.
6849
6850 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6851
6852         * format.c: Kill, move code from here...
6853         * io.c: ...to here.
6854         * Make-lang.in: Adjust.
6855         * MANIFEST: Ditto.
6856         * match.h: Ditto.
6857         * BUGS: Mention where to submit bugs.  Move old content...
6858         * TODO: ...to here.  New file.
6859
6860 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6861         Fix most warnings, and suppress the ones we can't fix for now.
6862         * Make-lang.in: Suppress warnings about bad proto's in g95.h,
6863         these warnings just clutter the screen and there's not much
6864         we can do about them for now anyway.
6865         * check.c, iresolve.c: Mark unused function parameters.
6866         * dump-parse-tree.c (g95_show_array_spec): Punt on AS_UNKNOWN,
6867         they should be resolved before they get here.
6868         * error.c: Remove unused FILE *status_out.
6869         * f95-lang.c (g95_init): Remove bogus cast.
6870         * Many files: Make things 'const' where required.
6871         * g95.h: Fix prototypes for all modified functions above.
6872         (g95_options): Remove 'object' member.
6873
6874 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6875
6876         * Make-file.in: Cleanup bogus targets.  Add more comment.
6877         * lang-options.h: New option '-w'.
6878         * g95.h: add no_options field to struct g95_options.
6879         * options.c (g95_init_options): Default no_warnings to off.
6880         (g95_parse_arg): Recognise the '-w' switch and its alias,
6881         '-fno-warnings'.
6882         * error.c (g95_warning, g95_warning_now): Don't emit warning if
6883         no_warning option is set.
6884         * iresolve.c (g95_resolve_shape): Fix warning.
6885
6886 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6887
6888         * primary.c (g95_next_string_char): Rename next_string_char, and
6889         make static.  Adjust callers accordingly.
6890         * resolve.c (resolve_generic_f0): Return try, not match.  Adjust
6891         callers accordingly.
6892         * g95.h: Split out all g95_match* functions to...
6893         * match.h: ...here. New file.
6894         * array.c, decl.c, expr.c, format.c, interface.c, io.c, match.c,
6895         matchexp.c, module.c, parse.c, primary.c: Inlcude match.h
6896
6897 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6898
6899         * symbol.c (g95_clear_new_implicit, g95_add_new_implicit_range,
6900         g95_merge_new_implicit): New functions.
6901         (g95_match_implicit_none, g95_match_implicit): Move from here...
6902         * match.c (g95_match_implicit_none, g95_match_implicit): ... to here.
6903         Modify to use the new functions in symbol.c.
6904         * g95.h: Add and move prototypes.
6905
6906 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6907
6908         * bbt.c (insert): Use a typedef'ed compare_fn prototype for the
6909         node compare function.
6910         (g95_insert_bbt): Likewise.
6911         (g95_insert_bbt_with_overlap): Likewise.
6912         (g95_delete_bbt): Likewise.
6913         (delete_treap): Likewise. Also fix a potential bug when calling it.
6914         * module.c (compare_pointers): Change proto to compare_fn.
6915         (compare_integers): Likewise.
6916         (compare_true_names): Likewise.
6917         (find_true_name): Adjust call to compare_true_names to match proto.
6918         (require_atom, write_atom, mio_name): Fix 'const' warnings.
6919         (init_pi_tree): Make compare a compare_fn instead of (int *).
6920         * resolve.c (compare_cases): Change proto to compare_fn.
6921         * symbol.c (g95_compare_symtree): Change proto to compare_fn, make
6922         it static, and rename to compare_symtree.
6923         (delete_symtree, g95_undo_symbols, g95_new_symtree): Use renamed
6924         function.
6925         * g95.h: Kill g95_compare_symtree prototype. Adjust prototypes
6926         of g95_insert_bbt, g95_insert_bbt_with_overlap, and g95_delete_bbt.
6927
6928 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6929         * Make-lang.in: Fix spaces/tabs issues from previous patch.
6930         * patch.options: Blow away Paul's checkin mistake :-)
6931         * io.c (terminate_io): Fix memory leak (Arnaud).
6932
6933 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6934
6935         * Make-lang.in: Teach about building DVI, info manual.
6936         * g95.texi: New file.
6937
6938 2003-01-02  Paul Brook  <paul@nowt.org>
6939
6940         * trans-array.c (g95_reverse_ss): Make static and don't use.
6941         (g95_conv_ss_descriptor): Don't use g95_loopinfo
6942         (g95_conv_array_parameters): Modify for pointer assignments.
6943         (g95_walk_subexpr): New function.
6944         (g95_walk_expr*): Use it.
6945         * trans-array.h (g95_reverse_ss): Remove prototype.
6946         * trans-expr.c (g95_trans_pointer_assign): Implement.
6947         (Many): Set se.want_pointer before calling g95_conv_array_parameter.
6948         * trans-intrinsic.c: Sync with scalarizer changes.
6949         * trans-io.c: Ditto.
6950
6951 2002-12-29  Paul Brook  <paul@nowt.org>
6952
6953         * trans-array.c: Document calling convention for arrays.
6954
6955 2002-12-19  Paul Brook  <paul@nowt.org>
6956
6957         * trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect
6958         assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass
6959         optional parameters for some intrinsics.
6960         (g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE.
6961         * trans-expr.c (g95_conv_function_call): Pass NULL for absent
6962         optional parameters.
6963         * trans.h (g95_se): Add ignore_optional flag.
6964
6965 2002-12-15  Paul Brook  <paul@nowt.org>
6966
6967         * trans-array.c (g95_conv_array_parameter): Fix partial rank sections.
6968         * trans-decl.c (g95_generate_function_code): Use TDI_original.
6969
6970 2002-12-14  Paul Brook  <paul@nowt.org>
6971
6972         * trans-stmt.c (g95_trans_call): Use resolved symbol name.
6973
6974 2002-12-12  Paul Brook  <paul@nowt.org>
6975
6976         * trans-array.c (g95_trans_array_constructor_subarray): Fully
6977         initialize the scalarizer.
6978         (various): Update to new format of g95_expr->value.constructor.
6979
6980 2002-12-08  Paul Brook  <paul@nowt.org>
6981
6982         * trans-array.c (g95_put_offset_into_var): New function.
6983         (g95_trans_array_constructor_subarray): New function.
6984         (g95_trans_array_constructor_value): Use it.
6985         (g95_array_cons_size): Don't abort() on array components.
6986
6987 2002-12-08  Paul Brook  <paul@nowt.org>
6988
6989         * Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o.
6990         * support.c: Update #includes.
6991         (statement_code_p, c_size_in_bytes, s_size_type_node): Remove.
6992         * trans-array.c: Update #includes.
6993         * trans.c: Ditto.
6994         * trans-const.c: Ditto.
6995         * trans-io.c: Ditto.
6996         * trans-types.c: Ditto.
6997         (g95_init_types): Set size_type_node.
6998         * trans-decl.c: Update #includes.
6999         (gfor_fndecl_adjust{l,r}): Declare and initialize.
7000         * trans-stmt.c: Update #includes.
7001         (g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR.
7002         (g95_trans_select): Fix check for unbounded ranges.
7003         * trans-expr.c: Update #includes.
7004         (g95_conv_string_tmp): New function.
7005         (g95_conv_concat_op): Use it.
7006         * trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare.
7007         * Trans-intrisic.c: Update #includes.
7008         (g95_conv_intrinsic_strcmp): New function.
7009         (g95_conv_intrinsic_adjust): Ditto.
7010         (g95_conv_intrinsic_function: Use them.
7011
7012 2002-11-30  Paul Brook  <paul@nowt.org>
7013
7014         * trans-array.c (g95_walk_function_expr): Handle non-array return by
7015         reference.
7016         * trans-dec.c (g95_build_function_decl): Handle character return
7017         parammeters.
7018         (g95_get_fake_result_decl): Ditto.
7019         (g95_trans_deferred_vars): Ditto.
7020         * trans-expr.c (g95_conv_function_call): Ditto.
7021         (g95_trans_arrayfunc_assign) Limit to array valued functions.
7022         * trans-intrinsic.c (g95_conv_intrinsic_char): New function.
7023         (g95_conv_intrinsic_function): Use it.
7024         * trans-types.c (g95_sym_type): Handle functions returning strings.
7025         (g95_return_by_reference): Ditto.
7026         (g95_get_function_type): Ditto.
7027
7028 2002-11-18  Paul Brook  <paul@nowt.org>
7029
7030         * trans-stmt.c (g95_trans_if): Fix IF statements when the condition
7031         requires a temporary.
7032         (g95_trans_select): Handle computed gotos.
7033         * trans-types.c (g95_build_array_type): Warn about non-functional
7034         assumed shape arrays.
7035         * trans-expr.c (g95_trans_scalar_assign): Correctly handle post
7036         blocks.
7037         * trans-intrinsic.c (g95_conv_intrinsic_round): New function.
7038         (g95_conv_intrinsic_int): New function.
7039         (g95_conv_intrinsic_mod): New function.
7040         (g95_conv_intrinsic_ichar): New function.
7041         (g95_conv_intrinsic_function): Use them.
7042         (g95_conv_intrinsic_dim): Use g95_evaluate_now.
7043
7044 2002-11-17  Toon Moene  <toon@moene.indiv.nluug.nl>
7045
7046         * trans-types.c (g95_build_array_type): Assumed
7047         sized arrays can have rank > 1.
7048         * trans.c (g95_trans_code): Remove erroneous
7049         warning about CONTINUE.
7050         * trans-expr.c (g95_conv_variable): Remove
7051         erroneous assert.
7052
7053 2002-11-15  Paul Brook  <paul@nowt.org>
7054
7055         * trans-array.c (g95_conv_array_parameter): Check for NULL stride.
7056
7057 2002-10-31  Paul Brook  <paul@nowt.org>
7058
7059         * f95-tree.c: Remove tree copying stuff that's now in gimple.c
7060         * trans-expr.c (g95_conv_component_ref): Handle character string
7061         components.
7062         (g95_conv_string_parameter): Ditto.
7063         * trans-types.c (g95_get_derived_type): Add length decl to caracter
7064         string components.
7065
7066 2002-10-10  Paul Brook  <paul@nowt.org>
7067
7068         * trans-decl.c (gfor_fndecl_size?): Declare and initialize.
7069         * trans-expr.c (g95_conv_function_call): Remove unreliable return value
7070         check.
7071         * trans-intrinsic.c (g95_conv_intrinsic_size): New function.
7072         (g95_conv_intrinsic_function): Handle size and shape intrinsics.
7073         (g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE.
7074         * trans-types.c (pvoid_type_node): Declare and initialize.
7075         * trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT
7076         (g95_array_allocate): Fix when base==data.
7077         (g95_conv_array_parameter): Correctly handle reduced rank sections.
7078         * trans-io.c (g95_trans_write): Correctly handle string modifiers.
7079
7080 2002-10-09  Paul Brook  <paul@nowt.org>
7081
7082         * (g95_conv_expr_reference): Handle character strings correctly.
7083
7084 2002-10-07  Paul Brook  <paul@nowt.org>
7085
7086         (g95_expand_decl): Rename from f95_expand_decl_stmt and use as
7087         langhook.
7088         * trans-array.c (g95_build_array_initializer): Remove.
7089         (g95_conv_array_initializer): New Function.
7090         (g95_trans_auto_arry_allocation): Cleanup.
7091         (g95_trans_init_character_array): Remove.
7092         * g95spec.c: Link in libgforbegin.
7093         * trans.c (g95_generate_code): Rename main function to MAIN__.
7094         (g95_create_var): New function.
7095         (g95_create_var_np): New function.
7096         (g95_evaluate_now): New function.
7097         (g95_start_block): New function.
7098         (g95_finish_block): New function.
7099         (g95_add_expr_to_block): New function.
7100         (g95_add_block_to_block): New function.
7101         * trans-expr.c (g95_conv_componen_ref): New function.
7102         * Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o.
7103         (F95_OBJS): Add dependency.o.
7104         * f95-lang.c (g95_is_simple_stmt): Remove.
7105         * f95-tree.c (mark_not_simple): New function.
7106         (unshare_all_trees): New function.
7107         (create_tmp_var, create_tmp_alias_var): Remove.
7108         * support.c (declare_tmp_vars, tree_last_decl): Remove.
7109         * trans*: Convert to new IR using GENERIC trees.  Don't bother about
7110         SIMPLE/GIMPLE rules, this is now done by Lang-independant code.
7111
7112 2002-10-01  Paul Brook  <paul@nowt.org>
7113
7114         * trans-array.c: Add support for descriptorless arrays.
7115         (g95_conv_array_data): New function.
7116         (g95_conv_array_base): New function.
7117         * trans-array.h: Declare these here.
7118         * trans-decl.c(g95_create_mopdule_variable): Perform variable
7119         initialization and creation here.
7120         (g95_create_module_vars): Instead of here.
7121         * trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*.
7122         * trans-intrinsic.c: Ditto.
7123         * trans-types.c (g95_is_nodesc_array): New function.
7124         (g95_get_nodesc_array_type): New function.
7125         (g95_sym_type, g95_get_derived_type): Use them.
7126         * trans-const.c (g95_conv_mpf_to_tree): Remove workaround.
7127
7128 2002-09-28  Paul Brook  <paul@nowt.org>
7129
7130         * trans-const.c (g95_conv_mpf_to_tree): Work around backend bug.
7131         * trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex
7132         parameters.
7133
7134 2002-09-24  Paul Brook  <paul@nowt.org>
7135
7136         * f95-lang.c (listify): Remove declaration.
7137         (expand_function_body): Use optimize >=1 instead of flag_tree_saa.
7138         (listify)
7139         * f95-tree.c (get_name): New function.
7140         * trans.c (module_namespace): Remove.
7141         * trans-decl.c: Use g95_chainon_list rather than chainon(listify()).
7142         * trans-types.c: Ditto.
7143
7144 2002-09-19  Paul Brook  <paul@nowt.org>
7145
7146         * trans-array.c (g95_get_array_cons_size): New Function.
7147         (g95_con_ss_startstride): Handle Array constructors.
7148         (g95_conv_loop_setup): Ditto.
7149         (g95_conv_array_parameter): Ditto.
7150         * tras-decl.c (g95_finish_var_decl): Make initializes variables
7151         static.
7152
7153 2002-09-19  Paul Brook  <paul@nowt.org>
7154
7155         * trans.c (g95_simple_fold_tmp): Detect variables inside
7156         NON_LVALUE_EXPR.
7157         * trans-stmt.c (g95_trans_arithmetic_if): Implement this.
7158
7159 2002-09-18  Steven Bosscher <s.bosscher@student.tudelft.nl>
7160
7161         * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o
7162
7163 2002-09-14  Paul Brook  <paul@nowt.org>
7164
7165         * trans.c (g95_create_module_variable): Move to trans-decl.c.
7166         * trans-const.c (g95_conv_string_init): New Function.
7167         * trans-const.h: Declare it.
7168         * trans-decl.c (g95_get_symbol_decl): Handle initializers for static
7169         variables. Don't bail on intrinsic symbols.
7170         (get_extern_function_decl): Handle specific intrinsic functions.
7171         * trans-types.c (g95_sym_type): Dummy functions don't return
7172         reference types.
7173         * trans-array.c (g95_build_array_initializer): New Function.
7174         (g95_trans_auto_array_allocation): Build initializer for static decls.
7175         Don't use mpz_addmul, it's GMP4 only.
7176
7177 2002-09-12  Paul Brook  <paul@nowt.org>
7178
7179         * trans-decl.c (g95_generate_code): Fix thinko with return variable.
7180         (g95_get_extern_function_decl, g95_build_function_decl): Mangle
7181         assembler names for module procedures.
7182
7183 2002-09-11  Tobias Schlueter  <Tobias.Schlueter@physik.uni-muenchen.de>
7184
7185         * trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of
7186         dependency/
7187
7188 2002-09-10  Paul Brook  <paul@nowt.org>
7189
7190         * trans-array.c: Change format of G95_SS_TEMP strictures.
7191         (g95_check_fncall_dependancy): New function.
7192         (trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating
7193         offsets.
7194         * trans-decl.c (g95_get_symbol_decl): move assertion after handling of
7195         result variables.
7196         (g95_build_function_decl): Don't assume result arrays are packed.
7197         (g95_trans-deferred-vars): Handle array result variables.
7198         (g95_generate_fuction_code): Clear saved_function_decls.
7199         * trans-expr.c (g95_conv_fnction_call): Handle direct array return by
7200         reference.
7201         (g95_trans_arrayfunc_assign): New function.
7202         (g95_trans_assignment): Use it.
7203         * trans.h (g95_ss): Add temp struct for G95_SS_TEMP.
7204         (g95_se): Add direct_byref.
7205         * trans-types.c: Use sym->result rather than sym where appropriate.
7206         * trans-intrinsic.c (g95_conv_intrinsic_funcall): New function.
7207         Update other functions to use this.
7208         (g95_is_intrinsic_libcall): New function.
7209         (g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics.
7210         (g95_walk_intrinsic_function): Ditto.
7211
7212 2002-09-08  Paul Brook  <paul@nowt.org>
7213
7214         * trans-types.c: Change rank field to dtype field in array descriptor.
7215         * trans-array.c: Implement filling of dtype array descriptor field.
7216         * trans-intrinsic.c: Fix broken LEN intrinsic.
7217
7218 2002-09-07  Paul Brook  <paul@nowt.org>
7219
7220         * trans-intrinsic.c: Remove outdated todo intrinsic list.
7221         (g95_get_symbol_for_expr): Remove hack for fortran based intrinsics.
7222         (g95_walk_intrinsic_function): Add MINLOC and MAXLOC.
7223
7224 2002-09-06  Paul Brook  <paul@nowt.org>
7225
7226         * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o.
7227         (gt-f95-trans-types.h): Add dependancy information.
7228         * config-lang.in (gtfiles): Add trans-types.c
7229         * f95-lang.c (g95_be_parse_file): Pass error and warning counts
7230         back to top-level code.
7231         * trans-array.c, trans-types.c: Change format of array descriptor.
7232         (g95_conv_descriptor_dimension): New function.
7233         * trans-types.h (g95_conv_descriptor_rank): define.
7234         * trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC
7235         intrinsics.
7236
7237 2002-09-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
7238
7239         * trans-array.c, trans-types.c: Add rank information to descriptor.
7240
7241 2002-09-06  Tobias Schlueter  <Tobias.Schlueter@physik.uni-muenchen.de>
7242
7243         * trans-stmt.c (g95_trans_allocate): Fix when ref==NULL.
7244
7245 2002-09-04  Paul Brook  <paul@nowt.org>
7246
7247         * f95-lang.c (g95_create_decls): New function.
7248         (g95_init):  Move initialization of external decls to above, and call
7249         from g95_be_parse_file.
7250         * trans.c (g95_finish_stmt): Don't amputate the decl chain.
7251         * trans-types.c (g95_init_types): Always name integer and char types.
7252         (g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL.
7253
7254 2002-09-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
7255
7256         * Make-lang.in: Add options.c to F95_PARSER_OBJS
7257
7258 2002-09-02  Paul Brook  <paul@nowt.org>
7259
7260         * g95_generate_code: Clear the attr for __fortran_main.
7261         * trans-types.c (g95_finish_type): New function.
7262         * g95_init_io_state_type: Use g95_finish_type.
7263         * g95_conv_intrinsic_anyall: Fix thinko in result initialization.
7264
7265 2002-09-01  Paul Brook  <paul@nowt.org>
7266
7267         * README.backend: Warn about the dangers of extra config.h files.
7268         Remove obsolete libgfor stuff.
7269         * config-lang.in: Add target-libgfor dependancy.
7270         * g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff.
7271
7272 2002-09-01  Toon Moene  <toon@moene.indiv.nluug.nl>
7273
7274         * g95_conv_mpz_to_tree: Free storage pointed to by q,
7275         not by buff.
7276
7277 2002-08-30  Paul Brook  <paul@nowt.org>
7278
7279         * trans-intrinsic.c (g95_conv_intrinsic_function,
7280         g95_walk_intrinsic_function): Added ANY and ALL.
7281         (g95_conv_intrinsic_anyall): New function.
7282         * iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in
7283         mangled name