OSDN Git Service

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