OSDN Git Service

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