OSDN Git Service

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