OSDN Git Service

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