1 2012-12-28 Janus Weil <janus@gcc.gnu.org>
4 * check.c (gfc_check_associated): Remove a "gcc_assert (0)".
6 2012-12-28 Tobias Burnus <burnus@net-b.de>
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>
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
22 2012-12-23 Tobias Burnus <burnus@net-b.de>
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>
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>
42 * gfortran.h: Do not include gmp.h here.
44 2012-12-21 Paul Thomas <pault@gcc.gnu.org>
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>
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>
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
81 (gfc_find_derived_vtab): Deal with unlimited polymorphic
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
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
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
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
123 (resolve_allocate_expr): Likewise for allocation. Make sure
125 (gfc_type_is_extensible): Unlimited polymorphic entities are
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
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
148 * trans-decl.c (create_function_arglist) Formal arguments
149 without a character length should be treated in the same way
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
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
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>
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>
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
202 (gfc_trans_deferred_vars): Don't free variables SAVEd via
205 2012-12-16 Tobias Burnus <burnus@net-b.de>
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>
219 * resolve.c (resolve_formal_arglist): Allow VALUE without
220 INTENT for ELEMENTAL procedures.
222 2012-12-10 Janus Weil <janus@gcc.gnu.org>
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>
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>
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>
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>
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
274 2012-12-03 Tobias Burnus <burnus@net-b.de>
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>
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>
336 * trans-stmt.c (gfc_trans_sync): Fix bound checking
339 2012-11-28 Tobias Burnus <burnus@net-b.de>
342 * trans-stmt.c (gfc_trans_sync): Fix bound checking.
344 2012-11-27 Tobias Burnus <burnus@net-b.de>
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>
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>
367 * match.c (select_derived_set_tmp,select_class_set_tmp): Removed and
369 (select_type_set_tmp): ... this one. Set POINTER argument according to
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>
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>
389 * resolve.c (resolve_allocate_deallocate): Compare all
390 subscripts when deciding if to reject a (de)allocate
393 2012-11-21 Janus Weil <janus@gcc.gnu.org>
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
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.
420 2012-11-17 Jakub Jelinek <jakub@redhat.com>
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>
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>
444 * module.c (mio_array_spec): Correctly handle coarray
447 2012-11-07 Tobias Schlüter <tobi@gcc.gnu.org>
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>
462 * options.c (set_Wall): Do not set warn_switch here.
464 2012-11-06 Janus Weil <janus@gcc.gnu.org>
467 * target-memory.c (gfc_target_expr_size,gfc_target_interpret_expr):
469 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Add support for
470 polymorphic arguments.
472 2012-11-04 Janus Weil <janus@gcc.gnu.org>
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>
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>
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>
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
515 2012-10-24 Janus Weil <janus@gcc.gnu.org>
518 * trans-expr.c (gfc_conv_procedure_call): Move a piece of code and
521 2012-10-21 Tobias Burnus <burnus@net-b.de>
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>
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>
541 * trans-expr.c (conv_function_val): Set TREE_USED.
543 2012-10-18 Tobias Burnus <burnus@net-b.de>
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>
558 * trans.h (gfc_conv_derived_to_class, gfc_conv_class_to_class):
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>
570 * interface.c (check_dummy_characteristics): Recursively check dummy
573 2012-10-11 Janus Weil <janus@gcc.gnu.org>
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>
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>
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
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>
615 * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
617 2012-09-30 Janus Weil <janus@gcc.gnu.org>
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>
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.
642 * resolve.c (resolve_fl_namelist): Remove superfluous
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.
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>
657 * dependency.c (gfc_dep_compare_expr): Clarify logic,
660 2012-09-20 Tobias Burnus <burnus@net-b.de>
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>
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>
680 * expr.c (gfc_check_pointer_assign): Correctly handle procedure pointers
682 * primary.c (gfc_match_varspec): Allow to call a PPC with proc-ptr
685 2012-09-17 Tobias Burnus <burnus@net-b.de>
688 * trans-expr.c (gfc_trans_subcomponent_assign): Handle
689 proc-pointer components.
691 2012-09-17 Tobias Burnus <burnus@net-b.de>
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>
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>
709 * interface.c (compare_type_rank): Handle CLASS arrays.
711 2012-09-16 Janus Weil <janus@gcc.gnu.org>
714 * expr.c (gfc_check_pointer_assign): Check for result of embracing
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
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
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>
765 * resolve.c (resolve_formal_arglist): Allow VALUE arguments
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>
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>
780 * simplify.c (simplify_bound_dim): Resolve array spec before
781 proceeding with simplification.
783 2012-09-06 Tobias Burnus <burnus@net-b.de>
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>
792 * symbol.c (gfc_undo_symbols): Avoid NULL pointer dereference.
794 2012-09-04 Janus Weil <janus@gcc.gnu.org>
798 * match.c (gfc_match_select_type): Make sure to only access CLASS_DATA
801 2012-09-03 Tobias Burnus <burnus@net-b.de>
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>
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
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
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>
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>
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>
856 * error.c (show_locus): Avoid out of bound access.
858 2012-08-28 Tobias Burnus <burnus@net-b.de>
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>
870 * symbol.c (gfc_copy_formal_args): Set also sym->formal_ns.
872 2012-08-27 Tobias Burnus <burnus@net-b.de>
875 * resolve.c (gfc_resolve_character_operator): Free temporary
877 * trans-expr.c (gfc_conv_statement_function): Ditto.
879 2012-08-27 Tobias Burnus <burnus@net-b.de>
882 * dependency.c (check_section_vs_section): Use gfc_free_expr
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>
890 * trans-expr.c (gfc_trans_arrayfunc_assign): Free se.ss
893 2012-08-27 Tobias Burnus <burnus@net-b.de>
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>
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>
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
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>
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>
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):
989 * invoke.texi (-Wtarget-lifetime): Document it.
991 * lang.opt (-Wtarget-lifetime): New flag.
993 2012-08-19 Thomas König <tkoenig@gcc.gnu.org>
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>
1014 * gfortran.h: Do not include gmp.h.
1016 2012-08-16 Diego Novillo <dnovillo@google.com>
1019 * gfortran.h: Do not include gmp.h.
1021 2012-08-15 Janus Weil <janus@gcc.gnu.org>
1025 * resolve.c (check_typebound_baseobject): Check for class_ok attribute.
1026 (resolve_procedure_interface,resolve_fl_derived0): Copy class_ok
1029 2012-08-14 Mikael Morin <mikael@gcc.gnu.org>
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,
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>
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>
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>
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>
1099 * intrinsic.c (gfc_warn_intrinsic_shadow): Better warning
1100 for internal procedures.
1102 2012-08-06 Janus Weil <janus@gcc.gnu.org>
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>
1112 * scanner.c (add_path_to_list): New argument warn. Don't
1114 (gfc_add_include_path): Warn if directory is missing.
1115 (gfc_add_intrinsic_modules_path): Do not warn if directory
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>
1123 * trans-array.c (set_loop_bounds): Access specinfo using spec_dim.
1125 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
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
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>
1169 * resolve.c (check_proc_interface): New routine for PROCEDURE interface
1171 (resolve_procedure_interface,resolve_typebound_procedure,
1172 resolve_fl_derived0): Call it.
1174 2012-08-01 Thomas König <tkoenig@gcc.gnu.org>
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>
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
1196 2012-07-31 Janus Weil <janus@gcc.gnu.org>
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>
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>
1225 * trans-array.c (gfc_trans_array_constructor_value):
1226 Evaluate the iteration bounds before the inner variable shadows
1229 2012-07-26 Mikael Morin <mikael@gcc.gnu.org>
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
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
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>
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
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
1290 2012-07-20 Tobias Burnus <burnus@net-b.de>
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
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
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>
1364 * error.c (gfc_notify_std): Automatically print the relevant Fortran
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):
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>
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>
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>
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>
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>
1445 * gfortran.h (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Modified
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
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.
1474 * matchexp.c: Likewise.
1475 * dump-parse-tree.c: Likewise.
1476 * array.c: Likewise.
1477 * constructor.c: Likewise.
1478 * error.c: Likewise.
1481 * module.c: Likewise.
1482 * scanner.c: Likewise.
1485 * frontend-passes.c: Likewise.
1486 * resolve.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.
1496 * simplify.c: Likewise.
1498 2012-07-05 Mikael Morin <mikael@gcc.gnu.org>
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>
1507 * parse.c (gfc_parse_file): Initialize errors_before.
1509 2012-06-27 Janus Weil <janus@gcc.gnu.org>
1513 * interface.c (check_new_interface): Rename, add 'loc' argument,
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>
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>
1538 * iresolve.c (gfc_resolve_ftell): Fix result kind and use new
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>
1552 * trans-array.c (set_loop_bounds): Don't scalarize via absent
1554 * resolve.c (resolve_elemental_actual): Don't stop resolving after printing
1557 2012-06-18 Tobias Burnus <burnus@net-b.de>
1560 * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle coarrays.
1562 2012-06-18 Tobias Burnus <burnus@net-b.de>
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>
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>
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>
1587 * trans-decl.c (init_intent_out_dt): Fix for polymorphic arrays.
1588 * trans-array.c (structure_alloc_comps): Don't loop for
1591 2012-06-13 Tobias Burnus <burnus@net-b.de>
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>
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>
1607 * frontend-passes.c (optimize_assignment): Don't set the
1608 length of an empty string for deferred-length character
1611 2012-06-07 Thomas König <tkoenig@gcc.gnu.org>
1614 * frontend-passes.c (empty_string): Add prototype.
1615 (optimize_assignment): Set the length of an empty string
1618 2012-06-04 Tobias Burnus <burnus@net-b.de>
1621 * resolve.c (build_default_init_expr): Don't initialize
1624 2012-06-03 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
1625 Tobias Burnus <burnus@net-b.de>
1628 * gfortran.h (gfc_check_init_expr): Add prototype declaration
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>
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>
1652 * decl.c (match_attr_spec): Remove "typedef".
1654 2012-05-30 Tobias Burnus <burnus@net-b.de>
1656 * decl.c: Fix comment typos.
1658 * frontend-passes.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>
1670 * match.c (gfc_match_allocate): Set length_from_typespec
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>
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>
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>
1690 * gfortran.texi: Update _gfortran_set_options documentation.
1691 * invoke.texi: Remove runtime behavior description of
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>
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>
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>
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
1725 (gfc_conv_procedure_call): Remove unuseful checks on
1726 symbol's attributes. Add new checks to prevent NULL read on
1729 2012-05-12 Tobias Burnus <burnus@net-b.de>
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>
1739 * frontend-passes.c (optimize_op): Change
1740 old-style comparison operators to new-style, simplify
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>
1752 * options.c: Include diagnostics.h instead of
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>
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>
1771 * decl.c (build_struct): Don't ignore FAILED status.
1773 2012-05-05 Paul Thomas <pault@gcc.gnu.org>
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
1784 * trans-stmt.c (trans_associate_var): Handle class associate-
1786 * expr.c (gfc_get_variable_expr): Supply the array-spec if
1788 * trans-types.c (gfc_typenode_for_spec): Set GFC_CLASS_TYPE_P
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.
1803 * resolve.c (resolve_ref): C614 applied to class expressions.
1805 2012-05-05 Janne Blomqvist <jb@gcc.gnu.org>
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
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>
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
1831 2012-05-04 Tobias Burnus <burnus@net-b.de>
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>
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>
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>
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>
1878 * expr.c (gfc_check_vardef_context): Fix assignment check for
1881 2012-04-16 Janus Weil <janus@gcc.gnu.org>
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>
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>
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>
1906 * resolve.c (resolve_symbol): Fix searching for parent NS decl.
1908 2012-04-08 Tobias Burnus <burnus@net-b.de>
1911 * trans-decl.c (gfc_finish_var_decl): Don't set TREE_PUBLIC
1912 for PRIVATE module variables without C-binding label.
1915 * trans-decl.c (build_function_decl): Ditto for procedures.
1917 2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
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>
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>
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>
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>
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
1961 2012-03-15 Janne Blomqvist <jb@gcc.gnu.org>
1963 * f95-lang.c (gfc_init_builtin_functions): Initialize
1965 * mathbuiltins.def: Add IROUND.
1966 * trans-intrinsic.c (build_round_expr): Use BUILT_IN_IROUND if
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>
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>
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.
2015 (gfc_builtin_function): Make static. Do not attempt to make RTL for
2017 * convert.c (gfc_truthvalue_conversion): Moved here from f95-lang.c,
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>
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>
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>
2051 * error.c (gfc_widechar_display_length, gfc_wide_display_length):
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>
2063 * module.c (gfc_use_module): Improve error messages.
2065 2012-03-03 Tobias Burnus <burnus@net-b.de>
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):
2081 2012-03-03 Tobias Burnus <burnus@net-b.de>
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):
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>
2102 * primary.c (gfc_match_varspec): Add missing ;.
2104 2012-03-02 Tobias Burnus <burnus@net-b.de>
2107 * primary.c (gfc_match_varspec): Add diagnostic for % with
2110 2012-03-02 Tobias Burnus <burnus@net-b.de>
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>
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>
2127 * trans-expr.c (fcncall_realloc_result): Dereference the
2128 descriptor if needed.
2130 2012-02-22 Tobias Burnus <burnus@net-b.de>
2133 * io.c (gfc_match_open): Remove bogus F2003 DELIM= check.
2135 2012-02-18 Tobias Burnus <burnus@net-b.de>
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
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>
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>
2196 * trans-expr.c (fcncall_realloc_result): Set also the stride.
2198 2012-02-07 Tobias Burnus <burnus@net-b.de>
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>
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
2215 * trans-stmt.c (gfc_trans_allocate): Ditto for class scalars.
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>
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>
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>
2243 * simplify.c (gfc_simplify_size): Handle INTRINSIC_PARENTHESES.
2245 2012-02-01 Thomas König <tkoenig@gcc.gnu.org>
2248 * frontend-passes.c (convert_elseif): New function.
2249 (optimize_namespace): Call it.
2251 2012-02-01 Tobias Burnus <burnus@net-b.de>
2254 * module.c (MOD_VERSION): Bump.
2255 (mio_typebound_proc): Read/write is_operator from/to the
2258 2012-02-01 Tobias Burnus <burnus@net-b.de>
2261 * trans-expr.c (gfc_conv_procedure_call): Add array ref
2264 2012-01-31 Tobias Burnus <burnus@net-b.de>
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>
2276 * class.c (gfc_find_derived_vtab): Mark _copy function as pure.
2278 2012-01-31 Tobias Burnus <burnus@net-b.de>
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>
2287 * trans-expr.c (fcncall_realloc_result): Correct calculation of
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>
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>
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>
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>
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
2358 (write_blank_common): Write empty string for binding label.
2359 (write_symbol): Change to write empty string instead of name if no
2361 * resolve.c (gfc_iso_c_func_interface): Don't set binding_label.
2362 (set_name_and_label): Make binding_label double pointer, use
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
2370 (gen_special_c_interop_ptr): Don't set binding label.
2371 (generate_isocbinding_symbol): Insert binding_label into symbol
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>
2383 * resolve.c (symbol_as): Remove unused, accidentally
2386 2012-01-28 Tobias Burnus <burnus@net-b.de>
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>
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>
2401 * resolve.c (resolve_formal_arglist): Fix elemental
2402 constraint checks for polymorphic dummies also for
2405 2012-01-27 Tobias Burnus <burnus@net-b.de>
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>
2423 * match.c (gfc_match_allocate): Allow more than allocate
2424 object with SOURCE=.
2426 2012-01-27 Tobias Burnus <burnus@net-b.de>
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>
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
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>
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>
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>
2478 * resolve.c (resolve_structure_cons): Only create an
2479 array constructors for nonscalars.
2481 2012-01-23 Tobias Burnus <burnus@net-b.de>
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>
2491 * symbol.c (check_conflict): namelist-group-name cannot have the SAVE
2494 2012-01-21 Tobias Burnus <burnus@net-b.de>
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>
2503 * module.c (load_needed, read_module): Don't mark __vtab etc.
2506 2012-01-19 Tobias Burnus <burnus@net-b.de>
2509 * expr.c (gfc_build_intrinsic_call): Also set the symtree.
2511 2012-01-18 Paul Thomas <pault@gcc.gnu.org>
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>
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>
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>
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
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>
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
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>
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>
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>
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>
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>
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>
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>
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
2634 * resolve.c (resolve_typebound_function): Restore 'static' to
2637 2012-01-09 Mikael Morin <mikael@gcc.gnu.org>
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>
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
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):
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>
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>
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>
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,
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>
2743 * trans-common.c (create_common): Update copyright years. Mark
2744 variables as used to avoid warnings about unused variables in
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>
2755 * trans-array.c (gfc_array_allocate): Null allocated memory of
2756 newly allocted class arrays.
2761 * interface.c(build_compcall_for_operator): Add a type to the
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>
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
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.