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