OSDN Git Service

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