OSDN Git Service

2011-07-17 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2011-07-17  Tobias Burnus  <burnus@net-b.de>
2
3         PR fortran/34657
4         * module.c (check_for_ambiguous): Check whether the name is matches
5         the current program unit.
6
7 2011-07-17  Tobias Burnus  <burnus@net-b.de>
8
9         PR fortran/49624
10         * expr.c (gfc_check_pointer_assign): Fix checking for invalid
11         pointer bounds.
12
13 2011-07-16  Tobias Burnus  <burnus@net-b.de>
14         
15         * expr.c (gfc_ref_this_image): New function.
16         (gfc_is_coindexed): Use it.
17         * gfortran.h (gfc_ref_this_image): New prototype.
18         * resolve.c (resolve_deallocate_expr,
19         resolve_allocate_expr): Support alloc scalar coarrays.
20         * trans-array.c (gfc_conv_array_ref, gfc_array_init_size,
21         gfc_conv_descriptor_cosize, gfc_array_allocate,
22         gfc_trans_deferred_array): Ditto.
23         * trans-expr.c (gfc_conv_variable) Ditto.:
24         * trans-stmt.c (gfc_trans_deallocate): Ditto.
25         * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds
26         gfc_get_array_descr_info): Ditto.
27         * trans-decl.c (gfc_get_symbol_decl): Ditto.
28
29 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
30
31         PR fortran/49698
32         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize
33         inner_size to gfc_index_one_node instead of integer_one_node.
34
35 2011-07-10  Tobias Burnus  <burnus@net-b.de>
36
37         PR fortran/49690
38         * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL.
39
40 2011-07-09  Uros Bizjak  <ubizjak@gmail.com>
41
42         PR fortran/48926
43         * expr.c (gfc_get_corank): Change return value to int.
44         * gfortran.h (gfc_get_corank): Update function prototype.
45
46 2011-07-07  Mikael Morin  <mikael.morin@sfr.fr>
47
48         PR fortran/49648
49         * resolve.c (resolve_symbol): Force resolution of function result's
50         array specification.
51
52 2011-07-07  Tobias Burnus  <burnus@net-b.de>
53
54         * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register
55         with NULL arguments for (new) stat=/errmsg= arguments.
56
57 2011-07-06  Daniel Carrera  <dcarrera@gmail.com>
58
59         * trans-array.c (gfc_array_allocate): Rename allocatable_array to
60         allocatable. Rename function gfc_allocate_array_with_status to
61         gfc_allocate_allocatable_with_status. Update function call for
62         gfc_allocate_with_status.
63         * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function
64         gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status.
65         * trans-stmt.c (gfc_trans_allocate): Update function call for
66         gfc_allocate_with_status. Rename function gfc_allocate_array_with_status
67         to gfc_allocate_allocatable_with_status.
68         * trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status
69         so it uses the library for memory allocation when -fcoarray=lib.
70         (gfc_allocate_allocatable_with_status): Renamed from
71         gfc_allocate_array_with_status.
72         (gfc_allocate_allocatable_with_status): Update function call for
73         gfc_allocate_with_status.
74         * trans.h (gfc_coarray_type): New enum.
75         (gfc_allocate_with_status): Update prototype.
76         (gfc_allocate_allocatable_with_status): Renamed from
77         gfc_allocate_array_with_status.
78         * trans-decl.c (generate_coarray_sym_init): Use the new constant
79         GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register.
80
81 2011-07-06  Richard Guenther  <rguenther@suse.de>
82
83         * f95-lang.c (gfc_init_decl_processing):
84         Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
85
86 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
87
88         PR fortran/49623
89         * gfortranspec.c (lang_specific_driver): Ignore options with
90         CL_ERR_MISSING_ARG errors.
91
92 2011-07-02  Janus Weil  <janus@gcc.gnu.org>
93
94         PR fortran/49562
95         * expr.c (gfc_check_vardef_context): Handle type-bound procedures.
96
97 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
98
99         PR fortran/49540
100         * gfortran.h (gfc_constructor): Add repeat field.
101         * trans-array.c (gfc_conv_array_initializer): Handle repeat > 1.
102         * array.c (current_expand): Add repeat field.
103         (expand_constructor): Copy repeat.
104         * constructor.c (node_free, node_copy, gfc_constructor_get,
105         gfc_constructor_lookup): Handle repeat field.
106         (gfc_constructor_lookup_next, gfc_constructor_remove): New functions.
107         * data.h (gfc_assign_data_value): Add mpz_t * argument.
108         (gfc_assign_data_value_range): Removed.
109         * constructor.h (gfc_constructor_advance): Removed.
110         (gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes.
111         * data.c (gfc_assign_data_value): Add REPEAT argument, handle it and
112         also handle overwriting a range with a single entry.
113         (gfc_assign_data_value_range): Removed.
114         * resolve.c (check_data_variable): Adjust gfc_assign_data_value
115         call.  Use gfc_assign_data_value instead of
116         gfc_assign_data_value_expr.
117
118 2011-06-27  Janus Weil  <janus@gcc.gnu.org>
119
120         PR fortran/49466
121         * trans-array.c (structure_alloc_comps): Make sure sub-components
122         and extended types are correctly deallocated.
123
124 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
125
126         * trans-openmp.c: Add sync_ or SYNC__ to builtin names.
127         * trans-stmt.c: Add sync_ or SYNC__ to builtin names.
128         * trans-decl.c: Add sync_ or SYNC__ to builtin names.
129
130 2011-06-21  Janus Weil  <janus@gcc.gnu.org>
131
132         PR fortran/49112
133         * class.c (gfc_find_derived_vtab): Make vtab and default initialization
134         symbols SAVE_IMPLICIT.
135
136 2011-06-20  Tobias Burnus  <burnus@net-b.de>
137
138         PR fortran/18918
139         * gfortran.h (gfc_check_vardef_context): Update prototype.
140         (iso_fortran_env_symbol): Handle derived types.
141         (symbol_attribute): Add lock_comp.
142         * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check.
143         * interface.c (compare_parameter, gfc_procedure_use): Handle
144         LOCK_TYPE.
145         (compare_actual_formal): Update
146         gfc_check_vardef_context call.
147         * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
148         * intrinsic.c (check_arglist): Ditto.
149         * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
150         * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add.
151         * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE.
152         * module.c (mio_symbol_attribute): Handle lock_comp.
153         (create_derived_type): New function.
154         (use_iso_fortran_env_module): Call it to handle LOCK_TYPE.
155         * parse.c (parse_derived): Add constraint check for LOCK_TYPE.
156         * resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint
157         checks for LOCK_TYPE.
158         (gfc_resolve_iterator, resolve_deallocate_expr,
159         resolve_allocate_expr, resolve_code, resolve_transfer): Update
160         gfc_check_vardef_context call.
161         * trans-stmt.h (gfc_trans_lock_unlock): New prototype.
162         * trans-stmt.c (gfc_trans_lock_unlock): New function.
163         * trans.c (trans_code): Handle LOCK and UNLOCK.
164
165 2011-06-18  Janus Weil  <janus@gcc.gnu.org>
166
167         PR fortran/49400
168         * decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside
169         BLOCK constructs.
170
171 2011-06-17  Janus Weil  <janus@gcc.gnu.org>
172
173         PR fortran/48699
174         * check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic,
175         make sure the vtab is present.
176
177 2011-06-16  Janus Weil  <janus@gcc.gnu.org>
178
179         PR fortran/49074
180         * interface.c (gfc_extend_assign): Propagate the locus from the
181         assignment to the type-bound procedure call.
182
183 2011-06-16  Janus Weil  <janus@gcc.gnu.org>
184
185         PR fortran/49417
186         * module.c (mio_component): Make sure the 'class_ok' attribute is set
187         for use-associated CLASS components.
188         * parse.c (parse_derived): Check for 'class_ok' attribute.
189         * resolve.c (resolve_fl_derived): Ditto.
190
191 2011-06-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
192
193         * frontend-passes.c (remove_trim):  New function.
194         (optimize_assignment):  Use it.
195         (optimize_comparison):  Likewise.  Return correct status
196         for previous change.
197
198 2011-06-12  Tobias Burnus
199
200         PR fortran/49324
201         * trans-expr.c (gfc_trans_assignment_1): Tell
202         gfc_trans_scalar_assign to also deep-copy RHS nonvariables
203         with allocatable components.
204         * trans-array.c (gfc_conv_expr_descriptor): Ditto.
205
206 2011-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
207
208         * frontend-passes.c (optimize_assignment): Follow chains
209         of concatenation operators to the end for removing trailing
210         TRIMS for assignments.
211
212 2011-06-10  Daniel Carrera  <dcarrera@gmail.com>
213
214         * trans-decl.c (gfc_build_builtin_function_decls):
215         Updated declaration of caf_sync_all and caf_sync_images.
216         * trans-stmt.c (gfc_trans_sync): Function
217         can now handle a "stat" variable that has an integer type
218         different from integer_type_node.
219
220 2011-06-09  Richard Guenther  <rguenther@suse.de>
221
222         * trans.c (gfc_allocate_array_with_status): Mark error path
223         as unlikely.
224
225 2011-06-08  Tobias Burnus  <burnus@net-b.de>
226
227         PR fortran/18918
228         * gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK.
229         (gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK.
230         (gfc_code): Add expr4.
231         * match.h (gfc_match_lock, gfc_match_unlock): New prototypes.
232         * match.c (gfc_match_lock, gfc_match_unlock,
233         lock_unlock_statement): New functions.
234         (sync_statement): Bug fix, avoiding double freeing.
235         (gfc_match_if): Handle LOCK/UNLOCK statement.
236         * parse.c (decode_statement, next_statement,
237         gfc_ascii_statement): Ditto.
238         * st.c (gfc_free_statement): Handle LOCK and UNLOCK.
239         * resolve.c (resolve_lock_unlock): New function.
240         (resolve_code): Call it.
241         * dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK.
242
243 2011-06-07  Richard Guenther  <rguenther@suse.de>
244
245         * f95-lang.c (gfc_init_decl_processing): Do not set
246         size_type_node or call set_sizetype.
247
248 2011-06-05  Tobias Burnus  <burnus@net-b.de>
249
250         PR fortran/49255
251         * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
252         for F2008.
253
254 2011-06-05  Andreas Schmidt  <andreas.schmidt.42@gmx.net>
255         Thomas Koenig  <tkoenig@gcc.gnu.org>
256
257         * dump-parse-tree.c (show_symbol):  Don't dump namespace
258         for ENTRY to avoid infinite recursion.
259
260 2011-06-02  Asher Langton  <langton2@llnl.gov>
261
262         PR fortran/49268
263         * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray
264         pointees as AS_EXPLICIT.
265
266 2011-06-02  Asher Langton  <langton2@llnl.gov>
267
268         PR fortran/37039
269         * decl.c (variable_decl): Merge current_as before copying to cp_as.
270
271 2011-06-02  Steven G. Kargl  <kargl@gcc.gnu.org>
272
273         PR fortran/49265
274         * decl.c (gfc_match_modproc):  Allow for a double colon in a module
275         procedure statement.
276         * parse.c ( decode_statement): Deal with whitespace around :: in
277         gfc_match_modproc.
278
279 2011-05-31  Tobias Burnus  <burnus@net-b.de>
280
281         PR fortran/18918
282         * intrinsic.c (klass): Add CLASS_ATOMIC.
283         (add_subroutines): Add atomic_ref/atomic_define.
284         * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document.
285         * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref,
286         gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes.
287         * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF
288         and GFC_ISYM_ATOMIC_REF.
289         (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars.
290         * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New
291         functions.
292         * check.c (gfc_check_atomic, gfc_check_atomic_def,
293         gfc_check_atomic_ref): New functions.
294         * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND,
295         ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value.
296         * trans-intrinsic.c (conv_intrinsic_atomic_def,
297         conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New
298         functions.
299         (conv_intrinsic_move_alloc) Renamed from
300         gfc_conv_intrinsic_move_alloc - and made static.
301         * trans.h (gfc_conv_intrinsic_move_alloc): Remove.
302         (gfc_conv_intrinsic_subroutine) Add prototype.
303         * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine.
304         * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New
305         global vars.
306         (gfc_init_kinds): Set them.
307
308 2011-05-31  Tobias Burnus  <burnus@net-b.de>
309
310         PR fortran/18918
311         * trans-array.c (gfc_trans_dummy_array_bias): Handle
312         cobounds of assumed-shape arrays.
313
314 2011-05-31  Tobias Burnus  <burnus@net-b.de>
315
316         PR fortran/18918
317         * resolve.c (resolve_fl_variable): Handle static coarrays
318         with non-constant cobounds.
319
320 2011-05-29  Janus Weil  <janus@gcc.gnu.org>
321
322         PR fortran/47601
323         * module.c (mio_component_ref): Handle components of extended types.
324         * symbol.c (gfc_find_component): Return is sym is NULL.
325
326 2011-05-29  Tobias Burnus  <burnus@net-b.de>
327
328         PR fortran/18918
329         * interface.c (compare_parameter): Add check for passing coarray
330         to allocatable noncoarray dummy.
331
332 2011-05-29  Tobias Burnus  <burnus@net-b.de>
333             Richard Guenther  <rguenther@suse.de>
334
335         PR fortran/18918
336         * trans-types.c (gfc_get_nodesc_array_type): Don't mess with
337         the type's TREE_TYPE.
338         * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT.
339         * trans.c (gfc_build_array_ref): Ditto.
340
341 2011-05-27  Tobias Burnus  <burnus@net-b.de>
342
343         PR fortran/18918
344         * check.c (gfc_check_associated, gfc_check_null): Add coindexed check.
345         * match.c (gfc_match_nullify): Ditto.
346         * resolve.c (resolve_deallocate_expr): Ditto.
347         * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted
348         for nonpointers.
349
350 2011-05-27  Tobias Burnus  <burnus@net-b.de>
351
352         PR fortran/48820
353         * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK.
354         * intrinsic.c (add_functions): Add rank intrinsic.
355         (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR.
356         * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes.
357         * simplify.c (gfc_simplify_rank): New function.
358         * intrinsic.texi (RANK): Add description for rank intrinsic.
359         * check.c (gfc_check_rank): New function.
360
361 2011-05-26  Paul Thomas  <pault@gcc.gnu.org>
362             Thomas Koenig  <tkoenig@gcc.gnu.org>
363
364         PR fortran/48955
365         * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET
366         changed to GFC_ENABLE_REVERSE.
367         * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed
368         to GFC_INHIBIT_REVERSE.
369         * gfortran.h : Enum gfc_reverse is now GFC_ENABLE_REVERSE,
370         GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE.
371         * dependency.c (gfc_dep_resolver): Change names for elements of
372         gfc_reverse as necessary. Change the logic so that forward
373         dependences are remembered as well as backward ones. When both
374         have appeared, force a temporary.
375
376 2011-05-26  Tobias Burnus  <burnus@net-b.de>
377
378         PR fortran/18918
379         * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays.
380         * trans-decl.c (has_coarray_vars, caf_init_block,
381         gfor_fndecl_caf_register): New file-global variables.
382         (gfc_finish_var_decl): Make sure that coarrays in main are static.
383         (gfc_build_qualified_array): Generate coarray token variable.
384         (gfc_get_symbol_decl): Don't use a static initializer for coarrays.
385         (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register.
386         (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for
387         static coarrays.
388         (generate_local_decl): Check for local coarrays.
389         (create_main_function): SYNC ALL before calling MAIN.
390         (generate_coarray_sym_init): Register static coarray.
391         (generate_coarray_init): Generate CAF registering constructor
392         function.
393         (gfc_generate_function_code): Call it, if needed, do not create
394         cgraph twice.
395         (gfc_generate_module_vars, gfc_process_block_locals): Call
396         generate_coarray_init.
397         * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for
398         -fcoarray=lib.
399         * trans.h (gfor_fndecl_caf_register): New variable.
400         (lang_type): New element caf_token.
401         (GFC_TYPE_ARRAY_CAF_TOKEN): New macro.
402
403 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
404
405         * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o.
406         (gfortran$(exeext)): Use libcommon-target.a.
407
408 2011-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
409
410         * frontend-passes.c (cfe_register_funcs):  Also register
411         character functions if their charlens are known and constant.
412         Also register allocatable functions.
413
414 2011-05-21  Janus Weil  <janus@gcc.gnu.org>
415
416         PR fortran/48699
417         * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the
418         selector is ALLOCATABLE.
419
420 2011-05-20  Janus Weil  <janus@gcc.gnu.org>
421
422         PR fortran/48706
423         * module.c (write_dt_extensions): Do not write extended types which
424         are local to a subroutine.
425
426 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
427
428         * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o.
429
430 2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>
431
432         * gfortran.texi (set_fpe): Update documentation.
433         * invoke.texi (-ffpe-trap): Likewise.
434         * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT.
435         * options.c (gfc_handle_fpe_trap_option): Handle inexact and make
436         precision an alias for it.
437
438 2011-05-19  Tobias Burnus  <burnus@net-b.de>
439
440         PR fortran/18918
441         * trans-types.c (gfc_get_element_type): Handle scalar coarrays.
442         (gfc_get_nodesc_array_type): Make a variant-type copy for scalar
443         coarrays.
444         * trans.c (gfc_build_array_ref): Return original type not variant
445         copy for scalar coarrays.
446         * trans-array.c (gfc_conv_array_ref): Ditto.
447
448 2011-05-18  Janus Weil  <janus@gcc.gnu.org>
449
450         PR fortran/48700
451         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO'
452         argument to avoid memory leaks.
453
454 2011-05-16  Tobias Burnus  <burnus@net-b.de>
455
456         * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR.
457         (Fortran 2008 status): Multi-image support for coarrays.
458         (TR 19113 status): New section.
459
460 2011-05-15  Tobias Burnus  <burnus@net-b.de>
461
462         PR fortran/18918
463         actual argument is not an array; rank mismatch is diagnosted later.
464         * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle
465         scalar coarrays.
466         * trans-types.c (gfc_get_array_type_bounds): Ditto.
467
468 2011-05-15  Joern Rennecke  <amylaar@spamcop.net>
469
470         PR middle-end/46500
471         * trans-types.c: Include "tm.h".
472         [0] (c_size_t_size): Remove.
473
474 2011-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
475
476         PR libfortran/48915
477         * gfortran.texi (_gfortran_set_options): Even though -fbacktrace
478         is now the default, the library defaults to backtracing disabled.
479
480 2011-05-14  Tobias Burnus  <burnus@net-b.de>
481
482         * lang.opt (fdump-core): Re-add as ignored option
483         for backward compatibility.
484
485 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
486
487         PR libfortran/48915
488         * gfortran.texi: Update mixed-language programming section
489         reflecting the removal of the fdump-core option, and that
490         -fbacktrace is now enabled by default.
491
492 2011-05-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
493
494         PR fortran/22572
495         * frontend-passes.c (cfe_register_funcs):  Also register functions
496         for potential elimination if the rank is > 0, the shape is unknown
497         and reallocate on assignment is active.
498         (create_var):  For rank > 0 functions with unknown shape, create
499         an allocatable temporary.
500
501 2011-05-14  Tobias Burnus  <burnus@net-b.de>
502
503         PR fortran/18918
504         * interface.c (compare_parameter): Skip diagnostic if
505         actual argument is not an array; rank mismatch is diagnosted later.
506
507 2011-05-14  Tobias Burnus  <burnus@net-b.de>
508
509         * options.c (gfc_init_options, gfc_post_options): Enable
510         -fstack-arrays by default if -Ofast is used.
511         * invoke.texi (-fstack-arrays): Document this.
512
513 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
514
515         PR libfortran/48915
516         * gfortran.h (gfc_option_t): Remove flag_dump_core.
517         * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section.
518         (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default.
519         * intrinsic.texi (ABORT): Remove explanation of -fdump-core.
520         * invoke.texi: Remove -fdump-core, document that -fbacktrace is
521         enabled by default.
522         * lang.opt: Remove -fdump-core.
523         * options.c (gfc_init_options): Make backtrace default to enabled,
524         remove dump_core.
525         (gfc_handle_option): Remove OPT_fdump-core.
526         * trans-decl.c: Pass a 0 to preserve ABI.
527
528 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
529
530         * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation.
531
532 2011-05-13  Tobias Burnus  <burnus@net-b.de>
533
534         PR fortran/48972
535         * io.c (resolve_tag_format, resolve_tag): Make sure
536         that the string is of default kind.
537         (gfc_resolve_inquire): Also resolve decimal tag.
538
539 2011-05-12  Tobias Burnus  <burnus@net-b.de>
540
541         PR fortran/48972
542         * resolve.c (resolve_intrinsic): Don't resolve module
543         intrinsics multiple times.
544
545 2011-05-11  Tobias Burnus  <burnus@net-b.de>
546
547         PR fortran/48889
548         * expr.c (gfc_is_constant_expr): Use e->value.function.esym
549         instead of e->symtree->n.sym, if available.
550
551 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
552
553         * f95-lang.c (global_bindings_p): Return bool and simplify.
554
555 2011-05-07  Tobias Burnus  <burnus@net-b.de>
556
557         PR fortran/18918
558         PR fortran/48919
559         * trans.h: Move gfc_init_coarray_decl prototype ...
560         * gfortran.h: ... to here.
561         * parse.c (translate_all_program_units): Call gfc_init_coarray_decl.
562         (gfc_parse_file): Update translate_all_program_units call.
563         * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration,
564         new argument whether DECL_EXTERNAL should be used.
565         (create_main_function): Update gfc_init_coarray_decl call.
566         * trans-intrinsic.c (trans_this_image, trans_image_index,
567         conv_intrinsic_cobound): Ditto.
568
569 2011-05-06  Tobias Burnus  <burnus@net-b.de>
570
571         PR fortran/18918
572         * trans-array.c (gfc_walk_variable_expr): Continue walking
573         for scalar coarrays.
574         * trans-intrinsic.c (convert_element_to_coarray_ref): New function.
575         (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it.
576         (trans_this_image): Fix algorithm.
577         * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base,
578         gfc_sym_type): Handle scalar coarrays.
579
580 2011-05-06  Tobias Burnus  <burnus@net-b.de>
581
582         PR fortran/48858
583         PR fortran/48820
584         * lang.opt (std=f2008tr): New.
585         * libgfortran.h (GFC_STD_F2008_TR): New macro constant.
586         * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C)
587         procedures for -std=f2008tr/gnu/legacy.
588         (gfc_match_import): Set sym to NULL.
589         * options.c (set_default_std_flags,gfc_handle_option): Handle
590         -std=f2008tr.
591         * invoke.texi (-std=): Document -std=f2008tr.
592
593 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
594
595         * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
596         * trans-io.c (add_case): Likewise.
597         * trans-stmt.c (gfc_trans_integer_select): Likewise.
598         (gfc_trans_character_select): Likewise.
599
600 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
601
602         * trans-decl.c (trans_function_start): Do not set
603         dont_save_pending_sizes_p.
604
605 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
606
607         * trans.h (gfc_chainon_list): Delete.
608         * trans.c (gfc_chainon_list): Delete.
609
610 2011-05-04  Tobias Burnus  <burnus@net-b.de>
611
612         PR fortran/48864
613         * invoke.texi (fno-protect-parens): Document
614         that -Ofast implies -fno-protect-parens.
615         * options.c (gfc_init_options, gfc_post_options):
616         Make -Ofast imply -fno-protect-parens.
617
618 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
619
620         * trans-decl.c (build_library_function_decl_1): Call
621         build_function_type_vec.  Adjust argument list building accordingly.
622         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
623         * trans-types.c (gfc_get_function_type): Likewise.
624
625 2011-05-04  Richard Guenther  <rguenther@suse.de>
626
627         * trans-array.c (gfc_trans_array_constructor_value): Use
628         size_int for bounds of range types.
629         (gfc_trans_array_constructor_value): Use size_type_node
630         for memcpy argument.
631         * trans-common.c (build_field): Use gfc_charlen_type_node
632         for lengths.
633         * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL
634         as type to build_int_cst.
635         * trans-const.c (gfc_build_string_const): Use size_int
636         for bounds of range types.
637         (gfc_build_wide_string_const): Likewise.
638         * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node
639         for lengths.
640         (gfc_trans_character_select): Likewise.
641         (gfc_trans_character_select): Do not pass NULL
642         as type to build_int_cst.
643         (gfc_trans_character_select): Use size_int for bounds of range types.
644         * trans-io.c (gfc_build_io_library_fndecls): Likewise.
645         (add_case): Do not pass NULL as type to build_int_cst.
646         (transfer_expr): Likewise.
647         (transfer_array_desc): Likewise.
648         * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node
649         for lengths.
650         (gfc_trans_assign_aux_var): Likewise.
651         (create_main_function): Use size_int for bounds of range types.
652         * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass
653         NULL as type to build_int_cst.
654         (gfc_conv_intrinsic_spacing): Likewise.
655         (gfc_conv_intrinsic_rrspacing): Likewise.
656         (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths.
657
658 2011-05-04  Richard Guenther  <rguenther@suse.de>
659
660         * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc
661         argument to int_const_binop.
662
663 2011-05-03  Tobias Burnus  <burnus@net-b.de>
664
665         PR fortran/18918
666         * trans-intrinsic.c (trans_this_image): Implement version with
667         coarray argument.
668         (conv_intrinsic_cobound): Simplify code.
669         (gfc_conv_intrinsic_function): Call trans_this_image for
670         this_image(coarray) except for -fcoarray=single.
671
672 2011-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>
673
674         PR fortran/48720
675         * gfortran.texi: Document the 'Q' exponent-letter extension.
676         * invoke.texi: Document -Wreal-q-constant.
677         * lang.opt: Add -Wreal-q-constant option.
678         * gfortran.h: Add warn_real_q_constant to option struct.
679         * primary.c (match_real_constant):  Use it.  Accept 'Q' as
680         exponent-letter for REAL(16) real-literal-constant with a
681         fallback to REAL(10) or error if REAL(10) is not available.
682         * options.c (gfc_init_options, set_Wall) Set it.
683         (gfc_handle_option): Handle new option.
684
685 2011-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
686
687         * dump-prase-tree.c (show_code_node):  Set the current
688         namespace to the BLOCK before displaying it; restore
689         afterwards.
690
691 2011-04-30  Tobias Burnus  <burnus@net-b.de>
692
693         PR fortran/48821
694         * decl.c (gfc_match_import): Don't try to find the
695         symbol if already found.
696
697 2011-04-30  Paul Thomas  <pault@gcc.gnu.org>
698
699         PR fortran/48746
700         * trans-expr.c (fcncall_realloc_result): Set the bounds and the
701         offset so that the lbounds are one.
702         (gfc_trans_arrayfunc_assign): Add rank to arguments of above.
703
704 2011-04-29  Paul Thomas  <pault@gcc.gnu.org>
705
706         PR fortran/48462
707         * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with
708         automatic reallocation when the lhs is a target.
709
710         PR fortran/48746
711         * trans-expr.c (fcncall_realloc_result): Make sure that the
712         result dtype field is set before the function call.
713
714 2011-04-29  Tobias Burnus  <burnus@net-b.de>
715
716         PR fortran/48810
717         * resolve.c (resolve_typebound_generic_call): Don't check access
718         flags of the specific function.
719
720         PR fortran/48800
721         * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED
722         to AS_ASSUMED_SHAPE for function results.
723         (resolve_fl_var_and_proc): Print also for function results with
724         AS_DEFERRED an error, if they are not a pointer or allocatable.
725         (resolve_types): Make sure arguments of procedures in interface
726         blocks are resolved.
727
728 2011-04-29  Michael Matz  <matz@suse.de>
729
730         * options.c (options.c): Set warn_maybe_uninitialized.
731
732 2011-04-28  Tobias Burnus  <burnus@net-b.de>
733
734         PR fortran/48112
735         * resolve.c (resolve_fl_var_and_proc): Print diagnostic of
736         function results only once.
737         (resolve_symbol): Always resolve function results.
738
739         PR fortran/48279
740         * expr.c (gfc_check_vardef_context): Fix handling of generic
741         EXPR_FUNCTION.
742         * interface.c (check_interface0): Reject internal functions
743         in generic interfaces, unless -std=gnu.
744
745 2011-04-27  Tobias Burnus  <burnus@net-b.de>
746
747         PR fortran/48788
748         * resolve.c (resolve_global_procedure): Error recovery -
749         avoid segfault for (non)character-returning functions.
750
751 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
752
753         * decl.c (gfc_match_end):  Check that the block name starts
754         with "block@".
755         * parse.c (gfc_build_block_ns):  Make block names unique by
756         numbering them.
757
758 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
759
760         * frontend-passes.c (inserted_block):  New variable.
761         (changed_statement):  Likewise.
762         (create_var):  Encase statement to be operated on in a BLOCK.
763         Adjust code insertion for BLOCK.
764         (cfe_code):  Set inserted_block and changed_statement to NULL.
765
766 2011-04-23  Tobias Burnus  <burnus@net-b.de>
767
768         PR fortran/18918
769         * module.c (mio_array_spec): Set as->cotype on reading.
770         * resolve.c (resolve_allocate_expr): Fix allocating coarray
771         components.
772
773 2011-04-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
774
775         PR fortran/48405
776         * frontend_passes (cfe_register_funcs): Remove workaround for DO
777         loops.
778         (gfc_code_walker):  Make sure the pointer to the current
779         statement doen't change when other statements are inserted.
780
781 2011-04-21  Tobias Burnus  <burnus@net-b.de>
782
783         PR fortran/18918
784         * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.
785
786 2011-04-20  Jim Meyering  <meyering@redhat.com>
787
788         * expr.c (free_expr0): Remove useless if-before-free.
789         * gfortranspec.c (lang_specific_pre_link): Likewise.
790         * interface.c (gfc_extend_expr): Likewise.
791         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
792
793 2011-04-19  Tobias Burnus  <burnus@net-b.de>
794
795         PR fortran/48588
796         PR fortran/48692
797
798         * module.c (fix_mio_expr): Commit created symbol.
799
800 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
801
802         * scanner.c (load_file): Use XCNEWVAR instead of xcalloc.
803
804 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
805
806         * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
807         free.
808
809 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
810
811         * misc.c (gfc_getmem): Remove function.
812         * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem
813         usage with XCNEW or XCNEWVEC.
814         * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with
815         XCNEW or XCNEWVEC.
816         * options.c (gfc_handle_module_path_options)
817         (gfc_get_option_string): Likewise.
818         * resolve.c (gfc_resolve_forall): Likewise.
819         * simplify.c (simplify_transformation_to_array): Likewise.
820         * target-memory.c (gfc_target_interpret_expr): Likewise.
821         * trans-common.c (get_segment_info, copy_equiv_list_to_ns)
822         (get_init_field): Likewise.
823         * trans-expr.c (gfc_conv_statement_function): Likewise.
824         * trans-io.c (nml_full_name): Likewise.
825         * trans-stmt.c (gfc_trans_forall_1): Likewise.
826         * scanner.c (load_file): Replace gfc_getmem usage with xcalloc.
827
828 2011-04-19  Tobias Burnus  <burnus@net-b.de>
829
830         PR fortran/48588
831         * parse.c (resolve_all_program_units): Skip modules.
832         (translate_all_program_units): Handle modules.
833         (gfc_parse_file): Defer code generation for modules.
834
835 2011-04-19  Martin Jambor  <mjambor@suse.cz>
836
837         * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
838         instead of cgraph_get_create_node.
839
840 2011-04-18  Jim Meyering  <meyering@redhat.com>
841
842         remove now-unused definition of gfc_free
843         * misc.c (gfc_free): Remove function.
844         * gfortran.h (gfc_free): Remove its prototype.
845
846 2011-04-18  Jim Meyering  <meyering@redhat.com>
847
848         convert each use of gfc_free (p) to free (p)
849         Do that by running this command:
850           perl -pi -e    's/\bgfc_free ?\(/free (/' \
851             $(git grep -El '\bgfc_free ?\(')
852         which also corrects the few uses that lacked a space between
853         the function name and the open parenthesis.
854         Manually undo the change to the function definition itself
855         and its prototype.  They'll be removed next.
856         * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
857         * constructor.c (node_free): Likewise.
858         * cpp.c (dump_queued_macros): Likewise.
859         * data.c (gfc_assign_data_value): Likewise.
860         * decl.c (free_variable, free_value, gfc_free_data): Likewise.
861         (gfc_free_data_all, match_old_style_init): Likewise.
862         (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
863         Likewise.
864         (gfc_match_modproc): Likewise.
865         * dependency.c (check_section_vs_section): Likewise.
866         * error.c (gfc_pop_error, gfc_free_error): Likewise.
867         * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
868         (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
869         (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
870         Likewise.
871         * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
872         (strip_function_call, optimize_comparison): Likewise.
873         * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
874         (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
875         Likewise.
876         * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
877         (gfc_convert_chartype): Likewise.
878         * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
879         Likewise.
880         (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
881         * match.c (gfc_free_iterator, gfc_match_associate): Likewise.
882         (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
883         Likewise.
884         (free_case, gfc_free_forall_iterator): Likewise.
885         * misc.c: Likewise.
886         * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
887         (free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
888         (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
889         (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
890         (mio_full_typebound_tree, skip_list, load_equiv): Likewise.
891         (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
892         * openmp.c (gfc_free_omp_clauses): Likewise.
893         * options.c (gfc_post_options): Likewise.
894         * parse.c (select_type_pop, parse_omp_structured_block): Likewise.
895         * primary.c (gfc_free_structure_ctor_component): Likewise.
896         * resolve.c (resolve_structure_cons, check_host_association): Likewise.
897         (gfc_resolve_forall, resolve_equivalence): Likewise.
898         * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
899         (gfc_define_undef_line, preprocessor_line, include_line): Likewise.
900         (load_file, gfc_read_orig_filename): Likewise.
901         * simplify.c (simplify_transformation_to_array): Likewise.
902         (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
903         Likewise.
904         (gfc_simplify_compiler_options): Likewise.
905         * st.c (gfc_free_statement, gfc_free_statements): Likewise.
906         (gfc_free_association_list): Likewise.
907         * symbol.c (free_components, gfc_free_st_label, free_st_labels):
908         Likewise.
909         (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
910         (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
911         (free_common_tree, free_uop_tree, free_sym_tree): Likewise.
912         (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
913         Likewise.
914         (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
915         (gfc_free_namespace): Likewise.
916         * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
917         (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
918         (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
919         * trans-common.c (get_init_field, create_common): Likewise.
920         * trans-const.c (gfc_build_wide_string_const): Likewise.
921         (gfc_conv_string_init): Likewise.
922         * trans-decl.c (gfc_generate_function_code): Likewise.
923         * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
924         Likewise.
925         (SCALAR_POINTER, gfc_conv_statement_function): Likewise.
926         (gfc_trans_subarray_assign): Likewise.
927         * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
928         * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
929         (transfer_namelist_element, transfer_array_component): Likewise.
930         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
931         * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
932         * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
933         Likewise.
934
935 2011-04-15  Jim Meyering  <meyering@redhat.com>
936
937         gfortran: remove cpp definition of free, ...
938         in preparation for the s/gfc_free/free/ transformation.
939         * gfortran.h (free): Remove macro definition that would otherwise
940         prevent direct use of the function.
941
942 2011-04-18  Tobias Burnus  <burnus@net-b.de>
943
944         PR fortran/18918
945         * array.c (gfc_match_array_ref): Check for too many codimensions.
946         * check.c (gfc_check_image_index): Check number of elements
947         in SUB argument.
948         * simplify.c (gfc_simplify_image_index): Remove unreachable checks.
949
950 2011-04-18  Tobias Burnus  <burnus@net-b.de>
951
952         PR fortran/18918
953         * iresolve.c (gfc_resolve_image_index): Set ts.type.
954         * simplify.c (gfc_simplify_image_index): Don't abort if the bounds
955         are not known at compile time and handle -fcoarray=lib.
956         * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle
957         IMAGE_INDEX.
958         (conv_intrinsic_cobound): Fix comment typo.
959         (trans_this_image): New function.
960         * trans-array.c (gfc_unlikely): Move to trans.c.
961         * trans.c (gfc_unlikely): Function moved from trans-array.c.
962         (gfc_trans_runtime_check): Use it.
963         * trans-io.c (gfc_trans_io_runtime_check): Ditto.
964         * trans.h (gfc_unlikely): Add prototype.
965
966 2011-04-18  Paul Thomas  <pault@gcc.gnu.org>
967
968         PR fortran/48462
969         * trans-expr.c (fcncall_realloc_result): Renamed version of
970         realloc_lhs_bounds_for_intrinsic_call that does not touch the
971         descriptor bounds anymore but makes a temporary descriptor to
972         hold the result.
973         (gfc_trans_arrayfunc_assign): Modify the reference to above
974         renamed function.
975
976 2011-05-17  Tobias Burnus  <burnus@net-b.de>
977
978         PR fortran/48624
979         * trans-decl.c (gfc_get_extern_function_decl): Fix decl
980         for external procedures with proc arguments.
981
982 2011-04-15  Michael Matz  <matz@suse.de>
983
984         * trans-array.c (toplevel): Include gimple.h.
985         (gfc_trans_allocate_array_storage): Check flag_stack_arrays,
986         properly expand variable length arrays.
987         (gfc_trans_auto_array_allocation): If flag_stack_arrays create
988         variable length decls and associate them with their scope.
989         * gfortran.h (gfc_option_t): Add flag_stack_arrays member.
990         * options.c (gfc_init_options): Handle -fstack_arrays option.
991         * lang.opt (fstack-arrays): Add option.
992         * invoke.texi (Code Gen Options): Document it.
993         * Make-lang.in (trans-array.o): Depend on GIMPLE_H.
994
995 2011-04-15  Tobias Burnus  <burnus@net-b.de>
996
997         PR fortran/18918
998         * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
999         code which is also causing an ICE.
1000
1001 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
1002
1003         * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.
1004
1005 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
1006
1007         * f95-lang.c (union lang_tree_node): Check for TS_COMMON before
1008         calling TREE_CHAIN.
1009
1010 2011-04-12  Paul Thomas  <pault@gcc.gnu.org>
1011
1012         PR fortran/48360
1013         PR fortran/48456
1014         * trans-array.c (get_std_lbound): For derived type variables
1015         return array valued component lbound.
1016
1017 2011-04-12  Martin Jambor  <mjambor@suse.cz>
1018
1019         * trans-decl.c (gfc_generate_function_code): Call
1020         cgraph_get_create_node instead of cgraph_node.
1021
1022 2011-04-11  Tobias Burnus  <burnus@net-b.de>
1023
1024         PR fortran/18918
1025         * simplify.c (simplify_bound_dim): Exit for
1026         ucobound's last dimension unless -fcoarray=single.
1027         * trans-array (gfc_conv_descriptor_size_1): Renamed from
1028         gfc_conv_descriptor_size, made static, has now from_dim and
1029         to_dim arguments.
1030         (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size.
1031         (gfc_conv_descriptor_cosize): New function.
1032         * trans-array.h (gfc_conv_descriptor_cosize): New prototype.
1033         * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location
1034         and handle last codim of ucobound for when -fcoarray is not "single".
1035
1036 2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1037
1038         PR fortran/48448
1039         * gfortran.h (gfc_option_t):  Add warn_function_elimination and
1040         flag_frontend_optimize.
1041         * lang.opt (Wfunction-elimination):  Add.
1042         (ffrontend-optimize):  Add.
1043         * invoke.texi:  Add documentation for -Wfunction-elimination
1044         and -ffrontend-optimize.  Add -faggressive-function-elimination
1045         to list of code generation options.
1046         * frontend-passes.c (gfc_run_passes):  Run optimizations if
1047         flag_frontend_optimize is set.
1048         (warn_function_elimination):  New function.
1049         (cfe_expr_0):  Call it if requested to do so.
1050         * options.c (gfc_init_options):  Initiate warn_function_elimination
1051         and flag_frontend_optimize.
1052         (gfc_post_options):  Set flag_frontend_optimize if not specified
1053         by user, depending on the optimization level.
1054         (gfc_handle_option):  Handle -Wfunction-elimination and
1055         -ffrontend-optimize.
1056
1057 2011-04-06  Tobias Burnus  <burnus@net-b.de>
1058
1059         PR fortran/18918
1060         * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
1061         call for this_image.
1062
1063 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1064
1065         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
1066         build_function_type_list instead of build_function_type.  Correct
1067         argument order for func_frexp and func_scalbn.
1068
1069 2011-04-05  Duncan Sands  <baldrick@free.fr>
1070
1071         * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.
1072
1073 2010-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1074
1075         * frontend-passes: (optimize_lexical_comparison): New function.
1076         (optimize_expr): Call it.
1077         (optimize_comparison): Also handle lexical comparison functions.
1078         Return false instad of -2 for unequal comparison.
1079
1080 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1081
1082         PR fortran/48412
1083         * frontend-passes (cfe_expr_0):  Reverse the order of going
1084         through the loops.
1085
1086 2011-04-04  Tobias Burnus  <burnus@net-b.de>
1087             Mikael Morin  <mikael.morin@sfr.fr>
1088
1089         PR fortran/18918
1090         * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
1091         * expr.c (gfc_is_coindexed): Ditto.
1092         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
1093         * interface.c (compare_parameter): Use gfc_expr_attr and
1094         gfc_is_coindexed.
1095         * resolve.c (check_dimension, compare_spec_to_ref,
1096         resolve_allocate_expr, check_data_variable): Update for
1097         DIMEN_THIS_IMAGE.
1098         * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
1099         gfc_simplify_ucobound): Allow non-constant bounds.
1100         * trans-array.c (gfc_set_loop_bounds_from_array_spec,
1101         gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
1102         gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
1103         gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
1104         gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
1105         gfc_conv_ss_startstride, gfc_conv_loop_setup,
1106         gfc_trans_array_bounds, gfc_conv_expr_descriptor,
1107         gfc_walk_variable_expr): Handle codimen.
1108         * trans-decl.c (gfc_build_qualified_array): Save cobounds.
1109         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
1110         (conv_intrinsic_cobound): New function.
1111         (gfc_conv_intrinsic_function): Call it.
1112         (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
1113         ucobound, lcobound, this_image.
1114         * fortran/trans-types.c (gfc_build_array_type): Save cobounds.
1115         (gfc_get_dtype): Honour corank.
1116         (gfc_get_nodesc_array_type): Save corank and codimensions.
1117         (gfc_get_array_type_bounds): Save cobound.
1118         * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
1119         (gfc_array_kind): Add corank item.
1120         (GFC_TYPE_ARRAY_CORANK): New macro.
1121
1122 2011-04-03  Kai Tietz  <ktietz@redhat.com>
1123
1124         PR middle-end/48422
1125         * Make-lang.in (f95-lang.o): Add some missing dependencies.
1126
1127 2011-04-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
1128
1129         PR fortran/48352
1130         * frontend-passes (cfe_register_funcs):  Don't
1131         register functions if they appear as iterators in DO loops.
1132
1133 2011-03-30  Michael Matz  <matz@suse.de>
1134
1135         PR fortran/47516
1136         * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter,
1137         don't use local variable.
1138         (gfc_trans_arrayfunc_assign): Adjust caller.
1139
1140 2011-03-29  Janus Weil  <janus@gcc.gnu.org>
1141
1142         PR fortran/48095
1143         * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface.
1144         * module.c (MOD_VERSION): Bump.
1145         (mio_typespec): Read/write 'interface' field.
1146         * primary.c (match_string_constant,match_logical_constant): Remove
1147         unneeded code.
1148         (match_complex_constant): Make sure to clear the typespec.
1149
1150 2011-03-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1151
1152         * frontend-passes.c (create_var):  Warn about creating an
1153         array temporary if requested.
1154
1155 2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1156
1157         PR fortran/47065
1158         * frontend-passes.c (optimize_trim): Also follow references, except
1159         when they are substring references or array references.
1160
1161 2011-03-27  Tobias Burnus  <burnus@net-b.de>
1162
1163         PR fortran/18918
1164         * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
1165         GFC_ISYM_NUM_IMAGES.
1166         (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
1167         * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
1168         rename.
1169         * invoke.texi (-fcoarray=): Document "lib" argument.
1170         * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
1171         * libgfortran.h (libgfortran_stat_codes): Add comments.
1172         * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
1173         * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
1174         Handle GFC_FCOARRAY_LIB.
1175         * trans.h (gfc_init_coarray_decl): New prototype.
1176         (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
1177         gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
1178         gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
1179         gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
1180         gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
1181         New global variables.
1182         * trans-decl.c: Declare several CAF functions (cf. above).
1183         (gfc_build_builtin_function_decls): Initialize those.
1184         (gfc_init_coarray_decl): New function.
1185         (create_main_function): Call CAF init/finalize functions.
1186         * trans-intrinsic.c (trans_this_image, trans_num_images): New.
1187         (gfc_conv_intrinsic_function): Call those.
1188         * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical):
1189         Add code for GFC_FCOARRAY_LIB.
1190
1191 2011-03-26  Janus Weil  <janus@gcc.gnu.org>
1192
1193         PR fortran/48291
1194         * class.c (get_unique_hashed_string): Adjust maximum allowable length
1195         for unique type string.
1196
1197 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1198
1199         * scanner.c (preprocessor_line): Use filename_cmp
1200         instead of strcmp.
1201
1202 2011-03-25  Tobias Burnus  <burnus@net-b.de>
1203
1204         PR fortran/48174
1205         PR fortran/45304
1206         * trans-types.c (gfc_get_function_type): Don't use varargs if the
1207         procedure is known to have no arguments.
1208
1209 2010-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1210
1211         PR fortran/22572
1212         * gfortran.h (gfc_option_t) : Add
1213         flag_aggressive_function_elimination.
1214         (gfc_dep_compare_functions):  Add prototype.
1215         * lang.opt: Add faggressive-function-elimination.
1216         * invoke.texi: Document -faggressive-function-elimination.
1217         * frontend_passes (expr_array):  New static variable.
1218         (expr_size):  Likewise.
1219         (expr_count):  Likewise.
1220         (current_code):  Likewise.
1221         (current_ns):  Likewise.
1222         (gfc_run_passes):  Allocate and free space for expressions.
1223         (cfe_register_funcs):  New function.
1224         (create_var):  New function.
1225         (cfc_expr_0):  New function.
1226         (cfe_code):  New function.
1227         (optimize_namespace):  Invoke gfc_code_walker with cfe_code
1228         and cfe_expr_0.
1229         * dependency.c (gfc_dep_compare_functions):  New function.
1230         (gfc_dep_compare_expr):  Use it.
1231         * options.c (gfc_init_options):  Handle
1232         flag_aggressive_function_elimination.
1233         (gfc_handle_option):  Likewise.
1234
1235 2011-03-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1236
1237         * arith.c (arith_power): Plug memory leak.
1238
1239 2011-03-12  Janus Weil  <janus@gcc.gnu.org>
1240
1241         PR fortran/48059
1242         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
1243         for polymorphic arguments.
1244
1245 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1246
1247         PR fortran/48054
1248         * intrinsic.texi: Clarify doc of logarithm functions.
1249
1250 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1251
1252         PR fortran/47552
1253         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
1254         the string length variable.
1255
1256 2011-03-11  Janus Weil  <janus@gcc.gnu.org>
1257
1258         PR fortran/47768
1259         * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP.
1260         (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'.
1261
1262 2011-03-06  Paul Thomas  <pault@gcc.gnu.org>
1263             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1264
1265         PR fortran/47850
1266         * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if
1267         the expression has an iterator.  Otherwise, iterate through the
1268         array, checking for constant expressions for each element.
1269
1270 2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>
1271
1272         PR libfortran/47802
1273         * intrinsic.texi: Update CTIME and FDATE documentation.
1274
1275 2011-03-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1276
1277         * invoke.texi (Option Summary, Fortran Dialect Options)
1278         (Preprocessing Options, Runtime Options, Code Gen Options):
1279         Fix vertical list spacing by using @itemx for additinoal
1280         items, empty line before @table.  Fix typos.
1281
1282 2011-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1283
1284         PR fortran/47894
1285         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
1286
1287 2011-02-26  Tobias Burnus  <burnus@net-b.de>
1288
1289         PR fortran/47846
1290         * trans-stmt.c (gfc_trans_allocate): Fix allocation with
1291         type-spec of deferred-length strings.
1292
1293 2011-02-26  Tobias Burnus  <burnus@net-b.de>
1294
1295         PR fortran/47886
1296         * openmp.c (gfc_resolve_omp_directive): Resolve if()
1297         condition of OpenMP's task.
1298
1299 2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1300
1301         PR fortran/47894
1302         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
1303
1304 2011-02-24  Tobias Burnus  <burnus@net-b.de>
1305
1306         PR fortran/47872
1307         * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
1308         multitable for linebreak between different syntax variants.
1309
1310 2011-02-24  Richard Guenther  <rguenther@suse.de>
1311
1312         PR fortran/47839
1313         * f95-lang.c (pushdecl): For externs in non-global scope push
1314         a copy of the decl into the BLOCK.
1315
1316 2011-02-23  Mikael Morin  <mikael@gcc.gnu.org>
1317
1318         PR fortran/40850
1319         * trans.c (gfc_prepend_expr_to_block): New function.
1320         * trans.h (gfc_prepend_expr_to_block): Declare.
1321         * trans-array.c (gfc_conv_array_parameter): Replace
1322         gfc_add_expr_to_block with gfc_prepend_expr_to_block.
1323
1324 2011-02-22  Paul Thomas  <pault@gcc.gnu.org>
1325
1326         PR fortran/45743
1327         * trans-decl.c (gfc_get_extern_function_decl): Don't use the
1328         gsymbol backend_decl if the procedure has a formal argument
1329         that is a procedure.
1330
1331 2011-02-22  Tobias Burnus  <burnus@net-b.de>
1332
1333         PR fortran/41359
1334         * trans-stmt.c (gfc_trans_if_1): Use correct line for
1335         expressions in the if condition.
1336
1337 2011-02-20  Tobias Burnus  <burnus@net-b.de>
1338
1339         PR fortran/47797
1340         * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
1341         gfc_restore_backend_locus to have better debug locations.
1342         * trans-array.c (gfc_trans_deferred_array): Ditto.
1343
1344 2011-02-20  Paul Thomas  <pault@gcc.gnu.org>
1345
1346         PR fortran/45077
1347         PR fortran/44945
1348         * trans-types.c (gfc_get_derived_type): Remove code that looks
1349         for decls in gsym and add call to gfc_get_module_backend_decl.
1350         * trans.h : Add prototype for gfc_get_module_backend_decl.
1351         * trans-decl.c (gfc_get_module_backend_decl): New function.
1352         (gfc_get_symbol_decl): Call it.
1353
1354 2011-02-19  Paul Thomas  <pault@gcc.gnu.org>
1355
1356         PR fortran/47348
1357         * trans-array.c (get_array_ctor_all_strlen): Move up in file.
1358         (get_array_ctor_var_strlen): Add block dummy and add call to
1359         get_array_ctor_all_strlen instead of giving up on substrings.
1360         Call gcc_unreachable for default case.
1361         (get_array_ctor_strlen): Add extra argument to in call to
1362         get_array_ctor_var_strlen.
1363
1364 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1365
1366         PR fortran/47789
1367         * primary.c (gfc_match_structure_constructor): Handle empty parent
1368         types.
1369
1370 2011-02-18  Tobias Burnus
1371
1372         PR fortran/47775
1373         * trans-expr.c (arrayfunc_assign_needs_temporary): Use
1374         esym to check whether the specific procedure returns an
1375         allocatable or pointer.
1376
1377 2011-02-18  Michael Matz  <matz@suse.de>
1378
1379         PR fortran/45586
1380         * gfortran.h (struct gfc_component): Add norestrict_decl member.
1381         * trans.h (struct lang_type): Add nonrestricted_type member.
1382         * trans-expr.c (gfc_conv_component_ref): Search fields with correct
1383         parent type.
1384         * trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
1385         (gfc_sym_type): Use it.
1386
1387 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1388
1389         PR fortran/47768
1390         * resolve.c (resolve_transfer): Reject variables with procedure pointer
1391         components.
1392
1393 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1394
1395         PR fortran/47767
1396         * gfortran.h (gfc_check_access): Removed prototype.
1397         (gfc_check_symbol_access): Added prototype.
1398         * module.c (gfc_check_access): Renamed to 'check_access', made static.
1399         (gfc_check_symbol_access): New function, basically a shortcut for
1400         'check_access'.
1401         (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
1402         'gfc_check_symbol_access'.
1403         (write_operator,write_module): Renamed 'gfc_check_access'.
1404         * resolve.c (resolve_fl_procedure,resolve_fl_derived,
1405         resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
1406         'gfc_check_symbol_access'.
1407
1408 2011-02-16  Janus Weil  <janus@gcc.gnu.org>
1409
1410         PR fortran/47745
1411         * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
1412         * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
1413         'gfc_build_class_symbol'.
1414         (gfc_match_decl_type_spec): Reject unlimited polymorphism.
1415         * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
1416         * match.c (select_type_set_tmp): Move setting of 'class_ok' into
1417         'gfc_build_class_symbol'.
1418         * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.
1419
1420 2011-02-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1421
1422         PR fortran/47633
1423         . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.
1424
1425 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1426
1427         PR fortran/47730
1428         * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
1429
1430 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1431
1432         PR fortran/47728
1433         * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
1434         arrays.
1435         * primary.c (gfc_match_varspec): Avoid ICE for invalid class
1436         declaration.
1437
1438 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1439
1440         PR fortran/47349
1441         * interface.c (get_expr_storage_size): Handle derived-type components.
1442
1443 2011-02-13  Tobias Burnus  <burnus@net-b.de>
1444
1445         PR fortran/47569
1446         * interface.c (compare_parameter): Avoid ICE with
1447         character components.
1448
1449 2011-02-12  Janus Weil  <janus@gcc.gnu.org>
1450
1451         * class.c (gfc_build_class_symbol): Reject polymorphic arrays.
1452         * decl.c (build_sym,build_struct,attr_decl1): Use return value of
1453         'gfc_build_class_symbol'.
1454
1455 2011-02-12  Michael Matz  <matz@suse.de>
1456             Janus Weil  <janus@gcc.gnu.org>
1457             Tobias Burnus  <burnus@net-b.de>
1458
1459         PR fortran/45586
1460         * trans-expr.c (conv_parent_component_references): Avoid unintendent
1461         skipping of parent compounds.
1462
1463 2011-02-11  Tobias Burnus  <burnus@net-b.de>
1464
1465         PR fortran/47550
1466         * resolve.c (resolve_formal_arglist): PURE with VALUE
1467         and no INTENT: Add -std= diagnostics.
1468
1469 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1470
1471         PR fortran/47352
1472         * resolve.c (resolve_procedure_interface): If interface has a result
1473         variable, copy the typespec and set result pointer to self.
1474
1475 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1476
1477         PR fortran/47463
1478         * resolve.c (resolve_typebound_subroutine): Remove erroneous line.
1479
1480 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1481
1482         PR fortran/47637
1483         * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.
1484
1485 2011-02-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1486
1487         * io.c (match_io_element): Do not set dt if not inquire.
1488
1489 2011-02-08  Janus Weil  <janus@gcc.gnu.org>
1490
1491         PR fortran/45290
1492         * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
1493         initialization target.
1494
1495 2011-02-07  Janne Blomqvist  <jb@gcc.gnu.org>
1496             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1497
1498         * gfortran.texi (Thread-safety): texinfo styling fixes.
1499         * intrinsic.texi: Likewise.
1500
1501 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
1502
1503         * gfortran.texi (Compiler Characteristics): Add reference to
1504         thread-safety section.
1505
1506 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
1507
1508         * gfortran.texi (Thread-safety): New section.
1509         * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
1510         (GETENV): Likewise.
1511         (GET_ENVIRONMENT_VARIABLE): Likewise.
1512         (SYSTEM): Likewise.
1513
1514 2011-02-06  Paul Thomas  <pault@gcc.gnu.org>
1515
1516         PR fortran/47592
1517         * trans-stmt.c (gfc_trans_allocate): For deferred character
1518         length allocations with SOURCE, store to the values and string
1519         length to avoid calculating twice.  Replace gfc_start_block
1520         with gfc_init_block to avoid unnecessary contexts and to keep
1521         declarations of temporaries where they should be. Tidy up the
1522         code a bit.
1523
1524 2011-02-05  Janne Blomqvist  <jb@gcc.gnu.org>
1525
1526         PR fortran/42434
1527         * intrinsic.texi (SYSTEM_CLOCK): Update documentation.
1528
1529 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
1530             Paul Thomas  <pault@gcc.gnu.org>
1531
1532         PR fortran/47082
1533         * trans-expr.c (gfc_trans_class_init_assign): Add call to
1534         gfc_get_derived_type.
1535         * module.c (read_cleanup): Do not use unique_symtrees for vtabs
1536         or vtypes.
1537
1538 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
1539
1540         PR fortran/47572
1541         * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.
1542
1543 2011-02-01  Janus Weil  <janus@gcc.gnu.org>
1544
1545         PR fortran/47565
1546         * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
1547         pointer components with allocatable result.
1548
1549 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
1550
1551         PR fortran/47455
1552         * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
1553         with pointer or allocatable result.
1554
1555 2011-01-31  Paul Thomas  <pault@gcc.gnu.org>
1556
1557         PR fortran/47519
1558         * trans-stmt.c (gfc_trans_allocate): Improve handling of
1559         deferred character lengths with SOURCE.
1560         * iresolve.c (gfc_resolve_repeat): Calculate character
1561         length from source length and ncopies.
1562         * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
1563         expressions for ALLOCATE.
1564
1565 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
1566
1567         PR fortran/47463
1568         * resolve.c (resolve_typebound_subroutine): Bug fix for the case of
1569         an argument of a typebound assignment being a component.
1570
1571 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1572
1573         * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
1574         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
1575
1576 2011-01-31  Tobias Burnus  <burnus@net-b.de>
1577
1578         PR fortran/47042
1579         * resolve.c (resolve_fl_procedure): Reject stmt functions
1580         with pointer/allocatable attribute.
1581
1582 2011-01-31  Tobias Burnus  <burnus@net-b.de>
1583
1584         PR fortran/47042
1585         * interface.c (gfc_procedure_use): Add explicit interface check for
1586         pointer/allocatable functions.
1587
1588 2011-01-30  Paul Thomas  <pault@gcc.gnu.org>
1589
1590         PR fortran/47523
1591         * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
1592         expr and is assigned to a deferred character length scalar,
1593         make sure that the function is called before reallocation,
1594         so that the length is available. Include procedure pointer
1595         and procedure pointer component rhs as well.
1596
1597         PR fortran/45170
1598         PR fortran/35810
1599         PR fortran/47350
1600         * gfortran.dg/allocatable_function_5.f90: New test not added by
1601         mistake on 2011-01-28.
1602
1603 2011-01-29  Tobias Burnus  <burnus@net-b.de>
1604
1605         PR fortran/47531
1606         * check.c (gfc_check_shape): Support kind argument in SHAPE.
1607         * intrinsic.c (add_functions): Ditto.
1608         * resolve.c (gfc_resolve_shape): Ditto.
1609         * simplify.c (gfc_simplify_shape): Ditto.
1610         * intrinsic.h (gfc_check_shape, gfc_resolve_shape,
1611         gfc_simplify_shape): Update prototypes.
1612         * intrinisc.text (SHAPE): Document kind argument.
1613
1614 2011-01-28  Tobias Burnus  <burnus@net-b.de>
1615
1616         PR fortran/47507
1617         * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
1618         attribute also without INTENT.
1619
1620 2011-01-28  Tobias Burnus  <burnus@net-b.de>
1621
1622         * gfortran.texi (Fortran 2003 status): Mention support for
1623         nonconstant namelist variables.
1624
1625 2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
1626             Tobias Burnus  <burnus@gcc.gnu.org>
1627
1628         PR fortran/45170
1629         PR fortran/35810
1630         PR fortran/47350
1631         * interface.c (compare_actual_formal): An allocatable or pointer
1632         deferred length actual is only allowed if the formal argument
1633         is also deferred length. Clean up whitespace.
1634         * trans-expr.c (gfc_conv_procedure_call): Pass string length for
1635         deferred character length formal arguments by reference. Do the
1636         same for function results.
1637         (gfc_trans_pointer_assignment): Do not do runtime check of lhs
1638         and rhs character lengths, if deferred length lhs.  In this case
1639         set the lhs character length to that of the rhs.
1640         (gfc_conv_string_parameter): Remove assert that string length is
1641         an integer type.
1642         (is_scalar_reallocatable_lhs): New function.
1643         (alloc_scalar_allocatable_for_assignment): New function.
1644         (gfc_trans_assignment_1): Call above new function. If the rhs is
1645         a deferred character length itself, makes ure that the function
1646         is called before reallocation, so that the length is available.
1647         (gfc_trans_asssignment): Remove error about assignment to
1648         deferred length character variables.
1649         * gfortran.texi : Update entry about (re)allocation on
1650         assignment.
1651         * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
1652         length character variables.
1653         * module.c (mio_typespec): Transfer deferred characteristic.
1654         * trans-types.c (gfc_get_function_type): New code to generate
1655         hidden typelist, so that those character lengths that are
1656         passed by reference get the right type.
1657         * resolve.c (resolve_contained_fntype): Supress error for
1658         deferred character length functions.
1659         (resolve_function, resolve_fl_procedure) The same.
1660         (check_symbols): Remove the error that support for
1661         entity with deferred type parameter is not yet implemented.
1662         (resolve_fl_derived): The same.
1663         match.c (alloc_opt_list): Allow MOLD for deferred length object.
1664         * trans-decl.c (gfc_get_symbol_decl): For deferred character
1665         length dummies, generate a local variable for string length.
1666         (create_function_arglist): Hidden length can be a pointer.
1667         (gfc_trans_deferred_vars): For deferred character length
1668         results and dummies, assign the string length to the local
1669         variable from the hidden argument on entry and the other way
1670         round on exit, as appropriate.
1671
1672 2011-01-27  Tobias Burnus  <burnus@net-b.de>
1673
1674         PR fortran/47474
1675         * trans-decl.c (gfc_generate_function_code): Fix init
1676         of allocatable result variable with allocatable components.
1677
1678 2011-01-27  Tobias Burnus  <burnus@net-b.de>
1679
1680         PR fortran/47472
1681         * options.c (gfc_handle_module_path_options): Save
1682         module path without trailing slash as include path.
1683
1684 2011-01-25  Tobias Burnus  <burnus@net-b.de>
1685
1686         PR fortran/47448
1687         * interface.c (gfc_check_operator_interface): Fix
1688         defined-assignment check.
1689
1690 2011-01-23  Tobias Burnus  <burnus@net-b.de>
1691
1692         PR fortran/47421
1693         * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
1694         scalar allocatable dummy arguments.
1695
1696 2011-01-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
1697
1698         PR fortran/38536
1699         * resolve.c (gfc_iso_c_func_interface):  For C_LOC,
1700         check for array sections followed by component references
1701         which are illegal.  Also check for coindexed arguments.
1702
1703 2011-01-22  Tobias Burnus  <burnus@net-b.de>
1704
1705         PR fortran/47399
1706         * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
1707         PARAMETER TBP.
1708
1709 2011-01-21  Tobias Burnus  <burnus@net-b.de>
1710
1711         PR fortran/47394
1712         * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
1713         Use defined instead of magic number exit status codes.
1714         * scanner.c (include_line, gfc_new_file): Ditto.
1715
1716 2011-01-21  Tobias Burnus  <burnus@net-b.de>
1717
1718         PR fortran/47377
1719         * expr.c (gfc_check_pointer_assign): Reject expr data-targets
1720         without pointer attribute.
1721
1722 2011-01-18  Janus Weil  <janus@gcc.gnu.org>
1723
1724         PR fortran/47240
1725         * resolve.c (expression_rank): Fix rank of procedure poiner components.
1726         * trans-expr.c (gfc_conv_procedure_call): Take care of procedure
1727         pointer components as actual arguments.
1728
1729 2011-01-17  Jakub Jelinek  <jakub@redhat.com>
1730
1731         PR fortran/47331
1732         * gfortran.h (struct gfc_omp_saved_state): New type.
1733         (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
1734         * resolve.c (resolve_global_procedure): Call it around gfc_resolve
1735         call.
1736         * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
1737         functions.
1738
1739 2011-01-17  Tobias Burnus  <burnus@net-b.de>
1740
1741         PR fortran/47327
1742         * invoke.texi (Options to request or suppress errors
1743         and warnings): Fix cross link.
1744
1745 2011-01-15  Tobias Burnus  <burnus@net-b.de>
1746
1747         * gfortran.texi: Update Fortran 2003 Status section.
1748
1749         PR fortran/47177
1750         * invoke.texi: Add missing "-E" to the -dM example.
1751
1752 2011-01-13  Tobias Burnus  <burnus@net-b.de>
1753
1754         PR fortran/47268
1755         * intrinsic.texi (get_command_argument, get_environment_variable):
1756         Mark arguments as optional in the Arguments section.
1757
1758 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
1759             Tobias Burnus  <burnus@net-b.de>
1760
1761         PR fortran/47260
1762         * trans-decl.c (gfc_get_extern_function_decl,
1763         build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
1764         calling decl_attributes.
1765
1766 2011-01-13  Tobias Burnus  <burnus@net-b.de>
1767             Mikael Morin  <mikael@gcc.gnu.org>
1768
1769         PR fortran/45848
1770         PR fortran/47204
1771         * gfortran.h (gfc_code): Move union ext's case_list into
1772         the struct block.
1773         * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
1774         by "block.".
1775         * frontend-passes.c (gfc_code_walker): Ditto.
1776         * match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
1777         gfc_match_type_is, gfc_match_class_is): Ditto.
1778         * resolve.c (resolve_select, resolve_select_type): Ditto.
1779         * st.c (gfc_free_statement): Ditto.
1780         * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
1781         gfc_trans_character_select): Ditto.
1782         * parse.c (resolve_all_program_units): For error recovery, avoid
1783         segfault is proc_name is NULL.
1784
1785 2011-01-11  Paul Thomas  <pault@gcc.gnu.org>
1786
1787         PR fortran/47051
1788         * trans-array.c (gfc_alloc_allocatable_for_assignment): Change
1789         to be standard compliant by testing for shape rather than size
1790         before skipping reallocation. Improve comments.
1791
1792 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
1793
1794         PR fortran/47224
1795         * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
1796         of code.
1797
1798 2011-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1799
1800         PR fortran/38536
1801         * resolve.c (is_scalar_expr_ptr):  For a substring reference,
1802         use gfc_dep_compare_expr to compare start and end expession.
1803         Add FIXME for using gfc_deb_compare_expr elsewhere.
1804
1805 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
1806
1807         PR fortran/46313
1808         * class.c (get_unique_type_string): Make type name start with upper
1809         case letter.
1810
1811 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1812
1813         PR fortran/46405
1814         * invoke.texi:  Mention -ffree-line-length-none and
1815         -ffixed-line-length-none for preprocessing.
1816
1817 2011-01-08  Paul Thomas  <pault@gcc.gnu.org>
1818
1819         PR fortran/46896
1820         * trans-expr.c (gfc_conv_procedure_call): With a non-copying
1821         procedure argument (eg TRANSPOSE) use a temporary if there is
1822         any chance of aliasing due to host or use association.
1823         (arrayfunc_assign_needs_temporary): Correct logic for function
1824         results and do not use a temporary for implicitly PURE
1825         variables.  Use a temporary for Cray pointees.
1826         * symbol.c (gfc_add_save): Explicit SAVE not compatible with
1827         implicit pureness of containing procedure.
1828         * decl.c (match_old_style_init, gfc_match_data): Where decl
1829         would fail in PURE procedure, set implicit_pure to zero.
1830         * gfortran.h : Add implicit_pure to structure symbol_attr and
1831         add prototype for function gfc_implicit_pure.
1832         * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
1833         Where decl would fail in PURE procedure, reset implicit_pure.
1834         * io.c (match_vtag, gfc_match_open, gfc_match_close,
1835         gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
1836         * match.c (gfc_match_critical, gfc_match_stopcode,
1837         sync_statement, gfc_match_allocate, gfc_match_deallocate): The
1838         same.
1839         * parse.c (decode_omp_directive): The same.
1840         (parse_contained): If not PURE, set implicit pure attribute.
1841         * resolve.c (resolve_formal_arglist, resolve_structure_cons,
1842         resolve_function, resolve_ordinary_assign) : The same.
1843         (gfc_implicit_pure): New function.
1844         * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
1845         to ab_attribute enum and use it in this function.
1846
1847 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1848
1849         PR fortran/45777
1850         * symbol.c (gfc_symbols_could_alias):  Strip gfc_ prefix,
1851         make static and move in front of its only caller, to ...
1852         * trans-array.c (symbols_could_alias): ... here.
1853         Pass information about pointer and target status as
1854         arguments.  Allocatable arrays don't alias anything
1855         unless they have the POINTER attribute.
1856         (gfc_could_be_alias):  Keep track of pointer and target
1857         status when following references.  Also check if typespecs
1858         of components match those of other components or symbols.
1859
1860 2011-01-07  Tobias Burnus  <burnus@net-b.de>
1861
1862         PR fortran/41580
1863         * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
1864         * intrinsic.c (add_functions): Use simplify functions for
1865         EXTENDS_TYPE_OF and SAME_TYPE_AS.
1866         * intrinsic.h (gfc_simplify_extends_type_of,
1867         gfc_simplify_same_type_as): New prototypes.
1868         * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
1869         gfc_simplify_same_type_as): New functions.
1870
1871 2011-01-07  Janus Weil  <janus@gcc.gnu.org>
1872
1873         PR fortran/47189
1874         PR fortran/47194
1875         * gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
1876         * class.c (gfc_class_null_initializer): Initialize _vptr to declared
1877         type.
1878         * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
1879         * resolve.c (resolve_deallocate_expr): _data component will be added
1880         at translation stage.
1881         * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
1882         * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.
1883
1884 2011-01-06  Daniel Franke  <franke.daniel@gmail.com>
1885
1886         PR fortran/33117
1887         PR fortran/46478
1888         * parse.c (parse_interface): Remove check for procedure types.
1889         * interface.c (check_interface0): Verify that procedures are
1890         either all SUBROUTINEs or all FUNCTIONs.
1891
1892 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1893
1894         PR fortran/47180
1895         * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
1896         'vtab' is initialized).
1897
1898 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1899
1900         PR fortran/47180
1901         * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
1902         assignment, set the _vptr component to the declared type.
1903
1904 2011-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
1905
1906         PR fortran/46017
1907         * resolve.c (resolve_allocate_deallocate): Follow references to
1908         check for duplicate occurence of allocation/deallocation objects.
1909
1910 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1911
1912         PR fortran/47024
1913         * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
1914         of polymorphic allocatables according to their declared type.
1915
1916 2011-01-04  Janus Weil  <janus@gcc.gnu.org>
1917
1918         PR fortran/46448
1919         * class.c (gfc_find_derived_vtab): Set the module field for the copying
1920         routine to make sure it receives module name mangling.
1921
1922 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
1923
1924         * gfortranspec.c (lang_specific_driver): Update copyright notice
1925         dates.
1926
1927 2011-01-03  Janus Weil  <janus@gcc.gnu.org>
1928
1929         * intrinsic.texi (LEADZ): Fix example.
1930
1931 2011-01-02  Janus Weil  <janus@gcc.gnu.org>
1932
1933         PR fortran/46408
1934         * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
1935         routine.
1936
1937 \f
1938 Copyright (C) 2011 Free Software Foundation, Inc.
1939
1940 Copying and distribution of this file, with or without modification,
1941 are permitted in any medium without royalty provided the copyright
1942 notice and this notice are preserved.