OSDN Git Service

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