OSDN Git Service

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