OSDN Git Service

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