OSDN Git Service

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