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