2009-05-06 Tobias Burnus <burnus@net-b.de>
[official-gcc/alias-decl.git] / gcc / fortran / ChangeLog
blob1cbfa14a550f565a0ef6d280745559fb5ace73a7
1 2009-05-06  Tobias Burnus  <burnus@net-b.de>
3         PR fortran/40041
4         * resolve.c (resolve_symbol): Print no warning for implicitly
5         typed intrinsic functions.
7 2009-05-05  Janus Weil  <janus@gcc.gnu.org>
9         PR fortran/39998
10         * expr.c (gfc_check_pointer_assign): Check for statement functions and
11         internal procedures in procedure pointer assignments.
13 2009-04-28  Janus Weil  <janus@gcc.gnu.org>
15         PR fortran/39946
16         * resolve.c (resolve_symbol): Correctly copy the interface of a
17         PROCEDURE statement if the interface involves a RESULT variable.
19 2009-04-28  Janus Weil  <janus@gcc.gnu.org>
21         PR fortran/39930
22         PR fortran/39931
23         * expr.c (gfc_check_pointer_assign): Correctly detect if the left hand
24         side is a pointer.
25         * parse.c (gfc_fixup_sibling_symbols): Don't check for ambiguity.
27 2009-04-28  Paul Thomas  <pault@gcc.gnu.org>
29         PR fortran/39879
30         * trans_expr.c (gfc_conv_procedure_call): Deep copy a derived
31         type parentheses argument if it is a variable with allocatable
32         components.
34 2009-04-27  Ian Lance Taylor  <iant@google.com>
36         * trans-intrinsic.c (DEFINE_MATH_BUILTIN): Add casts to enum
37         type.
38         * trans-io.c (st_parameter_field): Add casts to enum type.
40 2009-04-26  Steven G. Kargl  <kargl@gcc.gnu.org>
42         PR fortran/39893
43         fortran/data.c (gfc_assign_data_value): If the lvalue is an 
44         assumed character length entity in a data statement, then 
45         return FAILURE to prevent segmentation fault.
47 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
49         * trans-decl.c: Include pointer-set.h.
50         (nonlocal_dummy_decl_pset, tree nonlocal_dummy_decls): New variables.
51         (gfc_nonlocal_dummy_array_decl): New function.
52         (gfc_get_symbol_decl): Call it for non-local dummy args with saved
53         descriptor.
54         (gfc_get_symbol_decl): Set DECL_BY_REFERENCE when needed.
55         (gfc_generate_function_code): Initialize nonlocal_dummy_decl{s,_pset},
56         chain it to outermost block's vars, destroy it afterwards.
57         * Make-lang.in (trans-decl.o): Depend on pointer-set.h.
59 2009-04-25  Janus Weil  <janus@gcc.gnu.org>
61         PR fortran/39688
62         * decl.c (gfc_match_import): Use 'sym->name' instead of 'name'.
63         They differ if the symbol has been use-renamed.
65 2009-04-24  Ian Lance Taylor  <iant@google.com>
67         * gfortran.h (enum gfc_symbol_type): New named enum type, broken
68         out of struct gfc_symbol.
69         (struct gfc_symbol): Use enum gfc_symbol_type.
70         (enum gfc_array_ref_dimen_type): New named enum type, broken out
71         of struct gfc_array_ref).
72         (struct gfc_array_ref): Use enum gfc_array_ref_dimen_type.
73         (mod_pointee_as): Update declaration.
74         * decl.c (add_global_entry): Change type to enum gfc_symbol_type.
75         (gfc_mod_pointee_as): Change return type to "match".
76         * module.c (mio_array_ref): Add cast to enum type.
77         (mio_symbol): Likewise.
78         * resolve.c (resolve_global_procedure): Change type to enum
79         gfc_symbol_type.
80         * trans-io.c (gfc_build_st_parameter): Change type to unsigned
81         int.
83 2009-04-24  Daniel Kraft  <d@domob.eu>
85         * gfortran.h (gfc_get_typebound_proc): Removed as macro, now a function.
86         (struct gfc_symtree): Moved `typebound' member inside union.
87         (struct gfc_namespace): Add `tb_sym_root' as new symtree to sort out
88         type-bound procedures there.
89         (gfc_get_tbp_symtree): New procedure.
90         * symbol.c (tentative_tbp_list): New global.
91         (gfc_get_namespace): NULL new `tb_sym_root' member.
92         (gfc_new_symtree): Removed initialization of `typebound' member.
93         (gfc_undo_symbols): Process list of tentative tbp's.
94         (gfc_commit_symbols): Ditto.
95         (free_tb_tree): New method.
96         (gfc_free_namespace): Call it.
97         (gfc_get_typebound_proc): New method.
98         (gfc_get_tbp_symtree): New method.
99         (gfc_find_typebound_proc): Adapt to structural changes of gfc_symtree
100         and gfc_namespace with regards to tbp's.
101         * dump-parse-tree.c (show_typebound): Ditto.
102         * primary.c (gfc_match_varspec): Ditto.  Don't reference tbp-symbol
103         as it isn't a symbol any longer.
104         * module.c (mio_typebound_symtree): Adapt to changes.
105         (mio_typebound_proc): Ditto, create symtrees using `gfc_get_tbp_symtree'
106         rather than `gfc_get_sym_tree'.
107         (mio_f2k_derived): Ditto.
108         * decl.c (match_procedure_in_type): Ditto.
109         (gfc_match_generic): Ditto.  Don't reference tbp-symbol.
110         * resolve.c (check_typebound_override): Adapt to changes.
111         (resolve_typebound_generic): Ditto.
112         (resolve_typebound_procedures): Ditto.
113         (ensure_not_abstract_walker): Ditto.
114         (ensure_not_abstract): Ditto.
115         (resolve_typebound_procedure): Ditto, ignore erraneous symbols (for
116         instance, through removed tentative ones).
117         * gfc-internals.texi (Type-bound procedures): Document changes.
119 2009-04-24  Janus Weil  <janus@gcc.gnu.org>
121         PR fortran/39861
122         PR fortran/39864
123         * symbol.c (gfc_copy_formal_args_intr): Set attr.flavor and attr.dummy
124         for the formal arguments.
126 2009-04-21  Taras Glek <tglek@mozilla.com>
128         * f95-lang.c: Update GTY annotations to new syntax.
129         * trans-intrinsic.c: Likewise.
130         * trans-io.c: Likewise.
131         * trans.h: Likewise.
133 2009-04-22  Janus Weil  <janus@gcc.gnu.org>
135         PR fortran/39735
136         * decl.c (add_hidden_procptr_result): Bugfix for procptr results.
137         (match_procedure_decl): Set if_source.
138         * expr.c (gfc_check_pointer_assign): Bugfix: Return after error.
139         And: Check interface also for IFSRC_UNKNOWN (return type may be known).
140         * gfortran.h (typedef enum ifsrc): Remove IFSRC_USAGE,
141         add documentation. Rename copy_formal_args and copy_formal_args_intr.
142         * interface.c (gfc_compare_interfaces): Check for return types,
143         handle IFSRC_UNKNOWN.
144         (compare_intr_interfaces,compare_actual_formal_intr): Obsolete, removed.
145         (gfc_procedure_use): Modified handling of intrinsics.
146         * intrinsic.c (add_functions): Bugfix for "dim".
147         * resolve.c (resolve_intrinsic): New function to resolve intrinsics,
148         which copies the interface from isym to sym.
149         (resolve_procedure_expression,resolve_function): Use new function
150         'resolve_intrinsic'.
151         (resolve_symbol): Add function attribute for externals with return type
152         and use new function 'resolve_intrinsic'.
153         * symbol.c (ifsrc_types): Remove string for IFSRC_USAGE.
154         (copy_formal_args): Renamed to gfc_copy_formal_args.
155         (copy_formal_args_intr): Renamed to gfc_copy_formal_args_intr.
156         * trans-const.c (gfc_conv_const_charlen): Handle cl==NULL.
158 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
160         * ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004,
161         ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008,
162         ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add
163         copyright and license notices.
164         * ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
165         ChangeLog-2008: Correct dates.
167 2009-04-20  Tobias Burnus  <burnus@net-b.de>
169         PR fortran/39811
170         * scanner.c (load_line): Fix bogus "&" compile-time diagnostic.
172 2009-04-20  Paul Thomas  <pault@gcc.gnu.org>
174         PR fortran/39800
175         * resolve.c (is_sym_host_assoc): New function.
176         (resolve_fl_derived): Call it when checking PRIVATE components
177         of PUBLIC derived types.  Change gfc_error to a gfc_notify_std
178         with std=f2003.
179         (resolve_fl_namelist): Call it twice to check for host
180         association.
182 2009-04-20  Ian Lance Taylor  <iant@google.com>
184         * module.c (import_iso_c_binding_module): Add casts to enum type.
185         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Change op to enum
186         tree_code.
187         (gfc_conv_intrinsic_anyall): Likewise.
188         (gfc_conv_intrinsic_arith): Likewise.
189         (gfc_conv_intrinsic_minmaxloc): Likewise.
190         (gfc_conv_intrinsic_minmaxval): Likewise.
191         (gfc_conv_intrinsic_bitop): Likewise.
192         (gfc_conv_intrinsic_singlebitop): Likewise.
193         (gfc_conv_intrinsic_strcmp): Likewise.
195 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
196             Jakub Jelinek  <jakub@redhat.com>
198         PR fortran/35423
199         * trans.h (OMPWS_WORKSHARE_FLAG, OMPWS_CURR_SINGLEUNIT,
200         OMPWS_SCALARIZER_WS, OMPWS_NOWAIT): Define.
201         (ompws_flags): New extern decl.
202         * trans-array.c (gfc_trans_scalarized_loop_end): Build OMP_FOR
203         for the outer dimension if ompws_flags allow it.
204         * trans.c (gfc_generate_code): Clear ompws_flags.
205         * trans-expr.c (gfc_trans_assignment_1): Allow worksharing
206         array assignments inside of !$omp workshare.
207         * trans-stmt.c (gfc_trans_where_3): Similarly for where statements
208         and constructs.
209         * trans-openmp.c (ompws_flags): New variable.
210         (gfc_trans_omp_workshare): Rewritten.
212 2009-04-11  Daniel Kraft  <d@domob.eu>
214         PR fortran/37746
215         * gfortran.h (struct gfc_charlen): New field `passed_length' to store
216         the actual passed string length for dummy arguments.
217         * trans-decl.c (gfc_create_string_length): Formatting fixes and added
218         assertion, moved a local variable into the innermost block it is needed.
219         (create_function_arglist): Removed TODO about the check being
220         implemented and initialize cl->passed_length here.
221         (add_argument_checking): New method.
222         (gfc_generate_function_code): Call the argument checking method.
224 2009-04-11  Janus Weil  <janus@gcc.gnu.org>
226         PR fortran/39692
227         * symbol.c (check_conflict): Reject procedure pointers for -std=f95.
229 2009-04-11  Daniel Franke  <franke.daniel@gmail.com>
231         * resolve.c (resolve_global_procedure): Enable whole-file checking for
232         procedures that are declared later in the file.
233         
234 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
236         PR middle-end/39701
237         * trans.c (gfc_allocate_with_status): Fix type mismatches
238         on "pstat == 0".
240 2009-04-10  Daniel Franke  <franke.daniel@gmail.com>
242         PR fortran/38709
243         * expr.c (find_array_section): Leave early on zero-sized arrays.
245 2009-04-09  Janus Weil  <janus@gcc.gnu.org>
247         PR fortran/36704
248         * decl.c (add_hidden_procptr_result): New function for handling
249         procedure pointer return values by adding a hidden result variable.
250         (variable_decl,match_procedure_decl,gfc_match_function_decl,
251         gfc_match_subroutine,gfc_match_end,attr_decl1): Handle procedure pointer
252         return values.
253         * parse.c (parse_interface): Add EXTERNAL attribute only after
254         FUNCTION/SUBROUTINE declaration is complete.
255         * primary.c (replace_hidden_procptr_result): New function for replacing
256         function symbol by hidden result variable.
257         (gfc_match_rvalue,match_variable): Replace symbol by hidden result
258         variable.
259         * resolve.c (resolve_contained_fntype,resolve_function,resolve_variable,
260         resolve_symbol): Allow for procedure pointer function results.
261         (resolve_fl_procedure): Conflict detection moved here from
262         'check_conflict'.
263         * symbol.c (gfc_check_function_type): Allow for procedure pointer
264         function results.
265         (check_conflict): Move some conflict detection to resolution stage.
266         * trans-types.c (gfc_sym_type,gfc_get_function_type): Handle hidden
267         result variables.
269 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
271         * trans-types.c (gfc_init_types): Ensure gfc_integer_types doesn't
272         contain TYPE_STRING_FLAG types.
274 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
276         PR fortran/39670
277         * invoke.texi (fdollar-ok): Fix typo.
278         
279 2009-04-08  Daniel Franke  <franke.daniel@gmail.com>
281         PR fortran/39670
282         * invoke.texi (fdollar-ok): Clarify limitations.
284 2009-04-08  Paul Thomas  <pault@gcc.gnu.org>
286         PR fortran/38863
287         * trans-array.c (gfc_trans_deferred_array): Return if this
288         is a result variable.
290 2009-04-07  Janus Weil  <janus@gcc.gnu.org>
292         PR fortran/38152
293         * trans-decl.c (gfc_get_symbol_decl): Correctly set decl location for
294         procedure pointer decls.
296 2009-04-07  Janus Weil  <janus@gcc.gnu.org>
298         PR fortran/38290
299         * expr.c (gfc_check_pointer_assign): Enable interface check for
300         procedure pointers.
301         * gfortran.h: Add copy_formal_args_intr.
302         * interface.c (gfc_compare_interfaces): Call gfc_compare_intr_interfaces
303         if second argument is an intrinsic.
304         (compare_intr_interfaces): Correctly set attr.function, attr.subroutine
305         and ts.
306         (compare_parameter): Call gfc_compare_interfaces also for intrinsics.
307         * resolve.c (resolve_specific_f0,resolve_specific_s0): Don't resolve
308         intrinsic interfaces here. Must happen earlier.
309         (resolve_symbol): Resolution of intrinsic interfaces moved here from
310         resolve_specific_..., and formal args are now copied from intrinsic
311         interfaces.
312         * symbol.c (copy_formal_args_intr): New function to copy the formal
313         arguments from an intinsic procedure.
315 2009-04-06  Paul Thomas  <pault@gcc.gnu.org>
317         PR fortran/38863
318         * dependency.c (ref_same_as_full_array): New function.
319         (gfc_dep_resolver): Call it.
321 2009-04-06  Janus Weil  <janus@gcc.gnu.org>
323        PR fortran/39414
324        * decl.c (match_procedure_decl): Fix double declaration problems with
325        PROCEDURE statements.
326        * symbol.c (gfc_add_type): Ditto.
328 2009-04-06  Paul Thomas  <pault@gcc.gnu.org>
330         PR fortran/36091
331         * trans-array.c (gfc_conv_array_ref): If the symbol has the
332         temporary attribute use the array_spec for the bounds.
333         * gfortran.h : Add the temporary field to the structure
334         'symbol_attribute'.
335         * trans-stmt.c (forall_make_variable_temp): Set the symbol's
336         temporary attribute.
338 2009-04-05  Daniel Franke  <franke.daniel@gmail.com>
340         PR fortran/29458
341         * trans-array.c (gfc_trans_array_constructor_value): Shadow
342         implied do-loop variable to avoid spurious middle-end warnings.
344 2009-04-04  Tobias Burnus  <burnus@net-b.de>
346         PR fortran/39577
347         * trans-decl.c (gfc_generate_function_code): Move recursive
348         check to the right position.
350 2009-04-04  Paul Thomas  <pault@gcc.gnu.org>
352         PR fortran/37614
353         * trans-common.c (translate_common): Do not offset the whole
354         coomon block.
356 2009-04-03  Tobias Burnus  <burnus@net-b.de>
358         PR fortran/39594
359         * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol
360         if it is not a procedure pointer.
361         * primary.c (match_actual_arg): Ditto.
363 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
365         PR preprocessor/15638
366         * cpp.c (cb_cpp_error): Handle CPP_DL_FATAL.
368 2009-03-30  Steven G. Kargl  <kargls@comcast.net>
370         PR fortran/38389
371         * trans-stmt.c(gfc_trans_allocate): Add translation of ERRMSG.
372         (gfc_trans_deallocate): Add translation of ERRMSG.  Remove stale
373         comments.  Minor whitespace cleanup.
374         * resolve.c(is_scalar_expr_ptr): Whitespace cleanup.
375         (resolve_deallocate_expr (gfc_expr *e): Update error message.
376         (resolve_allocate_expr):  Remove dead code.  Update error message.
377         Move error checking to ...
378         (resolve_allocate_deallocate): ... here.  Add additional error
379         checking for STAT, ERRMSG, and allocate-objects.
380         * match.c(gfc_match_allocate,gfc_match_deallocate):  Parse ERRMSG.
381         Check for redundant uses of STAT and ERRMSG.  Reword error message
382         and add checking for pointer, allocatable, and proc_pointer attributes.
384 2009-03-30  Paul Thomas  <pault@gcc.gnu.org>
386         PR fortran/22571
387         PR fortran/26227
388         PR fortran/24886
389         * symbol.c : Add gfc_global_ns_list.
390         * decl.c (add_global_entry): Set the namespace ('ns') field.
391         * gfortran.h : Add the resolved field to gfc_namespace. Add the
392         namespace ('ns') field to gfc_gsymbol.  Add flag_whole_file to
393         gfc_option_t.  Add the prototype for gfc_free_dt_list.
394         * lang.opt : Add the whole-file option.
395         * invoke.texi : Document the whole-file option.
396         * resolve.c (resolve_global_procedure): If the fwhole-file
397         option is set, reorder gsymbols to ensure that translation is
398         in the right order.  Resolve the gsymbol's namespace if that
399         has not occurred and then check interfaces.
400         (resolve_function): Move call to resolve_global_procedure.
401         (resolve_call): The same.
402         (resolve_codes): Store the current labels_obstack.
403         (gfc_resolve) : Return if the namespace is already resolved.
404         trans-decl.c (gfc_get_extern_function_decl): If the whole_file
405         option is selected, use the backend_decl of a gsymbol, if it is
406         available.
407         parse.c (add_global_procedure, add_global_program): If the flag
408         whole-file is set, add the namespace to the gsymbol.
409         (gfc_parse_file): On -fwhole-file, put procedure namespaces on
410         the global namespace list.  Rearrange to do resolution of all
411         the procedures in a file, followed by their translation.
412         * options.c (gfc_init_options): Add -fwhole-file.
413         (gfc_handle_option): The same.
415 2009-03-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
417         * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL
418         family of intrinsics instead of BUILT_IN_INF family.
419         * trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use
420         BUILT_IN_HUGE_VAL instead of BUILT_IN_INF.
422 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
424         * trans-types.c (gfc_sym_type, gfc_return_by_reference): For
425         sym->attr.result check sym->ns->proc_name->attr.is_bind_c.
427 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
429         PR rtl-optimization/323
430         * options.c (gfc_post_options): Set
431         flag_excess_precision_cmdline.  Give an error for
432         -fexcess-precision=standard for processors where the option is
433         significant.
435 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
437         PR preprocessor/34695
438         * cpp.c (cb_cpp_error): New.
439         (gfc_cpp_post_options): Don't set cpp_option->inhibit_warnings.
440         Don't check cpp_errors (cpp_in).
441         (gfc_cpp_init_0): Set cb->error.
443 2009-03-29  Steven G. Kargl  <kargl@gcc.gnu.org>
445         PR fortran/38823
446         * gfortran.h: Add ARITH_PROHIBIT to arith enum.
447         expr.c (gfc_match_init_expr): Add global variable init_flag to
448         flag matching an initialization expression.
449         (check_intrinsic_op): Move no longer reachable error message to ...
450         * arith.c (arith_power): ... here.  Remove gfc_ prefix in
451         gfc_arith_power.  Use init_flag.  Allow constant folding of x**y
452         when y is REAL or COMPLEX.
453         (eval_intrinsic): Remove restriction that y in x**y must be INTEGER
454         for constant folding.
455         * gfc_power: Update gfc_arith_power to arith_power
457 2009-03-29  Daniel Kraft  <d@domob.eu>
459         PR fortran/37423
460         * gfortran.h (struct gfc_typebound_proc): Added new flag `deferred' and
461         added a comment explaining DEFERRED binding handling.
462         * decl.c (match_binding_attributes): Really match DEFERRED attribute.
463         (match_procedure_in_type): Really match PROCEDURE(interface) syntax
464         and do some validity checks for DEFERRED and this construct.
465         * module.c (binding_overriding): New string constant for DEFERRED.
466         (mio_typebound_proc): Module-IO DEFERRED flag.
467         * resolve.c (check_typebound_override): Ensure that a non-DEFERRED
468         binding is not overridden by a DEFERRED one.
469         (resolve_typebound_procedure): Allow abstract interfaces as targets
470         for DEFERRED bindings.
471         (ensure_not_abstract_walker), (ensure_not_abstract): New methods.
472         (resolve_fl_derived): Use new `ensure_not_abstract' method for
473         non-ABSTRACT types extending ABSTRACT ones to ensure each DEFERRED
474         binding is overridden.
475         (check_typebound_baseobject): New method.
476         (resolve_compcall), (resolve_typebound_call): Check base-object of
477         the type-bound procedure call.
478         * gfc-internals.texi (Type-bound procedures): Document a little bit
479         about internal handling of DEFERRED bindings.
481 2009-03-29  Tobias Schlüter  <tobi@gcc.gnu.org>
483         PR fortran/38507
484         * gfortran.h (gfc_st_label): Fix comment.
485         (gfc_exec_op): Add statement code EXEC_END_BLOCK for end of block.
486         * parse.c (accept_statement): Use EXEC_END_BLOCK for END IF and
487         END SELECT with labels.
488         (check_do_closure): Fix formatting.
489         (parse_do_block): Fix typo in error message.
490         * resolve.c (code_stack): Remove tail member.  Update comment to
491         new use of reachable_labels.
492         (reachable_labels): Rename to ...
493         (find_reachable_labels): ... this.  Overhaul.  Update preceding
494         comment.
495         (resolve_branch): Fix comment preceding function.  Rewrite.
496         (resolve_code): Update call to find_reachable_labels.  Add code to
497         deal with EXEC_END_BLOCK.
498         * st.c (gfc_free_statement): Add code to deal with EXEC_END_BLOCK.
499         Add 2009 to copyright years.
500         * trans.c (gfc_trans_code): Likewise on both counts.
502 2009-03-31  Paul Thomas  <pault@gcc.gnu.org>
504         PR fortran/38917
505         * expr.c (gfc_check_assign): Allow pointer components when
506         checking for NULL.
508         PR fortran/38918
509         * resolve.c (check_data_variable): Treat pointer arrays with
510         scalars.
512 2009-03-31  Paul Thomas  <pault@gcc.gnu.org>
514         PR fortran/38915
515         * trans-expr.c (gfc_trans_assignment_1): Ensure temporaries
516         have a string_length.
518 2009-03-28  Tobias Burnus  <burnus@net-b.de>
520         PR fortran/34656
521         * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do):
522         Add GFC_RTCHECK_DO support.
523         * option.c (gfc_handle_runtime_check_option): Enable GFC_RTCHECK_DO.
524         * invoke.texi (-fcheck): Document "do" option.
526 2009-03-28  Paul Thomas  <pault@gcc.gnu.org>
528         PR fortran/38538
529         * trans-array.c (get_elemental_fcn_charlen): Remove.
530         (get_array_charlen): New function to replace previous.
532 2009-03-28  Paul Thomas  <pault@gcc.gnu.org>
534         PR fortran/38765
535         * parse.c (parse_derived): Do not break on finding pointer,
536         allocatable or private components.
538 2009-03-28  Tobias Burnus  <burnus@net-b.de>
540         PR fortran/32626
541         * option.c (gfc_handle_runtime_check_option): Enable recursion check.
542         * trans-decl.c (gfc_generate_function_code): Add recursion check.
543         * invoke.texi (-fcheck): Add recursive option.
545 2009-03-28  Tobias Burnus  <burnus@net-b.de>
547         PR fortran/38432
548         * resolve.c (gfc_resolve_iterator): Add zero-loop warning.
550 2009-03-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
551             Paul Thomas  <pault@gcc.gnu.org>
552             Tobias Burnus  <burnus@net-b.de>
554         * gfortran.h (gfc_option_t): Add rtcheck.
555         * lang.opt: New option -fcheck.
556         * libgfortran.h: Add GFC_RTCHECK_* constants.
557         * invoke.texi: Document -fcheck.
558         * options.c (gfc_handle_runtime_check_option): New function.
559         (gfc_init_options,gfc_post_options,gfc_handle_option):
560         Add -fcheck option.
562 2009-03-27  Richard Guenther  <rguenther@suse.de>
564         * trans-array.c (gfc_conv_descriptor_data_addr): Use
565         gfc_build_addr_expr instead of build_fold_addr_expr.
566         (gfc_trans_allocate_array_storage, gfc_trans_array_constructor_value,
567         gfc_trans_constant_array_constructor, gfc_conv_array_data,
568         gfc_conv_expr_descriptor, gfc_conv_array_parameter): Likewise.
569         * trans-expr.c (gfc_conv_missing_dummy, gfc_conv_variable,
570         gfc_conv_function_val, gfc_conv_operator_assign,
571         gfc_conv_subref_array_arg, gfc_conv_function_call,
572         gfc_conv_expr_reference, gfc_trans_scalar_assign): Likewise.
573         * trans-intrinsic.c (gfc_conv_intrinsic_exponent,
574         gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
575         gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax_char,
576         gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_spacing,
577         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_set_exponent,
578         gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
579         gfc_conv_intrinsic_si_kind, gfc_conv_intrinsic_trim): Likewise.
580         * trans-io.c (gfc_trans_io_runtime_check, set_parameter_ref,
581         gfc_convert_array_to_string, gfc_trans_open, gfc_trans_close,
582         build_filepos, gfc_trans_inquire, gfc_trans_wait,
583         nml_get_addr_expr, transfer_namelist_element, build_dt,
584         gfc_trans_dt_end, transfer_array_component, transfer_expr,
585         transfer_array_desc, gfc_trans_transfer): Likewise.
586         * trans-stmt.c (gfc_trans_allocate, gfc_trans_deallocate): Likewise.
587         * trans.c (gfc_build_addr_expr): Mark the base of the address
588         TREE_ADDRESSABLE.
590 2009-03-27  Tobias Burnus  <burnus@net-b.de>
592         * gfortran.h (enum init_local_real.): Add GFC_INIT_REAL_SNAN.
593         (gfc_expr): Add is_snan.
594         * trans-const.c (gfc_conv_mpfr_to_tree): Support SNaN.
595         (gfc_conv_constant_to_tree): Update call to gfc_conv_mpfr_to_tree.
596         * trans-const.h (gfc_conv_mpfr_to_tree): Update prototype.
597         * resolve.c (build_default_init_expr): Update call.
598         * target-memory.c (encode_float): Ditto.
599         * trans-intrinsic.c (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod,
601 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
603         * lang.opt: Unify help texts for -I, -Wconversion, -d, -fopenmp,
604         and -fpreprocessed.
606 2009-03-06  Alexandre Oliva <aoliva@redhat.com>
608         * simplify.c (gfc_simplify_transfer): Zero-initialize the
609         buffer.
611 2009-02-27  Tobias Burnus  <burnus@net-b.de>
613         PR fortran/39309
614         * module.c (read_md5_from_module_file): Add missing quote.
616 2009-02-27  Tobias Burnus  <burnus@net-b.de>
618         PR fortran/39309
619         * module.c (read_md5_from_module_file): Include mod version
620         in had-changed test.
622 2009-02-26  Paul Thomas  <pault@gcc.gnu.org>
624         PR fortran/39295
625         * interface.c (compare_type_rank_if): Return 1 if the symbols
626         are the same and deal with external procedures where one is
627         identified to be a function or subroutine by usage but the
628         other is not.
630 2009-02-26  Paul Thomas  <pault@gcc.gnu.org>
632         PR fortran/39292
633         * trans-array.c (gfc_conv_array_initializer): Convert all
634         expressions rather than ICEing.
636 2009-02-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
638         PR fortran/38914
639         * array.c (ref_dimen_size):  Rename to gfc_ref_dimen_size,
640         make global.  Change function name in error messages.
641         (ref_size):  Change ref_dimen_size to gfc_ref_dimen_size.
642         (gfc_array_ref_shape):  Likewise.
643         * gfortran.h:  Add prototype for gfc_ref_dimen_size.
644         * simplify.c (simplify_bound_dim):  Add ref argument.
645         If the reference isn't a full array, return one for
646         the lower bound and the extent for the upper bound.
647         (simplify_bound):  For array sections, take as from the
648         argument.  Add reference to all to simplify_bound_dim.
650 2009-02-19  Daniel Franke  <franke.daniel@gmail.com>
652         * scanner.c (load_line): At end of line, skip '\r' without setting
653         the truncation flag.
655 2009-02-18  Daniel Kraft  <d@domob.eu>
657         * gfortran.texi: New chapter about compiler characteristics.
658         (Compiler Characteristics): Document KIND type parameters here.
660 2009-02-18  Tobias Burnus  <burnus@net-b.de>
662         * intrinsic.texi (MALLOC): Make example more portable.
664 2009-02-13  Mikael Morin  <mikael.morin@tele2.fr>
666         PR fortran/38259
667         * module.c (gfc_dump_module,gfc_use_module): Add module
668         version number.
670 2009-02-13  Paul Thomas  <pault@gcc.gnu.org>
672         PR fortran/36703
673         PR fortran/36528
674         * trans-expr.c (gfc_conv_function_val): Stabilize Cray-pointer
675         function references to ensure that a valid expression is used.
676         (gfc_conv_function_call): Pass Cray pointers to procedures.
678 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
680         * gfortranspec.c (lang_specific_driver): Update copyright notice
681         dates.
683 2009-01-28  Paul Thomas  <pault@gcc.gnu.org>
685         PR fortran/38852
686         PR fortran/39006
687         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use the array
688         descriptor ubound for UBOUND, when the array lbound == 1.
690 2009-01-27  Daniel Kraft  <d@domob.eu>
692         PR fortran/38883
693         * trans-stmt.c (gfc_conv_elemental_dependencies):  Create temporary
694         for the real type needed to make it work for subcomponent-references.
696 2009-01-21  Daniel Kraft  <d@domob.eu>
698         * trans-stmt.c (gfc_conv_elemental_dependencies):  Cleaned up comment.
700 2009-01-20  Paul Thomas  <pault@gcc.gnu.org>
702         PR fortran/38907
703         * resolve.c (check_host_association): Remove the matching to
704         correct an incorrect host association and use manipulation of
705         the expression instead.
707 2009-01-20  Tobias Burnus  <burnus@net-b.de>
709         * invoke.texi (RANGE): RANGE also takes INTEGER arguments.
711 2009-01-19  Mikael Morin  <mikael.morin@tele2.fr>
713         PR fortran/38859
714         * simplify.c (simplify_bound): Don't use array specification
715         if variable or component has subsequent references.
717 2009-01-17  Paul Thomas  <pault@gcc.gnu.org>
719         PR fortran/38657
720         * module.c (write_common_0): Add argument 'this_module' and
721         check that non-use associated common blocks are written first.
722         (write_common): Call write_common_0 twice, once with true and
723         then with false.
725 2009-01-17  Paul Thomas  <pault@gcc.gnu.org>
727         PR fortran/34955
728         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Has
729         been absorbed into gfc_conv_intrinsic_transfer. All
730         references to it in trans-intrinsic.c have been changed
731         accordingly.  PR fixed by using a temporary for scalar
732         character transfer, when the source is shorter than the
733         destination.
735 2009-01-17  Paul Thomas  <pault@gcc.gnu.org>
737         PR fortran/38657
738         * module.c (write_common_0): Revert patch of 2009-01-05.
740 2009-01-16  Janus Weil  <janus@gcc.gnu.org>
742         PR fortran/38152
743         * expr.c (gfc_check_pointer_assign): Allow use-associated procedure
744         pointers as lvalue.
745         * trans-decl.c (get_proc_pointer_decl,gfc_create_module_variable):
746         Enable procedure pointers as module variables.
748 2009-01-14  Steven G. Kargl  <kargl@gcc.gnu.org>
750         * ChangeLog-2007: Clean out svn merge droppings.
752 2009-01-10  Paul Thomas  <pault@gcc.gnu.org>
754         PR fortran/38763
755         * target-memory.c (encode_derived): Encode NULL.
757 2009-01-10  Paul Thomas  <pault@gcc.gnu.org>
759         PR fortran/38765
760         * resolve.c (check_host_association): Use the symtree name to
761         search for a potential contained procedure, since this is the
762         name by which it would be referenced.
764 2009-01-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
766         PR fortran/38220
767         * interface.c (gfc_procedure_use):  Don't warn about functions
768         from ISO_C_BINDING.
769         * symbol.c (generate_isocbinding_symbol):  Mark c_loc and
770         c_funloc as pure.
772 2009-01-05  Paul Thomas  <pault@gcc.gnu.org>
774         PR fortran/38657
775         * module.c (write_common_0): Use the name of the symtree rather
776         than the common block, to determine if the common has been
777         written.
779 2009-01-05  Daniel Franke  <franke.daniel@gmail.com>
781         PR fortran/37159
782         * check.c (gfc_check_random_seed): Added size check for GET
783         dummy argument, reworded error messages to follow common pattern.
785 2009-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
787         PR fortran/38672
788         * trans-types.c (gfc_get_derived_type):  Check for the
789         presence of derived->ns->proc_name before
790         accessing derived->ns->proc_name->attr.flavor .
791         * resolve.c (resolve_symbol):  Likewise.
793 2009-01-05  Paul Thomas  <pault@gcc.gnu.org>
795         PR fortran/38665
796         * gfortran.h : Add bit to gfc_expr 'user_operator'
797         * interface.c (gfc_extend_expr): Set the above if the operator
798         is substituted by a function. 
799         * resolve.c (check_host_association): Return if above is set.
801 2009-01-04  Mikael Morin  <mikael.morin@tele2.fr>
803         PR fortran/35681
804         * ChangeLog-2008: Fix function name.
806         PR fortran/38487
807         * dependency.c (gfc_check_argument_var_dependency):
808         Move the check for pointerness inside the if block
809         so that it doesn't affect the return value.
811         PR fortran/38669
812         * trans-stmt.c (gfc_trans_call):
813         Add the dependency code after the loop bounds calculation one.
815 2009-01-04  Daniel Franke  <franke.daniel@gmail.com>
817         * intrinsic.c (do_simplify): Removed already implemented TODO.
819 2009-01-04  Daniel Franke  <franke.daniel@gmail.com>
821         PR fortran/38718
822         * simplify.c (gfc_simplify_merge): New.
823         * intrinsic.h (gfc_simplify_merge): New prototype.
824         * intrinsic.c (add_functions): Added simplification for MERGE.
826 2009-01-04  Mikael Morin  <mikael.morin@tele2.fr>
828         PR fortran/38536
829         * gfortran.h (gfc_is_data_pointer): Added prototype
830         * resolve.c (gfc_iso_c_func_interface):
831         Use gfc_is_data_pointer to test for pointer attribute.
832         * dependency.c (gfc_is_data_pointer):
833         Support pointer-returning functions.
835 2009-01-03  Daniel Franke  <franke.daniel@gmail.com>
837         * symbol.c (save_symbol): Don't SAVE function results.
839 2009-01-03  Paul Thomas  <pault@gcc.gnu.org>
841         PR fortran/38594
842         * resolve.c (resolve_call): When searching for proper host
843         association, use symtree rather than symbol.  For everything
844         except generic subroutines, substitute the symtree in the call
845         rather than the symbol.
848 Copyright (C) 2009 Free Software Foundation, Inc.
850 Copying and distribution of this file, with or without modification,
851 are permitted in any medium without royalty provided the copyright
852 notice and this notice are preserved.