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