OSDN Git Service

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