OSDN Git Service

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