OSDN Git Service

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