OSDN Git Service

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