* gimple-ssa-store-merging.c (struct store_immediate_info): Add
[official-gcc.git] / gcc / fortran / ChangeLog-2012
blob5045220f03828028724f66b2103e73079f53c01e
1 2012-12-28  Janus Weil  <janus@gcc.gnu.org>
3         PR fortran/55692
4         * check.c (gfc_check_associated): Remove a "gcc_assert (0)".
6 2012-12-28  Tobias Burnus  <burnus@net-b.de>
8         PR fortran/55763
9         * check.c (gfc_check_move_alloc): Handle unlimited polymorphic.
10         * trans-intrinsic.c (conv_intrinsic_move_alloc): Ditto.
12 2012-12-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
14         PR fortran/48976
15         * gfortran.h (gfc_inquire struct): Add pointer for inquire stream.
16         * io.c (io_tag): Add tag for inquire stream. (match_inquire_element):
17         Add matcher for new tag. (gfc_resolve_inquire): Resolve new tag.
18         * ioparm.def: Add new parameter for inquire stream.
19         * trans-io.c (gfc_trans_inquire): Add tranlste code for inquire
20         stream.
22 2012-12-23  Tobias Burnus  <burnus@net-b.de>
24         PR fortran/54884
25         * module.c (write_symbol1_recursion): Set attr.public_use.
26         * interface.c (check_sym_interfaces, check_uop_interfaces,
27         gfc_check_interfaces): Remove attr.public_use code.
28         * resolve.c (resolve_function, resolve_variable,
29         resolve_typebound_procedure): Ditto.
31 2012-12-22  Tobias Burnus  <burnus@net-b.de>
33         PR fortran/55763
34         * module.c (mio_component): Don't skip _hash's initializer.
35         * resolve.c (resolve_select_type): Add an assert.
36         * trans-expr.c (gfc_conv_procedure_call): Handle
37         INTENT(OUT) for UNLIMIT_POLY.
39 2012-12-21  Richard Biener  <rguenther@suse.de>
41         PR bootstrap/54659
42         * gfortran.h: Do not include gmp.h here.
44 2012-12-21  Paul Thomas  <pault@gcc.gnu.org>
46         PR fortran/55763
47         * match.c (select_type_set_tmp): Return is a derived type or
48         class typespec has no derived type.
49         * resolve.c (resolve_fl_var_and_proc): Exclude select type
50         temporaries from 'pointer'.
51         (resolve_symbol): Exclude select type temporaries from tests
52         for assumed size and assumed rank.
54 2012-12-20  Janus Weil  <janus@gcc.gnu.org>
56         PR fortran/36044
57         * gfortran.h (gfc_isym_id): Add GFC_ISYM_BACKTRACE.
58         * intrinsic.c (add_subroutines): Add "backtrace".
59         * intrinsic.texi (BACKTRACE): Document BACKTRACE intrinsic.
61 2012-12-20  Tobias Burnus  <burnus@net-b.de>
63         PR fortran/54818
64         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ensure that
65         the string length is of type gfc_charlen_type_node.
67 2012-12-19  Paul Thomas  <pault@gcc.gnu.org>
69         * array.c (resolve_array_list): Apply C4106.
70         * check.c (gfc_check_same_type_as): Exclude polymorphic
71         entities from check for extensible types. Improved error
72         for disallowed argument types to name the offending type.
73         * class.c : Update copyright date.
74         (gfc_class_null_initializer): Add argument for initialization
75         expression and deal with unlimited polymorphic typespecs.
76         (get_unique_type_string): Give unlimited polymorphic
77         entities a type string.
78         (gfc_intrinsic_hash_value): New function.
79         (gfc_build_class_symbol): Incorporate unlimited polymorphic
80         entities.
81         (gfc_find_derived_vtab): Deal with unlimited polymorphic
82         entities.
83         (gfc_find_intrinsic_vtab): New function.
84         * decl.c (gfc_match_decl_type_spec): Match typespec for
85         unlimited polymorphic type.
86         (gfc_match_data_decl): Skip to 'ok' if unlimited polymorphic.
87         expr.c (gfc_check_pointer_assign): Apply C717.  If unlimited
88         polymorphic lvalue, find rvalue vtable for all typespecs,
89         except unlimited polymorphic expressions.
90         (gfc_check_vardef_context): Handle unlimited polymorphic
91         entities.
92         * gfortran.h : Add unlimited polymorphic attribute. Add
93         second arg to gfc_class_null_initializer primitive and
94         primitive for gfc_find_intrinsic_vtab.  Add UNLIMITED_POLY
95         to detect unlimited polymorphic expressions.
96         * interface.c (gfc_compare_types): If expr1 is unlimited
97         polymorphic, always return 1. If expr2 is unlimited polymorphic
98         enforce C717.
99         (gfc_compare_interfaces): Skip past conditions that do not
100         apply for unlimited polymorphic entities.
101         (compare_parameter): Make sure that an unlimited polymorphic,
102         allocatable or pointer, formal argument is matched by an
103         unlimited polymorphic actual argument.
104         (compare_actual_formal): Ensure that an intrinsic vtable exists
105         to match an unlimited polymorphic formal argument.
106         * match.c (gfc_match_allocate): Type kind parameter does not
107         need to match an unlimited polymorphic allocate-object.
108         (alloc_opt_list): An unlimited polymorphic allocate-object
109         requires a typespec or a SOURCE tag.
110         (select_intrinsic_set_tmp): New function.
111         (select_type_set_tmp): Call new function.  If it returns NULL,
112         build a derived type or class temporary instead.
113         (gfc_match_type_is): Remove restriction to derived types only.
114         Bind(C) or sequence derived types not permitted.
115         * misc (gfc_typename):  Printed CLASS(*) for unlimited
116         polymorphism.
117         * module.c : Add AB_UNLIMITED_POLY to pass unlimited
118         polymorphic attribute to and from modules.
119         * resolve.c (resolve_common_vars): Unlimited polymorphic
120         entities cannot appear in common blocks.
121         (resolve_deallocate_expr): Deallocate unlimited polymorphic
122         enities.
123         (resolve_allocate_expr): Likewise for allocation.  Make sure
124         vtable exists.
125         (gfc_type_is_extensible): Unlimited polymorphic entities are
126         not extensible.
127         (resolve_select_type): Handle unlimited polymorphic selectors.
128         Ensure that length type parameters are assumed and that names
129         for intrinsic types are generated.
130         (resolve_fl_var_and_proc): Exclude select type temporaries
131         from test of extensibility of type.
132         (resolve_fl_variable): Likewise for test that assumed character
133         length must be a dummy or a parameter.
134         (resolve_fl_derived0): Return SUCCESS unconditionally for
135         unlimited polymorphic entities. Also, allow unlimited
136         polymorphic components.
137         (resolve_fl_derived): Return SUCCESS unconditionally for
138         unlimited polymorphic entities.
139         (resolve_symbol): Return early with unlimited polymorphic
140         entities.
141         * simplifiy.c : Update copyright year.
142         (gfc_simplify_extends_type_of): No simplification possible
143         for unlimited polymorphic arguments.
144         * symbol.c (gfc_use_derived): Nothing to do for unlimited
145         polymorphic "derived type".
146         (gfc_type_compatible): Return unity if ts1 is unlimited
147         polymorphic.
148         * trans-decl.c (create_function_arglist) Formal arguments
149         without a character length should be treated in the same way
150         as passed lengths.
151         (gfc_trans_deferred_vars): Nullify the vptr of unlimited
152         polymorphic pointers. Avoid unlimited polymorphic entities
153         triggering gcc_unreachable.
154         * trans-expr.c (gfc_conv_intrinsic_to_class): New function.
155         (gfc_trans_class_init_assign): Make indirect reference of
156         src.expr.
157         (gfc_trans_class_assign): Expression NULL of unknown type
158         should set NULL vptr on lhs. Treat C717 cases where lhs is
159         a derived type and the rhs is unlimited polymorphic.
160         (gfc_conv_procedure_call): Handle the conversion of a non-class
161         actual argument to match an unlimited polymorphic formal
162         argument.  Suppress the passing of a character string length
163         in this case.  Make sure that calls to the character __copy
164         function have two character string length arguments.
165         (gfc_conv_initializer): Pass the initialization expression to
166         gfc_class_null_initializer.
167         (gfc_trans_subcomponent_assign): Ditto.
168         (gfc_conv_structure): Move handling of _size component.
169         trans-intrinsic.c: (gfc_conv_same_type_as): Handle conditions
170         where unlimited polymorphic arguments have null vptr.
171         * trans-stmt.c (trans_associate_var): Correctly treat array
172         temporaries associated with unlimited polymorphic selectors.
173         Recover the overwritten dtype for the descriptor. Use the _size
174         field of the vptr for character string lengths.
175         (gfc_trans_allocate): Cope with unlimited polymorphic allocate
176         objects; especially with character source tags.
177         (reset_vptr): New function.
178         (gfc_trans_deallocate): Call it.
179         * trans-types.c (gfc_get_derived_type): Detect unlimited
180         polymorphic types and deal with cases where the derived type of
181         components is null.
182         * trans.c : Update copyright year.
183         (trans_code): Call gfc_trans_class_assign for C717 cases where
184         the lhs is not unlimited polymorphic.
186 2012-12-19  Tobias Burnus  <burnus@net-b.de>
188         PR fortran/55733
189         * trans-decl.c (gfc_create_string_length): Avoid setting
190         TREE_STATIC for automatic variables with -fno-automatic.
192 2012-12-19  Tobias Burnus  <burnus@net-b.de>
193             Jakub Jelinek  <jakub@redhat.com>
194             Janus Weil  <janus@gcc.gnu.org>
196         PR fortran/55636
197         PR fortran/55733
198         * gfortran.h (GFC_PREFIX): Define.
199         * trans-decl.c (gfc_create_string_length): For VAR_DECLs that
200         will be TREE_STATIC, use GFC_PREFIX to mangle the names. Handle
201         -fno-automatic
202         (gfc_trans_deferred_vars): Don't free variables SAVEd via
203         -fno-automatic.
205 2012-12-16  Tobias Burnus  <burnus@net-b.de>
207         PR fortran/55197
208         * module.c (gfc_use_module): Free rename list only for
209         internally generated intrinsic modules.
211 2012-12-16  Tobias Burnus  <burnus@net-b.de>
213         * trans-intrinsic.c (conv_intrinsic_move_alloc): Set dynamic
214         type of the FROM variable to the declared type.
216 2012-12-16  Tobias Burnus  <burnus@net-b.de>
218         PR fortran/55638
219         * resolve.c (resolve_formal_arglist): Allow VALUE without
220         INTENT for ELEMENTAL procedures.
222 2012-12-10  Janus Weil  <janus@gcc.gnu.org>
224         PR fortran/52909
225         * trans-decl.c (get_proc_pointer_decl): Apply name mangling.
227 2012-12-09  Tobias Burnus  <burnus@net-b.de>
229         * trans-array.c (structure_alloc_comps): Use NULL_TREE in the
230         call to gfc_deallocate_scalar_with_status.
231         * trans-decl.c (gfc_trans_deferred_vars): Pass symbol.
232         * trans-stmt.c (gfc_trans_deallocate): Pass polymorphic variable.
234 2012-12-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
236         PR fortran/55593
237         * frontend-passes.c (doloop_code):  Use resolved_sym
238         instead of n.sym->formal for formal argument list
239         to get the correct version for all generic subroutines.
241 2012-12-05  Tobias Burnus  <burnus@net-b.de>
243         * resolve.c (generate_component_assignments): Fix memleak.
245 2012-12-03  Janus Weil  <janus@gcc.gnu.org>
247         PR fortran/55548
248         * intrinsic.texi (SYSTEM_CLOCK): Update documentation of SYSTEM_CLOCK.
250 2012-12-03  Tobias Burnus  <burnus@net-b.de>
251             Janus Weil  <janus@gcc.gnu.org>
253         PR fortran/37336
254         * class.c (gfc_is_finalizable): New function.
255         * gfortran.h (gfc_is_finalizable): Its prototype.
256         * module.c (mio_component): Read initializer for vtype's _final.
257         * resolve.c (resolve_fl_derived0): Call gfc_is_finalizable.
258         * trans-expr.c (gfc_vtable_final_get): New function.
259         (conv_parent_component_references): Fix comment.
260         (gfc_conv_variable): Fix for scalar coarray components.
261         * trans-intrinsic.c (conv_intrinsic_move_alloc): For BT_CLASS,
262         pass the BT_CLASS type and not the declared type to
263         gfc_deallocate_scalar_with_status.
264         * trans.h (gfc_vtable_final_get): New prototype.
266 2012-12-03  Tobias Burnus  <burnus@net-b.de>
268         PR fortran/55475
269         * scanner.c (gfc_next_char_literal): Fix setting locus
270         to free_line_length for the error message.
271         * error.c (show_locus): Fix potential out-of-bounds
272         read.
274 2012-12-03  Tobias Burnus  <burnus@net-b.de>
276         PR fortran/37336
277         * class.c (finalizer_insert_packed_call): New static function.
278         (finalize_component, generate_finalization_wrapper):
279         Fix coarray handling and packing.
281 2012-12-02  Paul Thomas  <pault@gcc.gnu.org>
283         * resolve.c (resolve_allocate_deallocate,
284         resolve_typebound_intrinsic_op): Recover revisions 193568 and
285         193778, which were accidentally reverted by the previous patch.
287 2012-12-01   Alessandro Fanfarillo <alessandro.fanfarillo@gmail.com>
288              Paul Thomas  <pault@gcc.gnu.org>
290         PR fortran/46897
291         * gfortran.h : Add bit field 'defined_assign_comp' to
292         symbol_attribute structure.
293         Add primitive for gfc_add_full_array_ref.
294         * expr.c (gfc_add_full_array_ref): New function.
295         (gfc_lval_expr_from_sym): Call new function.
296         * resolve.c (add_comp_ref): New function.
297         (build_assignment): New function.
298         (get_temp_from_expr): New function
299         (add_code_to_chain): New function
300         (generate_component_assignments): New function that calls all
301         the above new functions.
302         (resolve_code): Call generate_component_assignments.
303         (check_defined_assignments): New function.
304         (resolve_fl_derived0): Call check_defined_assignments.
305         (gfc_resolve): Reset component_assignment_level in case it is
306         left in a bad state by errors.
309         * resolve.c (is_sym_host_assoc, resolve_procedure_interface,
310         resolve_contained_fntype, resolve_procedure_expression,
311         resolve_elemental_actual, resolve_global_procedure,
312         is_scalar_expr_ptr, gfc_iso_c_func_interface, resolve_function,
313         set_name_and_label, gfc_iso_c_sub_interface,
314         resolve_specific_s0, resolve_operator, compare_bound_mpz_t,
315         gfc_resolve_character_operator, resolve_typebound_function,
316         gfc_resolve_expr, forall_index, remove_last_array_ref,
317         conformable_arrays, resolve_allocate_expr,
318         resolve_allocate_deallocate, resolve_select_type,
319         resolve_transfer, resolve_where,
320         gfc_resolve_where_code_in_forall, gfc_resolve_forall_body,
321         gfc_count_forall_iterators, resolve_values,
322         resolve_bind_c_comms, resolve_bind_c_derived_types,
323         gfc_verify_binding_labels, apply_default_init,
324         build_default_init_expr, apply_default_init_local,
325         resolve_fl_var_and_proc, resolve_fl_procedure,
326         gfc_resolve_finalizers, check_generic_tbp_ambiguity,
327         resolve_typebound_intrinsic_op, resolve_typebound_procedure,
328         resolve_typebound_procedures, ensure_not_abstract,
329         resolve_fl_derived0, resolve_fl_parameter, resolve_symbol,
330         resolve_equivalence_derived): Remove trailing white space.
331         * gfortran.h : Remove trailing white space.
333 2012-11-28  Tobias Burnus  <burnus@net-b.de>
335         PR fortran/52161
336         * trans-stmt.c (gfc_trans_sync): Fix bound checking
337         for -fcoarray=lib.
339 2012-11-28  Tobias Burnus  <burnus@net-b.de>
341         PR fortran/52161
342         * trans-stmt.c (gfc_trans_sync): Fix bound checking.
344 2012-11-27  Tobias Burnus  <burnus@net-b.de>
346         PR fortran/55476
347         * expr.c (gfc_check_pointer_assign): Fix check
348         pointer-might-outlive-target check for host_assoc.
350 2012-11-26  Eric Botcazou  <ebotcazou@adacore.com>
352         * trans-decl.c (gfc_finish_var_decl): Do not set DECL_RESTRICTED_P.
354 2012-11-26  Janus Weil  <janus@gcc.gnu.org>
356         PR fortran/54997
357         * decl.c (match_procedure_decl): Don't set 'referenced' attribute
358         for PROCEDURE declarations.
359         * parse.c (gfc_fixup_sibling_symbols,parse_contained): Don't set
360         'referenced' attribute for all contained procedures.
361         * trans-decl.c (gfc_get_symbol_decl): Allow for unreferenced procedures.
362         (build_function_decl): Set TREE_USED for referenced procedures.
364 2012-11-26  Janus Weil  <janus@gcc.gnu.org>
366         PR fortran/54881
367         * match.c (select_derived_set_tmp,select_class_set_tmp): Removed and
368         unified into ...
369         (select_type_set_tmp): ... this one. Set POINTER argument according to
370         selector.
371         * trans-intrinsic.c (gfc_conv_associated): Use 'gfc_class_data_get'
372         instead of 'gfc_add_data_component'.
374 2012-11-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
376         PR fortran/30146
377         * frontend-passes.c (doloop_warn):  New function.
378         (doloop_list):  New static variable.
379         (doloop_size):  New static variable.
380         (doloop_level):  New static variable.
381         (gfc_run_passes): Call doloop_warn.
382         (doloop_code):  New function.
383         (doloop_function):  New function.
384         (gfc_code_walker):  Keep track of DO level.
386 2012-11-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
388         PR fortran/55314
389         * resolve.c (resolve_allocate_deallocate):  Compare all
390         subscripts when deciding if to reject a (de)allocate
391         statement.
393 2012-11-21  Janus Weil  <janus@gcc.gnu.org>
395         PR fortran/55352
396         * trans-decl.c (generate_local_decl): Don't warn for explicitly imported
397         but unused module variables which are in a namelist or common block.
399 2012-11-20  Diego Novillo  <dnovillo@google.com>
400             Jakub Jelinek  <jakub@redhat.com>
402         * trans-openmp.c: Replace all vec<T, A>() initializers
403         with vNULL.
405 2012-11-17  Diego Novillo  <dnovillo@google.com>
407         Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
409         * frontend-passes.c: Use new vec API in vec.h.
410         * trans-array.c: Likewise.
411         * trans-common.c: Likewise.
412         * trans-decl.c: Likewise.
413         * trans-expr.c: Likewise.
414         * trans-intrinsic.c: Likewise.
415         * trans-openmp.c: Likewise.
416         * trans-stmt.c: Likewise.
417         * trans-types.c: Likewise.
418         * trans.h: Likewise.
420 2012-11-17  Jakub Jelinek  <jakub@redhat.com>
422         PR fortran/55341
423         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert last
424         argument to memcpy to size_type_node type.
425         * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise.
426         * trasn-array.c (duplicate_allocatable): Likewise.
428 2012-11-16  Janus Weil  <janus@gcc.gnu.org>
430         PR fortran/55297
431         * resolve.c (resolve_typebound_intrinsic_op): Only add typebound
432         operators to the operator list in the namespace of the derived type.
435 2012-11-12  Jan Hubicka  <jh@suse.cz>
437         * f95-lang.c (ATTR_NOTHROW_LEAF_MALLOC_LIST): New macro.
438         (gfc_define_builtin): Use set_call_expr_flags.
439         (gfc_init_builtin_functions): Update.
441 2012-11-12  Tobias Burnus  <burnus@net-b.de>
443         PR fortran/55272
444         * module.c (mio_array_spec): Correctly handle coarray
445         scalars.
447 2012-11-07  Tobias Schlüter  <tobi@gcc.gnu.org>
449         PR fortran/51727
450         * module.c (sorted_pointer_info): New.
451         (gfc_get_sorted_pointer_info): New.
452         (free_sorted_pointer_info_tree): New.
453         (compare_sorted_pointer_info): New.
454         (find_symbols_to_write): New.
455         (write_symbol1_recursion): New.
456         (write_symbol1): Collect symbols that need writing, output in order.
457         (write_generic): Traverse tree in order.
459 2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
461         PR c/53063
462         * options.c (set_Wall): Do not set warn_switch here.
464 2012-11-06  Janus Weil  <janus@gcc.gnu.org>
466         PR fortran/54917
467         * target-memory.c (gfc_target_expr_size,gfc_target_interpret_expr):
468         Handle BT_CLASS.
469         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Add support for
470         polymorphic arguments.
472 2012-11-04  Janus Weil  <janus@gcc.gnu.org>
474         PR fortran/55199
475         * primary.c (gfc_match_varspec): Clear typespec if it cannot be
476         determined at this point.
478 2012-10-31  Janus Weil  <janus@gcc.gnu.org>
480         PR fortran/53718
481         * trans.h (GFC_DECL_PUSH_TOPLEVEL): Removed.
482         * trans-decl.c (gfc_get_symbol_decl,gfc_generate_function_code): Remove
483         GFC_DECL_PUSH_TOPLEVEL.
484         (build_function_decl): Do not push __copy procedure to toplevel.
486 2012-10-31  Tobias Burnus  <burnus@net-b.de>
488         PR fortran/55134
489         * trans-array.c (gfc_conv_array_parameter): Regard AS_DEFERRED as
490         array with descriptor.
492 2012-10-28  Tobias Burnus  <burnus@net-b.de>
494         PR fortran/54958
495         * gfortran.h (gfc_resolve_iterator_expr,
496         gfc_check_vardef_context): Update prototype.
497         * expr.c (gfc_check_vardef_context): Add own_scope
498         argument and honour it.
499         * resolve.c (gfc_resolve_iterator_expr): Add own_scope
500         argument and honour it.
501         (resolve_deallocate_expr, resolve_allocate_expr,
502         resolve_data_variables, resolve_transfer
503         resolve_lock_unlock, resolve_code): Update calls.
504         * array.c (resolve_array_list): Ditto.
505         * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
506         * interface.c (compare_actual_formal): Ditto.
507         * intrinsic.c (check_arglist): Ditto.
508         * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
510 2012-10-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
512         * trans.c (gfc_allocate_allocatable):  Revert accidental
513         commit.
515 2012-10-24  Janus Weil  <janus@gcc.gnu.org>
517         PR fortran/55037
518         * trans-expr.c (gfc_conv_procedure_call): Move a piece of code and
519         remove an assert.
521 2012-10-21  Tobias Burnus  <burnus@net-b.de>
523         PR fortran/54725
524         * Make-lang.in (CFLAGS-cpp.o): Use TARGET_SYSTEM_ROOT_DEFINE.
525         * cpp.o (gfc_cpp_init_options): Use it for
526         setting gfc_cpp_option.sysroot.
528 2012-10-21  Thomas König  <tkoenig@gcc.gnu.org>
530         PR fortran/54465
531         * lang.opt (Wextra):  Add.
532         * invoke.texi:  Document that -Wc-binding-type, -Wconversion
533         and -Wline-truncation are implied by -Wall.  Document that
534         -Wcompare-reals is implied by -Wextra.  Document -Wextra.
535         * options.c (set_Wextra):  New function.
536         (gfc_handle_option):  Handle -Wextra.
538 2012-10-19  Janus Weil  <janus@gcc.gnu.org>
540         PR fortran/54224
541         * trans-expr.c (conv_function_val): Set TREE_USED.
543 2012-10-18  Tobias Burnus  <burnus@net-b.de>
545         PR fortran/54884
546         * resolve.c (specification_expr): Change to bool.
547         (resolve_formal_arglist, resolve_symbol): Set
548         specification_expr to true before resolving the array spec.
549         (resolve_variable, resolve_charlen, resolve_fl_variable):
550         Properly reset specification_expr.
551         (resolve_function): Set public_use when used in
552         a specification expr.
554 2012-10-16  Tobias Burnus  <burnus@net-b.de>
556         PR fortran/50981
557         PR fortran/54618
558         * trans.h (gfc_conv_derived_to_class, gfc_conv_class_to_class):
559         Update prototype.
560         * trans-stmt.c (trans_associate_var,gfc_trans_allocate): Update
561         calls to those functions.
562         * trans-expr.c (gfc_conv_derived_to_class, gfc_conv_class_to_class,
563         gfc_conv_expr_present): Handle absent polymorphic arguments.
564         (class_scalar_coarray_to_class): New function.
565         (gfc_conv_procedure_call): Update calls.
567 2012-10-12  Janus Weil  <janus@gcc.gnu.org>
569         PR fortran/40453
570         * interface.c (check_dummy_characteristics): Recursively check dummy
571         procedures.
573 2012-10-11  Janus Weil  <janus@gcc.gnu.org>
575         PR fortran/54784
576         * trans-stmt.c (gfc_trans_allocate): Correctly determine the reference
577         to the _data component for polymorphic allocation with SOURCE.
579 2012-10-06  Janus Weil  <janus@gcc.gnu.org>
581         PR fortran/54832
582         * resolve.c (resolve_fl_derived0): Correctly copy the 'class_ok'
583         attribute for proc-ptr components with RESULT variable.
585 2012-10-06  Janus Weil  <janus@gcc.gnu.org>
587         PR fortran/45521
588         * interface.c (generic_correspondence): Implement additional
589         distinguishability criteria of F08.
590         (compare_actual_formal): Reject data object as actual argument for
591         procedure formal argument.
593 2012-10-04  Tobias Burnus  <burnus@net-b.de>
595         * expr.c (scalarize_intrinsic_call): Plug memory leak.
596         * frontend-passes.c (gcc_assert): Extend assert.
597         * interface.c (gfc_compare_derived_types): Fix comparison.
598         (gfc_check_operator_interface): Move up to make this error
599         message reachable.
600         (get_sym_storage_size): Remove always-true checks.
601         * io.c (format_lex): Add comment.
602         (gfc_free_wait): Free memory.
603         * match.c (gfc_match_select_type): Ditto.
604         * matchexpr.c (match_level_3): Ditto.
605         * primary.c (match_string_constant): Ditto.
606         (match_actual_arg): Check return value.
607         * resolve.c (gfc_resolve_substring_charlen,
608         resolve_typebound_generic_call, resolve_typebound_function,
609         resolve_typebound_subroutine): Free memory.
610         * trans-types.c (gfc_get_derived_type): Remove always-true check.
612 2012-10-02  Janus Weil  <janus@gcc.gnu.org>
614         PR fortran/54778
615         * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
617 2012-09-30  Janus Weil  <janus@gcc.gnu.org>
619         PR fortran/54667
620         * intrinsic.texi (C_F_POINTER): Fix description.
621         * resolve.c (gfc_iso_c_sub_interface): Add a check for FPTR argument
622         of C_F_POINTER. Modify two error messages. Cleanup.
624 2012-09-24  Tobias Burnus  <burnus@net-b.de>
626         PR fortran/54618
627         PR fortran/54690
628         * trans-expr.c (gfc_conv_procedure_call): Fix INTENT(OUT)
629         handling for allocatable BT_CLASS.
631 2012-09-24  Lawrence Crowl  <crowl@google.com>
633         * trans-expr.c (gfc_conv_cst_int_power): Change to new double_int API.
634         * target-memory.c (gfc_interpret_logical): Likewise.
636 2012-09-23  Tobias Burnus  <burnus@net-b.de>
638         * parse.c (parse_derived): Don't set attr.alloc_comp
639         for pointer components with allocatable subcomps.
641         PR fortran/54599
642         * resolve.c (resolve_fl_namelist): Remove superfluous
643         NULL check.
644         * simplify.c (simplify_min_max): Remove unreachable code.
645         * trans-array.c (gfc_trans_create_temp_array): Change
646         a condition into an assert.
648         PR fortran/54618
649         * trans-expr.c (gfc_trans_class_init_assign): Guard
650         re-setting of the _data by gfc_conv_expr_present.
651         (gfc_conv_procedure_call): Fix INTENT(OUT) handling
652         for allocatable BT_CLASS.
654 2012-09-22  Thomas König  <tkoenig@gcc.gnu.org>
656         PR fortran/54599
657         * dependency.c (gfc_dep_compare_expr):  Clarify logic,
658         remove dead code.
660 2012-09-20  Tobias Burnus  <burnus@net-b.de>
662         PR fortran/54599
663         * cpp.c (print_line): Properly handle extern C.
665 2012-09-20  Martin Jambor  <mjambor@suse.cz>
667         * trans-decl.c (gfc_get_extern_function_decl): Push NULL cfun.  Do not
668         set and restore current_function_decl.
669         (gfc_init_coarray_decl): Do not set and restore current_function_decl.
671 2012-09-17  Tobias Burnus  <burnus@net-b.de>
673         PR fortran/54608
674         * simplify.c (gfc_simplify_scan, gfc_simplify_verify):
675         Fix handling of BACK=variable.
677 2012-09-17  Janus Weil  <janus@gcc.gnu.org>
679         PR fortran/54285
680         * expr.c (gfc_check_pointer_assign): Correctly handle procedure pointers
681         as function results.
682         * primary.c (gfc_match_varspec): Allow to call a PPC with proc-ptr
683         result.
685 2012-09-17  Tobias Burnus  <burnus@net-b.de>
687         PR fortran/54603
688         * trans-expr.c (gfc_trans_subcomponent_assign): Handle
689         proc-pointer components.
691 2012-09-17  Tobias Burnus  <burnus@net-b.de>
693         PR fortran/54599
694         * error.c (error_print): Move increment out of the assert.
695         * interface.c (gfc_compare_derived_types): Add assert.
696         (get_expr_storage_size): Remove always-true logical condition.
697         * resolve.c (resolve_allocate_expr): Fix looping logic.
698         * target-memory.c (gfc_target_expr_size): Add assert.
700 2012-09-16  Janus Weil  <janus@gcc.gnu.org>
702         PR fortran/54594
703         * resolve.c (get_checked_tb_operator_target): Add a reference to the
704         relevant quote from the F08 standard.
706 2012-09-16  Janus Weil  <janus@gcc.gnu.org>
708         PR fortran/54594
709         * interface.c (compare_type_rank): Handle CLASS arrays.
711 2012-09-16  Janus Weil  <janus@gcc.gnu.org>
713         PR fortran/54387
714         * expr.c (gfc_check_pointer_assign): Check for result of embracing
715         function.
717 2012-09-16  Tobias Burnus  <burnus@net-b.de>
719         * trans-decl.c (gfc_generate_function_code): Fix
720         gfc_option.coarray check.
721         * trans-stmt.c (compute_inner_temp_size): Fix handling
722         of gfc_option.rtcheck.
724 2012-09-16  Mikael Morin  <mikael@gcc.gnu.org>
726         * symbol.c (gfc_undo_symbols): Correctly undo namelists.
728 2012-09-15  Tobias Burnus  <burnus@net-b.de>
730         * trans-io.c (gfc_trans_transfer): Add an assert.
732 2012-09-15  Tobias Burnus  <burnus@net-b.de>
734         * arith.c (arith_power): Call gfc_free_expr in case of error.
735         * array.c (gfc_match_array_constructor): Initialize variable.
736         (gfc_resolve_character_array_constructor): Remove superfluous check.
737         (gfc_array_dimen_size): Add assert.
738         * check.c (numeric_check): Fix implicit typing.
739         * class.c (gfc_build_class_symbol): Add assert.
740         (finalize_component): Free memory.
741         * dump-parse-tree.c (show_namespace): Add assert.
742         * trans-io.c (transfer_namelist_element, transfer_expr): Avoid
743         memory leakage.
744         (gfc_trans_transfer): Add assert.
745         * trans.c (gfc_trans_runtime_check): Call va_end
747 2012-09-15  Tobias Burnus  <burnus@net-b.de>
749         * match.c (lock_unlock_statement, sync_statement): Fix potential
750         double freeing.
751         (sync_statement): Remove unreachable code.
752         * simplify.c (gfc_simplify_bessel_n2): Avoid double freeing.
753         (gfc_simplify_repeat): Remove bogus code.
754         * target-memory.h (gfc_target_encode_expr): Update prototype.
755         * target-memory.c (gfc_target_encode_expr, encode_array,
756         encode_derived): Return unsigned HOST_WIDE_INT.
757         (gfc_target_interpret_expr): Add assert.
758         (gfc_merge_initializers): Fix "== 0" check for mpz_t.
759         * symbol.c (gfc_get_typebound_proc): Add assert.
760         (gfc_merge_initializers): Remove unreachable check.
762 2012-09-13  Tobias Burnus  <burnus@net-b.de>
764         PR fortran/54556
765         * resolve.c (resolve_formal_arglist): Allow VALUE arguments
766         with implicit_pure.
767         (gfc_impure_variable): Don't check gfc_pure such that the
768         function also works for gfc_implicit_pure procedures.
770 2012-09-12  Tobias Burnus  <burnus@net-b.de>
772         PR fortran/54225
773         PR fortran/53306
774         * array.c (match_subscript, gfc_match_array_ref): Fix
775         diagnostic of coarray's '*'.
777 2012-09-07  Mikael Morin  <mikael@gcc.gnu.org>
779         PR fortran/54208
780         * simplify.c (simplify_bound_dim): Resolve array spec before
781         proceeding with simplification.
783 2012-09-06  Tobias Burnus  <burnus@net-b.de>
785         PR fortran/54463
786         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Fix matmul
787         call to BLAS if the default-kind has been promoted.
789 2012-09-05  Tobias Burnus  <burnus@net-b.de>
791         PR fortran/54462
792         * symbol.c (gfc_undo_symbols): Avoid NULL pointer dereference.
794 2012-09-04  Janus Weil  <janus@gcc.gnu.org>
796         PR fortran/54435
797         PR fortran/54443
798         * match.c (gfc_match_select_type): Make sure to only access CLASS_DATA
799         for BT_CLASS.
801 2012-09-03  Tobias Burnus  <burnus@net-b.de>
803         PR fortran/54467
804         * class.c (gfc_find_derived_vtab): Fix disabling of _final
805         by continuing to generate normal type-bound procedures.
807 2012-09-03  Tobias Burnus  <burnus@net-b.de>
809         * class.c (gfc_find_derived_vtab): Disable ABI-breaking
810         generation of the "_final" subroutine for now.
812 2012-09-03  Tobias Burnus  <burnus@net-b.de>
814         * class.c (finalize_component): Fixes to the comment.
816 2012-09-03  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
817             Tobias Burnus  <burnus@net-b.de>
819         PR fortran/37336
820         * gfortran.h (symbol_attribute): Add artificial.
821         * module.c (mio_symbol_attribute): Handle attr.artificial
822         * class.c (gfc_build_class_symbol): Defer creation of the vtab
823         if the DT has finalizers, mark generated symbols as
824         attr.artificial.
825         (has_finalizer_component, finalize_component,
826         finalization_scalarizer, generate_finalization_wrapper):
827         New static functions.
828         (gfc_find_derived_vtab): Add _final component and call
829         generate_finalization_wrapper.
830         * dump-parse-tree.c (show_f2k_derived): Use resolved
831         proc_tree->n.sym rather than unresolved proc_sym.
832         (show_attr): Handle attr.artificial.
833         * resolve.c (gfc_resolve_finalizers): Ensure that the vtab exists.
834         (resolve_fl_derived): Resolve finalizers before
835         generating the vtab.
836         (resolve_symbol): Also allow assumed-rank arrays with CONTIGUOUS;
837         skip artificial symbols.
838         (resolve_fl_derived0): Skip artificial symbols.
840 2012-09-02  Tobias Burnus  <burnus@net-b.de>
842         PR fortran/54426
843         * symbol.c (find_common_symtree): New function.
844         (gfc_undo_symbols): Use it; free common_head if needed.
846 2012-08-28  Tobias Burnus  <burnus@net-b.de>
848         PR fortran/54389
849         * trans-decl.c (gfc_get_extern_function_decl,
850         build_function_decl): Don't mark impure elemental
851         functions as DECL_PURE_P and honour implicit_pure.
853 2012-08-28  Tobias Burnus  <burnus@net-b.de>
855         PR fortran/54382
856         * error.c (show_locus): Avoid out of bound access.
858 2012-08-28  Tobias Burnus  <burnus@net-b.de>
860         PR fortran/54384
861         * decl.c (match_data_constant): Add missing gfc_free_expr.
862         (top_val_list): Remove always-true condition.
863         * data.c (get_array_index, create_character_initializer):
864         Free temporary expressions.
865         (gfc_assign_data_value): Free expression when aborting.
867 2012-08-28  Tobias Burnus  <burnus@net-b.de>
869         PR fortran/54384
870         * symbol.c (gfc_copy_formal_args): Set also sym->formal_ns.
872 2012-08-27  Tobias Burnus  <burnus@net-b.de>
874         PR fortran/54384
875         * resolve.c (gfc_resolve_character_operator): Free temporary
876         variables.
877         * trans-expr.c (gfc_conv_statement_function): Ditto.
879 2012-08-27  Tobias Burnus  <burnus@net-b.de>
881         PR fortran/54384
882         * dependency.c (check_section_vs_section): Use gfc_free_expr
883         instead of free.
884         * trans-intrinsic.c (conv_generic_with_optional_char_arg): Use
885         gfc_free_symbol instead of free.
887 2012-08-27  Tobias Burnus  <burnus@net-b.de>
889         PR fortran/54384
890         * trans-expr.c (gfc_trans_arrayfunc_assign): Free se.ss
891         and loop.
893 2012-08-27  Tobias Burnus  <burnus@net-b.de>
895         PR fortran/41093
896         * gfortran.h (gfc_common_head): Add "int refs".
897         * match.c (gfc_match_common): Increment refs.
898         * resolve.c (resolve_symbol): Only increment formal_ns->refs
899         if formal_ns is not sym->ns.
900         * symbol.c (gfc_free_symbol): Only free formal_ns if
901         if formal_ns is not sym->ns. Free common_block if refs is one.
902         (gfc_release_symbol): Release formal_ns only if the
903         symbol is not ENTRY of a module.
904         * decl.c (get_proc_name): Don't increment gfc_current_ns->refs.
905         * parse.c (parse_interface): Incement proc_unit->refs++ for
906         proc-pointer result variables.
907         * module.c (mio_symbol): Don't increase sym->refs for its
908         use in sym->formal_ns->proc_name.
910 2012-08-27  Tobias Burnus  <burnus@net-b.de>
912         PR fortran/54370
913         * trans-stmt.c (gfc_trans_do_while): Don't change the logical
914         kind for negation of the condition.
916 2012-08-27  Tobias Burnus  <burnus@net-b.de>
918         * options.c (set_Wall): Don't set for -Wcompare-reals.
919         * invoke.texi (-Wall, -Wcompare-reals): -Wall no longer
920         implies -Wcompare-reals.
922 2012-08-24  Simon Baldwin  <simonb@google.com>
924         * lang.opt (-cpp=): Mark flag NoDWARFRecord.
926 2012-08-23  Tobias Burnus  <burnus@net-b.de>
928         PR fortran/54350
929         * trans-array.c (free_ss_info): Free data.array.subscript.
930         (gfc_free_ss): No longer free data.array.subscript.
931         (walk_coarray): New function, moved from trans-intrinsic.c
932         (gfc_conv_expr_descriptor): Walk array descriptor instead
933         of taking passed "ss".
934         (get_array_ctor_all_strlen, gfc_add_loop_ss_code,
935         gfc_conv_array_parameter): Update call and cleanup ss handling.
936         * trans-array.h (gfc_conv_expr_descriptor,
937         gfc_conv_array_parameter): Update prototype.
938         * trans-expr.c (gfc_conv_derived_to_class,
939         conv_isocbinding_procedure, gfc_conv_procedure_call,
940         gfc_trans_alloc_subarray_assign, gfc_trans_subcomponent_assign,
941         gfc_trans_pointer_assignment, gfc_trans_arrayfunc_assign): Update
942         call to gfc_conv_expr_descriptor and gfc_conv_array_parameter, and
943         clean up.
944         * trans-intrinsic.c (walk_coarray): Moved to trans-array.c
945         (trans_this_image, trans_image_index, gfc_conv_intrinsic_rank
946         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_cobound,
947         gfc_conv_intrinsic_len, gfc_conv_intrinsic_size,
948         gfc_conv_intrinsic_sizeof, gfc_conv_intrinsic_storage_size,
949         gfc_conv_intrinsic_transfer, gfc_conv_allocated,
950         gfc_conv_associated, gfc_conv_intrinsic_loc,
951         conv_intrinsic_move_alloc): Update calls.
952         * trans-io.c (gfc_convert_array_to_string, set_internal_unit,
953         gfc_trans_transfer): Ditto.
954         * trans-stmt.c (gfc_conv_elemental_dependencies,
955         gfc_trans_sync, trans_associate_var,
956         gfc_trans_pointer_assign_need_temp): Ditto.
958 2012-08-23  Jakub Jelinek  <jakub@redhat.com>
960         * trans-decl.c (trans_function_start, generate_coarray_init,
961         create_main_function, gfc_generate_constructors): Call
962         allocate_struct_function instead of init_function_start.
964 2012-08-22  Tobias Burnus  <burnus@net-b.de>
966         * trans-expr.c (gfc_copy_class_to_class,
967         gfc_trans_arrayfunc_assign): Free loop and ss data.
968         * trans-intrinsic.c (gfc_trans_arrayfunc_assign): Free ss data.
970 2012-08-21  Tobias Burnus  <burnus@net-b.de>
972         * parse.c (parse_contained): Include EXEC_END_PROCEDURE
973         in ns->code to make sure the gfc_code is freed.
975 2012-08-20  Tobias Burnus  <burnus@net-b.de>
977         PR fortran/54301
978         * expr.c (gfc_check_pointer_assign): Warn when a pointer,
979         which is a function result, might outlive its target.
981 2012-08-20  Tobias Burnus  <burnus@net-b.de>
983         PR fortran/54301
984         * expr.c (gfc_check_pointer_assign): Warn when the pointer
985         might outlive its target.
986         * gfortran.h (struct gfc_option_t): Add warn_target_lifetime.
987         * options.c (gfc_init_options, set_wall, gfc_handle_option):
988         handle it.
989         * invoke.texi (-Wtarget-lifetime): Document it.
990         (-Wall): Implied it.
991         * lang.opt (-Wtarget-lifetime): New flag.
993 2012-08-19  Thomas König  <tkoenig@gcc.gnu.org>
995         PR fortran/54298
996         * gfortran.h (struct gfc_option_t): Add warn_compare_reals.
997         * lang.opt:  Add Wcompare-reals.
998         * invoke.texi:  Document -Wcompare-reals.
999         * resolve.c (resolve_operator):  If -Wcompare-reals is in effect,
1000         warn about equality/inequality comparisions for REAL and COMPLEX.
1001         * options.c (gfc_init_options):  Set warn_compare_reals.
1002         (set_Wall):  Include warn_compare_reals in Wall.
1003         (gfc_handle_option):  Handle Wcompare_reals.
1005 2012-08-17  Jakub Jelinek  <jakub@redhat.com>
1007         * array.c (gfc_match_array_ref): Fix up memset arguments.
1009 2012-08-16   Diego Novillo  <dnovillo@google.com>
1011         Revert
1013         PR bootstrap/54281
1014         * gfortran.h: Do not include gmp.h.
1016 2012-08-16   Diego Novillo  <dnovillo@google.com>
1018         PR bootstrap/54281
1019         * gfortran.h: Do not include gmp.h.
1021 2012-08-15  Janus Weil  <janus@gcc.gnu.org>
1023         PR fortran/54243
1024         PR fortran/54244
1025         * resolve.c (check_typebound_baseobject): Check for class_ok attribute.
1026         (resolve_procedure_interface,resolve_fl_derived0): Copy class_ok
1027         attribute.
1029 2012-08-14  Mikael Morin  <mikael@gcc.gnu.org>
1031         PR fortran/47586
1032         * trans-expr.c (expr_is_variable): Handle regular, procedure pointer,
1033         and typebound functions returning a data pointer.
1035 2012-08-14  Mikael Morin  <mikael@gcc.gnu.org>
1037         * decl.c (match_ppc_decl): Copy the procedure interface's symbol
1038         as procedure interface's result.
1040 2012-08-14  Mikael Morin  <mikael@gcc.gnu.org>
1042         * trans-expr.c (gfc_trans_scalar_assign): Rename argument,
1043         extend comment.
1045 2012-08-14  Mikael Morin  <mikael@gcc.gnu.org>
1047         * gfortran.h (gfc_get_proc_ptr_comp): New prototype.
1048         (gfc_is_proc_ptr_comp): Update prototype.
1049         * expr.c (gfc_get_proc_ptr_comp): New function based on the old
1050         gfc_is_proc_ptr_comp.
1051         (gfc_is_proc_ptr_comp): Call gfc_get_proc_ptr_comp.
1052         (gfc_specification_expr, gfc_check_pointer_assign): Use
1053         gfc_get_proc_ptr_comp.
1054         * trans-array.c (gfc_walk_function_expr): Likewise.
1055         * resolve.c (resolve_structure_cons, update_ppc_arglist,
1056         resolve_ppc_call, resolve_expr_ppc): Likewise.
1057         (resolve_function): Update call to gfc_is_proc_ptr_comp.
1058         * dump-parse-tree.c (show_expr): Likewise.
1059         * interface.c (compare_actual_formal): Likewise.
1060         * match.c (gfc_match_pointer_assignment): Likewise.
1061         * primary.c (gfc_match_varspec): Likewise.
1062         * trans-io.c (gfc_trans_transfer): Likewise.
1063         * trans-expr.c (gfc_conv_variable, conv_function_val,
1064         conv_isocbinding_procedure, gfc_conv_procedure_call,
1065         gfc_trans_pointer_assignment): Likewise.
1066         (gfc_conv_procedure_call, gfc_trans_array_func_assign):
1067         Use gfc_get_proc_ptr_comp.
1069 2012-08-14  Tobias Burnus  <burnus@net-b.de>
1071         PR fortran/40881
1072         * error.c (gfc_notify_std): Reset cur_error_buffer->flag flag
1073         when the error/warning has been printed.
1074         * gfortran.h (gfc_sl_type): Add ST_LABEL_DO_TARGET.
1075         * match.c (gfc_match_do): Use ST_LABEL_DO_TARGET.
1076         * parse.c (check_statement_label): Use ST_LABEL_DO_TARGET.
1077         (parse_executable): Add obsolescence check for DATA.
1078         * resolve.c (resolve_branch): Handle ST_LABEL_DO_TARGET.
1079         * symbol.c (gfc_define_st_label, gfc_reference_st_label):
1080         Add obsolescence diagnostics.
1081         * trans-stmt.c (gfc_trans_label_assign): Handle ST_LABEL_DO_TARGET.
1083 2012-08-14  Tobias Burnus  <burnus@net-b.de>
1085         PR fortran/54234
1086         * check.c (gfc_check_cmplx): Add -Wconversion warning
1087         when converting higher-precision REAL to default-precision
1088         CMPLX without kind= parameter.
1090 2012-08-12  Tobias Burnus  <burnus@net-b.de>
1092         PR fortran/54221
1093         * trans-decl.c (gfc_finish_var_decl, build_function_decl):
1094         Fix setting private module vars/procs as TREE_PUBLIC(...) = 0.
1096 2012-08-09  Tobias Burnus  <burnus@net-b.de>
1098         PR fortran/54199
1099         * intrinsic.c (gfc_warn_intrinsic_shadow): Better warning
1100         for internal procedures.
1102 2012-08-06  Janus Weil  <janus@gcc.gnu.org>
1104         PR fortran/35831
1105         * interface.c (check_result_characteristics): New function, which checks
1106         the characteristics of function results.
1107         (gfc_compare_interfaces,gfc_check_typebound_override): Call it.
1109 2012-08-02  Thomas König  <tkoenig@gcc.gnu.org>
1111          PR fortran/54033
1112          * scanner.c (add_path_to_list):  New argument warn.  Don't
1113          warn if it is true.
1114          (gfc_add_include_path):  Warn if directory is missing.
1115          (gfc_add_intrinsic_modules_path):  Do not warn if directory
1116          is missing.
1117          * optinons.c (gfc_handle_option):  Do not add directory
1118          for intrinsic modules to normal include path.
1120 2012-08-03  Mikael Morin  <mikael@gcc.gnu.org>
1122         PR fortran/54166
1123         * trans-array.c (set_loop_bounds): Access specinfo using spec_dim.
1125 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
1127         PR fortran/48820
1128         * trans-array.c (gfc_conv_ss_startstride): Set the intrinsic
1129         result's lower and upper bounds according to the rank.
1130         (set_loop_bounds): Set the loop upper bound in the intrinsic case.
1132 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
1134         * trans-array.c (set_loop_bounds): Allow non-array-section to be
1135         chosen using the stride and lower bound criteria.
1137 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
1139         * trans-array.c (set_loop_bounds): Remove useless dimension check.
1140         Don't update loopspec if it would loose the wanted stride criterion.
1142 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
1144         * trans-array.h (gfc_conv_descriptor_rank): New prototype.
1145         * trans-array.c (gfc_conv_descriptor_rank): New function moved and
1146         renamed ...
1147         * trans-intrinsic.c (get_rank_from_desc): ... from this one.
1148         (gfc_conv_intrinsic_rank, gfc_conv_intrinsic_bound,
1149         gfc_conv_associated): Also rename function calls.
1151 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
1153         * iresolve.c (resolve_bound, gfc_resolve_shape):
1154         Don't set the shape for assumed rank arrays.
1155         * simplify.c (gfc_simplify_shape): Don't try to simplify if the
1156         argument is assumed rank.
1158 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
1160         * array.c (gfc_copy_array_ref): Don't copy the offset field.
1161         * expr.c (find_array_section): Ignore the offset field.
1162         * trans-expr.c (gfc_find_interface_mapping_to_ref): Don't apply
1163         any interface mapping to the offset field.
1164         * gfortran.h (struct gfc_array_ref): Remove the offset field.
1166 2012-08-02  Janus Weil  <janus@gcc.gnu.org>
1168         PR fortran/54147
1169         * resolve.c (check_proc_interface): New routine for PROCEDURE interface
1170         checks.
1171         (resolve_procedure_interface,resolve_typebound_procedure,
1172         resolve_fl_derived0): Call it.
1174 2012-08-01  Thomas König  <tkoenig@gcc.gnu.org>
1176         PR fortran/54033
1177         * scanner.c (add_path_to_list): Emit warning if an error occurs
1178         for an include path, if it is not present or if it is not a
1179         directory.  Do not add the path in these cases.
1181 2012-07-31  Janus Weil  <janus@gcc.gnu.org>
1183         PR fortran/42418
1184         * decl.c (match_procedure_interface): Move some checks to
1185         'resolve_procedure_interface'. Set flavor if appropriate.
1186         * expr.c (gfc_check_pointer_assign): Cleanup of 'gfc_is_intrinsic'.
1187         * intrinsic.c (gfc_is_intrinsic): Additional checks for attributes which
1188         identify a procedure as being non-intrinsic.
1189         * resolve.c (resolve_procedure_interface): Checks moved here from
1190         'match_procedure_interface'. Minor cleanup.
1191         (resolve_formal_arglist,resolve_symbol): Cleanup of
1192         'resolve_procedure_interface'
1193         (resolve_actual_arglist,is_external_proc): Cleanup of
1194         'gfc_is_intrinsic'.
1196 2012-07-31  Janus Weil  <janus@gcc.gnu.org>
1198         PR fortran/54134
1199         * dependency.c (gfc_dep_compare_expr): Check if arguments are NULL.
1201 2012-07-31  Tobias Burnus  <burnus@net-b.de>
1203         * interface.c (gfc_procedure_use): Return gfc_try instead of void.
1204         * gfortran.h (gfc_procedure_use): Update prototype.
1205         * resolve.c (gfc_iso_c_func_interface): Allow noninteroperable
1206         procedures for c_funloc for TS29113.
1207         * (gfc_iso_c_sub_interface): Ditto for c_f_procpointer. Add
1208         diagnostic for c_ptr vs. c_funptr for c_f_(proc)pointer.
1210 2012-07-30  Janus Weil  <janus@gcc.gnu.org>
1212         PR fortran/51081
1213         * gfortran.h (gfc_resolve_intrinsic): Add prototype.
1214         * expr.c (gfc_check_pointer_assign): Set INTRINSIC attribute if needed.
1215         Check for invalid intrinsics.
1216         * primary.c (gfc_match_rvalue): Check for intrinsics came too early.
1217         Set procedure flavor if appropriate.
1218         * resolve.c (resolve_intrinsic): Renamed to gfc_resolve_intrinsic.
1219         (resolve_procedure_interface,resolve_procedure_expression,
1220         resolve_function,resolve_fl_derived0,resolve_symbol): Ditto.
1222 2012-07-26  Mikael Morin  <mikael@gcc.gnu.org>
1224         PR fortran/44354
1225         * trans-array.c (gfc_trans_array_constructor_value):
1226         Evaluate the iteration bounds before the inner variable shadows
1227         the outer.
1229 2012-07-26  Mikael Morin  <mikael@gcc.gnu.org>
1231         PR fortran/44354
1232         * array.c (sought_symbol): New variable.
1233         (expr_is_sought_symbol_ref, find_symbol_in_expr): New functions.
1234         (resolve_array_list): Check for references to the induction
1235         variable in the iteration bounds and issue a diagnostic if some
1236         are found.
1238 2012-07-26  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
1239             Tobias Burnus  <burnus@net-b.de>
1241         * module.c (mio_array_spec): Don't read as->lower for
1242         assumed-rank arrays.
1244 2012-07-25  Tobias Burnus  <burnus@net-b.de>
1246         * trans-types.c (gfc_real16_is_float128): Fix spelling
1247         in a comment.
1248         * trans.h (struct gfc_array_info): Ditto.
1249         * gfortran.h (gfc_expr): Ditto.
1250         * simplify.c (gfc_count): Ditto.
1251         * trans-expr.c (gfc_copy_class_to_class,
1252         conv_parent_component_references,
1253         gfc_trans_pointer_assignment): Ditto.
1254         * expr.c (check_pointer_assign): Fix diagnostic spelling.
1255         * interface.c (compare_parameter): Ditto.
1256         * parse.c (use_modules, parse_associate): Ditto.
1257         * decl.c (match_char_length): Fix spelling of the
1258         an function argument.
1260 2012-07-21  Tobias Burnus  <burnus@net-b.de>
1262         * iso-c-binding.def (C_PTRDIFF_T): New TS29113 parameter.
1263         * intrinsic.texi (ISO_C_BINDING): Document it.
1265 2012-07-21  Tobias Burnus  <burnus@net-b.de>
1267         PR fortran/48820
1268         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Support
1269         lbound/ubound with dim= for assumed-rank arrays.
1270         * array.c (gfc_set_array_spec): Reject coarrays with
1271         assumed shape.
1272         * decl.c (merge_array_spec): Ditto. Return gfc_try.
1273         (match_attr_spec, match_attr_spec): Update call.
1275 2012-07-21  Tobias Burnus  <burnus@net-b.de>
1277         * resolve.c (resolve_formal_arglist): Put variable
1278         declaration before the first assignment.
1280 2012-07-21  Tobias Burnus  <burnus@net-b.de>
1282         * trans-expr.c (gfc_conv_derived_to_class): Fix argument passed
1283         to class_array_data_assign.
1285 2012-07-20  Tobias Burnus  <burnus@net-b.de>
1287         * decl.c (gfc_verify_c_interop_param): Allow assumed-shape
1288         with -std=f2008ts.
1290 2012-07-20  Tobias Burnus  <burnus@net-b.de>
1292         PR fortran/48820
1293         * array.c (match_array_element_spec, gfc_match_array_spec,
1294         spec_size, gfc_array_dimen_size): Add support for
1295         assumed-rank arrays.
1296         * check.c (dim_rank_check): Ditto.
1297         * class.c (gfc_add_component_ref): Ditto.
1298         (gfc_build_class_symbol): Regard assumed-rank arrays
1299         as having GFC_MAX_DIMENSIONS. And build extra class
1300         container for a scalar pointer class.
1301         * decl.c (merge_array_spec): Add assert.
1302         * dump-parse-tree.c (show_array_spec): Add support for
1303         assumed-rank arrays.
1304         * expr.c (gfc_is_simply_contiguous): Ditto.
1305         * gfortran.h (array_type): Ditto.
1306         (gfc_array_spec, gfc_expr): Add comment to "rank" field.
1307         * interface.c (compare_type_rank, argument_rank_mismatch,
1308         compare_parameter, gfc_procedure_use): Ditto.
1309         (compare_actual_formal): Fix NULL() to optional-dummy
1310         handling for polymorphic dummies.
1311         * module.c (mio_typespec): Add support for
1312         assumed-rank arrays.
1313         * resolve.c (resolve_formal_arglist, resolve_actual_arglist,
1314         resolve_elemental_actual, resolve_global_procedure,
1315         expression_shape, resolve_variable, update_ppc_arglist,
1316         check_typebound_baseobject, gfc_resolve_expr,
1317         resolve_fl_var_and_proc, gfc_resolve_finalizers,
1318         resolve_typebound_procedure, resolve_symbol): Ditto.
1319         (assumed_type_expr_allowed): Remove static variable.
1320         (actual_arg, first_actual_arg): New static variables.
1321         * simplify.c (simplify_bound, gfc_simplify_range): Add
1322         support for assumed-rank arrays.
1323         * trans-array.c (gfc_conv_array_parameter): Ditto.
1324         (gfc_get_descriptor_dimension): New function, which returns
1325         the descriptor.
1326         (gfc_conv_descriptor_dimension): Use it.
1327         (gfc_conv_descriptor_stride_get, gfc_conv_array_parameter):
1328         Handle GFC_ARRAY_ASSUMED_RANK_CONT and AS_ASSUMED_RANK.
1329         * trans-array.h (gfc_get_descriptor_dimension): New prototype.
1330         * trans-decl. (gfc_build_dummy_array_decl,
1331         gfc_trans_deferred_vars, add_argument_checking): Add
1332         support for assumed-rank arrays.
1333         * trans-expr.c (gfc_conv_expr_present, gfc_conv_variable,
1334         gfc_conv_procedure_call): Ditto.
1335         (get_scalar_to_descriptor_type, class_array_data_assign,
1336         conv_scalar_to_descriptor): New static functions.
1337         (gfc_conv_derived_to_class, gfc_conv_class_to_class): Use
1338         them.
1339         * trans-intrinsic.c (get_rank_from_desc): New function.
1340         (gfc_conv_intrinsic_rank, gfc_conv_associated): Use it.
1341         * trans-types.c (gfc_array_descriptor_base_caf,
1342         gfc_array_descriptor_base): Make space for scalar array.
1343         (gfc_is_nodesc_array, gfc_is_nodesc_array,
1344         gfc_build_array_type, gfc_get_array_descriptor_base): Add
1345         support for assumed-rank arrays.
1346         * trans.h (gfc_array_kind): Add GFC_ARRAY_ASSUMED_RANK and
1347         GFC_ARRAY_ASSUMED_RANK_CONT.
1349 2012-07-19  Tobias Burnus  <burnus@net-b.de>
1351         * trans-expr.c (gfc_conv_procedure_call): Fix handling
1352         of polymorphic arguments.
1353         * resolve.c (resolve_formal_arglist): Ditto, mark polymorphic
1354         assumed-shape arrays as such.
1356 2012-07-19  Tobias Burnus  <burnus@net-b.de>
1358         * interface.c (compare_parameter, compare_actual_formal): Fix
1359         handling of polymorphic arguments.
1361 2012-07-17  Janus Weil  <janus@gcc.gnu.org>
1363         PR fortran/51081
1364         * error.c (gfc_notify_std): Automatically print the relevant Fortran
1365         standard version.
1366         * arith.c (arith_power): Remove explicit standard reference string.
1367         * array.c (gfc_match_array_spec, gfc_match_array_constructor): Ditto.
1368         * check.c (gfc_check_a_p, gfc_check_besn, gfc_check_count,
1369         gfc_check_float, gfc_check_fn_rc2008, gfc_check_iand,
1370         gfc_check_ichar_iachar, gfc_check_ieor, gfc_check_index, gfc_check_ior,
1371         gfc_check_lbound, gfc_check_len_lentrim, check_rest, gfc_check_min_max,
1372         gfc_check_null, gfc_check_scan, gfc_check_selected_real_kind,
1373         gfc_check_shape, gfc_check_size, gfc_check_sngl, gfc_check_ubound,
1374         gfc_check_verify): Ditto.
1375         * data.c (gfc_assign_data_value): Ditto.
1376         * decl.c (var_element, char_len_param_value, match_char_length,
1377         gfc_verify_c_interop_param, match_pointer_init, variable_decl,
1378         gfc_match_decl_type_spec, gfc_match_import, match_attr_spec,
1379         gfc_match_prefix, gfc_match_suffix, match_ppc_decl,
1380         match_procedure_in_interface, gfc_match_procedure,gfc_match_entry,
1381         gfc_match_subroutine, gfc_match_end, gfc_match_codimension,
1382         gfc_match_protected, gfc_match_value, gfc_match_volatile,
1383         gfc_match_asynchronous, gfc_match_modproc, gfc_get_type_attr_spec,
1384         gfc_match_enum, match_procedure_in_type): Ditto.
1385         * expr.c (check_elemental, gfc_check_assign, gfc_check_pointer_assign):
1386         Ditto.
1387         * interface.c (gfc_match_abstract_interface, check_interface0): Ditto.
1388         * intrinsic.c (gfc_intrinsic_func_interface): Ditto.
1389         * io.c (format_lex, resolve_tag_format, resolve_tag,
1390         compare_to_allowed_values, gfc_match_open, gfc_match_rewind,
1391         gfc_resolve_dt, gfc_match_wait): Ditto.
1392         * match.c (match_arithmetic_if, gfc_match_if, gfc_match_critical,
1393         gfc_match_do, match_exit_cycle, gfc_match_pause, gfc_match_stop,
1394         gfc_match_lock, sync_statement, gfc_match_assign, gfc_match_goto,
1395         gfc_match_allocate, gfc_match_return, gfc_match_st_function): Ditto.
1396         * module.c (gfc_match_use, gfc_use_module): Ditto.
1397         * parse.c (parse_derived_contains, parse_block_construct,
1398         parse_associate, parse_contained): Ditto.
1399         * primary.c (match_hollerith_constant, match_boz_constant,
1400         match_real_constant, match_sym_complex_part, match_arg_list_function,
1401         build_actual_constructor, gfc_convert_to_structure_constructor): Ditto.
1402         * resolve.c (resolve_formal_arglist, resolve_entries,
1403         resolve_common_blocks, resolve_actual_arglist, gfc_resolve_index_1,
1404         gfc_resolve_iterator_expr, resolve_ordinary_assign,
1405         resolve_fl_var_and_proc, resolve_fl_variable_derived,
1406         resolve_fl_procedure, resolve_fl_derived0, resolve_fl_derived,
1407         resolve_fl_namelist, resolve_symbol, resolve_fntype): Ditto.
1408         * symbol.c (check_conflict, conflict, gfc_add_is_bind_c,
1409         gfc_add_extension, gfc_check_symbol_typed): Ditto.
1411 2012-07-17  Tobias Burnus  <burnus@net-b.de>
1413         PR fortran/53985
1414         * decl.c (gfc_verify_c_interop_param): Make warning conditional
1415         on -Wc-binding-type works and improve the wording.
1417 2012-07-17  Tobias Burnus  <burnus@net-b.de>
1419         PR fortran/52101
1420         * decl.c (match_char_length): Extra argument, show obsolenscent
1421         warning only if *length is used after the typename.
1422         (variable_decl, gfc_match_char_spec): Update call
1424 2012-07-17  Tobias Burnus  <burnus@net-b.de>
1425             Steven G. Kargl  <kargl@gcc.gnu.org>
1427         PR fortran/49265
1428         * decl.c (match_procedure_in_interface): Support "::" for
1429         Fortran 2008 and later.
1431 2012-07-16  Thomas König  <tkoenig@gcc.gnu.org>
1433         PR fortran/53824
1434         * resolve.c (resolve_allocate_deallocate):  If both
1435         start indices are NULL, skip the test for equality.
1437 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
1439         * f95-lang.c: Include dumpfile.h instead of tree-dump.h.
1440         * Make-lang.in: Fix dependencies.
1442 2012-07-16  Janus Weil  <janus@gcc.gnu.org>
1444         PR fortran/53956
1445         * gfortran.h (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Modified
1446         prototypes.
1447         * symbol.c (gfc_copy_formal_args): New argument 'if_src'. Copy if_source
1448         of dummy procedures.
1449         (gfc_copy_formal_args_ppc): Ditto.
1450         * resolve.c (resolve_procedure_interface): Pass IFSRC_DECL to
1451         gfc_copy_formal_args.
1452         (resolve_fl_derived0): Pass IFSRC_DECL to gfc_copy_formal_args_ppc.
1454 2012-07-12  Tobias Burnus  <burnus@net-b.de>
1456         * trans-expr.c (conv_isocbinding_procedure): Generate c_f_pointer code
1457         inline.
1459 2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>
1461         * trans.c: Do not include defaults.h.
1462         * trans-intrinsic.c: Likewise.
1464 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
1466         * gfortran.h: Do not include coretypes.h here.
1467         Make it an error to include this before coretypes.h
1468         * openmp.c: Include coretypes.h.
1469         * interface.c: Likewise.
1470         * intrinsic.c: Likewise.
1471         * symbol.c: Likewise.
1472         * class.c: Likewise.
1473         * decl.c: Likewise.
1474         * matchexp.c: Likewise.
1475         * dump-parse-tree.c: Likewise.
1476         * array.c: Likewise.
1477         * constructor.c: Likewise.
1478         * error.c: Likewise.
1479         * data.c: Likewise.
1480         * expr.c: Likewise.
1481         * module.c: Likewise.
1482         * scanner.c: Likewise.
1483         * bbt.c: Likewise.
1484         * io.c: Likewise.
1485         * frontend-passes.c: Likewise.
1486         * resolve.c: Likewise.
1487         * st.c: Likewise.
1488         * target-memory.c: Likewise.
1489         * match.c: Likewise.
1490         * arith.c: Likewise.
1491         * parse.c: Likewise.
1492         * check.c: Likewise.
1493         * dependency.c: Likewise.
1494         * primary.c: Likewise.
1495         * misc.c: Likewise.
1496         * simplify.c: Likewise.
1498 2012-07-05  Mikael Morin  <mikael@gcc.gnu.org>
1500         PR fortran/53732
1501         * trans-array.c (gfc_add_loop_ss_code): Disable self recursive calls
1502         handling nested loop(s) if the subscript flag is true.
1504 2012-07-05  Uros Bizjak  <ubizjak@gmail.com>
1506         PR fortran/53449
1507         * parse.c (gfc_parse_file): Initialize errors_before.
1509 2012-06-27  Janus Weil  <janus@gcc.gnu.org>
1511         PR fortran/41951
1512         PR fortran/49591
1513         * interface.c (check_new_interface): Rename, add 'loc' argument,
1514         make non-static.
1515         (gfc_add_interface): Rename 'check_new_interface'
1516         * gfortran.h (gfc_check_new_interface): Add prototype.
1517         * resolve.c (resolve_typebound_intrinsic_op): Add typebound operator
1518         targets to non-typebound operator list.
1520 2012-06-22  Janus Weil  <janus@gcc.gnu.org>
1522         PR fortran/47710
1523         PR fortran/53328
1524         * interface.c (count_types_test, generic_correspondence,
1525         gfc_compare_interfaces): Ignore PASS arguments.
1526         (check_interface1, compare_parameter): Pass NULL arguments to
1527         gfc_compare_interfaces.
1528         * gfortran.h (gfc_compare_interfaces): Modified prototype.
1529         * expr.c (gfc_check_pointer_assign): Pass NULL arguments to
1530         gfc_compare_interfaces.
1531         * resolve.c (resolve_structure_cons): Ditto.
1532         (check_generic_tbp_ambiguity): Determine PASS arguments and pass them
1533         to gfc_compare_interfaces.
1535 2012-06-21  Janne Blomqvist  <jb@gcc.gnu.org>
1537         PR fortran/39654
1538         * iresolve.c (gfc_resolve_ftell): Fix result kind and use new
1539         library function.
1541 2012-06-18  Tobias Burnus  <burnus@net-b.de>
1543         * intrinsic.h (gfc_resolve_rank): New prototype.
1544         * intrinsic.c (add_functions): Use gfc_resolve_rank.
1545         * iresolve.c (add_functions): New function.
1546         * trans-intrinsic.c (gfc_conv_intrinsic_rank): New function.
1547         (gfc_conv_intrinsic_function): Call it.
1549 2012-06-18  Tobias Burnus  <burnus@net-b.de>
1551         PR fortran/53692
1552         * trans-array.c (set_loop_bounds): Don't scalarize via absent
1553         optional arrays.
1554         * resolve.c (resolve_elemental_actual): Don't stop resolving after printing
1555         a warning.
1557 2012-06-18  Tobias Burnus  <burnus@net-b.de>
1559         PR fortran/53526
1560         * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle coarrays.
1562 2012-06-18  Tobias Burnus  <burnus@net-b.de>
1564         PR fortran/53526
1565         * check.c (gfc_check_move_alloc): Reject coindexed actual arguments
1566         and those with different corank.
1568 2012-06-17  Tobias Burnus  <burnus@net-b.de>
1570         PR fortran/53691
1571         PR fortran/53685
1572         * check.c (gfc_calculate_transfer_sizes): Return if
1573         SIZE= is not constant or source-size cannot be determined.
1575 2012-06-16  Tobias Burnus  <burnus@net-b.de>
1577         PR fortran/53642
1578         PR fortran/45170
1579         * frontend-passes.c (optimize_assignment): Don't remove RHS's
1580         trim when assigning to a deferred-length string.
1581         * trans-expr.c (gfc_trans_assignment_1): Ensure that the RHS string
1582         length is evaluated before the deferred-length LHS is reallocated.
1584 2012-06-13  Tobias Burnus  <burnus@net-b.de>
1586         PR fortran/53643
1587         * trans-decl.c (init_intent_out_dt): Fix for polymorphic arrays.
1588         * trans-array.c (structure_alloc_comps): Don't loop for
1589         scalar coarrays.
1591 2012-06-13  Tobias Burnus  <burnus@net-b.de>
1593         PR fortran/53597
1594         * decl.c (match_attr_spec): Only mark module variables
1595         as SAVE_IMPLICIT for Fortran 2008 and later.
1597 2012-06-08  Janus Weil  <janus@gcc.gnu.org>
1599         PR fortran/52552
1600         * match.c (gfc_match_allocate): Modify order of checks. Change wording
1601         of error message. Remove FIXME note.
1602         * resolve.c (resolve_allocate_expr): Add a comment.
1604 2012-06-07  Thomas König  <tkoenig@gcc.gnu.org>
1606         PR fortran/52861
1607         * frontend-passes.c (optimize_assignment):  Don't set the
1608         length of an empty string for deferred-length character
1609         variables.
1611 2012-06-07  Thomas König  <tkoenig@gcc.gnu.org>
1613         PR fortran/52861
1614         * frontend-passes.c (empty_string):  Add prototype.
1615         (optimize_assignment):  Set the length of an empty string
1616         constant to zero.
1618 2012-06-04  Tobias Burnus  <burnus@net-b.de>
1620         PR fortran/50619
1621         * resolve.c (build_default_init_expr): Don't initialize
1622         ASSOCIATE names.
1624 2012-06-03  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
1625             Tobias Burnus  <burnus@net-b.de>
1627         PR fortran/48831
1628         * gfortran.h (gfc_check_init_expr): Add prototype declaration
1629         of function.
1630         * check.c (kind_check): Change if condition to use
1631         to gfc_check_init_expr.
1632         * expr.c (check_init_expr): Remove forward declaration
1633         and static keyword. Change name in gfc_check_init_expr.
1634         (scalarize_intrinsic_call, check_init_expr_arguments,
1635         check_inquiry, check_conversion, gfc_reduce_init_expr): Update
1636         call to gfc_check_init_expr.
1638 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
1640         * trans-common.c: Do not include output.h.
1641         * trans-decl.c: Likewise.
1643 2012-05-31  Tobias Burnus  <burnus@net-b.de>
1645         PR fortran/53521
1646         * trans.c (gfc_deallocate_scalar_with_status): Properly
1647         handle the case size == 0.
1649 2012-05-30  Tobias Burnus  <burnus@net-b.de>
1651         PR c/53502
1652         * decl.c (match_attr_spec): Remove "typedef".
1654 2012-05-30  Tobias Burnus  <burnus@net-b.de>
1656         * decl.c: Fix comment typos.
1657         * expr.c: Ditto.
1658         * frontend-passes.c: Ditto.
1659         * match.c: Ditto.
1660         * resolve.c: Ditto.
1661         * trans-array.c: Ditto.
1662         * trans-common.c: Ditto.
1663         * trans-intrinsic.c: Ditto.
1664         * trans-types.c: Ditto.
1666 2012-05-23  Tobias Burnus  <burnus@net-b.de>
1668         PR fortran/51055
1669         PR fortran/45170
1670         * match.c (gfc_match_allocate): Set length_from_typespec
1671         for characters.
1672         * resolve.c (resolve_charlen): If set, don't check whether
1673         the len is a specification expression.
1675 2012-05-22  Tobias Burnus  <burnus@net-b.de>
1677         PR fortran/53389
1678         * trans-array.c (gfc_add_loop_ss_code): Don't evaluate expression, if
1679         ss->is_alloc_lhs is set.
1681 2012-05-22  Dodji Seketeli  <dodji@redhat.com>
1683         PR c++/53322
1684         * f95-lang.c (gfc_init_builtin_functions): Remove the unused
1685         typedef builtin_type.
1687 2012-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
1689         PR fortran/52428
1690         * gfortran.texi: Update _gfortran_set_options documentation.
1691         * invoke.texi: Remove runtime behavior description of
1692         -fno-range-check.
1693         * trans-decl.c (create_main_function): Don't pass the range-check
1694         setting to the library.
1696 2012-05-14  Tobias Burnus  <burnus@net-b.de>
1698         PR fortran/49110
1699         PR fortran/51055
1700         PR fortran/53329
1701         * trans-expr.c (gfc_trans_assignment_1): Fix allocation
1702         handling for assignment of function results to allocatable
1703         deferred-length strings.
1704         * trans-decl.c (gfc_create_string_length): For deferred-length
1705         module variables, include module name in the assembler name.
1706         (gfc_get_symbol_decl): Don't override the assembler name.
1708 2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1710         PR 53063
1711         * options.c (gfc_handle_option): Call lang-specific generated function.
1713 2012-05-13  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
1714             Tobias Burnus  <burnus@net-b.de>
1716         PR fortran/52158
1717         PR fortran/45170
1718         PR fortran/49430
1719         * resolve.c (resolve_fl_derived0): Deferred character length
1720         procedure components are supported.
1721         * trans-expr.c (gfc_conv_procedure_call): Handle TBP with
1722         deferred-length results.
1723         (gfc_string_to_single_character): Add a new check to prevent
1724         NULL read.
1725         (gfc_conv_procedure_call): Remove unuseful checks on
1726         symbol's attributes. Add new checks to prevent NULL read on
1727         string length.
1729 2012-05-12  Tobias Burnus  <burnus@net-b.de>
1731         PR fortran/49110
1732         PR fortran/52843
1733         * resolve.c (resolve_fl_procedure): Don't regard
1734         character(len=:) as character(*) in the diagnostic.
1736 2012-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
1738         PR fortran/52537
1739         * frontend-passes.c (optimize_op):  Change
1740         old-style comparison operators to new-style, simplify
1741         switch as a result.
1742         (empty_string):  New function.
1743         (get_len_trim_call):  New function.
1744         (optimize_comparison):  If comparing to an empty string,
1745         use comparison of len_trim to zero.
1746         Use new-style comparison operators only.
1747         (optimize_trim):  Use get_len_trim_call.
1749 2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1751         PR 53063
1752         * options.c: Include diagnostics.h instead of
1753         diagnostics-core.h.
1754         (set_Wall): Do not see warn_unused here.
1755         (gfc_handle_option): Set it here using handle_generated_option.
1757 2012-05-08  Jan Hubicka  <jh@suse.cz>
1759         * trans-common.c (create_common): Do not fake TREE_ASM_WRITTEN.
1760         * trans-decl.c (gfc_finish_cray_pointee): Likewise.
1762 2012-05-07  Tobias Burnus  <burnus@net-b.de>
1764         PR fortran/53255
1765         * resolve.c (resolve_typebound_static): Fix handling
1766         of overridden specific to generic operator.
1768 2012-05-06  Tobias Burnus  <burnus@net-b.de>
1770         PR fortran/41587
1771         * decl.c (build_struct): Don't ignore FAILED status.
1773 2012-05-05  Paul Thomas  <pault@gcc.gnu.org>
1775         PR fortran/41600
1776         * trans-array.c (build_array_ref): New static function.
1777         (gfc_conv_array_ref, gfc_get_dataptr_offset): Call it.
1778         * trans-expr.c (gfc_get_vptr_from_expr): New function.
1779         (gfc_conv_derived_to_class): Add a new argument for a caller
1780         supplied vptr and use it if it is not NULL.
1781         (gfc_conv_procedure_call): Add NULL to call to above.
1782         symbol.c (gfc_is_associate_pointer): Return true if symbol is
1783         a class object.
1784         * trans-stmt.c (trans_associate_var): Handle class associate-
1785         names.
1786         * expr.c (gfc_get_variable_expr): Supply the array-spec if
1787         possible.
1788         * trans-types.c (gfc_typenode_for_spec): Set GFC_CLASS_TYPE_P
1789         for class types.
1790         * trans.h : Add prototypes for gfc_get_vptr_from_expr and
1791         gfc_conv_derived_to_class. Define GFC_CLASS_TYPE_P.
1792         * resolve.c (resolve_variable): For class arrays, ensure that
1793         the target expression has all the necessary _data references.
1794         (resolve_assoc_var): Throw a "not yet implemented" error for
1795         class array selectors that need a temporary.
1796         * match.c (copy_ts_from_selector_to_associate,
1797         select_derived_set_tmp, select_class_set_tmp): New functions.
1798         (select_type_set_tmp): Call one of last two new functions.
1799         (gfc_match_select_type): Copy_ts_from_selector_to_associate is
1800         called if associate-name is typed.
1802         PR fortran/53191
1803         * resolve.c (resolve_ref): C614 applied to class expressions.
1805 2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>
1807         PR fortran/49010
1808         PR fortran/24518
1809         * intrinsic.texi (MOD, MODULO): Mention sign and magnitude of result.
1810         * simplify.c (gfc_simplify_mod): Use mpfr_fmod.
1811         (gfc_simplify_modulo): Likewise, use copysign to fix the result if
1812         zero.
1813         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Remove fallback as
1814         builtin_fmod is always available. For modulo, call copysign to fix
1815         the result when signed zeros are enabled.
1817 2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>
1819         * gfortran.texi (GFORTRAN_TMPDIR): Rename to TMPDIR, explain
1820         algorithm for choosing temp directory.
1822 2012-05-04  Tobias Burnus  <burnus@net-b.de>
1824         PR fortran/53175
1825         * resolve.c (resolve_variable): Set public_used
1826         if a private module variable is used in a (public)
1827         specification expression.
1828         * trans-decl.c (gfc_finish_var_decl): Mark those
1829         TREE_PUBLIC.
1831 2012-05-04  Tobias Burnus  <burnus@net-b.de>
1833         PR fortran/53111
1834         * resolve.c (resolve_fl_derived): Fix -std=f95
1835         diagnostic for generic vs. DT names.
1837 2012-05-03  Tobias Burnus  <burnus@net-b.de>
1839         PR fortran/52864
1840         * interface.c (compare_parameter_intent): Remove.
1841         (check_intents): Remove call, handle CLASS pointer.
1842         (compare_actual_formal): Handle CLASS pointer.
1844 2012-04-30  Jan Hubicka  <jh@suse.cz>
1846         * f95-lang.c (gfc_finish): Update comments.
1848 2012-04-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1850         PR fortran/53148
1851         * frontend-passes.c (create_var):  If the statement has a label,
1852         put the label around the block.
1854 2012-04-25  Tobias Burnus  <burnus@net-b.de>
1856         PR fortran/52196
1857         * lang.opt (Wrealloc-lhs, Wrealloc-lhs-all): New flags.
1858         * gfortran.h (gfc_option_t): Add them.
1859         * options.c (gfc_init_options, gfc_post_options,
1860         gfc_handle_option): Handle them.
1861         * invoke.texi: Document them.
1862         * trans-expr.c (realloc_lhs_warning): New function.
1863         (gfc_trans_arrayfunc_assign,
1864         alloc_scalar_allocatable_for_assignment,
1865         gfc_trans_assignment_1): Use it.
1867 2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>
1869         * trans-decl.c (gfc_trans_entry_master_switch): Build SWITCH_EXPR
1870         with NULL_TREE type instead of void_type_node.
1871         * trans-io.c (io_result): Likewise.
1872         * trans-stmt.c (gfc_trans_integer_select,
1873         gfc_trans_character_select): Likewise.
1875 2012-04-16  Tobias Burnus  <burnus@net-b.de>
1877         PR fortran/52864
1878         * expr.c (gfc_check_vardef_context): Fix assignment check for
1879         pointer components.
1881 2012-04-16  Janus Weil  <janus@gcc.gnu.org>
1883         PR fortran/52968
1884         * class.c (gfc_build_class_symbol): Make sure the 'f2k_derived'
1885         namespace is present.
1887 2012-04-15  Janus Weil  <janus@gcc.gnu.org>
1889         PR fortran/51082
1890         * trans-expr.c (gfc_conv_expr_reference): Check if the expression is a
1891         simple function call (or a more involved PPC reference).
1893 2012-04-15  Tobias Burnus  <burnus@net-b.de>
1895         PR fortran/52916
1896         PR fortran/40973
1897         * gfortran.h (symbol_attribute): Add public_used.
1898         * interface.c (check_sym_interfaces, check_uop_interfaces,
1899         gfc_check_interfaces): Set it.
1900         * resolve.c (resolve_typebound_procedure): Ditto.
1901         * trans-decl.c (build_function_decl): Use it.
1903 2012-04-11  Tobias Burnus  <burnus@net-b.de>
1905         PR fortran/52729
1906         * resolve.c (resolve_symbol): Fix searching for parent NS decl.
1908 2012-04-08  Tobias Burnus  <burnus@net-b.de>
1910         PR fortran/52751
1911         * trans-decl.c (gfc_finish_var_decl): Don't set TREE_PUBLIC
1912         for PRIVATE module variables without C-binding label.
1914         PR fortran/40973
1915         * trans-decl.c (build_function_decl): Ditto for procedures.
1917 2012-04-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
1919         PR fortran/52893
1920         * frontend-passes.c:  Keep track of wether we are in an implicit
1921         DO loop; do not do function elimination if we are.
1923 2012-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1925         PR fortran/52668
1926         * module.c:  Only mark symbols as use_only if they have been
1927         imported via an only list.
1929 2012-03-28  Paul Thomas  <pault@gcc.gnu.org>
1930         Tobias Burnus  <burnus@gcc.gnu.org>
1932         PR fortran/52652
1933         * match.c (gfc_match_allocate, gfc_match_deallocate): Change
1934         "not.. or" to "neither.. nor".
1935         * parse.c (decode_specification_statement): Correct error in
1936         chpice of matching function for "allocatable".
1938 2012-03-23  Janne Blomqvist  <jb@gcc.gnu.org>
1940         * gfortran.h (GFC_MAX_LINE): Remove unused macro.
1942 2012-03-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1944         PR fortran/52559
1945         * error.c (gfc_widechar_display_length): Consider tabs as
1946         one character wide, as they're displayed as spaces.
1947         (show_locus): Move tab handling to...
1948         (print_wide_char_into_buffer): ... here.
1950 2012-03-17  Tobias Burnus  <burnus@net-b.de>
1952         PR fortran/52585
1953         * trans-intrinsic.c (gfc_conv_associated): Fix handling of
1954         procpointer dummy arguments.
1956 2012-03-16  Janne Blomqvist  <jb@gcc.gnu.org>
1958         * trans-intrinsic.c (build_round_expr): Don't use BUILT_IN_IROUND
1959         for __float128.
1961 2012-03-15  Janne Blomqvist  <jb@gcc.gnu.org>
1963         * f95-lang.c (gfc_init_builtin_functions): Initialize
1964         BUILT_IN_IROUND.
1965         * mathbuiltins.def: Add IROUND.
1966         * trans-intrinsic.c (build_round_expr): Use BUILT_IN_IROUND if
1967         type size matches.
1968         (gfc_build_intrinsic_lib_fndecls): Build iround functions.
1970 2012-03-12  Richard Guenther  <rguenther@suse.de>
1972         * f95-lang.c (builtin_type_for_size): Use gfc_type_for_size.
1974 2012-03-12  Tobias Burnus  <burnus@net-b.de>
1976         PR fortran/52542
1977         * decl.c (match_procedure_decl): If the interface
1978         is bind(C), the procedure is as well.
1980 2012-03-10  Steven Bosscher  <steven@gcc.gnu.org>
1982         * convert.c (convert): Fold BOOLEAN_TYPE types to the proper variant.
1984 2012-03-09  Steven Bosscher  <steven@gcc.gnu.org>
1986         * Make-lang.in (convert.o): Depend on convert.h.
1987         * convert.c: Header and comment cleanups.
1988         (gfc_thruthvalue_conversion): Rename static function
1989         to truthvalue_conversion.  Do not use 'internal_error' from here,
1990         use 'gcc_unreachable' instead.
1991         (convert): Do not use 'error' for conversions to void, use
1992         'gcc_unreachable' instead.  Likewise for conversions to non-scalar
1993         types.  Do not hanlde ENUMERAL_TYPE, the front end never creates them.
1994         Clean up #if 0 code.
1996 2012-03-08  Tobias Burnus  <burnus@net-b.de>
1998         PR fortran/52469
1999         * trans-types.c (gfc_get_function_type): Handle backend_decl
2000         of a procedure pointer.
2002 2012-03-06  Steven Bosscher  <steven@gcc.gnu.org>
2004         * f95-lang.c (yyerror, yylex): Remove.
2005         (clear_binding_stack): Remove, fold into its only user.
2006         (LANG_HOOKS_PRINT_IDENTIFIER): Do not re-define.
2007         (ridpointers): Remove.
2008         (gfc_eh_initialized_p): Make static.
2009         (gfc_truthvalue_conversion): Move to convert.c.
2010         (gfc_be_parse_file): Clear binding level stack when done.
2011         (gfc_print_identifier): Remove.
2012         (pushlevel): Remove ignored 'ignore' argument.  Update all callers.
2013         (poplevel): Remove unused 'reverse' argument.  Update all callers.
2014         (ggc_p): Remove.
2015         (gfc_builtin_function): Make static. Do not attempt to make RTL for
2016         builtin functions.
2017         * convert.c (gfc_truthvalue_conversion): Moved here from f95-lang.c,
2018         and made static.
2019         * trans.h (pushlevel, poplevel): Adjust prototypes.
2020         (gfc_truthvalue_conversion, gfc_builtin_function): Remove prototypes.
2021         * trans-openmp.c: Update calls to pushlevel and poplevel.
2022         * trans.c: Likewise.
2023         * trans-decl.c: Likewise.
2025 2012-03-04  Mikael Morin  <mikael@gcc.gnu.org>
2027         PR fortran/50981
2028         * gfortran.h (gfc_is_class_container_ref): New prototype.
2029         * class.c (gfc_is_class_container_ref): New function.
2030         * trans-expr.c (gfc_conv_procedure_call): Add a "_data" component
2031         reference to polymorphic actual arguments.
2033 2012-03-04  Mikael Morin  <mikael@gcc.gnu.org>
2035         PR fortran/50981
2036         * trans-expr.c (gfc_conv_procedure_call): Save se->ss's value.
2037         Handle the case of unallocated arrays passed to elemental procedures.
2039 2012-03-04  Mikael Morin  <mikael@gcc.gnu.org>
2041         * trans.h (struct gfc_ss_info): Move can_be_null_ref component from
2042         the data::scalar subcomponent to the toplevel.
2043         * trans-expr.c (gfc_conv_expr): Update component reference.
2044         * trans-array.c (gfc_add_loop_ss_code): Ditto.
2045         (gfc_walk_elemental_function_args): Ditto.  Move the conditional setting
2046         the field out of the scalar-only block.
2048 2012-03-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2050         PR fortran/36160
2051         * error.c (gfc_widechar_display_length, gfc_wide_display_length):
2052         New functions.
2053         (print_wide_char_into_buffer): Return length written.
2054         (show_locus): Fix locus displayed when wide characters are present.
2056 2012-03-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2058         * module.c (gfc_use_module): Improve error message some more.
2060 2012-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2062         PR fortran/52313
2063         * module.c (gfc_use_module): Improve error messages.
2065 2012-03-03  Tobias Burnus  <burnus@net-b.de>
2067         PR fortran/48820
2068         * resolve.c (resolve_actual_arglist): Properly reset
2069         assumed_type_expr_allowed.
2071 2012-03-03  Tobias Burnus  <burnus@net-b.de>
2073         * lang.opt (Wc-binding-type): New flag.
2074         * options.c (gfc_init_options, gfc_handle_option): Handle it.
2075         * invoke.texi (Wc-binding-type): Document it.
2076         * gfortran.h (gfc_option_t): Add warn_c_binding_type.
2077         * decl.c (verify_bind_c_sym): Handle -Wc-binding-type.
2078         * symbol.c (gfc_set_default_type, verify_bind_c_derived_type):
2079         Ditto.
2081 2012-03-03  Tobias Burnus  <burnus@net-b.de>
2083         PR fortran/48820
2084         * decl.c (gfc_match_decl_type_spec): Support type(*).
2085         (gfc_verify_c_interop): Allow type(*).
2086         * dump-parse-tree.c (show_typespec): Handle type(*).
2087         * expr.c (gfc_copy_expr): Ditto.
2088         * interface.c (compare_type_rank, compare_parameter,
2089         compare_actual_formal, gfc_procedure_use): Ditto.
2090         * libgfortran.h (bt): Add BT_ASSUMED.
2091         * misc.c (gfc_basic_typename, gfc_typename): Handle type(*).
2092         * module.c (bt_types): Ditto.
2093         * resolve.c (assumed_type_expr_allowed): New static variable.
2094         (resolve_actual_arglist, resolve_variable, resolve_symbol):
2095         Handle type(*).
2096         * trans-expr.c (gfc_conv_procedure_call): Ditto.
2097         * trans-types.c (gfc_typenode_for_spec, gfc_get_dtype): Ditto.
2099 2012-03-02  Tobias Burnus  <burnus@net-b.de>
2101         PR fortran/52325
2102         * primary.c (gfc_match_varspec): Add missing ;.
2104 2012-03-02  Tobias Burnus  <burnus@net-b.de>
2106         PR fortran/52325
2107         * primary.c (gfc_match_varspec): Add diagnostic for % with
2108         nonderived types.
2110 2012-03-02  Tobias Burnus  <burnus@net-b.de>
2112         PR fortran/52270
2113         * expr.c (gfc_check_vardef_context): Fix check for
2114         intent-in polymorphic pointer .
2115         * interface.c (compare_parameter): Allow passing TYPE to
2116         intent-in polymorphic pointer.
2118 2012-03-02  Tobias Burnus  <burnus@net-b.de>
2120         PR fortran/52452
2121         * resolve.c (resolve_intrinsic): Don't search for a
2122         function if we know that it is a subroutine.
2124 2012-02-29  Paul Thomas  <pault@gcc.gnu.org>
2126         PR fortran/52386
2127         * trans-expr.c (fcncall_realloc_result): Dereference the
2128         descriptor if needed.
2130 2012-02-22  Tobias Burnus  <burnus@net-b.de>
2132         PR fortran/52335
2133         * io.c (gfc_match_open): Remove bogus F2003 DELIM= check.
2135 2012-02-18  Tobias Burnus  <burnus@net-b.de>
2137         PR fortran/52295
2138         * interface.c (check_interface0): Internal procs in
2139         generic interfaces are allowed in Fortran 2008.
2141 2012-02-17  Tobias Burnus  <burnus@net-b.de>
2142             Roland Stigge  <stigge@antcom.de>
2144         PR translation/52273
2145         * interface.c (compare_actual_formal): Fix typo "at at".
2147 2012-02-17  Tobias Burnus  <burnus@net-b.de>
2149         * gfortran.texi (Q exponent-letter): Fix grammar.
2151 2012-02-17  Tobias Burnus  <burnus@net-b.de>
2153         * gfortran.texi (Status): Fix typos.
2154         * invoke.texi (ffixed-form, fstack-arrays): Spell Fortran with
2155         a majuscule.
2157 2012-02-17  Tobias Burnus  <burnus@net-b.de>
2158             Roland Stigge  <stigge@antcom.de>
2160         PR translation/52232
2161         PR translation/52234
2162         PR translation/52245
2163         PR translation/52246
2164         PR translation/52262
2165         PR translation/52273
2166         * io.c (gfc_match_open): Fix typo.
2167         * interface.c (compare_actual_formal): Ditto.
2168         * lang.opt (freal-4-real-8, freal-4-real-16, freal-8-real-16): Ditto.
2169         * match.c (alloc_opt_list, gfc_match_nullify): Ditto.
2170         * check.c (gfc_check_associated, gfc_check_null): Ditto.
2172 2012-02-12  Mikael Morin  <mikael@gcc.gnu.org>
2174         PR fortran/50981
2175         * trans-stmt.c (gfc_get_proc_ifc_for_call): New function.
2176         (gfc_trans_call): Use gfc_get_proc_ifc_for_call.
2178 2012-02-12  Mikael Morin  <mikael@gcc.gnu.org>
2180         * trans-array.c (gfc_walk_elemental_function_args,
2181         gfc_walk_function_expr): Move call to gfc_get_proc_ifc_for_expr out
2182         of gfc_walk_elemental_function_args.
2183         * trans-stmt.c (gfc_trans_call): Ditto.
2184         * trans-array.h (gfc_get_proc_ifc_for_expr): New prototype.
2185         (gfc_walk_elemental_function_args): Update prototype.
2187 2012-02-12  Mikael Morin  <mikael@gcc.gnu.org>
2189         * trans-array.c (gfc_get_proc_ifc_for_expr): New function.
2190         (gfc_walk_elemental_function_args): Move code to
2191         gfc_get_proc_ifc_for_expr and call it.
2193 2012-02-08  Tobias Burnus  <burnus@net-b.de>
2195         PR fortran/52151
2196         * trans-expr.c (fcncall_realloc_result): Set also the stride.
2198 2012-02-07  Tobias Burnus  <burnus@net-b.de>
2200         PR fortran/51514
2201         * trans-expr.c (gfc_conv_procedure_call): Add _data component
2202         for calls of scalar CLASS actuals to TYPE dummies.
2204 2012-02-05  Thomas König  <tkoenig@gcc.gnu.org>
2206         PR fortran/48847
2207         * trans-decl.c:  Warn about unused dummy procedure arguments
2208         if -Wunused-dummy-argument is specified.  Suppress middle-end
2209         warnings about procedure arguments.
2211 2012-02-05  Paul Thomas  <pault@gcc.gnu.org>
2213         * trans-array.c (gfc_array_allocate): Zero memory for all class
2214         array allocations.
2215         * trans-stmt.c (gfc_trans_allocate): Ditto for class scalars.
2217         PR fortran/52102
2218         * trans-stmt.c (gfc_trans_allocate): Before correcting a class
2219         array reference, ensure that 'dataref' points to the _data
2220         component that is followed by the array reference..
2222 2012-02-02  Mikael Morin  <mikael@gcc.gnu.org>
2224         PR fortran/41587
2225         PR fortran/46356
2226         PR fortran/51754
2227         PR fortran/50981
2228         * class.c (insert_component_ref, class_data_ref_missing,
2229         gfc_fix_class_refs): New functions.
2230         * gfortran.h (gfc_fix_class_refs): New prototype.
2231         * trans-expr.c (gfc_conv_expr): Remove special case handling and call
2232         gfc_fix_class_refs instead.
2234 2012-02-02  Paul Thomas  <pault@gcc.gnu.org>
2236         PR fortran/52012
2237         * trans-expr.c (fcncall_realloc_result): If variable shape is
2238         correct, retain the bounds, whatever they are.
2240 2012-02-02  Tobias Burnus  <burnus@net-b.de>
2242         PR fortran/52093
2243         * simplify.c (gfc_simplify_size): Handle INTRINSIC_PARENTHESES.
2245 2012-02-01  Thomas König  <tkoenig@gcc.gnu.org>
2247         PR fortran/51958
2248         * frontend-passes.c (convert_elseif):  New function.
2249         (optimize_namespace):  Call it.
2251 2012-02-01  Tobias Burnus  <burnus@net-b.de>
2253         PR fortran/52024
2254         * module.c (MOD_VERSION): Bump.
2255         (mio_typebound_proc): Read/write is_operator from/to the
2256         .mod file.
2258 2012-02-01  Tobias Burnus  <burnus@net-b.de>
2260         PR fortran/52059
2261         * trans-expr.c (gfc_conv_procedure_call): Add array ref
2262         only to variables.
2264 2012-01-31  Tobias Burnus  <burnus@net-b.de>
2266         PR fortran/52024
2267         * gfortran.h (gfc_tbp_generic): Store whether the
2268         generic is an operator.
2269         * decl.c (gfc_match_generic): Set that flag.
2270         * resolve.c (check_generic_tbp_ambiguity): Use it in the
2271         gfc_compare_interfaces check.
2273 2012-01-31  Tobias Burnus  <burnus@net-b.de>
2275         PR fortran/52029
2276         * class.c (gfc_find_derived_vtab): Mark _copy function as pure.
2278 2012-01-31  Tobias Burnus  <burnus@net-b.de>
2280         PR fortran/52013
2281         * class.c (get_unique_hashed_string): Adapt trim length.
2282         (gfc_build_class_symbol) Encode also corank in the container name.
2284 2012-01-31  Paul Thomas  <pault@gcc.gnu.org>
2286         PR fortran/52012
2287         * trans-expr.c (fcncall_realloc_result): Correct calculation of
2288         result offset.
2290 2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>
2292         * module.c (pointer_info): Make true_name and module pointers
2293         rather than arrays, order pointers before other fields.
2294         (free_pi_tree): free true_name and module as well.
2295         (mio_read_string): Rename to read_string.
2296         (mio_write_string): Remove.
2297         (load_commons): Use read_string.
2298         (read_module): Use read_string rather than mio_internal_string.
2299         (write_blank_common): Call write_atom directly.
2300         (write_symbol): Likewise.
2302 2012-01-29  Tobias Burnus  <burnus@net-b.de>
2304         PR fortran/41600
2305         * expr.c (gfc_default_initializer): Convert the values if
2306         the type does not match.
2308 2012-01-29  Tobias Burnus  <burnus@net-b.de>
2310         PR fortran/51972
2311         * trans-array.c (structure_alloc_comps): Fix assignment of
2312         polymorphic components (polymorphic deep copying).
2314 2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>
2316         PR fortran/51808
2317         * decl.c (set_binding_label): Make binding_label argument const.
2318         (curr_binding_label): Constify.
2319         * gfortran.h (gfc_symbol): Constify binding_label.
2320         (gfc_common_head): Likewise.
2321         (get_iso_c_sym): Likewise.
2322         * match.c (gfc_match_name_C): Constify buffer argument.
2323         * match.h (gfc_match_name_C): Likewise.
2324         * resolve.c (set_name_and_label): Constify binding_label argument.
2325         (gfc_iso_c_sub_interface): Constify binding_label variable.
2326         * symbol.c (get_iso_c_sym): Constify binding_label argument.
2328 2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>
2330         PR fortran/51808
2331         * decl.c (set_binding_label): Move prototype from match.h to here.
2332         (curr_binding_label): Make a pointer rather than static array.
2333         (build_sym): Check sym->binding_label pointer rather than array,
2334         update set_binding_label call, handle curr_binding_label changes.
2335         (set_binding_label): Handle new curr_binding_label, dest_label
2336         double ptr, and sym->binding_label.
2337         (verify_bind_c_sym): Handle sym->binding_label being a pointer.
2338         (set_verify_bind_c_sym): Check sym->binding_label pointer rather
2339         than array, update set_binding_label call.
2340         (gfc_match_bind_c_stmt): Handle curr_binding_label change.
2341         (match_procedure_decl): Update set_binding_label call.
2342         (gfc_match_bind_c): Change binding_label to pointer, update
2343         gfc_match_name_C call.
2344         * gfortran.h (GFC_MAX_BINDING_LABEL_LEN): Remove macro.
2345         (gfc_symbol): Make binding_label a pointer.
2346         (gfc_common_head): Likewise.
2347         * match.c (gfc_match_name_C): Heap allocate bind(C) name.
2348         * match.h (gfc_match_name_C): Change prototype argument.
2349         (set_binding_label): Move prototype to decl.c.
2350         * module.c (struct pointer_info): Make binding_label a pointer.
2351         (free_pi_tree): Free unused binding_label.
2352         (mio_read_string): New function.
2353         (mio_write_string): New function.
2354         (load_commons): Redo reading of binding_label.
2355         (read_module): Likewise.
2356         (write_common_0): Change to write empty string instead of name if
2357         no binding_label.
2358         (write_blank_common): Write empty string for binding label.
2359         (write_symbol): Change to write empty string instead of name if no
2360         binding_label.
2361         * resolve.c (gfc_iso_c_func_interface): Don't set binding_label.
2362         (set_name_and_label): Make binding_label double pointer, use
2363         asprintf.
2364         (gfc_iso_c_sub_interface): Make binding_label a pointer.
2365         (resolve_bind_c_comms): Handle cases if
2366         gfc_common_head->binding_label is NULL.
2367         (gfc_verify_binding_labels): sym->binding_label is a pointer.
2368         * symbol.c (gfc_new_symbol): Rely on XCNEW zero init for
2369         binding_label.
2370         (gen_special_c_interop_ptr): Don't set binding label.
2371         (generate_isocbinding_symbol): Insert binding_label into symbol
2372         table.
2373         (get_iso_c_sym): Use pointer assignment instead of strcpy.
2374         * trans-common.c (gfc_sym_mangled_common_id): Handle
2375         com->binding_label being a pointer.
2376         * trans-decl.c (gfc_sym_mangled_identifier): Handle
2377         sym->binding_label being a pointer.
2378         (gfc_sym_mangled_function_id): Likewise.
2380 2012-01-29  Tobias Burnus  <burnus@net-b.de>
2382         PR fortran/52038
2383         * resolve.c (symbol_as): Remove unused, accidentally
2384         added function.
2386 2012-01-28  Tobias Burnus  <burnus@net-b.de>
2388         PR fortran/51972
2389         * trans-stmt.c (gfc_trans_allocate): Properly check whether
2390         we have a BT_CLASS which needs to be memset.
2392 2012-01-27  Tobias Burnus  <burnus@net-b.de>
2394         PR fortran/52022
2395         * trans-expr.c (gfc_conv_procedure_call): Fix passing
2396         of functions, which return allocatables.
2398 2012-01-27  Tobias Burnus  <burnus@net-b.de>
2400         PR fortran/52016
2401         * resolve.c (resolve_formal_arglist): Fix elemental
2402         constraint checks for polymorphic dummies also for
2403         pointers.
2405 2012-01-27  Tobias Burnus  <burnus@net-b.de>
2407         PR fortran/51970
2408         PR fortran/51977
2409         * primary.c (gfc_match_varspec. gfc_match_rvalue): Set
2410         handle array spec for BT_CLASS.
2411         * expr.c (gfc_get_variable_expr, gfc_lval_expr_from_sym)
2412         * frontend-passes.c (create_var): Ditto.
2413         * resolve.c (resolve_actual_arglist, resolve_assoc_var): Ditto.
2414         * trans-decl.c (gfc_trans_deferred_vars): Use class_pointer
2415         instead of attr.pointer.
2416         (gfc_generate_function_code): Use CLASS_DATA (sym) for BT_CLASS.
2417         * trans-intrinsic.c (conv_intrinsic_move_alloc): Move assert.
2418         * trans-stmt.c (trans_associate_var): Ask for the descriptor.
2420 2012-01-27  Tobias Burnus  <burnus@net-b.de>
2422         PR fortran/51953
2423         * match.c (gfc_match_allocate): Allow more than allocate
2424         object with SOURCE=.
2426 2012-01-27  Tobias Burnus  <burnus@net-b.de>
2428         PR fortran/52016
2429         * resolve.c (resolve_formal_arglist): Fix elemental
2430         constraint checks for polymorphic dummies.
2432 2012-01-27  Paul Thomas  <pault@gcc.gnu.org>
2433             Tobias Burnus <burnus@gcc.gnu.org>
2435         PR fortran/48705
2436         PR fortran/51870
2437         PR fortran/51943
2438         PR fortran/51946
2439         * trans-array.c (gfc_array_init_size): Add two extra arguments
2440         to convey the dynamic element size of a calls object and to
2441         return the number of elements that have been allocated.
2442         (gfc_array_allocate): Add the same arguments and use them to
2443         call gfc_array_init_size.  Before the allocation dereference
2444         the data pointer, if necessary. Set the allocated array to zero
2445         if the class element size or expr3 are non-null.
2446         * trans-expr.c (gfc_conv_class_to_class): Give this function
2447         global scope.
2448         (get_class_array_ref): New function.
2449         (gfc_copy_class_to_class): New function.
2450         * trans-array.h : Update prototype for gfc_array_allocate.
2451         * trans-stmt.c (gfc_trans_allocate): For non-variable class
2452         STATUS expressions extract the class object and the dynamic
2453         element size. Use the latter to call gfc_array_allocate and
2454         the former for setting the vptr and, via
2455         gfc_copy_class_to_clasfc_cs, to copy to the allocated data.
2456         * trans.h : Prototypes for gfc_get_class_array_ref,
2457         gfc_copy_class_to_class and gfc_conv_class_to_class.
2459 2012-01-25  Tobias Burnus  <burnus@net-b.de>
2461         * resolve.c (symbol_as): Check also for attr.class_ok.
2463 2012-01-25  Tobias Burnus  <burnus@net-b.de>
2465         PR fortran/51995
2466         * class.c (gfc_build_class_symbol): Fix invalid freeing
2467         issue with fclass->f2k_derived.
2469 2012-01-25  Tobias Burnus  <burnus@net-b.de>
2471         PR fortran/51995
2472         * class.c (gfc_build_class_symbol): Ensure that
2473         fclass->f2k_derived is set.
2475 2012-01-25  Tobias Burnus  <burnus@net-b.de>
2477         PR fortran/51966
2478         * resolve.c (resolve_structure_cons): Only create an
2479         array constructors for nonscalars.
2481 2012-01-23  Tobias Burnus  <burnus@net-b.de>
2483         PR fortran/51948
2484         * check.c (variable_check): Fix checking for
2485          variables and deeply nested BLOCKs.
2487 2012-01-21  Tobias Burnus  <burnus@net-b.de>
2488             Steven G. Kargl  <kargl@gcc.gnu.org>
2490         PR fortran/50556
2491         * symbol.c (check_conflict): namelist-group-name cannot have the SAVE
2492         attribute.
2494 2012-01-21  Tobias Burnus  <burnus@net-b.de>
2496         PR fortran/51913
2497         * interface.c (compare_parameter): Fix CLASS comparison.
2499 2012-01-20  Tobias Burnus  <burnus@net-b.de>
2500             Janus Weil  <janus@gcc.gnu.org>
2502         PR fortran/51056
2503         * module.c (load_needed, read_module): Don't mark __vtab etc.
2504         as use_only.
2506 2012-01-19  Tobias Burnus  <burnus@net-b.de>
2508         PR fortran/51904
2509         * expr.c (gfc_build_intrinsic_call): Also set the symtree.
2511 2012-01-18  Paul Thomas  <pault@gcc.gnu.org>
2513         PR fortran/51634
2514         * trans-expr.c (gfc_conv_procedure_call): Deallocate allocatable
2515         components of temporary class arguments.
2517 2012-01-17  Tobias Burnus  <burnus@net-b.de>
2518             Janne Blomqvist  <jb@gcc.gnu.org>
2520         PR fortran/51869
2521         * trans-expr.c (alloc_scalar_allocatable_for_assignment): Nullify
2522         LHS after allocation, if it has allocatable components.
2523         * f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_CALLOC.
2525 2012-01-16  Mikael Morin  <mikael@gcc.gnu.org>
2526             Tobias Burnus  <burnus@net-b.de>
2528         PR fortran/50981
2529         * trans-array.c (gfc_walk_elemental_function_args): Fix
2530         passing of deallocated allocatables/pointers as absent argument.
2532 2012-01-16  Tobias Burnus  <burnus@net-b.de>
2534         PR fortran/51809
2535         * class.c (gfc_find_derived_vtab): Mark __vtab and
2536         __def_init as FL_VARIABLE not as FL_PARAMETER.
2537         * expr.c (gfc_simplify_expr): Remove special
2538         handling of __vtab.
2539         * resolve.c (resolve_values): Ditto.
2540         * trans-decl.c (gfc_get_symbol_decl): Mark __vtab
2541         and __def_init as TREE_READONLY.
2543 2012-01-16  Zydrunas Gimbutas  <gimbutas@cims.nyu.edu>
2544         Andreas Kloeckner  <kloeckner@cims.nyu.edu>
2545         Steven G. Kargl  <kargl@gcc.gnu.org>
2547         PR fortran/48426
2548         * gfortran.h (gfc_option_t): Add members flag_*_kind to store kind.
2549         * lang.opt: Add options -freal-4-real-8, -freal-4-real-10,
2550         -freal-4-real-16, -freal-8-real-4, -freal-8-real-10, -freal-8-real-16
2551         and -finteger-4-integer-8. User-desired type conversion information.
2552         * decl.c (gfc_match_old_kind_spec,kind_expr): Type conversions
2553         in declaration parsing.
2554         * trans-types.c (gfc_init_kinds): User-specified type conversion
2555         checked for current backend.
2556         * primary.c (match_integer_constant,match_real_constant): Implement
2557         type conversion in constant parsing.
2558         * options.c (gfc_init_options,gfc_handle_option): Translate input
2559         options to flags in internal options data structure.
2560         * invoke.texi: Document new options.  Re-order options in Options
2561         summary section.
2563 2012-01-16  Paul Thomas  <pault@gcc.gnu.org>
2565         * trans-array.c (gfc_trans_create_temp_array): In the case of a
2566         class array temporary, detect a null 'eltype' on entry and use
2567         'initial' to provde the class reference and so, through the
2568         vtable, the element size for the dynamic type.
2569         * trans-stmt.c (gfc_conv_elemental_dependencies): For class
2570         expressions, set 'eltype' to null and pass the values via the
2571         'initial' expression.
2573 2012-01-14  Tobias Burnus  <burnus@net-b.de>
2575         PR fortran/51800
2576         * resolve.c (build_default_init_expr): Also initialize
2577         nonconstant-length strings with -finit-character=<n>.
2579 2011-01-14  Tobias Burnus  <burnus@net-b.de>
2581         PR fortran/51816
2582         * module.c (read_module): Don't make nonexisting
2583         intrinsic operators as found.
2584         (rename_list_remove_duplicate): New function.
2585         (gfc_use_modules): Use it.
2587 2012-01-13  Paul Thomas  <pault@gcc.gnu.org>
2589         PR fortran/48351
2590         * trans-array.c (structure_alloc_comps): Suppress interative
2591         call to self, when current component is deallocated using
2592         gfc_trans_dealloc_allocated.
2593         * class.c (gfc_build_class_symbol): Copy the 'alloc_comp'
2594         attribute from the declared type to the class structure.
2596 2012-01-13  Tobias Burnus  <burnus@net-b.de>
2598         PR fortran/51842
2599         * fortran/trans-types.c (gfc_init_kinds): Use PTRDIFF_TYPE
2600         instead of a signed int of size POINTER_SIZE for
2601         gfc_index_integer_kind.
2603 2012-01-12  Tobias Burnus  <burnus@net-b.de>
2605         PR fortran/36755
2606         * intrinsic.texi (CHMOD): Extend a bit and remove statement
2607         that /bin/chmod is called.
2609 2012-01-10  Gerald Pfeifer  <gerald@pfeifer.com>
2611         * gfortran.texi (Fortran 2003 Status): Fix grammar.
2613 2012-01-10  Tobias Burnus  <burnus@net-b.de>
2615         PR fortran/51652
2616         * resolve.c (resolve_allocate_expr): For non-deferred char lengths,
2617         check whether type-spec matches declaration.
2619 2012-01-10  Tobias Burnus  <burnus@net-b.de>
2621         * resolve.c (resolve_ordinary_assign): Improve error wording.
2623 2012-01-09  Paul Thomas  <pault@gcc.gnu.org>
2625         PR fortran/51791
2626         * interface.c (matching_typebound_op): Drill down through
2627         possible parentheses to obtain base expression. Do not test for
2628         'class_ok' but, instead for the class structure components.
2629         * resolve.c (resolve_ordinary_assign): Extend error message for
2630         polymorphic assignment to advise checking for specific
2631         subroutine.
2633         PR fortran/51792
2634         * resolve.c (resolve_typebound_function): Restore 'static' to
2635         declaration.
2637 2012-01-09  Mikael Morin  <mikael@gcc.gnu.org>
2639         PR fortran/51758
2640         * trans-array.c (gfc_walk_elemental_function_args):
2641         Skip over NULL() actual arguments.
2643 2012-01-09  Tobias Burnus  <burnus@net-b.de>
2645         * gfortran.texi: Bump copyright year.
2646         (Fortran 2003 Status): Update polymorphism item, add
2647         item for generic interface with DT name.
2649 2012-01-09  Tobias Burnus  <burnus@net-b.de>
2651         PR fortran/51578
2652         * gfortran.h (gfc_use_list):
2653         * match.h (gfc_use_module): Rename to ...
2654         (gfc_use_modules): ... this.
2655         * module.c (use_locus, specified_nonint, specified_int): Remove
2656         global variable.
2657         (module_name): Change type to const char*, used with gfc_get_string.
2658         (module_list): New global variable.
2659         (free_rename): Free argument not global var.
2660         (gfc_match_use): Save match to module_list.
2661         (load_generic_interfaces, read_module): Don't free symtree.
2662         (write_dt_extensions, gfc_dump_module): Fix module-name I/O due to the
2663         type change of module_name.
2664         (write_symbol0, write_generic): Optimize due to the type change.
2665         (import_iso_c_binding_module, use_iso_fortran_env_module): Use
2666         locus of rename->where.
2667         (gfc_use_module): Take module_list as argument.
2668         (gfc_use_modules): New function.
2669         (gfc_module_init_2, gfc_module_done_2): Init module_list, rename_list.
2670         * parse.c (last_was_use_stmt): New global variable.
2671         (use_modules): New function.
2672         (decode_specification_statement, decode_statement): Move USE match up
2673         and call use_modules.
2674         (next_free, next_fixed): Call use_modules.
2675         (accept_statement): Don't call gfc_module_use.
2677 2012-01-06  Tobias Burnus <burnus@net-b.de>
2679         * trans-openmp.c (gfc_omp_clause_dtor, gfc_trans_omp_array_reduction):
2680         Update call to gfc_trans_dealloc_allocated.
2681         * trans.c (gfc_allocate_using_malloc): Fix spacing.
2682         (gfc_allocate_allocatable): For gfc_allocate_using_lib, jump to
2683         label_finish when an error occurs.
2684         (gfc_deallocate_with_status): Call caf_deregister for -fcoarray=lib.
2685         * trans.h (gfc_allocate_allocatable, gfc_deallocate_with_status):
2686         Update prototype.
2687         (gfor_fndecl_caf_deregister): New tree symbol.
2688         * trans-expr.c (gfc_conv_procedure_call): Update
2689         gfc_deallocate_with_status and gfc_trans_dealloc_allocated calls.
2690         * trans-array.c (gfc_array_allocate, gfc_trans_dealloc_allocated,
2691         structure_alloc_comps, gfc_trans_deferred_array): Ditto.
2692         (gfc_array_deallocate): Handle coarrays with -fcoarray=lib.
2693         * trans-array.h (gfc_array_deallocate, gfc_array_allocate,
2694         gfc_trans_dealloc_allocated): Update prototypes.
2695         * trans-stmt.c (gfc_trans_sync): Fix indentation.
2696         (gfc_trans_allocate): Fix errmsg padding and label handling.
2697         (gfc_trans_deallocate): Ditto and handle -fcoarray=lib.
2698         * expr.c (gfc_is_coarray): Fix algorithm for BT_CLASS.
2699         * libgfortran.h (GFC_STAT_STOPPED_IMAGE): Use large value
2700         to avoid other stats accidentally matching this one.
2701         * trans-decl.c (gfor_fndecl_caf_deregister): New global var.
2702         (gfc_build_builtin_function_decls): Fix prototype decl of caf_register
2703         and add decl for caf_deregister.
2704         (gfc_trans_deferred_vars): Handle CAF vars with -fcoarrays=lib.
2705         * trans-intrinsic.c (conv_intrinsic_move_alloc): Update call to
2706         gfc_deallocate_with_status.
2708 2012-01-05  Paul Thomas  <pault@gcc.gnu.org>
2710         PR fortran/PR48946
2711         * resolve.c (resolve_typebound_static): If the typebound
2712         procedure is 'deferred' try to find the correct specific
2713         procedure in the derived type operator space itself.
2715 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
2717         PR fortran/50981
2718         * trans-array.h (gfc_walk_elemental_function_args): New argument.
2719         * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call.
2720         * trans-stmt.c (gfc_trans_call): Ditto.
2721         * trans-array.c (gfc_walk_function_expr): Ditto.
2722         (gfc_walk_elemental_function_args): Get the dummy argument list
2723         if possible.  Check that the dummy and the actual argument are both
2724         optional, and set can_be_null_ref accordingly.
2726 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
2728         PR fortran/50981
2729         * trans.h (struct gfc_ss_info): New field data::scalar::can_be_null_ref
2730         * trans-array.c: If the reference can be NULL, save the reference
2731         instead of the value.
2732         * trans-expr.c (gfc_conv_expr): If we have saved a reference,
2733         dereference it.
2735 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
2737         * trans-expr.c (gfc_conv_expr): Move address taking...
2738         (gfc_conv_expr_reference): ... here.
2740 2012-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
2742         PR fortran/49693
2743         * trans-common.c (create_common): Update copyright years.  Mark
2744         variables as used to avoid warnings about unused variables in
2745         common blocks.
2747 2012-01-03  Hans-Peter Nilsson  <hp@axis.com>
2749         * gfortran.h (struct gfc_expr): Add missing "struct"
2750         qualifier for member base_expr.
2752 2012-01-02  Paul Thomas  <pault@gcc.gnu.org>
2754         PR fortran/51529
2755         * trans-array.c (gfc_array_allocate): Null allocated memory of
2756         newly allocted class arrays.
2758         PR fortran/46262
2759         PR fortran/46328
2760         PR fortran/51052
2761         * interface.c(build_compcall_for_operator): Add a type to the
2762         expression.
2763         * trans-expr.c (conv_base_obj_fcn_val): New function.
2764         (gfc_conv_procedure_call): Use base_expr to detect non-variable
2765         base objects and, ensuring that there is a temporary variable,
2766         build up the typebound call using conv_base_obj_fcn_val.
2767         (gfc_trans_class_assign): Pick out class procedure pointer
2768         assignments and do the assignment with no further prcessing.
2769         (gfc_trans_class_array_init_assign, gfc_trans_class_init_assign
2770         gfc_trans_class_assign): Move to top of file.
2771         * gfortran.h : Add 'base_expr' field to gfc_expr.
2772         * resolve.c (get_declared_from_expr): Add 'types' argument to
2773         switch checking of derived types on or off.
2774         (resolve_typebound_generic_call): Set the new argument.
2775         (resolve_typebound_function, resolve_typebound_subroutine):
2776         Set 'types' argument for get_declared_from_expr appropriately.
2777         Identify base expression, if not a variable, in the argument
2778         list of class valued calls. Assign it to the 'base_expr' field
2779         of the final expression. Strip away all references after the
2780         last class reference.
2782 2012-01-02  Tobias Burnus  <burnus@net-b.de>
2784         PR fortran/51682
2785         * trans-intrinsic.c (trans_this_image, trans_image_index,
2786         trans_num_images, conv_intrinsic_cobound): Fold_convert the
2787         caf_num_images/caf_this_images variables to the correct int kind.
2789 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
2791         * gfortranspec.c (lang_specific_driver): Update copyright notice
2792         dates.
2794 Copyright (C) 2012 Free Software Foundation, Inc.
2796 Copying and distribution of this file, with or without modification,
2797 are permitted in any medium without royalty provided the copyright
2798 notice and this notice are preserved.