OSDN Git Service

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