OSDN Git Service

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