OSDN Git Service

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