OSDN Git Service

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