OSDN Git Service

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