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