OSDN Git Service

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