OSDN Git Service

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