OSDN Git Service

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