OSDN Git Service

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