OSDN Git Service

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