OSDN Git Service

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