OSDN Git Service

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