OSDN Git Service

2006-02-13 Andrew Pinski <pinskia@physics.uc.edu>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2006-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
2             Jakub Jelinek  <jakub@redhat.com>
3
4         PR fortran/26246
5         * trans-decl.c (gfc_get_symbol_decl, gfc_get_fake_result_decl): Use
6         gfc_add_decl_to_function rather than gfc_finish_var_decl on length.
7
8 2006-02-13  Paul Thomas  <pault@gcc.gnu.org>
9
10         PR fortran/26074
11         PR fortran/25103
12         * resolve.c (resolve_symbol): Extend the requirement that module
13         arrays have constant bounds to those in the main program.  At the
14         same time simplify the array bounds, to avoiding trapping parameter
15         array references, and exclude automatic character length from main
16         and modules. Rearrange resolve_symbol and resolve_derived to put as
17         each flavor together, as much as is possible and move all specific
18         code for flavors FL_VARIABLE, FL_PROCEDURE and FL_PARAMETER into new
19         functions.
20         (resolve_fl_var_and_proc, resolve_fl_variable, resolve_fl_procedure):
21         New functions to do work of resolve_symbol.
22         (resolve_index_expr): New function that is called from resolved_symbol
23         and is extracted from resolve_charlen.
24         (resolve_charlen): Call this new function.
25         (resolve_fl_derived): Renamed resolve_derived to be consistent with
26         the naming of the new functions for the other flavours.  Change the
27         charlen checking so that the style is consistent with other similar
28         checks. Add the generation of the gfc_dt_list, removed from resolve_
29         symbol.
30
31         PR fortran/20861
32         * resolve.c (resolve_actual_arglist): Prevent internal procedures
33         from being dummy arguments.
34
35         PR fortran/20871
36         * resolve.c (resolve_actual_arglist): Prevent pure but non-intrinsic
37         procedures from being dummy arguments.
38
39         PR fortran/25083
40         * resolve.c (check_data_variable): Add test that data variable is in
41         COMMON.
42
43         PR fortran/25088
44         * resolve.c (resolve_call): Add test that the subroutine does not
45         have a type.
46
47 2006-02-12  Erik Edelmann  <eedelman@gcc.gnu.org>
48
49         PR fortran/25806
50         * trans-array.c (gfc_trans_allocate_array_storage): New argument
51         dealloc; free the temporary only if dealloc is true.
52         (gfc_trans_allocate_temp_array): New argument bool dealloc, to be
53         passed onwards to gfc_trans_allocate_array_storage.
54         (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to
55         gfc_trans_allocate_temp_array.
56         * trans-array.h (gfc_trans_allocate_temp_array): Update function
57         prototype.
58         * trans-expr.c (gfc_conv_function_call): Set new argument 'dealloc'
59         to gfc_trans_allocate_temp_array to false in case of functions
60         returning pointers.
61         (gfc_trans_arrayfunc_assign): Return NULL for functions returning
62         pointers.
63
64 2006-02-10  Steven G. Kargl  <kargls@comcast.net>
65
66         PR fortran/20858
67         *decl.c (variable_decl): Improve error message.  Remove initialization
68         typespec.  Wrap long line.
69         *expr.c (gfc_check_pointer_assign): Permit checking of type, kind type,
70         and rank.
71         *simplify.c (gfc_simplify_null): Ensure type, kind type, and rank
72         are set.
73
74
75 2006-02-10  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
76
77         PR fortran/14771
78         * arith.c (eval_intrinsic): Accept INTRINSIC_PARENTHESES.
79         * expr.c (check_intrinsic_op): Likewise.
80         * module.c (mio_expr): Likewise.
81
82 2006-02-09  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
83
84         * dump-parse-tree.c: Update copyright years.
85         * matchexp.c: Likewise.
86         * module.c: Likewise.
87
88         PR fortran/14771
89         * gfortran.h (gfc_intrinsic_op): Add INTRINSIC_PARENTHESES.
90         * dump-parse-tree (gfc_show_expr): Handle INTRINSIC_PARENTHESES.
91         * expr.c (simplify_intrinsic_op): Treat INTRINSIC_PARENTHESES as
92         if it were INTRINSIC_UPLUS.
93         * resolve.c (resolve_operator): Handle INTRINSIC_PARENTHESES.
94         * match.c (intrinsic_operators): Add INTRINSIC_PARENTHESES.
95         * matchexp.c (match_primary): Record parentheses surrounding
96         numeric expressions.
97         * module.c (intrinsics): Add INTRINSIC_PARENTHESES for module
98         dumping.
99         * trans-expr.c (gfc_conv_expr_op): Handle INTRINSIC_PARENTHESES.
100
101 2006-02-09  Paul Thomas  <pault@gcc.gnu.org>
102
103         PR fortran/26038
104         * trans-stmt.c (gfc_trans_allocate): Provide assumed character length
105         scalar with missing backend_decl for the hidden dummy charlen.
106
107         PR fortran/25059
108         * interface.c (gfc_extend_assign): Remove detection of non-PURE
109         subroutine in assignment interface, with gfc_error, and put it in
110         * resolve.c (resolve_code).
111
112         PR fortran/25070
113         * interface.c (gfc_procedure_use): Flag rank checking for non-
114         elemental, contained or interface procedures in call to
115         (compare_actual_formal), where ranks are checked for assumed
116         shape arrays..
117
118 2006-02-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
119
120         PR libfortran/25425
121         * trans-decl.c (gfc_generate_function_code): Add new argument,
122         pedantic, to set_std call.
123
124 2005-02-06  Thomas Koenig  <Thomas.Koenig@online.de>
125
126         PR libfortran/23815
127         * gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment
128         variable.
129         * invoke.texi:  Mention the "Runtime" chapter.
130         Document the -fconvert= option.
131         * gfortran.h:  Add options_convert.
132         * lang.opt:  Add fconvert=little-endian, fconvert=big-endian,
133         fconvert=native and fconvert=swap.
134         * trans-decl.c (top level):  Add gfor_fndecl_set_convert.
135         (gfc_build_builtin_function_decls):  Set gfor_fndecl_set_convert.
136         (gfc_generate_function_code):  If -fconvert was specified,
137         and this is the main program, add a call to set_convert().
138         * options.c:  Handle the -fconvert options.
139
140 2006-02-06  Roger Sayle  <roger@eyesopen.com>
141
142         * trans-stmt.c (gfc_evaluate_where_mask): Allow the NMASK argument
143         to be NULL to indicate that the not mask isn't required.
144         (gfc_trans_where_2): Remove PMASK argument.  Avoid calculating the
145         pending mask for the last clause of a WHERE chain.  Update recursive
146         call.
147         (gfc_trans_forall_1): Update call to gfc_trans_where_2.
148         (gfc_trans_where): Likewise.
149
150 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
151
152         Backport from gomp-20050608-branch
153         * trans-decl.c (create_function_arglist): Handle dummy functions.
154
155         * trans-decl.c (gfc_get_symbol_decl): Revert explicit setting of
156         TYPE_SIZE_UNIT.
157         (gfc_trans_vla_type_sizes): Also "gimplify"
158         GFC_TYPE_ARRAY_DATAPTR_TYPE for GFC_DESCRIPTOR_TYPE_P types.
159         * trans-array.c (gfc_trans_deferred_array): Call
160         gfc_trans_vla_type_sizes.
161
162         * trans-decl.c (saved_function_decls, saved_parent_function_decls):
163         Remove unnecessary initialization.
164         (create_function_arglist): Make sure __result has complete type.
165         (gfc_get_fake_result_decl): Change current_fake_result_decl into
166         a tree chain.  For entry master, create a separate variable
167         for each result name.  For BT_CHARACTER results, call
168         gfc_finish_var_decl on length even if it has been already created,
169         but not pushdecl'ed.
170         (gfc_trans_vla_type_sizes): For function/entry result, adjust
171         result value type, not the FUNCTION_TYPE.
172         (gfc_generate_function_code): Adjust for current_fake_result_decl
173         changes.
174         (gfc_trans_deferred_vars): Likewise.  Call gfc_trans_vla_type_sizes
175         even on result if it is assumed-length character.
176
177         * trans-decl.c (gfc_trans_dummy_character): Add SYM argument.
178         Call gfc_trans_vla_type_sizes.
179         (gfc_trans_auto_character_variable): Call gfc_trans_vla_type_sizes.
180         (gfc_trans_vla_one_sizepos, gfc_trans_vla_type_sizes_1,
181         gfc_trans_vla_type_sizes): New functions.
182         (gfc_trans_deferred_vars): Adjust gfc_trans_dummy_character
183         callers.  Call gfc_trans_vla_type_sizes on assumed-length
184         character parameters.
185         * trans-array.c (gfc_trans_array_bounds,
186         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias): Call
187         gfc_trans_vla_type_sizes.
188         * trans.h (gfc_trans_vla_type_sizes): New prototype.
189
190         * trans-decl.c (gfc_build_qualified_array): For non-assumed-size
191         arrays without constant size, create also an index var for
192         GFC_TYPE_ARRAY_SIZE (type).  If the type is incomplete, complete
193         it as 0..size-1.
194         (gfc_create_string_length): Don't call gfc_defer_symbol_init
195         if just creating DECL_ARGUMENTS.
196         (gfc_get_symbol_decl): Call gfc_finish_var_decl and
197         gfc_defer_symbol_init even if ts.cl->backend_decl is already
198         set to a VAR_DECL that doesn't have DECL_CONTEXT yet.
199         (create_function_arglist): Rework, so that hidden length
200         arguments for CHARACTER parameters are created together with
201         the parameters.  Resolve ts.cl->backend_decl for CHARACTER
202         parameters.  If the argument is a non-constant length array
203         or CHARACTER, ensure PARM_DECL has different type than
204         its DECL_ARG_TYPE.
205         (generate_local_decl): Call gfc_get_symbol_decl even
206         for non-referenced non-constant length CHARACTER parameters
207         after optionally issuing warnings.
208         * trans-array.c (gfc_trans_array_bounds): Set last stride
209         to GFC_TYPE_ARRAY_SIZE (type) to initialize it as well.
210         (gfc_trans_dummy_array_bias): Initialize GFC_TYPE_ARRAY_SIZE (type)
211         variable as well.
212
213         * trans-expr.c (gfc_conv_expr_val): Fix comment typo.
214
215         * trans-stmt.c (gfc_trans_simple_do): Fix comment.
216
217 2006-02-04  Roger Sayle  <roger@eyesopen.com>
218
219         * dependency.c (gfc_check_dependency): Remove unused vars and nvars
220         arguments.  Replace with an "identical" argument.  A full array
221         reference to the same symbol is a dependency if identical is true.
222         * dependency.h (gfc_check_dependency): Update prototype.
223         * trans-array.h (gfc_check_dependency): Delete duplicate prototype.
224         * trans-stmt.c: #include dependency.h for gfc_check_dependency.
225         (gfc_trans_forall_1): Update calls to gfc_check_dependency.
226         (gfc_trans_where_2): Likewise.  Remove unneeded variables.
227         (gfc_trans_where_3): New function for simple non-dependent WHEREs.
228         (gfc_trans_where): Call gfc_trans_where_3 to translate simple
229         F90-style WHERE statements without internal dependencies.
230         * Make-lang.in (trans-stmt.o): Depend upon dependency.h.
231
232 2006-02-05  H.J. Lu  <hongjiu.lu@intel.com>
233
234         PR fortran/26041
235         PR fortran/26064
236         * resolve.c (resolve_types): New function.
237         (resolve_codes): Likewise.
238         (gfc_resolve): Use them.
239
240 2006-02-05  Roger Sayle  <roger@eyesopen.com>
241
242         * trans-stmt.c (gfc_evaluate_where_mask): Use LOGICAL*1 for WHERE
243         masks instead of LOGICAL*4.
244
245 2006-02-05  Jakub Jelinek  <jakub@redhat.com>
246
247         * resolve.c (resolve_symbol): Initialize constructor_expr to NULL.
248
249 2006-02-04  Thomas Koenig  <Thomas.Koenig@online.de>
250
251         PR fortran/25075
252         check.c (identical_dimen_shape):  New function.
253         (check_dot_product):  Use identical_dimen_shape() to check sizes
254         for dot_product.
255         (gfc_check_matmul):  Likewise.
256         (gfc_check_merge):  Check conformance between tsource and fsource
257         and between tsource and mask.
258         (gfc_check_pack):  Check conformance between array and mask.
259
260 2006-02-03  Steven G. Kargl  <kargls@comcast>
261             Paul Thomas  <pault@gcc.gnu.org>
262
263         PR fortran/20845
264         * resolve.c (resolve_symbol): Default initialization of derived type
265         component reguires the SAVE attribute.
266
267 2006-02-02  Steven G. Kargl  <kargls@comcast>
268
269         PR fortran/24958
270         match.c (gfc_match_nullify):  Free the list from head not tail.
271
272         PR fortran/25072
273         * match.c (match_forall_header): Fix internal error caused by bogus
274         gfc_epxr pointers.
275
276
277 2006-01-31  Thomas Koenig  <Thomas.Koenig@online.de>
278
279         PR fortran/26039
280         expr.c (gfc_check_conformance):  Reorder error message
281         to avoid plural.
282         check.c(gfc_check_minloc_maxloc):  Call gfc_check_conformance
283         for checking arguments array and mask.
284         (check_reduction):  Likewise.
285
286 2005-01-30  Erik Edelmann  <eedelman@gcc.gnu.org>
287
288         PR fortran/24266
289         * trans-io.c (set_internal_unit): Check the rank of the
290         expression node itself instead of its symbol.
291
292 2006-01-29  Paul Thomas  <pault@gcc.gnu.org>
293
294         PR fortran/18578
295         PR fortran/18579
296         PR fortran/20857
297         PR fortran/20885
298         * interface.c (compare_actual_formal): Error for INTENT(OUT or INOUT)
299         if actual argument is not a variable.
300
301 2006-01-28  Paul Thomas  <pault@gcc.gnu.org>
302
303         PR fortran/17911
304         * expr.c (gfc_check_assign, gfc_check_pointer_assign): Emit error if
305         the lvalue is a use associated procedure.
306
307         PR fortran/20895
308         PR fortran/25030
309         * expr.c (gfc_check_pointer_assign): Emit error if lvalue and rvalue
310         character lengths are not the same.  Use gfc_dep_compare_expr for the
311         comparison.
312         * gfortran.h: Add prototype for gfc_dep_compare_expr.
313         * dependency.h: Remove prototype for gfc_dep_compare_expr.
314
315 2005-01-27  Paul Thomas  <pault@gcc.gnu.org>
316
317         PR fortran/25964
318         * resolve.c (resolve_function): Add GFC_ISYM_LOC to the list of
319         generic_ids exempted from assumed size checking.
320
321 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
322
323         PR fortran/25324
324         * Make-lang.in (fortran/scanner.o): Depend on toplev.h.
325         * lang.opt (fpreprocessed): New option.
326         * scanner.c: Include toplev.h.
327         (gfc_src_file, gfc_src_preprocessor_lines): New variables.
328         (preprocessor_line): Unescape filename if there were any
329         backslashes.
330         (load_file): If initial and gfc_src_file is not NULL,
331         use it rather than opening the file.  If gfc_src_preprocessor_lines
332         has non-NULL elements, pass it to preprocessor_line.
333         (unescape_filename, gfc_read_orig_filename): New functions.
334         * gfortran.h (gfc_option_t): Add flag_preprocessed.
335         (gfc_read_orig_filename): New prototype.
336         * options.c (gfc_init_options): Clear flag_preprocessed.
337         (gfc_post_options): If flag_preprocessed, call
338         gfc_read_orig_filename.
339         (gfc_handle_option): Handle OPT_fpreprocessed.
340         * lang-specs.h: Pass -fpreprocessed to f951 if preprocessing
341         sources.
342
343 2005-01-27  Erik Edelmann  <eedelman@gcc.gnu.org>
344
345         * symbol.c (free_old_symbol): Fix confusing comment, and add code
346           to free old_symbol->formal.
347
348 2005-01-26  Paul Thomas  <pault@gcc.gnu.org>
349
350         PR fortran/25964
351         * resolve.c (resolve_function): Exclude statement functions from
352         global reference checking.
353
354         PR fortran/25084
355         PR fortran/20852
356         PR fortran/25085
357         PR fortran/25086
358         * resolve.c (resolve_function): Declare a gfc_symbol to replace the
359         references through the symtree to the symbol associated with the
360         function expresion. Give error on reference to an assumed character
361         length function is defined in an interface or an external function
362         that is not a dummy argument.
363         (resolve_symbol): Give error if an assumed character length function
364         is array-valued, pointer-valued, pure or recursive. Emit warning
365         that character(*) value functions are obsolescent in F95.
366
367         PR fortran/25416
368         * trans-expr.c (gfc_conv_function_call): The above patch to resolve.c
369         prevents any assumed character length function call from getting here
370         except intrinsics such as SPREAD. In this case, ensure that no
371         segfault occurs from referencing non-existent charlen->length->
372         expr_type and provide a backend_decl for the charlen from the charlen
373         of the first actual argument.
374
375         Cure temp name confusion.
376         * trans-expr.c (gfc_get_interface_mapping_array): Change name of
377         temporary from "parm" to "ifm" to avoid clash with temp coming from
378         trans-array.c.
379
380 2005-01-25  Erik Edelmann  <eedelman@gcc.gnu.org>
381
382         PR fortran/25716
383         * symbol.c (free_old_symbol): New function.
384         (gfc_commit_symbols): Use it.
385         (gfc_commit_symbol): New function.
386         (gfc_use_derived): Use it.
387         * gfortran.h: Add prototype for gfc_commit_symbol.
388         * intrinsic.c (gfc_find_function): Search in 'conversion'
389         if not found in 'functions'.
390         (gfc_convert_type_warn): Add a symtree to the new
391         expression node, and commit the new symtree->n.sym.
392         * resolve.c (gfc_resolve_index): Make sure typespec is
393         properly initialized.
394
395 2005-01-23  Paul Thomas  <pault@gcc.gnu.org>
396
397         PR fortran/25901
398         * decl.c (get_proc_name): Replace subroutine and function attributes
399         in "already defined" test by the formal arglist pointer being non-NULL.
400
401         Fix regression in testing of admissability of attributes.
402         * symbol.c (gfc_add_attribute): If the current_attr has non-zero
403         intent, do not do the check for a dummy being used.
404         * decl.c (attr_decl1): Add current_attr.intent as the third argument
405         in the call to gfc_add_attribute.
406         * gfortran.h: Add the third argument to the prototype for
407         gfc_add_attribute.
408
409 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
410
411         * gfortranspec.c (lang_specific_driver): Update copyright notice
412         date.
413
414 2005-01-21  Paul Thomas  <pault@gcc.gnu.org>
415
416         PR fortran/25124
417         PR fortran/25625
418         * decl.c (get_proc_name): If there is an existing
419         symbol in the encompassing namespace, call errors
420         if it is a procedure of the same name or the kind
421         field is set, indicating a type declaration.
422
423         PR fortran/20881
424         PR fortran/23308
425         PR fortran/25538
426         PR fortran/25710
427         * decl.c (add_global_entry): New function to check
428         for existing global symbol with this name and to
429         create new one if none exists.
430         (gfc_match_entry): Call add_global_entry before
431         matching argument lists for subroutine and function
432         entries.
433         * gfortran.h: Prototype for existing function,
434         global_used.
435         * resolve.c (resolve_global_procedure): New function
436         to check global symbols for procedures.
437         (resolve_call, resolve_function): Calls to this
438         new function for non-contained and non-module
439         procedures.
440         * match.c (match_common): Add check for existing
441         global symbol, creat one if none exists and emit
442         error if there is a clash.
443         * parse.c (global_used): Remove static and use the
444         gsymbol name rather than the new_block name, so that
445         the function can be called from resolve.c.
446         (parse_block_data, parse_module, add_global_procedure):
447         Improve checks for existing gsymbols.  Emit error if
448         already defined or if references were to another type.
449         Set defined flag.
450
451         PR fortran/PR24276
452         * trans-expr.c (gfc_conv_aliased_arg): New function called by 
453         gfc_conv_function_call that coverts an expression for an aliased
454         component reference to a derived type array into a temporary array
455         of the same type as the component.  The temporary is passed as an
456         actual argument for the procedure call and is copied back to the
457         derived type after the call.
458         (is_aliased_array): New function that detects an array reference
459         that is followed by a component reference.
460         (gfc_conv_function_call): Detect an aliased actual argument with
461         is_aliased_array and convert it to a temporary and back again
462         using gfc_conv_aliased_arg.
463
464 2006-01-19  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
465
466         * gfortranspec.c: Update copyright years.
467         * trans.c: Likewise.
468         * trans-array.c: Likewise.
469         * trans-array.h: Likewise.
470         * trans-decl.c: Likewise.
471         * trans-stmt.c: Likewise.
472         * trans-stmt.h: Likewise.
473         * trans-types.c: Likewise.
474
475 2006-01-18  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
476
477         PR fortran/18540
478         PR fortran/18937
479         * gfortran.h (BBT_HEADER): Move definition up.
480         (gfc_st_label): Add BBT_HEADER, remove 'prev' and 'next'.
481         * io.c (format_asterisk): Adapt initializer.
482         * resolve.c (resolve_branch): Allow FORTRAN 66 cross-block GOTOs
483         as extension.
484         (warn_unused_label): Take gfc_st_label label as argument, adapt to
485         new data structure.
486         (gfc_resolve): Adapt call to warn_unused_label.
487         * symbol.c (compare_st_labels): New function.
488         (gfc_free_st_label, free_st_labels, gfc_get_st_label): Convert to
489         using balanced binary tree.
490         * decl.c (match_char_length, gfc_match_old_kind_spec): Do away
491         with 'cnt'.
492         (warn_unused_label): Adapt to binary tree.
493         * match.c (gfc_match_small_literal_int): Only set cnt if non-NULL.
494         * primary.c (match_kind_param): Do away with cnt.
495
496 2006-01-18  Paul Thomas  <pault@gcc.gnu.org>
497
498         PR fortran/20869
499         PR fortran/20875
500         PR fortran/25024
501         * symbol.c (check_conflict): Add pointer valued elemental
502         functions and internal procedures with the external attribute
503         to the list of conflicts.
504         (gfc_add_attribute): New catch-all function to perform the
505         checking of symbol attributes for attribute declaration
506         statements.
507         * decl.c (attr_decl1): Call gfc_add_attribute for each of -
508         (gfc_match_external, gfc_match_intent, gfc_match_intrinsic,
509         gfc_match_pointer, gfc_match_dimension, gfc_match_target):
510         Remove spurious calls to checks in symbol.c.  Set the
511         attribute directly and use the call to attr_decl() for
512         checking.
513         * gfortran.h:  Add prototype for gfc_add_attribute.
514
515         PR fortran/25785
516         * resolve.c (resolve_function): Exclude PRESENT from assumed size
517         argument checking. Replace strcmp's with comparisons with generic
518         codes.
519
520 2006-01-16  Rafael \81Ávila de Esp\81índola  <rafael.espindola@gmail.com>
521
522         * gfortranspec.c (lang_specific_spec_functions): Remove.
523
524 2006-01-16  Richard Guenther  <rguenther@suse.de>
525
526         * trans-stmt.c (gfc_trans_if_1): Use fold_buildN and build_int_cst.
527         (gfc_trans_arithmetic_if): Likewise.
528         (gfc_trans_simple_do): Likewise.
529         (gfc_trans_do): Likewise.
530         (gfc_trans_do_while): Likewise.
531         (gfc_trans_logical_select): Likewise.
532         (gfc_trans_forall_loop): Likewise.
533         (generate_loop_for_temp_to_lhs): Likewise.
534         (generate_loop_for_rhs_to_temp): Likewise.
535         (gfc_trans_allocate): Likewise.
536         * trans.c (gfc_add_expr_to_block): Do not fold expr again.
537
538 2006-01-16  Richard Guenther  <rguenther@suse.de>
539
540         * trans-expr.c (gfc_conv_function_call): Use fold_build2.
541         * trans-stmt.c (gfc_trans_goto): Likewise.  Use build_int_cst.
542         * trans.c (gfc_trans_runtime_check): Don't fold the condition
543         again.
544
545 2006-01-13  Steven G. Kargl  <kargls@comcast.net>
546
547         PR fortran/25756
548         * symbol.c (gfc_free_st_label): Give variable meaningful name. Remove
549         unneeded parenthesis. Fix-up the head of the list (2 lines gleaned
550         from g95).
551
552 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
553
554         * trans.c (gfc_add_expr_to_block): Do not fold tcc_statement
555         nodes.
556
557 2006-01-11  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
558
559         * parse.c (next_fixed): Remove superfluous string concatenation.
560
561 2006-01-11  Bernhard Fischer  <rep.nop@aon.at>
562
563         PR fortran/25486
564         * scanner.c (load_line): use maxlen to determine the line-length used
565         for padding lines in fixed form.
566
567 2005-01-11  Paul Thomas  <pault@gcc.gnu.org>
568
569         PR fortran/25730
570         * trans-types.c (copy_dt_decls_ifequal): Copy backend decl for
571         character lengths.
572
573 2006-01-09  Andrew Pinski  <pinskia@physics.uc.edu>
574
575         fortran/24936
576         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Use fold_convert
577         to avoid type mismatch.
578
579 2006-01-09  Andrew Pinski  <pinskia@physics.uc.edu>
580
581         PR fortran/21977
582         * trans-decl.c (gfc_generate_function_code): Move the NULLing of
583         current_fake_result_decl down to below generate_local_vars.
584
585 2006-01-09  Feng Wang  <fengwang@nudt.edu.cn>
586
587         PR fortran/12456
588         * trans-expr.c (gfc_to_single_character): New function that converts
589         string to single character if its length is 1.
590         (gfc_build_compare_string):New function that compare string and handle
591         single character specially.
592         (gfc_conv_expr_op): Use gfc_build_compare_string.
593         (gfc_trans_string_copy): Use gfc_to_single_character.
594         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Use
595         gfc_build_compare_string.
596         * trans.h (gfc_build_compare_string): Add prototype.
597
598 2006-01-09  Feng Wang  <fengwang@nudt.edu.cn>
599
600         * simplify.c (gfc_simplify_char): Use UCHAR_MAX instead of literal
601         constant.
602         (gfc_simplify_ichar): Get the result from unsinged char and in the
603         range 0 to UCHAR_MAX instead of CHAR_MIN to CHAR_MAX.
604
605 2005-01-08  Erik Edelmann  <eedelman@gcc.gnu.org>
606
607         PR fortran/25093
608         * resolve.c (resolve_fntype): Check that PUBLIC functions
609         aren't of PRIVATE type.
610
611 2005-01-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
612
613         * decl.c (gfc_match_function_decl): Correctly error out in case of
614         omitted function argument list.
615
616 2006-01-07  Paul Thomas  <pault@gcc.gnu.org>
617
618         PR fortran/22146
619         * trans-array.c (gfc_reverse_ss): Remove static attribute.
620         (gfc_walk_elemental_function_args): Replace gfc_expr * argument for
621         the function call with the corresponding gfc_actual_arglist*.  Change
622         code accordingly.
623         (gfc_walk_function_expr): Call to gfc_walk_elemental_function_args
624         now requires the actual argument list instead of the expression for
625         the function call.
626         * trans-array.h: Modify the prototype for gfc_walk_elemental_function_args
627         and provide a prototype for gfc_reverse_ss.
628         * trans-stmt.h (gfc_trans_call): Add the scalarization code for the case
629         where an elemental subroutine has array valued actual arguments.
630
631         PR fortran/25029
632         PR fortran/21256
633         PR fortran/20868
634         PR fortran/20870
635         * resolve.c (check_assumed_size_reference): New function to check for upper
636         bound in assumed size array references.
637         (resolve_assumed_size_actual): New function to do a very restricted scan
638         of actual argument expressions of those procedures for which incomplete
639         assumed size array references are not allowed.
640         (resolve_function, resolve_call): Switch off assumed size checking of
641         actual arguments, except for elemental procedures and intrinsic
642         inquiry functions, in some circumstances.
643         (resolve_variable): Call check_assumed_size_reference.
644
645 2006-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
646
647         PR fortran/24268
648         * io.c (next_char_not_space): New function that returns the next
649         character that is not white space.
650         (format_lex): Use the new function to skip whitespace within
651         a format string.
652
653 2006-01-05  Erik Edelmann  <eedelman@gcc.gnu.org>
654
655         PR fortran/23675
656         * expr.c (gfc_expr_set_symbols_referenced): New function.
657         * gfortran.h: Add a function prototype for it.
658         * resolve.c (resolve_function): Use it for
659         use associated character functions lengths.
660         * expr.c, gfortran.h, resolve.c: Updated copyright years.
661
662 2006-01-03  Steven G. Kargl  <kargls@comcast.net>
663
664         PR fortran/25101
665         * resolve.c (resolve_forall_iterators):  Check for scalar variables;
666         Check stride is nonzero.
667
668 2006-01-02  Steven G. Kargl  <kargls@comcast.net>
669
670         PR fortran/24640
671         * parse.c (next_free): Check for whitespace after the label.
672         * match.c (gfc_match_small_literal_int): Initialize cnt variable.
673
674 2006-01-01  Steven G. Kargl  <kargls@comcast.net>
675
676         * ChangeLog: Split previous years into ...
677         * ChangeLog-2002: here.
678         * ChangeLog-2003: here.
679         * ChangeLog-2004: here.
680         * ChangeLog-2005: here.