OSDN Git Service

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