OSDN Git Service

2011-04-29 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2011-04-29  Tobias Burnus  <burnus@net-b.de>
2
3         PR fortran/48810
4         * resolve.c (resolve_typebound_generic_call): Don't check access
5         flags of the specific function.
6
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.
14
15 2011-04-29  Michael Matz  <matz@suse.de>
16
17         * options.c (options.c): Set warn_maybe_uninitialized.
18
19 2011-04-28  Tobias Burnus  <burnus@net-b.de>
20
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.
25
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.
31
32 2011-04-27  Tobias Burnus  <burnus@net-b.de>
33
34         PR fortran/48788
35         * resolve.c (resolve_global_procedure): Error recovery -
36         avoid segfault for (non)character-returning functions.
37
38 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
39
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.
44
45 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
46
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.
52
53 2011-04-23  Tobias Burnus  <burnus@net-b.de>
54
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.
59
60 2011-04-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
61
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.
67
68 2011-04-21  Tobias Burnus  <burnus@net-b.de>
69
70         PR fortran/18918
71         * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.
72
73 2011-04-20  Jim Meyering  <meyering@redhat.com>
74
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.
79
80 2011-04-19  Tobias Burnus  <burnus@net-b.de>
81
82         PR fortran/48588
83         PR fortran/48692
84
85         * module.c (fix_mio_expr): Commit created symbol.
86
87 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
88
89         * scanner.c (load_file): Use XCNEWVAR instead of xcalloc.
90
91 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
92
93         * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
94         free.
95
96 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
97
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.
114
115 2011-04-19  Tobias Burnus  <burnus@net-b.de>
116
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.
121
122 2011-04-19  Martin Jambor  <mjambor@suse.cz>
123
124         * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
125         instead of cgraph_get_create_node.
126
127 2011-04-18  Jim Meyering  <meyering@redhat.com>
128
129         remove now-unused definition of gfc_free
130         * misc.c (gfc_free): Remove function.
131         * gfortran.h (gfc_free): Remove its prototype.
132
133 2011-04-18  Jim Meyering  <meyering@redhat.com>
134
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.
221
222 2011-04-15  Jim Meyering  <meyering@redhat.com>
223
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.
228
229 2011-04-18  Tobias Burnus  <burnus@net-b.de>
230
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.
236
237 2011-04-18  Tobias Burnus  <burnus@net-b.de>
238
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.
252
253 2011-04-18  Paul Thomas  <pault@gcc.gnu.org>
254
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.
262
263 2011-05-17  Tobias Burnus  <burnus@net-b.de>
264
265         PR fortran/48624
266         * trans-decl.c (gfc_get_extern_function_decl): Fix decl
267         for external procedures with proc arguments.
268
269 2011-04-15  Michael Matz  <matz@suse.de>
270
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.
281
282 2011-04-15  Tobias Burnus  <burnus@net-b.de>
283
284         PR fortran/18918
285         * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
286         code which is also causing an ICE.
287
288 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
289
290         * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.
291
292 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
293
294         * f95-lang.c (union lang_tree_node): Check for TS_COMMON before
295         calling TREE_CHAIN.
296
297 2011-04-12  Paul Thomas  <pault@gcc.gnu.org>
298
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.
303
304 2011-04-12  Martin Jambor  <mjambor@suse.cz>
305
306         * trans-decl.c (gfc_generate_function_code): Call
307         cgraph_get_create_node instead of cgraph_node.
308
309 2011-04-11  Tobias Burnus  <burnus@net-b.de>
310
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".
322
323 2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
324
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.
343
344 2011-04-06  Tobias Burnus  <burnus@net-b.de>
345
346         PR fortran/18918
347         * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
348         call for this_image.
349
350 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
351
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.
355
356 2011-04-05  Duncan Sands  <baldrick@free.fr>
357
358         * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.
359
360 2010-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
361
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.
366
367 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
368
369         PR fortran/48412
370         * frontend-passes (cfe_expr_0):  Reverse the order of going
371         through the loops.
372
373 2011-04-04  Tobias Burnus  <burnus@net-b.de>
374             Mikael Morin  <mikael.morin@sfr.fr>
375
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.
408
409 2011-04-03  Kai Tietz  <ktietz@redhat.com>
410
411         PR middle-end/48422
412         * Make-lang.in (f95-lang.o): Add some missing dependencies.
413
414 2011-04-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
415
416         PR fortran/48352
417         * frontend-passes (cfe_register_funcs):  Don't
418         register functions if they appear as iterators in DO loops.
419
420 2011-03-30  Michael Matz  <matz@suse.de>
421
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.
426
427 2011-03-29  Janus Weil  <janus@gcc.gnu.org>
428
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.
436
437 2011-03-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
438
439         * frontend-passes.c (create_var):  Warn about creating an
440         array temporary if requested.
441
442 2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
443
444         PR fortran/47065
445         * frontend-passes.c (optimize_trim): Also follow references, except
446         when they are substring references or array references.
447
448 2011-03-27  Tobias Burnus  <burnus@net-b.de>
449
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.
477
478 2011-03-26  Janus Weil  <janus@gcc.gnu.org>
479
480         PR fortran/48291
481         * class.c (get_unique_hashed_string): Adjust maximum allowable length
482         for unique type string.
483
484 2011-03-25  Kai Tietz  <ktietz@redhat.com>
485
486         * scanner.c (preprocessor_line): Use filename_cmp
487         instead of strcmp.
488
489 2011-03-25  Tobias Burnus  <burnus@net-b.de>
490
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.
495
496 2010-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
497
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.
521
522 2011-03-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
523
524         * arith.c (arith_power): Plug memory leak.
525
526 2011-03-12  Janus Weil  <janus@gcc.gnu.org>
527
528         PR fortran/48059
529         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
530         for polymorphic arguments.
531
532 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
533
534         PR fortran/48054
535         * intrinsic.texi: Clarify doc of logarithm functions.
536
537 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
538
539         PR fortran/47552
540         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
541         the string length variable.
542
543 2011-03-11  Janus Weil  <janus@gcc.gnu.org>
544
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'.
548
549 2011-03-06  Paul Thomas  <pault@gcc.gnu.org>
550             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
551
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.
556
557 2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>
558
559         PR libfortran/47802
560         * intrinsic.texi: Update CTIME and FDATE documentation.
561
562 2011-03-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
563
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.
568
569 2011-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
570
571         PR fortran/47894
572         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
573
574 2011-02-26  Tobias Burnus  <burnus@net-b.de>
575
576         PR fortran/47846
577         * trans-stmt.c (gfc_trans_allocate): Fix allocation with
578         type-spec of deferred-length strings.
579
580 2011-02-26  Tobias Burnus  <burnus@net-b.de>
581
582         PR fortran/47886
583         * openmp.c (gfc_resolve_omp_directive): Resolve if()
584         condition of OpenMP's task.
585
586 2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
587
588         PR fortran/47894
589         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
590
591 2011-02-24  Tobias Burnus  <burnus@net-b.de>
592
593         PR fortran/47872
594         * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
595         multitable for linebreak between different syntax variants.
596
597 2011-02-24  Richard Guenther  <rguenther@suse.de>
598
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.
602
603 2011-02-23  Mikael Morin  <mikael@gcc.gnu.org>
604
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.
610
611 2011-02-22  Paul Thomas  <pault@gcc.gnu.org>
612
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.
617
618 2011-02-22  Tobias Burnus  <burnus@net-b.de>
619
620         PR fortran/41359
621         * trans-stmt.c (gfc_trans_if_1): Use correct line for
622         expressions in the if condition.
623
624 2011-02-20  Tobias Burnus  <burnus@net-b.de>
625
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.
630
631 2011-02-20  Paul Thomas  <pault@gcc.gnu.org>
632
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.
640
641 2011-02-19  Paul Thomas  <pault@gcc.gnu.org>
642
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.
650
651 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
652
653         PR fortran/47789
654         * primary.c (gfc_match_structure_constructor): Handle empty parent
655         types.
656
657 2011-02-18  Tobias Burnus
658
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.
663
664 2011-02-18  Michael Matz  <matz@suse.de>
665
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.
673
674 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
675
676         PR fortran/47768
677         * resolve.c (resolve_transfer): Reject variables with procedure pointer
678         components.
679
680 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
681
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'.
694
695 2011-02-16  Janus Weil  <janus@gcc.gnu.org>
696
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.
706
707 2011-02-15  Steven G. Kargl  <kargl@gcc.gnu.org>
708
709         PR fortran/47633
710         . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.
711
712 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
713
714         PR fortran/47730
715         * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
716
717 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
718
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.
724
725 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
726
727         PR fortran/47349
728         * interface.c (get_expr_storage_size): Handle derived-type components.
729
730 2011-02-13  Tobias Burnus  <burnus@net-b.de>
731
732         PR fortran/47569
733         * interface.c (compare_parameter): Avoid ICE with
734         character components.
735
736 2011-02-12  Janus Weil  <janus@gcc.gnu.org>
737
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'.
741
742 2011-02-12  Michael Matz  <matz@suse.de>
743             Janus Weil  <janus@gcc.gnu.org>
744             Tobias Burnus  <burnus@net-b.de>
745
746         PR fortran/45586
747         * trans-expr.c (conv_parent_component_references): Avoid unintendent
748         skipping of parent compounds.
749
750 2011-02-11  Tobias Burnus  <burnus@net-b.de>
751
752         PR fortran/47550
753         * resolve.c (resolve_formal_arglist): PURE with VALUE
754         and no INTENT: Add -std= diagnostics.
755
756 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
757
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.
761
762 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
763
764         PR fortran/47463
765         * resolve.c (resolve_typebound_subroutine): Remove erroneous line.
766
767 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
768
769         PR fortran/47637
770         * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.
771
772 2011-02-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
773
774         * io.c (match_io_element): Do not set dt if not inquire.
775
776 2011-02-08  Janus Weil  <janus@gcc.gnu.org>
777
778         PR fortran/45290
779         * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
780         initialization target.
781
782 2011-02-07  Janne Blomqvist  <jb@gcc.gnu.org>
783             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
784
785         * gfortran.texi (Thread-safety): texinfo styling fixes.
786         * intrinsic.texi: Likewise.
787
788 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
789
790         * gfortran.texi (Compiler Characteristics): Add reference to
791         thread-safety section.
792
793 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
794
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.
800
801 2011-02-06  Paul Thomas  <pault@gcc.gnu.org>
802
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.
810
811 2011-02-05  Janne Blomqvist  <jb@gcc.gnu.org>
812
813         PR fortran/42434
814         * intrinsic.texi (SYSTEM_CLOCK): Update documentation.
815
816 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
817             Paul Thomas  <pault@gcc.gnu.org>
818
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.
824
825 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
826
827         PR fortran/47572
828         * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.
829
830 2011-02-01  Janus Weil  <janus@gcc.gnu.org>
831
832         PR fortran/47565
833         * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
834         pointer components with allocatable result.
835
836 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
837
838         PR fortran/47455
839         * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
840         with pointer or allocatable result.
841
842 2011-01-31  Paul Thomas  <pault@gcc.gnu.org>
843
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.
851
852 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
853
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.
857
858 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
859
860         * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
861         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
862
863 2011-01-31  Tobias Burnus  <burnus@net-b.de>
864
865         PR fortran/47042
866         * resolve.c (resolve_fl_procedure): Reject stmt functions
867         with pointer/allocatable attribute.
868
869 2011-01-31  Tobias Burnus  <burnus@net-b.de>
870
871         PR fortran/47042
872         * interface.c (gfc_procedure_use): Add explicit interface check for
873         pointer/allocatable functions.
874
875 2011-01-30  Paul Thomas  <pault@gcc.gnu.org>
876
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.
883
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.
889
890 2011-01-29  Tobias Burnus  <burnus@net-b.de>
891
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.
900
901 2011-01-28  Tobias Burnus  <burnus@net-b.de>
902
903         PR fortran/47507
904         * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
905         attribute also without INTENT.
906
907 2011-01-28  Tobias Burnus  <burnus@net-b.de>
908
909         * gfortran.texi (Fortran 2003 status): Mention support for
910         nonconstant namelist variables.
911
912 2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
913             Tobias Burnus  <burnus@gcc.gnu.org>
914
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.
958
959 2011-01-27  Tobias Burnus  <burnus@net-b.de>
960
961         PR fortran/47474
962         * trans-decl.c (gfc_generate_function_code): Fix init
963         of allocatable result variable with allocatable components.
964
965 2011-01-27  Tobias Burnus  <burnus@net-b.de>
966
967         PR fortran/47472
968         * options.c (gfc_handle_module_path_options): Save
969         module path without trailing slash as include path.
970
971 2011-01-25  Tobias Burnus  <burnus@net-b.de>
972
973         PR fortran/47448
974         * interface.c (gfc_check_operator_interface): Fix
975         defined-assignment check.
976
977 2011-01-23  Tobias Burnus  <burnus@net-b.de>
978
979         PR fortran/47421
980         * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
981         scalar allocatable dummy arguments.
982
983 2011-01-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
984
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.
989
990 2011-01-22  Tobias Burnus  <burnus@net-b.de>
991
992         PR fortran/47399
993         * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
994         PARAMETER TBP.
995
996 2011-01-21  Tobias Burnus  <burnus@net-b.de>
997
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.
1002
1003 2011-01-21  Tobias Burnus  <burnus@net-b.de>
1004
1005         PR fortran/47377
1006         * expr.c (gfc_check_pointer_assign): Reject expr data-targets
1007         without pointer attribute.
1008
1009 2011-01-18  Janus Weil  <janus@gcc.gnu.org>
1010
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.
1015
1016 2011-01-17  Jakub Jelinek  <jakub@redhat.com>
1017
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.
1025
1026 2011-01-17  Tobias Burnus  <burnus@net-b.de>
1027
1028         PR fortran/47327
1029         * invoke.texi (Options to request or suppress errors
1030         and warnings): Fix cross link.
1031
1032 2011-01-15  Tobias Burnus  <burnus@net-b.de>
1033
1034         * gfortran.texi: Update Fortran 2003 Status section.
1035
1036         PR fortran/47177
1037         * invoke.texi: Add missing "-E" to the -dM example.
1038
1039 2011-01-13  Tobias Burnus  <burnus@net-b.de>
1040
1041         PR fortran/47268
1042         * intrinsic.texi (get_command_argument, get_environment_variable):
1043         Mark arguments as optional in the Arguments section.
1044
1045 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
1046             Tobias Burnus  <burnus@net-b.de>
1047
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.
1052
1053 2011-01-13  Tobias Burnus  <burnus@net-b.de>
1054             Mikael Morin  <mikael@gcc.gnu.org>
1055
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.
1071
1072 2011-01-11  Paul Thomas  <pault@gcc.gnu.org>
1073
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.
1078
1079 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
1080
1081         PR fortran/47224
1082         * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
1083         of code.
1084
1085 2011-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1086
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.
1091
1092 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
1093
1094         PR fortran/46313
1095         * class.c (get_unique_type_string): Make type name start with upper
1096         case letter.
1097
1098 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1099
1100         PR fortran/46405
1101         * invoke.texi:  Mention -ffree-line-length-none and
1102         -ffixed-line-length-none for preprocessing.
1103
1104 2011-01-08  Paul Thomas  <pault@gcc.gnu.org>
1105
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.
1133
1134 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1135
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.
1146
1147 2011-01-07  Tobias Burnus  <burnus@net-b.de>
1148
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.
1157
1158 2011-01-07  Janus Weil  <janus@gcc.gnu.org>
1159
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.
1170
1171 2011-01-06  Daniel Franke  <franke.daniel@gmail.com>
1172
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.
1178
1179 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1180
1181         PR fortran/47180
1182         * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
1183         'vtab' is initialized).
1184
1185 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1186
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.
1190
1191 2011-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
1192
1193         PR fortran/46017
1194         * resolve.c (resolve_allocate_deallocate): Follow references to
1195         check for duplicate occurence of allocation/deallocation objects.
1196
1197 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1198
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.
1202
1203 2011-01-04  Janus Weil  <janus@gcc.gnu.org>
1204
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.
1208
1209 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
1210
1211         * gfortranspec.c (lang_specific_driver): Update copyright notice
1212         dates.
1213
1214 2011-01-03  Janus Weil  <janus@gcc.gnu.org>
1215
1216         * intrinsic.texi (LEADZ): Fix example.
1217
1218 2011-01-02  Janus Weil  <janus@gcc.gnu.org>
1219
1220         PR fortran/46408
1221         * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
1222         routine.
1223
1224 \f
1225 Copyright (C) 2011 Free Software Foundation, Inc.
1226
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.