2011-04-29 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
blob0f7db3a441441fada1903a76246d27e7cb491300
1 2011-04-29  Paul Thomas  <pault@gcc.gnu.org>
3         PR fortran/48462
4         * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with
5         automatic reallocation when the lhs is a target.
7         PR fortran/48746
8         * trans-expr.c (fcncall_realloc_result): Make sure that the
9         result dtype field is set before the function call.
11 2011-04-29  Tobias Burnus  <burnus@net-b.de>
13         PR fortran/48810
14         * resolve.c (resolve_typebound_generic_call): Don't check access
15         flags of the specific function.
17         PR fortran/48800
18         * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED
19         to AS_ASSUMED_SHAPE for function results.
20         (resolve_fl_var_and_proc): Print also for function results with
21         AS_DEFERRED an error, if they are not a pointer or allocatable.
22         (resolve_types): Make sure arguments of procedures in interface
23         blocks are resolved.
25 2011-04-29  Michael Matz  <matz@suse.de>
27         * options.c (options.c): Set warn_maybe_uninitialized.
29 2011-04-28  Tobias Burnus  <burnus@net-b.de>
31         PR fortran/48112
32         * resolve.c (resolve_fl_var_and_proc): Print diagnostic of
33         function results only once.
34         (resolve_symbol): Always resolve function results.
36         PR fortran/48279
37         * expr.c (gfc_check_vardef_context): Fix handling of generic
38         EXPR_FUNCTION.
39         * interface.c (check_interface0): Reject internal functions
40         in generic interfaces, unless -std=gnu.
42 2011-04-27  Tobias Burnus  <burnus@net-b.de>
44         PR fortran/48788
45         * resolve.c (resolve_global_procedure): Error recovery -
46         avoid segfault for (non)character-returning functions.
48 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
50         * decl.c (gfc_match_end):  Check that the block name starts
51         with "block@".
52         * parse.c (gfc_build_block_ns):  Make block names unique by
53         numbering them.
55 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
57         * frontend-passes.c (inserted_block):  New variable.
58         (changed_statement):  Likewise.
59         (create_var):  Encase statement to be operated on in a BLOCK.
60         Adjust code insertion for BLOCK.
61         (cfe_code):  Set inserted_block and changed_statement to NULL.
63 2011-04-23  Tobias Burnus  <burnus@net-b.de>
65         PR fortran/18918
66         * module.c (mio_array_spec): Set as->cotype on reading.
67         * resolve.c (resolve_allocate_expr): Fix allocating coarray
68         components.
70 2011-04-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
72         PR fortran/48405
73         * frontend_passes (cfe_register_funcs): Remove workaround for DO
74         loops.
75         (gfc_code_walker):  Make sure the pointer to the current
76         statement doen't change when other statements are inserted.
78 2011-04-21  Tobias Burnus  <burnus@net-b.de>
80         PR fortran/18918
81         * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.
83 2011-04-20  Jim Meyering  <meyering@redhat.com>
85         * expr.c (free_expr0): Remove useless if-before-free.
86         * gfortranspec.c (lang_specific_pre_link): Likewise.
87         * interface.c (gfc_extend_expr): Likewise.
88         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
90 2011-04-19  Tobias Burnus  <burnus@net-b.de>
92         PR fortran/48588
93         PR fortran/48692
95         * module.c (fix_mio_expr): Commit created symbol.
97 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
99         * scanner.c (load_file): Use XCNEWVAR instead of xcalloc.
101 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
103         * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
104         free.
106 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
108         * misc.c (gfc_getmem): Remove function.
109         * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem
110         usage with XCNEW or XCNEWVEC.
111         * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with
112         XCNEW or XCNEWVEC.
113         * options.c (gfc_handle_module_path_options)
114         (gfc_get_option_string): Likewise.
115         * resolve.c (gfc_resolve_forall): Likewise.
116         * simplify.c (simplify_transformation_to_array): Likewise.
117         * target-memory.c (gfc_target_interpret_expr): Likewise.
118         * trans-common.c (get_segment_info, copy_equiv_list_to_ns)
119         (get_init_field): Likewise.
120         * trans-expr.c (gfc_conv_statement_function): Likewise.
121         * trans-io.c (nml_full_name): Likewise.
122         * trans-stmt.c (gfc_trans_forall_1): Likewise.
123         * scanner.c (load_file): Replace gfc_getmem usage with xcalloc.
125 2011-04-19  Tobias Burnus  <burnus@net-b.de>
127         PR fortran/48588
128         * parse.c (resolve_all_program_units): Skip modules.
129         (translate_all_program_units): Handle modules.
130         (gfc_parse_file): Defer code generation for modules.
132 2011-04-19  Martin Jambor  <mjambor@suse.cz>
134         * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
135         instead of cgraph_get_create_node.
137 2011-04-18  Jim Meyering  <meyering@redhat.com>
139         remove now-unused definition of gfc_free
140         * misc.c (gfc_free): Remove function.
141         * gfortran.h (gfc_free): Remove its prototype.
143 2011-04-18  Jim Meyering  <meyering@redhat.com>
145         convert each use of gfc_free (p) to free (p)
146         Do that by running this command:
147           perl -pi -e    's/\bgfc_free ?\(/free (/' \
148             $(git grep -El '\bgfc_free ?\(')
149         which also corrects the few uses that lacked a space between
150         the function name and the open parenthesis.
151         Manually undo the change to the function definition itself
152         and its prototype.  They'll be removed next.
153         * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
154         * constructor.c (node_free): Likewise.
155         * cpp.c (dump_queued_macros): Likewise.
156         * data.c (gfc_assign_data_value): Likewise.
157         * decl.c (free_variable, free_value, gfc_free_data): Likewise.
158         (gfc_free_data_all, match_old_style_init): Likewise.
159         (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
160         Likewise.
161         (gfc_match_modproc): Likewise.
162         * dependency.c (check_section_vs_section): Likewise.
163         * error.c (gfc_pop_error, gfc_free_error): Likewise.
164         * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
165         (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
166         (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
167         Likewise.
168         * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
169         (strip_function_call, optimize_comparison): Likewise.
170         * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
171         (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
172         Likewise.
173         * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
174         (gfc_convert_chartype): Likewise.
175         * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
176         Likewise.
177         (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
178         * match.c (gfc_free_iterator, gfc_match_associate): Likewise.
179         (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
180         Likewise.
181         (free_case, gfc_free_forall_iterator): Likewise.
182         * misc.c: Likewise.
183         * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
184         (free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
185         (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
186         (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
187         (mio_full_typebound_tree, skip_list, load_equiv): Likewise.
188         (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
189         * openmp.c (gfc_free_omp_clauses): Likewise.
190         * options.c (gfc_post_options): Likewise.
191         * parse.c (select_type_pop, parse_omp_structured_block): Likewise.
192         * primary.c (gfc_free_structure_ctor_component): Likewise.
193         * resolve.c (resolve_structure_cons, check_host_association): Likewise.
194         (gfc_resolve_forall, resolve_equivalence): Likewise.
195         * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
196         (gfc_define_undef_line, preprocessor_line, include_line): Likewise.
197         (load_file, gfc_read_orig_filename): Likewise.
198         * simplify.c (simplify_transformation_to_array): Likewise.
199         (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
200         Likewise.
201         (gfc_simplify_compiler_options): Likewise.
202         * st.c (gfc_free_statement, gfc_free_statements): Likewise.
203         (gfc_free_association_list): Likewise.
204         * symbol.c (free_components, gfc_free_st_label, free_st_labels):
205         Likewise.
206         (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
207         (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
208         (free_common_tree, free_uop_tree, free_sym_tree): Likewise.
209         (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
210         Likewise.
211         (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
212         (gfc_free_namespace): Likewise.
213         * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
214         (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
215         (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
216         * trans-common.c (get_init_field, create_common): Likewise.
217         * trans-const.c (gfc_build_wide_string_const): Likewise.
218         (gfc_conv_string_init): Likewise.
219         * trans-decl.c (gfc_generate_function_code): Likewise.
220         * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
221         Likewise.
222         (SCALAR_POINTER, gfc_conv_statement_function): Likewise.
223         (gfc_trans_subarray_assign): Likewise.
224         * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
225         * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
226         (transfer_namelist_element, transfer_array_component): Likewise.
227         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
228         * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
229         * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
230         Likewise.
232 2011-04-15  Jim Meyering  <meyering@redhat.com>
234         gfortran: remove cpp definition of free, ...
235         in preparation for the s/gfc_free/free/ transformation.
236         * gfortran.h (free): Remove macro definition that would otherwise
237         prevent direct use of the function.
239 2011-04-18  Tobias Burnus  <burnus@net-b.de>
241         PR fortran/18918
242         * array.c (gfc_match_array_ref): Check for too many codimensions.
243         * check.c (gfc_check_image_index): Check number of elements
244         in SUB argument.
245         * simplify.c (gfc_simplify_image_index): Remove unreachable checks.
247 2011-04-18  Tobias Burnus  <burnus@net-b.de>
249         PR fortran/18918
250         * iresolve.c (gfc_resolve_image_index): Set ts.type.
251         * simplify.c (gfc_simplify_image_index): Don't abort if the bounds
252         are not known at compile time and handle -fcoarray=lib.
253         * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle
254         IMAGE_INDEX.
255         (conv_intrinsic_cobound): Fix comment typo.
256         (trans_this_image): New function.
257         * trans-array.c (gfc_unlikely): Move to trans.c.
258         * trans.c (gfc_unlikely): Function moved from trans-array.c.
259         (gfc_trans_runtime_check): Use it.
260         * trans-io.c (gfc_trans_io_runtime_check): Ditto.
261         * trans.h (gfc_unlikely): Add prototype.
263 2011-04-18  Paul Thomas  <pault@gcc.gnu.org>
265         PR fortran/48462
266         * trans-expr.c (fcncall_realloc_result): Renamed version of
267         realloc_lhs_bounds_for_intrinsic_call that does not touch the
268         descriptor bounds anymore but makes a temporary descriptor to
269         hold the result.
270         (gfc_trans_arrayfunc_assign): Modify the reference to above
271         renamed function.
273 2011-05-17  Tobias Burnus  <burnus@net-b.de>
275         PR fortran/48624
276         * trans-decl.c (gfc_get_extern_function_decl): Fix decl
277         for external procedures with proc arguments.
279 2011-04-15  Michael Matz  <matz@suse.de>
281         * trans-array.c (toplevel): Include gimple.h.
282         (gfc_trans_allocate_array_storage): Check flag_stack_arrays,
283         properly expand variable length arrays.
284         (gfc_trans_auto_array_allocation): If flag_stack_arrays create
285         variable length decls and associate them with their scope.
286         * gfortran.h (gfc_option_t): Add flag_stack_arrays member.
287         * options.c (gfc_init_options): Handle -fstack_arrays option.
288         * lang.opt (fstack-arrays): Add option.
289         * invoke.texi (Code Gen Options): Document it.
290         * Make-lang.in (trans-array.o): Depend on GIMPLE_H.
292 2011-04-15  Tobias Burnus  <burnus@net-b.de>
294         PR fortran/18918
295         * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
296         code which is also causing an ICE.
298 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
300         * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.
302 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
304         * f95-lang.c (union lang_tree_node): Check for TS_COMMON before
305         calling TREE_CHAIN.
307 2011-04-12  Paul Thomas  <pault@gcc.gnu.org>
309         PR fortran/48360
310         PR fortran/48456
311         * trans-array.c (get_std_lbound): For derived type variables
312         return array valued component lbound.
314 2011-04-12  Martin Jambor  <mjambor@suse.cz>
316         * trans-decl.c (gfc_generate_function_code): Call
317         cgraph_get_create_node instead of cgraph_node.
319 2011-04-11  Tobias Burnus  <burnus@net-b.de>
321         PR fortran/18918
322         * simplify.c (simplify_bound_dim): Exit for
323         ucobound's last dimension unless -fcoarray=single.
324         * trans-array (gfc_conv_descriptor_size_1): Renamed from
325         gfc_conv_descriptor_size, made static, has now from_dim and
326         to_dim arguments.
327         (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size.
328         (gfc_conv_descriptor_cosize): New function.
329         * trans-array.h (gfc_conv_descriptor_cosize): New prototype.
330         * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location
331         and handle last codim of ucobound for when -fcoarray is not "single".
333 2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
335         PR fortran/48448
336         * gfortran.h (gfc_option_t):  Add warn_function_elimination and
337         flag_frontend_optimize.
338         * lang.opt (Wfunction-elimination):  Add.
339         (ffrontend-optimize):  Add.
340         * invoke.texi:  Add documentation for -Wfunction-elimination
341         and -ffrontend-optimize.  Add -faggressive-function-elimination
342         to list of code generation options.
343         * frontend-passes.c (gfc_run_passes):  Run optimizations if
344         flag_frontend_optimize is set.
345         (warn_function_elimination):  New function.
346         (cfe_expr_0):  Call it if requested to do so.
347         * options.c (gfc_init_options):  Initiate warn_function_elimination
348         and flag_frontend_optimize.
349         (gfc_post_options):  Set flag_frontend_optimize if not specified
350         by user, depending on the optimization level.
351         (gfc_handle_option):  Handle -Wfunction-elimination and
352         -ffrontend-optimize.
354 2011-04-06  Tobias Burnus  <burnus@net-b.de>
356         PR fortran/18918
357         * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
358         call for this_image.
360 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
362         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
363         build_function_type_list instead of build_function_type.  Correct
364         argument order for func_frexp and func_scalbn.
366 2011-04-05  Duncan Sands  <baldrick@free.fr>
368         * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.
370 2010-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
372         * frontend-passes: (optimize_lexical_comparison): New function.
373         (optimize_expr): Call it.
374         (optimize_comparison): Also handle lexical comparison functions.
375         Return false instad of -2 for unequal comparison.
377 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
379         PR fortran/48412
380         * frontend-passes (cfe_expr_0):  Reverse the order of going
381         through the loops.
383 2011-04-04  Tobias Burnus  <burnus@net-b.de>
384             Mikael Morin  <mikael.morin@sfr.fr>
386         PR fortran/18918
387         * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
388         * expr.c (gfc_is_coindexed): Ditto.
389         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
390         * interface.c (compare_parameter): Use gfc_expr_attr and
391         gfc_is_coindexed.
392         * resolve.c (check_dimension, compare_spec_to_ref,
393         resolve_allocate_expr, check_data_variable): Update for
394         DIMEN_THIS_IMAGE.
395         * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
396         gfc_simplify_ucobound): Allow non-constant bounds.
397         * trans-array.c (gfc_set_loop_bounds_from_array_spec,
398         gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
399         gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
400         gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
401         gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
402         gfc_conv_ss_startstride, gfc_conv_loop_setup,
403         gfc_trans_array_bounds, gfc_conv_expr_descriptor,
404         gfc_walk_variable_expr): Handle codimen.
405         * trans-decl.c (gfc_build_qualified_array): Save cobounds.
406         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
407         (conv_intrinsic_cobound): New function.
408         (gfc_conv_intrinsic_function): Call it.
409         (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
410         ucobound, lcobound, this_image.
411         * fortran/trans-types.c (gfc_build_array_type): Save cobounds.
412         (gfc_get_dtype): Honour corank.
413         (gfc_get_nodesc_array_type): Save corank and codimensions.
414         (gfc_get_array_type_bounds): Save cobound.
415         * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
416         (gfc_array_kind): Add corank item.
417         (GFC_TYPE_ARRAY_CORANK): New macro.
419 2011-04-03  Kai Tietz  <ktietz@redhat.com>
421         PR middle-end/48422
422         * Make-lang.in (f95-lang.o): Add some missing dependencies.
424 2011-04-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
426         PR fortran/48352
427         * frontend-passes (cfe_register_funcs):  Don't
428         register functions if they appear as iterators in DO loops.
430 2011-03-30  Michael Matz  <matz@suse.de>
432         PR fortran/47516
433         * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter,
434         don't use local variable.
435         (gfc_trans_arrayfunc_assign): Adjust caller.
437 2011-03-29  Janus Weil  <janus@gcc.gnu.org>
439         PR fortran/48095
440         * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface.
441         * module.c (MOD_VERSION): Bump.
442         (mio_typespec): Read/write 'interface' field.
443         * primary.c (match_string_constant,match_logical_constant): Remove
444         unneeded code.
445         (match_complex_constant): Make sure to clear the typespec.
447 2011-03-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
449         * frontend-passes.c (create_var):  Warn about creating an
450         array temporary if requested.
452 2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
454         PR fortran/47065
455         * frontend-passes.c (optimize_trim): Also follow references, except
456         when they are substring references or array references.
458 2011-03-27  Tobias Burnus  <burnus@net-b.de>
460         PR fortran/18918
461         * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
462         GFC_ISYM_NUM_IMAGES.
463         (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
464         * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
465         rename.
466         * invoke.texi (-fcoarray=): Document "lib" argument.
467         * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
468         * libgfortran.h (libgfortran_stat_codes): Add comments.
469         * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
470         * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
471         Handle GFC_FCOARRAY_LIB.
472         * trans.h (gfc_init_coarray_decl): New prototype.
473         (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
474         gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
475         gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
476         gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
477         gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
478         New global variables.
479         * trans-decl.c: Declare several CAF functions (cf. above).
480         (gfc_build_builtin_function_decls): Initialize those.
481         (gfc_init_coarray_decl): New function.
482         (create_main_function): Call CAF init/finalize functions.
483         * trans-intrinsic.c (trans_this_image, trans_num_images): New.
484         (gfc_conv_intrinsic_function): Call those.
485         * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical):
486         Add code for GFC_FCOARRAY_LIB.
488 2011-03-26  Janus Weil  <janus@gcc.gnu.org>
490         PR fortran/48291
491         * class.c (get_unique_hashed_string): Adjust maximum allowable length
492         for unique type string.
494 2011-03-25  Kai Tietz  <ktietz@redhat.com>
496         * scanner.c (preprocessor_line): Use filename_cmp
497         instead of strcmp.
499 2011-03-25  Tobias Burnus  <burnus@net-b.de>
501         PR fortran/48174
502         PR fortran/45304
503         * trans-types.c (gfc_get_function_type): Don't use varargs if the
504         procedure is known to have no arguments.
506 2010-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
508         PR fortran/22572
509         * gfortran.h (gfc_option_t) : Add
510         flag_aggressive_function_elimination.
511         (gfc_dep_compare_functions):  Add prototype.
512         * lang.opt: Add faggressive-function-elimination.
513         * invoke.texi: Document -faggressive-function-elimination.
514         * frontend_passes (expr_array):  New static variable.
515         (expr_size):  Likewise.
516         (expr_count):  Likewise.
517         (current_code):  Likewise.
518         (current_ns):  Likewise.
519         (gfc_run_passes):  Allocate and free space for expressions.
520         (cfe_register_funcs):  New function.
521         (create_var):  New function.
522         (cfc_expr_0):  New function.
523         (cfe_code):  New function.
524         (optimize_namespace):  Invoke gfc_code_walker with cfe_code
525         and cfe_expr_0.
526         * dependency.c (gfc_dep_compare_functions):  New function.
527         (gfc_dep_compare_expr):  Use it.
528         * options.c (gfc_init_options):  Handle
529         flag_aggressive_function_elimination.
530         (gfc_handle_option):  Likewise.
532 2011-03-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
534         * arith.c (arith_power): Plug memory leak.
536 2011-03-12  Janus Weil  <janus@gcc.gnu.org>
538         PR fortran/48059
539         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
540         for polymorphic arguments.
542 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
544         PR fortran/48054
545         * intrinsic.texi: Clarify doc of logarithm functions.
547 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
549         PR fortran/47552
550         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
551         the string length variable.
553 2011-03-11  Janus Weil  <janus@gcc.gnu.org>
555         PR fortran/47768
556         * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP.
557         (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'.
559 2011-03-06  Paul Thomas  <pault@gcc.gnu.org>
560             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
562         PR fortran/47850
563         * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if
564         the expression has an iterator.  Otherwise, iterate through the
565         array, checking for constant expressions for each element.
567 2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>
569         PR libfortran/47802
570         * intrinsic.texi: Update CTIME and FDATE documentation.
572 2011-03-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
574         * invoke.texi (Option Summary, Fortran Dialect Options)
575         (Preprocessing Options, Runtime Options, Code Gen Options):
576         Fix vertical list spacing by using @itemx for additinoal
577         items, empty line before @table.  Fix typos.
579 2011-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
581         PR fortran/47894
582         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
584 2011-02-26  Tobias Burnus  <burnus@net-b.de>
586         PR fortran/47846
587         * trans-stmt.c (gfc_trans_allocate): Fix allocation with
588         type-spec of deferred-length strings.
590 2011-02-26  Tobias Burnus  <burnus@net-b.de>
592         PR fortran/47886
593         * openmp.c (gfc_resolve_omp_directive): Resolve if()
594         condition of OpenMP's task.
596 2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
598         PR fortran/47894
599         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
601 2011-02-24  Tobias Burnus  <burnus@net-b.de>
603         PR fortran/47872
604         * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
605         multitable for linebreak between different syntax variants.
607 2011-02-24  Richard Guenther  <rguenther@suse.de>
609         PR fortran/47839
610         * f95-lang.c (pushdecl): For externs in non-global scope push
611         a copy of the decl into the BLOCK.
613 2011-02-23  Mikael Morin  <mikael@gcc.gnu.org>
615         PR fortran/40850
616         * trans.c (gfc_prepend_expr_to_block): New function.
617         * trans.h (gfc_prepend_expr_to_block): Declare.
618         * trans-array.c (gfc_conv_array_parameter): Replace
619         gfc_add_expr_to_block with gfc_prepend_expr_to_block.
621 2011-02-22  Paul Thomas  <pault@gcc.gnu.org>
623         PR fortran/45743
624         * trans-decl.c (gfc_get_extern_function_decl): Don't use the
625         gsymbol backend_decl if the procedure has a formal argument
626         that is a procedure.
628 2011-02-22  Tobias Burnus  <burnus@net-b.de>
630         PR fortran/41359
631         * trans-stmt.c (gfc_trans_if_1): Use correct line for
632         expressions in the if condition.
634 2011-02-20  Tobias Burnus  <burnus@net-b.de>
636         PR fortran/47797
637         * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
638         gfc_restore_backend_locus to have better debug locations.
639         * trans-array.c (gfc_trans_deferred_array): Ditto.
641 2011-02-20  Paul Thomas  <pault@gcc.gnu.org>
643         PR fortran/45077
644         PR fortran/44945
645         * trans-types.c (gfc_get_derived_type): Remove code that looks
646         for decls in gsym and add call to gfc_get_module_backend_decl.
647         * trans.h : Add prototype for gfc_get_module_backend_decl.
648         * trans-decl.c (gfc_get_module_backend_decl): New function.
649         (gfc_get_symbol_decl): Call it.
651 2011-02-19  Paul Thomas  <pault@gcc.gnu.org>
653         PR fortran/47348
654         * trans-array.c (get_array_ctor_all_strlen): Move up in file.
655         (get_array_ctor_var_strlen): Add block dummy and add call to
656         get_array_ctor_all_strlen instead of giving up on substrings.
657         Call gcc_unreachable for default case.
658         (get_array_ctor_strlen): Add extra argument to in call to
659         get_array_ctor_var_strlen.
661 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
663         PR fortran/47789
664         * primary.c (gfc_match_structure_constructor): Handle empty parent
665         types.
667 2011-02-18  Tobias Burnus
669         PR fortran/47775
670         * trans-expr.c (arrayfunc_assign_needs_temporary): Use
671         esym to check whether the specific procedure returns an
672         allocatable or pointer.
674 2011-02-18  Michael Matz  <matz@suse.de>
676         PR fortran/45586
677         * gfortran.h (struct gfc_component): Add norestrict_decl member.
678         * trans.h (struct lang_type): Add nonrestricted_type member.
679         * trans-expr.c (gfc_conv_component_ref): Search fields with correct
680         parent type.
681         * trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
682         (gfc_sym_type): Use it.
684 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
686         PR fortran/47768
687         * resolve.c (resolve_transfer): Reject variables with procedure pointer
688         components.
690 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
692         PR fortran/47767
693         * gfortran.h (gfc_check_access): Removed prototype.
694         (gfc_check_symbol_access): Added prototype.
695         * module.c (gfc_check_access): Renamed to 'check_access', made static.
696         (gfc_check_symbol_access): New function, basically a shortcut for
697         'check_access'.
698         (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
699         'gfc_check_symbol_access'.
700         (write_operator,write_module): Renamed 'gfc_check_access'.
701         * resolve.c (resolve_fl_procedure,resolve_fl_derived,
702         resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
703         'gfc_check_symbol_access'.
705 2011-02-16  Janus Weil  <janus@gcc.gnu.org>
707         PR fortran/47745
708         * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
709         * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
710         'gfc_build_class_symbol'.
711         (gfc_match_decl_type_spec): Reject unlimited polymorphism.
712         * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
713         * match.c (select_type_set_tmp): Move setting of 'class_ok' into
714         'gfc_build_class_symbol'.
715         * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.
717 2011-02-15  Steven G. Kargl  <kargl@gcc.gnu.org>
719         PR fortran/47633
720         . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.
722 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
724         PR fortran/47730
725         * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
727 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
729         PR fortran/47728
730         * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
731         arrays.
732         * primary.c (gfc_match_varspec): Avoid ICE for invalid class
733         declaration.
735 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
737         PR fortran/47349
738         * interface.c (get_expr_storage_size): Handle derived-type components.
740 2011-02-13  Tobias Burnus  <burnus@net-b.de>
742         PR fortran/47569
743         * interface.c (compare_parameter): Avoid ICE with
744         character components.
746 2011-02-12  Janus Weil  <janus@gcc.gnu.org>
748         * class.c (gfc_build_class_symbol): Reject polymorphic arrays.
749         * decl.c (build_sym,build_struct,attr_decl1): Use return value of
750         'gfc_build_class_symbol'.
752 2011-02-12  Michael Matz  <matz@suse.de>
753             Janus Weil  <janus@gcc.gnu.org>
754             Tobias Burnus  <burnus@net-b.de>
756         PR fortran/45586
757         * trans-expr.c (conv_parent_component_references): Avoid unintendent
758         skipping of parent compounds.
760 2011-02-11  Tobias Burnus  <burnus@net-b.de>
762         PR fortran/47550
763         * resolve.c (resolve_formal_arglist): PURE with VALUE
764         and no INTENT: Add -std= diagnostics.
766 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
768         PR fortran/47352
769         * resolve.c (resolve_procedure_interface): If interface has a result
770         variable, copy the typespec and set result pointer to self.
772 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
774         PR fortran/47463
775         * resolve.c (resolve_typebound_subroutine): Remove erroneous line.
777 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
779         PR fortran/47637
780         * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.
782 2011-02-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
784         * io.c (match_io_element): Do not set dt if not inquire.
786 2011-02-08  Janus Weil  <janus@gcc.gnu.org>
788         PR fortran/45290
789         * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
790         initialization target.
792 2011-02-07  Janne Blomqvist  <jb@gcc.gnu.org>
793             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
795         * gfortran.texi (Thread-safety): texinfo styling fixes.
796         * intrinsic.texi: Likewise.
798 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
800         * gfortran.texi (Compiler Characteristics): Add reference to
801         thread-safety section.
803 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
805         * gfortran.texi (Thread-safety): New section.
806         * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
807         (GETENV): Likewise.
808         (GET_ENVIRONMENT_VARIABLE): Likewise.
809         (SYSTEM): Likewise.
811 2011-02-06  Paul Thomas  <pault@gcc.gnu.org>
813         PR fortran/47592
814         * trans-stmt.c (gfc_trans_allocate): For deferred character
815         length allocations with SOURCE, store to the values and string
816         length to avoid calculating twice.  Replace gfc_start_block
817         with gfc_init_block to avoid unnecessary contexts and to keep
818         declarations of temporaries where they should be. Tidy up the
819         code a bit.
821 2011-02-05  Janne Blomqvist  <jb@gcc.gnu.org>
823         PR fortran/42434
824         * intrinsic.texi (SYSTEM_CLOCK): Update documentation.
826 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
827             Paul Thomas  <pault@gcc.gnu.org>
829         PR fortran/47082
830         * trans-expr.c (gfc_trans_class_init_assign): Add call to
831         gfc_get_derived_type.
832         * module.c (read_cleanup): Do not use unique_symtrees for vtabs
833         or vtypes.
835 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
837         PR fortran/47572
838         * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.
840 2011-02-01  Janus Weil  <janus@gcc.gnu.org>
842         PR fortran/47565
843         * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
844         pointer components with allocatable result.
846 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
848         PR fortran/47455
849         * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
850         with pointer or allocatable result.
852 2011-01-31  Paul Thomas  <pault@gcc.gnu.org>
854         PR fortran/47519
855         * trans-stmt.c (gfc_trans_allocate): Improve handling of
856         deferred character lengths with SOURCE.
857         * iresolve.c (gfc_resolve_repeat): Calculate character
858         length from source length and ncopies.
859         * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
860         expressions for ALLOCATE.
862 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
864         PR fortran/47463
865         * resolve.c (resolve_typebound_subroutine): Bug fix for the case of
866         an argument of a typebound assignment being a component.
868 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
870         * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
871         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
873 2011-01-31  Tobias Burnus  <burnus@net-b.de>
875         PR fortran/47042
876         * resolve.c (resolve_fl_procedure): Reject stmt functions
877         with pointer/allocatable attribute.
879 2011-01-31  Tobias Burnus  <burnus@net-b.de>
881         PR fortran/47042
882         * interface.c (gfc_procedure_use): Add explicit interface check for
883         pointer/allocatable functions.
885 2011-01-30  Paul Thomas  <pault@gcc.gnu.org>
887         PR fortran/47523
888         * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
889         expr and is assigned to a deferred character length scalar,
890         make sure that the function is called before reallocation,
891         so that the length is available. Include procedure pointer
892         and procedure pointer component rhs as well.
894         PR fortran/45170
895         PR fortran/35810
896         PR fortran/47350
897         * gfortran.dg/allocatable_function_5.f90: New test not added by
898         mistake on 2011-01-28.
900 2011-01-29  Tobias Burnus  <burnus@net-b.de>
902         PR fortran/47531
903         * check.c (gfc_check_shape): Support kind argument in SHAPE.
904         * intrinsic.c (add_functions): Ditto.
905         * resolve.c (gfc_resolve_shape): Ditto.
906         * simplify.c (gfc_simplify_shape): Ditto.
907         * intrinsic.h (gfc_check_shape, gfc_resolve_shape,
908         gfc_simplify_shape): Update prototypes.
909         * intrinisc.text (SHAPE): Document kind argument.
911 2011-01-28  Tobias Burnus  <burnus@net-b.de>
913         PR fortran/47507
914         * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
915         attribute also without INTENT.
917 2011-01-28  Tobias Burnus  <burnus@net-b.de>
919         * gfortran.texi (Fortran 2003 status): Mention support for
920         nonconstant namelist variables.
922 2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
923             Tobias Burnus  <burnus@gcc.gnu.org>
925         PR fortran/45170
926         PR fortran/35810
927         PR fortran/47350
928         * interface.c (compare_actual_formal): An allocatable or pointer
929         deferred length actual is only allowed if the formal argument
930         is also deferred length. Clean up whitespace.
931         * trans-expr.c (gfc_conv_procedure_call): Pass string length for
932         deferred character length formal arguments by reference. Do the
933         same for function results.
934         (gfc_trans_pointer_assignment): Do not do runtime check of lhs
935         and rhs character lengths, if deferred length lhs.  In this case
936         set the lhs character length to that of the rhs.
937         (gfc_conv_string_parameter): Remove assert that string length is
938         an integer type.
939         (is_scalar_reallocatable_lhs): New function.
940         (alloc_scalar_allocatable_for_assignment): New function.
941         (gfc_trans_assignment_1): Call above new function. If the rhs is
942         a deferred character length itself, makes ure that the function
943         is called before reallocation, so that the length is available.
944         (gfc_trans_asssignment): Remove error about assignment to
945         deferred length character variables.
946         * gfortran.texi : Update entry about (re)allocation on
947         assignment.
948         * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
949         length character variables.
950         * module.c (mio_typespec): Transfer deferred characteristic.
951         * trans-types.c (gfc_get_function_type): New code to generate
952         hidden typelist, so that those character lengths that are
953         passed by reference get the right type.
954         * resolve.c (resolve_contained_fntype): Supress error for
955         deferred character length functions.
956         (resolve_function, resolve_fl_procedure) The same.
957         (check_symbols): Remove the error that support for
958         entity with deferred type parameter is not yet implemented.
959         (resolve_fl_derived): The same.
960         match.c (alloc_opt_list): Allow MOLD for deferred length object.
961         * trans-decl.c (gfc_get_symbol_decl): For deferred character
962         length dummies, generate a local variable for string length.
963         (create_function_arglist): Hidden length can be a pointer.
964         (gfc_trans_deferred_vars): For deferred character length
965         results and dummies, assign the string length to the local
966         variable from the hidden argument on entry and the other way
967         round on exit, as appropriate.
969 2011-01-27  Tobias Burnus  <burnus@net-b.de>
971         PR fortran/47474
972         * trans-decl.c (gfc_generate_function_code): Fix init
973         of allocatable result variable with allocatable components.
975 2011-01-27  Tobias Burnus  <burnus@net-b.de>
977         PR fortran/47472
978         * options.c (gfc_handle_module_path_options): Save
979         module path without trailing slash as include path.
981 2011-01-25  Tobias Burnus  <burnus@net-b.de>
983         PR fortran/47448
984         * interface.c (gfc_check_operator_interface): Fix
985         defined-assignment check.
987 2011-01-23  Tobias Burnus  <burnus@net-b.de>
989         PR fortran/47421
990         * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
991         scalar allocatable dummy arguments.
993 2011-01-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
995         PR fortran/38536
996         * resolve.c (gfc_iso_c_func_interface):  For C_LOC,
997         check for array sections followed by component references
998         which are illegal.  Also check for coindexed arguments.
1000 2011-01-22  Tobias Burnus  <burnus@net-b.de>
1002         PR fortran/47399
1003         * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
1004         PARAMETER TBP.
1006 2011-01-21  Tobias Burnus  <burnus@net-b.de>
1008         PR fortran/47394
1009         * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
1010         Use defined instead of magic number exit status codes.
1011         * scanner.c (include_line, gfc_new_file): Ditto.
1013 2011-01-21  Tobias Burnus  <burnus@net-b.de>
1015         PR fortran/47377
1016         * expr.c (gfc_check_pointer_assign): Reject expr data-targets
1017         without pointer attribute.
1019 2011-01-18  Janus Weil  <janus@gcc.gnu.org>
1021         PR fortran/47240
1022         * resolve.c (expression_rank): Fix rank of procedure poiner components.
1023         * trans-expr.c (gfc_conv_procedure_call): Take care of procedure
1024         pointer components as actual arguments.
1026 2011-01-17  Jakub Jelinek  <jakub@redhat.com>
1028         PR fortran/47331
1029         * gfortran.h (struct gfc_omp_saved_state): New type.
1030         (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
1031         * resolve.c (resolve_global_procedure): Call it around gfc_resolve
1032         call.
1033         * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
1034         functions.
1036 2011-01-17  Tobias Burnus  <burnus@net-b.de>
1038         PR fortran/47327
1039         * invoke.texi (Options to request or suppress errors
1040         and warnings): Fix cross link.
1042 2011-01-15  Tobias Burnus  <burnus@net-b.de>
1044         * gfortran.texi: Update Fortran 2003 Status section.
1046         PR fortran/47177
1047         * invoke.texi: Add missing "-E" to the -dM example.
1049 2011-01-13  Tobias Burnus  <burnus@net-b.de>
1051         PR fortran/47268
1052         * intrinsic.texi (get_command_argument, get_environment_variable):
1053         Mark arguments as optional in the Arguments section.
1055 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
1056             Tobias Burnus  <burnus@net-b.de>
1058         PR fortran/47260
1059         * trans-decl.c (gfc_get_extern_function_decl,
1060         build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
1061         calling decl_attributes.
1063 2011-01-13  Tobias Burnus  <burnus@net-b.de>
1064             Mikael Morin  <mikael@gcc.gnu.org>
1066         PR fortran/45848
1067         PR fortran/47204
1068         * gfortran.h (gfc_code): Move union ext's case_list into
1069         the struct block.
1070         * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
1071         by "block.".
1072         * frontend-passes.c (gfc_code_walker): Ditto.
1073         * match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
1074         gfc_match_type_is, gfc_match_class_is): Ditto.
1075         * resolve.c (resolve_select, resolve_select_type): Ditto.
1076         * st.c (gfc_free_statement): Ditto.
1077         * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
1078         gfc_trans_character_select): Ditto.
1079         * parse.c (resolve_all_program_units): For error recovery, avoid
1080         segfault is proc_name is NULL.
1082 2011-01-11  Paul Thomas  <pault@gcc.gnu.org>
1084         PR fortran/47051
1085         * trans-array.c (gfc_alloc_allocatable_for_assignment): Change
1086         to be standard compliant by testing for shape rather than size
1087         before skipping reallocation. Improve comments.
1089 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
1091         PR fortran/47224
1092         * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
1093         of code.
1095 2011-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1097         PR fortran/38536
1098         * resolve.c (is_scalar_expr_ptr):  For a substring reference,
1099         use gfc_dep_compare_expr to compare start and end expession.
1100         Add FIXME for using gfc_deb_compare_expr elsewhere.
1102 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
1104         PR fortran/46313
1105         * class.c (get_unique_type_string): Make type name start with upper
1106         case letter.
1108 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1110         PR fortran/46405
1111         * invoke.texi:  Mention -ffree-line-length-none and
1112         -ffixed-line-length-none for preprocessing.
1114 2011-01-08  Paul Thomas  <pault@gcc.gnu.org>
1116         PR fortran/46896
1117         * trans-expr.c (gfc_conv_procedure_call): With a non-copying
1118         procedure argument (eg TRANSPOSE) use a temporary if there is
1119         any chance of aliasing due to host or use association.
1120         (arrayfunc_assign_needs_temporary): Correct logic for function
1121         results and do not use a temporary for implicitly PURE
1122         variables.  Use a temporary for Cray pointees.
1123         * symbol.c (gfc_add_save): Explicit SAVE not compatible with
1124         implicit pureness of containing procedure.
1125         * decl.c (match_old_style_init, gfc_match_data): Where decl
1126         would fail in PURE procedure, set implicit_pure to zero.
1127         * gfortran.h : Add implicit_pure to structure symbol_attr and
1128         add prototype for function gfc_implicit_pure.
1129         * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
1130         Where decl would fail in PURE procedure, reset implicit_pure.
1131         * io.c (match_vtag, gfc_match_open, gfc_match_close,
1132         gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
1133         * match.c (gfc_match_critical, gfc_match_stopcode,
1134         sync_statement, gfc_match_allocate, gfc_match_deallocate): The
1135         same.
1136         * parse.c (decode_omp_directive): The same.
1137         (parse_contained): If not PURE, set implicit pure attribute.
1138         * resolve.c (resolve_formal_arglist, resolve_structure_cons,
1139         resolve_function, resolve_ordinary_assign) : The same.
1140         (gfc_implicit_pure): New function.
1141         * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
1142         to ab_attribute enum and use it in this function.
1144 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1146         PR fortran/45777
1147         * symbol.c (gfc_symbols_could_alias):  Strip gfc_ prefix,
1148         make static and move in front of its only caller, to ...
1149         * trans-array.c (symbols_could_alias): ... here.
1150         Pass information about pointer and target status as
1151         arguments.  Allocatable arrays don't alias anything
1152         unless they have the POINTER attribute.
1153         (gfc_could_be_alias):  Keep track of pointer and target
1154         status when following references.  Also check if typespecs
1155         of components match those of other components or symbols.
1157 2011-01-07  Tobias Burnus  <burnus@net-b.de>
1159         PR fortran/41580
1160         * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
1161         * intrinsic.c (add_functions): Use simplify functions for
1162         EXTENDS_TYPE_OF and SAME_TYPE_AS.
1163         * intrinsic.h (gfc_simplify_extends_type_of,
1164         gfc_simplify_same_type_as): New prototypes.
1165         * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
1166         gfc_simplify_same_type_as): New functions.
1168 2011-01-07  Janus Weil  <janus@gcc.gnu.org>
1170         PR fortran/47189
1171         PR fortran/47194
1172         * gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
1173         * class.c (gfc_class_null_initializer): Initialize _vptr to declared
1174         type.
1175         * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
1176         * resolve.c (resolve_deallocate_expr): _data component will be added
1177         at translation stage.
1178         * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
1179         * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.
1181 2011-01-06  Daniel Franke  <franke.daniel@gmail.com>
1183         PR fortran/33117
1184         PR fortran/46478
1185         * parse.c (parse_interface): Remove check for procedure types.
1186         * interface.c (check_interface0): Verify that procedures are
1187         either all SUBROUTINEs or all FUNCTIONs.
1189 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1191         PR fortran/47180
1192         * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
1193         'vtab' is initialized).
1195 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1197         PR fortran/47180
1198         * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
1199         assignment, set the _vptr component to the declared type.
1201 2011-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
1203         PR fortran/46017
1204         * resolve.c (resolve_allocate_deallocate): Follow references to
1205         check for duplicate occurence of allocation/deallocation objects.
1207 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1209         PR fortran/47024
1210         * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
1211         of polymorphic allocatables according to their declared type.
1213 2011-01-04  Janus Weil  <janus@gcc.gnu.org>
1215         PR fortran/46448
1216         * class.c (gfc_find_derived_vtab): Set the module field for the copying
1217         routine to make sure it receives module name mangling.
1219 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
1221         * gfortranspec.c (lang_specific_driver): Update copyright notice
1222         dates.
1224 2011-01-03  Janus Weil  <janus@gcc.gnu.org>
1226         * intrinsic.texi (LEADZ): Fix example.
1228 2011-01-02  Janus Weil  <janus@gcc.gnu.org>
1230         PR fortran/46408
1231         * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
1232         routine.
1235 Copyright (C) 2011 Free Software Foundation, Inc.
1237 Copying and distribution of this file, with or without modification,
1238 are permitted in any medium without royalty provided the copyright
1239 notice and this notice are preserved.