1 2012-11-04 Janus Weil <janus@gcc.gnu.org>
4 * primary.c (gfc_match_varspec): Clear typespec if it cannot be
5 determined at this point.
7 2012-10-31 Janus Weil <janus@gcc.gnu.org>
10 * trans.h (GFC_DECL_PUSH_TOPLEVEL): Removed.
11 * trans-decl.c (gfc_get_symbol_decl,gfc_generate_function_code): Remove
12 GFC_DECL_PUSH_TOPLEVEL.
13 (build_function_decl): Do not push __copy procedure to toplevel.
15 2012-10-31 Tobias Burnus <burnus@net-b.de>
18 * trans-array.c (gfc_conv_array_parameter): Regard AS_DEFERRED as
19 array with descriptor.
21 2012-10-28 Tobias Burnus <burnus@net-b.de>
24 * gfortran.h (gfc_resolve_iterator_expr,
25 gfc_check_vardef_context): Update prototype.
26 * expr.c (gfc_check_vardef_context): Add own_scope
27 argument and honour it.
28 * resolve.c (gfc_resolve_iterator_expr): Add own_scope
29 argument and honour it.
30 (resolve_deallocate_expr, resolve_allocate_expr,
31 resolve_data_variables, resolve_transfer
32 resolve_lock_unlock, resolve_code): Update calls.
33 * array.c (resolve_array_list): Ditto.
34 * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
35 * interface.c (compare_actual_formal): Ditto.
36 * intrinsic.c (check_arglist): Ditto.
37 * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
39 2012-10-27 Thomas Koenig <tkoenig@gcc.gnu.org>
41 * trans.c (gfc_allocate_allocatable): Revert accidental
44 2012-10-24 Janus Weil <janus@gcc.gnu.org>
47 * trans-expr.c (gfc_conv_procedure_call): Move a piece of code and
50 2012-10-21 Tobias Burnus <burnus@net-b.de>
53 * Make-lang.in (CFLAGS-cpp.o): Use TARGET_SYSTEM_ROOT_DEFINE.
54 * cpp.o (gfc_cpp_init_options): Use it for
55 setting gfc_cpp_option.sysroot.
57 2012-10-21 Thomas König <tkoenig@gcc.gnu.org>
60 * lang.opt (Wextra): Add.
61 * invoke.texi: Document that -Wc-binding-type, -Wconversion
62 and -Wline-truncation are implied by -Wall. Document that
63 -Wcompare-reals is implied by -Wextra. Document -Wextra.
64 * options.c (set_Wextra): New function.
65 (gfc_handle_option): Handle -Wextra.
67 2012-10-19 Janus Weil <janus@gcc.gnu.org>
70 * trans-expr.c (conv_function_val): Set TREE_USED.
72 2012-10-18 Tobias Burnus <burnus@net-b.de>
75 * resolve.c (specification_expr): Change to bool.
76 (resolve_formal_arglist, resolve_symbol): Set
77 specification_expr to true before resolving the array spec.
78 (resolve_variable, resolve_charlen, resolve_fl_variable):
79 Properly reset specification_expr.
80 (resolve_function): Set public_use when used in
83 2012-10-16 Tobias Burnus <burnus@net-b.de>
87 * trans.h (gfc_conv_derived_to_class, gfc_conv_class_to_class):
89 * trans-stmt.c (trans_associate_var,gfc_trans_allocate): Update
90 calls to those functions.
91 * trans-expr.c (gfc_conv_derived_to_class, gfc_conv_class_to_class,
92 gfc_conv_expr_present): Handle absent polymorphic arguments.
93 (class_scalar_coarray_to_class): New function.
94 (gfc_conv_procedure_call): Update calls.
96 2012-10-12 Janus Weil <janus@gcc.gnu.org>
99 * interface.c (check_dummy_characteristics): Recursively check dummy
102 2012-10-11 Janus Weil <janus@gcc.gnu.org>
105 * trans-stmt.c (gfc_trans_allocate): Correctly determine the reference
106 to the _data component for polymorphic allocation with SOURCE.
108 2012-10-06 Janus Weil <janus@gcc.gnu.org>
111 * resolve.c (resolve_fl_derived0): Correctly copy the 'class_ok'
112 attribute for proc-ptr components with RESULT variable.
114 2012-10-06 Janus Weil <janus@gcc.gnu.org>
117 * interface.c (generic_correspondence): Implement additional
118 distinguishability criteria of F08.
119 (compare_actual_formal): Reject data object as actual argument for
120 procedure formal argument.
122 2012-10-04 Tobias Burnus <burnus@net-b.de>
124 * expr.c (scalarize_intrinsic_call): Plug memory leak.
125 * frontend-passes.c (gcc_assert): Extend assert.
126 * interface.c (gfc_compare_derived_types): Fix comparison.
127 (gfc_check_operator_interface): Move up to make this error
129 (get_sym_storage_size): Remove always-true checks.
130 * io.c (format_lex): Add comment.
131 (gfc_free_wait): Free memory.
132 * match.c (gfc_match_select_type): Ditto.
133 * matchexpr.c (match_level_3): Ditto.
134 * primary.c (match_string_constant): Ditto.
135 (match_actual_arg): Check return value.
136 * resolve.c (gfc_resolve_substring_charlen,
137 resolve_typebound_generic_call, resolve_typebound_function,
138 resolve_typebound_subroutine): Free memory.
139 * trans-types.c (gfc_get_derived_type): Remove always-true check.
141 2012-10-02 Janus Weil <janus@gcc.gnu.org>
144 * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
146 2012-09-30 Janus Weil <janus@gcc.gnu.org>
149 * intrinsic.texi (C_F_POINTER): Fix description.
150 * resolve.c (gfc_iso_c_sub_interface): Add a check for FPTR argument
151 of C_F_POINTER. Modify two error messages. Cleanup.
153 2012-09-24 Tobias Burnus <burnus@net-b.de>
157 * trans-expr.c (gfc_conv_procedure_call): Fix INTENT(OUT)
158 handling for allocatable BT_CLASS.
160 2012-09-24 Lawrence Crowl <crowl@google.com>
162 * trans-expr.c (gfc_conv_cst_int_power): Change to new double_int API.
163 * target-memory.c (gfc_interpret_logical): Likewise.
165 2012-09-23 Tobias Burnus <burnus@net-b.de>
167 * parse.c (parse_derived): Don't set attr.alloc_comp
168 for pointer components with allocatable subcomps.
171 * resolve.c (resolve_fl_namelist): Remove superfluous
173 * simplify.c (simplify_min_max): Remove unreachable code.
174 * trans-array.c (gfc_trans_create_temp_array): Change
175 a condition into an assert.
178 * trans-expr.c (gfc_trans_class_init_assign): Guard
179 re-setting of the _data by gfc_conv_expr_present.
180 (gfc_conv_procedure_call): Fix INTENT(OUT) handling
181 for allocatable BT_CLASS.
183 2012-09-22 Thomas König <tkoenig@gcc.gnu.org>
186 * dependency.c (gfc_dep_compare_expr): Clarify logic,
189 2012-09-20 Tobias Burnus <burnus@net-b.de>
192 * cpp.c (print_line): Properly handle extern C.
194 2012-09-20 Martin Jambor <mjambor@suse.cz>
196 * trans-decl.c (gfc_get_extern_function_decl): Push NULL cfun. Do not
197 set and restore current_function_decl.
198 (gfc_init_coarray_decl): Do not set and restore current_function_decl.
200 2012-09-17 Tobias Burnus <burnus@net-b.de>
203 * simplify.c (gfc_simplify_scan, gfc_simplify_verify):
204 Fix handling of BACK=variable.
206 2012-09-17 Janus Weil <janus@gcc.gnu.org>
209 * expr.c (gfc_check_pointer_assign): Correctly handle procedure pointers
211 * primary.c (gfc_match_varspec): Allow to call a PPC with proc-ptr
214 2012-09-17 Tobias Burnus <burnus@net-b.de>
217 * trans-expr.c (gfc_trans_subcomponent_assign): Handle
218 proc-pointer components.
220 2012-09-17 Tobias Burnus <burnus@net-b.de>
223 * error.c (error_print): Move increment out of the assert.
224 * interface.c (gfc_compare_derived_types): Add assert.
225 (get_expr_storage_size): Remove always-true logical condition.
226 * resolve.c (resolve_allocate_expr): Fix looping logic.
227 * target-memory.c (gfc_target_expr_size): Add assert.
229 2012-09-16 Janus Weil <janus@gcc.gnu.org>
232 * resolve.c (get_checked_tb_operator_target): Add a reference to the
233 relevant quote from the F08 standard.
235 2012-09-16 Janus Weil <janus@gcc.gnu.org>
238 * interface.c (compare_type_rank): Handle CLASS arrays.
240 2012-09-16 Janus Weil <janus@gcc.gnu.org>
243 * expr.c (gfc_check_pointer_assign): Check for result of embracing
246 2012-09-16 Tobias Burnus <burnus@net-b.de>
248 * trans-decl.c (gfc_generate_function_code): Fix
249 gfc_option.coarray check.
250 * trans-stmt.c (compute_inner_temp_size): Fix handling
251 of gfc_option.rtcheck.
253 2012-09-16 Mikael Morin <mikael@gcc.gnu.org>
255 * symbol.c (gfc_undo_symbols): Correctly undo namelists.
257 2012-09-15 Tobias Burnus <burnus@net-b.de>
259 * trans-io.c (gfc_trans_transfer): Add an assert.
261 2012-09-15 Tobias Burnus <burnus@net-b.de>
263 * arith.c (arith_power): Call gfc_free_expr in case of error.
264 * array.c (gfc_match_array_constructor): Initialize variable.
265 (gfc_resolve_character_array_constructor): Remove superfluous check.
266 (gfc_array_dimen_size): Add assert.
267 * check.c (numeric_check): Fix implicit typing.
268 * class.c (gfc_build_class_symbol): Add assert.
269 (finalize_component): Free memory.
270 * dump-parse-tree.c (show_namespace): Add assert.
271 * trans-io.c (transfer_namelist_element, transfer_expr): Avoid
273 (gfc_trans_transfer): Add assert.
274 * trans.c (gfc_trans_runtime_check): Call va_end
276 2012-09-15 Tobias Burnus <burnus@net-b.de>
278 * match.c (lock_unlock_statement, sync_statement): Fix potential
280 (sync_statement): Remove unreachable code.
281 * simplify.c (gfc_simplify_bessel_n2): Avoid double freeing.
282 (gfc_simplify_repeat): Remove bogus code.
283 * target-memory.h (gfc_target_encode_expr): Update prototype.
284 * target-memory.c (gfc_target_encode_expr, encode_array,
285 encode_derived): Return unsigned HOST_WIDE_INT.
286 (gfc_target_interpret_expr): Add assert.
287 (gfc_merge_initializers): Fix "== 0" check for mpz_t.
288 * symbol.c (gfc_get_typebound_proc): Add assert.
289 (gfc_merge_initializers): Remove unreachable check.
291 2012-09-13 Tobias Burnus <burnus@net-b.de>
294 * resolve.c (resolve_formal_arglist): Allow VALUE arguments
296 (gfc_impure_variable): Don't check gfc_pure such that the
297 function also works for gfc_implicit_pure procedures.
299 2012-09-12 Tobias Burnus <burnus@net-b.de>
303 * array.c (match_subscript, gfc_match_array_ref): Fix
304 diagnostic of coarray's '*'.
306 2012-09-07 Mikael Morin <mikael@gcc.gnu.org>
309 * simplify.c (simplify_bound_dim): Resolve array spec before
310 proceeding with simplification.
312 2012-09-06 Tobias Burnus <burnus@net-b.de>
315 * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Fix matmul
316 call to BLAS if the default-kind has been promoted.
318 2012-09-05 Tobias Burnus <burnus@net-b.de>
321 * symbol.c (gfc_undo_symbols): Avoid NULL pointer dereference.
323 2012-09-04 Janus Weil <janus@gcc.gnu.org>
327 * match.c (gfc_match_select_type): Make sure to only access CLASS_DATA
330 2012-09-03 Tobias Burnus <burnus@net-b.de>
333 * class.c (gfc_find_derived_vtab): Fix disabling of _final
334 by continuing to generate normal type-bound procedures.
336 2012-09-03 Tobias Burnus <burnus@net-b.de>
338 * class.c (gfc_find_derived_vtab): Disable ABI-breaking
339 generation of the "_final" subroutine for now.
341 2012-09-03 Tobias Burnus <burnus@net-b.de>
343 * class.c (finalize_component): Fixes to the comment.
345 2012-09-03 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
346 Tobias Burnus <burnus@net-b.de>
349 * gfortran.h (symbol_attribute): Add artificial.
350 * module.c (mio_symbol_attribute): Handle attr.artificial
351 * class.c (gfc_build_class_symbol): Defer creation of the vtab
352 if the DT has finalizers, mark generated symbols as
354 (has_finalizer_component, finalize_component,
355 finalization_scalarizer, generate_finalization_wrapper):
356 New static functions.
357 (gfc_find_derived_vtab): Add _final component and call
358 generate_finalization_wrapper.
359 * dump-parse-tree.c (show_f2k_derived): Use resolved
360 proc_tree->n.sym rather than unresolved proc_sym.
361 (show_attr): Handle attr.artificial.
362 * resolve.c (gfc_resolve_finalizers): Ensure that the vtab exists.
363 (resolve_fl_derived): Resolve finalizers before
365 (resolve_symbol): Also allow assumed-rank arrays with CONTIGUOUS;
366 skip artificial symbols.
367 (resolve_fl_derived0): Skip artificial symbols.
369 2012-09-02 Tobias Burnus <burnus@net-b.de>
372 * symbol.c (find_common_symtree): New function.
373 (gfc_undo_symbols): Use it; free common_head if needed.
375 2012-08-28 Tobias Burnus <burnus@net-b.de>
378 * trans-decl.c (gfc_get_extern_function_decl,
379 build_function_decl): Don't mark impure elemental
380 functions as DECL_PURE_P and honour implicit_pure.
382 2012-08-28 Tobias Burnus <burnus@net-b.de>
385 * error.c (show_locus): Avoid out of bound access.
387 2012-08-28 Tobias Burnus <burnus@net-b.de>
390 * decl.c (match_data_constant): Add missing gfc_free_expr.
391 (top_val_list): Remove always-true condition.
392 * data.c (get_array_index, create_character_initializer):
393 Free temporary expressions.
394 (gfc_assign_data_value): Free expression when aborting.
396 2012-08-28 Tobias Burnus <burnus@net-b.de>
399 * symbol.c (gfc_copy_formal_args): Set also sym->formal_ns.
401 2012-08-27 Tobias Burnus <burnus@net-b.de>
404 * resolve.c (gfc_resolve_character_operator): Free temporary
406 * trans-expr.c (gfc_conv_statement_function): Ditto.
408 2012-08-27 Tobias Burnus <burnus@net-b.de>
411 * dependency.c (check_section_vs_section): Use gfc_free_expr
413 * trans-intrinsic.c (conv_generic_with_optional_char_arg): Use
414 gfc_free_symbol instead of free.
416 2012-08-27 Tobias Burnus <burnus@net-b.de>
419 * trans-expr.c (gfc_trans_arrayfunc_assign): Free se.ss
422 2012-08-27 Tobias Burnus <burnus@net-b.de>
425 * gfortran.h (gfc_common_head): Add "int refs".
426 * match.c (gfc_match_common): Increment refs.
427 * resolve.c (resolve_symbol): Only increment formal_ns->refs
428 if formal_ns is not sym->ns.
429 * symbol.c (gfc_free_symbol): Only free formal_ns if
430 if formal_ns is not sym->ns. Free common_block if refs is one.
431 (gfc_release_symbol): Release formal_ns only if the
432 symbol is not ENTRY of a module.
433 * decl.c (get_proc_name): Don't increment gfc_current_ns->refs.
434 * parse.c (parse_interface): Incement proc_unit->refs++ for
435 proc-pointer result variables.
436 * module.c (mio_symbol): Don't increase sym->refs for its
437 use in sym->formal_ns->proc_name.
439 2012-08-27 Tobias Burnus <burnus@net-b.de>
442 * trans-stmt.c (gfc_trans_do_while): Don't change the logical
443 kind for negation of the condition.
445 2012-08-27 Tobias Burnus <burnus@net-b.de>
447 * options.c (set_Wall): Don't set for -Wcompare-reals.
448 * invoke.texi (-Wall, -Wcompare-reals): -Wall no longer
449 implies -Wcompare-reals.
451 2012-08-24 Simon Baldwin <simonb@google.com>
453 * lang.opt (-cpp=): Mark flag NoDWARFRecord.
455 2012-08-23 Tobias Burnus <burnus@net-b.de>
458 * trans-array.c (free_ss_info): Free data.array.subscript.
459 (gfc_free_ss): No longer free data.array.subscript.
460 (walk_coarray): New function, moved from trans-intrinsic.c
461 (gfc_conv_expr_descriptor): Walk array descriptor instead
462 of taking passed "ss".
463 (get_array_ctor_all_strlen, gfc_add_loop_ss_code,
464 gfc_conv_array_parameter): Update call and cleanup ss handling.
465 * trans-array.h (gfc_conv_expr_descriptor,
466 gfc_conv_array_parameter): Update prototype.
467 * trans-expr.c (gfc_conv_derived_to_class,
468 conv_isocbinding_procedure, gfc_conv_procedure_call,
469 gfc_trans_alloc_subarray_assign, gfc_trans_subcomponent_assign,
470 gfc_trans_pointer_assignment, gfc_trans_arrayfunc_assign): Update
471 call to gfc_conv_expr_descriptor and gfc_conv_array_parameter, and
473 * trans-intrinsic.c (walk_coarray): Moved to trans-array.c
474 (trans_this_image, trans_image_index, gfc_conv_intrinsic_rank
475 gfc_conv_intrinsic_bound, gfc_conv_intrinsic_cobound,
476 gfc_conv_intrinsic_len, gfc_conv_intrinsic_size,
477 gfc_conv_intrinsic_sizeof, gfc_conv_intrinsic_storage_size,
478 gfc_conv_intrinsic_transfer, gfc_conv_allocated,
479 gfc_conv_associated, gfc_conv_intrinsic_loc,
480 conv_intrinsic_move_alloc): Update calls.
481 * trans-io.c (gfc_convert_array_to_string, set_internal_unit,
482 gfc_trans_transfer): Ditto.
483 * trans-stmt.c (gfc_conv_elemental_dependencies,
484 gfc_trans_sync, trans_associate_var,
485 gfc_trans_pointer_assign_need_temp): Ditto.
487 2012-08-23 Jakub Jelinek <jakub@redhat.com>
489 * trans-decl.c (trans_function_start, generate_coarray_init,
490 create_main_function, gfc_generate_constructors): Call
491 allocate_struct_function instead of init_function_start.
493 2012-08-22 Tobias Burnus <burnus@net-b.de>
495 * trans-expr.c (gfc_copy_class_to_class,
496 gfc_trans_arrayfunc_assign): Free loop and ss data.
497 * trans-intrinsic.c (gfc_trans_arrayfunc_assign): Free ss data.
499 2012-08-21 Tobias Burnus <burnus@net-b.de>
501 * parse.c (parse_contained): Include EXEC_END_PROCEDURE
502 in ns->code to make sure the gfc_code is freed.
504 2012-08-20 Tobias Burnus <burnus@net-b.de>
507 * expr.c (gfc_check_pointer_assign): Warn when a pointer,
508 which is a function result, might outlive its target.
510 2012-08-20 Tobias Burnus <burnus@net-b.de>
513 * expr.c (gfc_check_pointer_assign): Warn when the pointer
514 might outlive its target.
515 * gfortran.h (struct gfc_option_t): Add warn_target_lifetime.
516 * options.c (gfc_init_options, set_wall, gfc_handle_option):
518 * invoke.texi (-Wtarget-lifetime): Document it.
520 * lang.opt (-Wtarget-lifetime): New flag.
522 2012-08-19 Thomas König <tkoenig@gcc.gnu.org>
525 * gfortran.h (struct gfc_option_t): Add warn_compare_reals.
526 * lang.opt: Add Wcompare-reals.
527 * invoke.texi: Document -Wcompare-reals.
528 * resolve.c (resolve_operator): If -Wcompare-reals is in effect,
529 warn about equality/inequality comparisions for REAL and COMPLEX.
530 * options.c (gfc_init_options): Set warn_compare_reals.
531 (set_Wall): Include warn_compare_reals in Wall.
532 (gfc_handle_option): Handle Wcompare_reals.
534 2012-08-17 Jakub Jelinek <jakub@redhat.com>
536 * array.c (gfc_match_array_ref): Fix up memset arguments.
538 2012-08-16 Diego Novillo <dnovillo@google.com>
543 * gfortran.h: Do not include gmp.h.
545 2012-08-16 Diego Novillo <dnovillo@google.com>
548 * gfortran.h: Do not include gmp.h.
550 2012-08-15 Janus Weil <janus@gcc.gnu.org>
554 * resolve.c (check_typebound_baseobject): Check for class_ok attribute.
555 (resolve_procedure_interface,resolve_fl_derived0): Copy class_ok
558 2012-08-14 Mikael Morin <mikael@gcc.gnu.org>
561 * trans-expr.c (expr_is_variable): Handle regular, procedure pointer,
562 and typebound functions returning a data pointer.
564 2012-08-14 Mikael Morin <mikael@gcc.gnu.org>
566 * decl.c (match_ppc_decl): Copy the procedure interface's symbol
567 as procedure interface's result.
569 2012-08-14 Mikael Morin <mikael@gcc.gnu.org>
571 * trans-expr.c (gfc_trans_scalar_assign): Rename argument,
574 2012-08-14 Mikael Morin <mikael@gcc.gnu.org>
576 * gfortran.h (gfc_get_proc_ptr_comp): New prototype.
577 (gfc_is_proc_ptr_comp): Update prototype.
578 * expr.c (gfc_get_proc_ptr_comp): New function based on the old
579 gfc_is_proc_ptr_comp.
580 (gfc_is_proc_ptr_comp): Call gfc_get_proc_ptr_comp.
581 (gfc_specification_expr, gfc_check_pointer_assign): Use
582 gfc_get_proc_ptr_comp.
583 * trans-array.c (gfc_walk_function_expr): Likewise.
584 * resolve.c (resolve_structure_cons, update_ppc_arglist,
585 resolve_ppc_call, resolve_expr_ppc): Likewise.
586 (resolve_function): Update call to gfc_is_proc_ptr_comp.
587 * dump-parse-tree.c (show_expr): Likewise.
588 * interface.c (compare_actual_formal): Likewise.
589 * match.c (gfc_match_pointer_assignment): Likewise.
590 * primary.c (gfc_match_varspec): Likewise.
591 * trans-io.c (gfc_trans_transfer): Likewise.
592 * trans-expr.c (gfc_conv_variable, conv_function_val,
593 conv_isocbinding_procedure, gfc_conv_procedure_call,
594 gfc_trans_pointer_assignment): Likewise.
595 (gfc_conv_procedure_call, gfc_trans_array_func_assign):
596 Use gfc_get_proc_ptr_comp.
598 2012-08-14 Tobias Burnus <burnus@net-b.de>
601 * error.c (gfc_notify_std): Reset cur_error_buffer->flag flag
602 when the error/warning has been printed.
603 * gfortran.h (gfc_sl_type): Add ST_LABEL_DO_TARGET.
604 * match.c (gfc_match_do): Use ST_LABEL_DO_TARGET.
605 * parse.c (check_statement_label): Use ST_LABEL_DO_TARGET.
606 (parse_executable): Add obsolescence check for DATA.
607 * resolve.c (resolve_branch): Handle ST_LABEL_DO_TARGET.
608 * symbol.c (gfc_define_st_label, gfc_reference_st_label):
609 Add obsolescence diagnostics.
610 * trans-stmt.c (gfc_trans_label_assign): Handle ST_LABEL_DO_TARGET.
612 2012-08-14 Tobias Burnus <burnus@net-b.de>
615 * check.c (gfc_check_cmplx): Add -Wconversion warning
616 when converting higher-precision REAL to default-precision
617 CMPLX without kind= parameter.
619 2012-08-12 Tobias Burnus <burnus@net-b.de>
622 * trans-decl.c (gfc_finish_var_decl, build_function_decl):
623 Fix setting private module vars/procs as TREE_PUBLIC(...) = 0.
625 2012-08-09 Tobias Burnus <burnus@net-b.de>
628 * intrinsic.c (gfc_warn_intrinsic_shadow): Better warning
629 for internal procedures.
631 2012-08-06 Janus Weil <janus@gcc.gnu.org>
634 * interface.c (check_result_characteristics): New function, which checks
635 the characteristics of function results.
636 (gfc_compare_interfaces,gfc_check_typebound_override): Call it.
638 2012-08-02 Thomas König <tkoenig@gcc.gnu.org>
641 * scanner.c (add_path_to_list): New argument warn. Don't
643 (gfc_add_include_path): Warn if directory is missing.
644 (gfc_add_intrinsic_modules_path): Do not warn if directory
646 * optinons.c (gfc_handle_option): Do not add directory
647 for intrinsic modules to normal include path.
649 2012-08-03 Mikael Morin <mikael@gcc.gnu.org>
652 * trans-array.c (set_loop_bounds): Access specinfo using spec_dim.
654 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
657 * trans-array.c (gfc_conv_ss_startstride): Set the intrinsic
658 result's lower and upper bounds according to the rank.
659 (set_loop_bounds): Set the loop upper bound in the intrinsic case.
661 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
663 * trans-array.c (set_loop_bounds): Allow non-array-section to be
664 chosen using the stride and lower bound criteria.
666 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
668 * trans-array.c (set_loop_bounds): Remove useless dimension check.
669 Don't update loopspec if it would loose the wanted stride criterion.
671 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
673 * trans-array.h (gfc_conv_descriptor_rank): New prototype.
674 * trans-array.c (gfc_conv_descriptor_rank): New function moved and
676 * trans-intrinsic.c (get_rank_from_desc): ... from this one.
677 (gfc_conv_intrinsic_rank, gfc_conv_intrinsic_bound,
678 gfc_conv_associated): Also rename function calls.
680 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
682 * iresolve.c (resolve_bound, gfc_resolve_shape):
683 Don't set the shape for assumed rank arrays.
684 * simplify.c (gfc_simplify_shape): Don't try to simplify if the
685 argument is assumed rank.
687 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
689 * array.c (gfc_copy_array_ref): Don't copy the offset field.
690 * expr.c (find_array_section): Ignore the offset field.
691 * trans-expr.c (gfc_find_interface_mapping_to_ref): Don't apply
692 any interface mapping to the offset field.
693 * gfortran.h (struct gfc_array_ref): Remove the offset field.
695 2012-08-02 Janus Weil <janus@gcc.gnu.org>
698 * resolve.c (check_proc_interface): New routine for PROCEDURE interface
700 (resolve_procedure_interface,resolve_typebound_procedure,
701 resolve_fl_derived0): Call it.
703 2012-08-01 Thomas König <tkoenig@gcc.gnu.org>
706 * scanner.c (add_path_to_list): Emit warning if an error occurs
707 for an include path, if it is not present or if it is not a
708 directory. Do not add the path in these cases.
710 2012-07-31 Janus Weil <janus@gcc.gnu.org>
713 * decl.c (match_procedure_interface): Move some checks to
714 'resolve_procedure_interface'. Set flavor if appropriate.
715 * expr.c (gfc_check_pointer_assign): Cleanup of 'gfc_is_intrinsic'.
716 * intrinsic.c (gfc_is_intrinsic): Additional checks for attributes which
717 identify a procedure as being non-intrinsic.
718 * resolve.c (resolve_procedure_interface): Checks moved here from
719 'match_procedure_interface'. Minor cleanup.
720 (resolve_formal_arglist,resolve_symbol): Cleanup of
721 'resolve_procedure_interface'
722 (resolve_actual_arglist,is_external_proc): Cleanup of
725 2012-07-31 Janus Weil <janus@gcc.gnu.org>
728 * dependency.c (gfc_dep_compare_expr): Check if arguments are NULL.
730 2012-07-31 Tobias Burnus <burnus@net-b.de>
732 * interface.c (gfc_procedure_use): Return gfc_try instead of void.
733 * gfortran.h (gfc_procedure_use): Update prototype.
734 * resolve.c (gfc_iso_c_func_interface): Allow noninteroperable
735 procedures for c_funloc for TS29113.
736 * (gfc_iso_c_sub_interface): Ditto for c_f_procpointer. Add
737 diagnostic for c_ptr vs. c_funptr for c_f_(proc)pointer.
739 2012-07-30 Janus Weil <janus@gcc.gnu.org>
742 * gfortran.h (gfc_resolve_intrinsic): Add prototype.
743 * expr.c (gfc_check_pointer_assign): Set INTRINSIC attribute if needed.
744 Check for invalid intrinsics.
745 * primary.c (gfc_match_rvalue): Check for intrinsics came too early.
746 Set procedure flavor if appropriate.
747 * resolve.c (resolve_intrinsic): Renamed to gfc_resolve_intrinsic.
748 (resolve_procedure_interface,resolve_procedure_expression,
749 resolve_function,resolve_fl_derived0,resolve_symbol): Ditto.
751 2012-07-26 Mikael Morin <mikael@gcc.gnu.org>
754 * trans-array.c (gfc_trans_array_constructor_value):
755 Evaluate the iteration bounds before the inner variable shadows
758 2012-07-26 Mikael Morin <mikael@gcc.gnu.org>
761 * array.c (sought_symbol): New variable.
762 (expr_is_sought_symbol_ref, find_symbol_in_expr): New functions.
763 (resolve_array_list): Check for references to the induction
764 variable in the iteration bounds and issue a diagnostic if some
767 2012-07-26 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
768 Tobias Burnus <burnus@net-b.de>
770 * module.c (mio_array_spec): Don't read as->lower for
773 2012-07-25 Tobias Burnus <burnus@net-b.de>
775 * trans-types.c (gfc_real16_is_float128): Fix spelling
777 * trans.h (struct gfc_array_info): Ditto.
778 * gfortran.h (gfc_expr): Ditto.
779 * simplify.c (gfc_count): Ditto.
780 * trans-expr.c (gfc_copy_class_to_class,
781 conv_parent_component_references,
782 gfc_trans_pointer_assignment): Ditto.
783 * expr.c (check_pointer_assign): Fix diagnostic spelling.
784 * interface.c (compare_parameter): Ditto.
785 * parse.c (use_modules, parse_associate): Ditto.
786 * decl.c (match_char_length): Fix spelling of the
787 an function argument.
789 2012-07-21 Tobias Burnus <burnus@net-b.de>
791 * iso-c-binding.def (C_PTRDIFF_T): New TS29113 parameter.
792 * intrinsic.texi (ISO_C_BINDING): Document it.
794 2012-07-21 Tobias Burnus <burnus@net-b.de>
797 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Support
798 lbound/ubound with dim= for assumed-rank arrays.
799 * array.c (gfc_set_array_spec): Reject coarrays with
801 * decl.c (merge_array_spec): Ditto. Return gfc_try.
802 (match_attr_spec, match_attr_spec): Update call.
804 2012-07-21 Tobias Burnus <burnus@net-b.de>
806 * resolve.c (resolve_formal_arglist): Put variable
807 declaration before the first assignment.
809 2012-07-21 Tobias Burnus <burnus@net-b.de>
811 * trans-expr.c (gfc_conv_derived_to_class): Fix argument passed
812 to class_array_data_assign.
814 2012-07-20 Tobias Burnus <burnus@net-b.de>
816 * decl.c (gfc_verify_c_interop_param): Allow assumed-shape
819 2012-07-20 Tobias Burnus <burnus@net-b.de>
822 * array.c (match_array_element_spec, gfc_match_array_spec,
823 spec_size, gfc_array_dimen_size): Add support for
825 * check.c (dim_rank_check): Ditto.
826 * class.c (gfc_add_component_ref): Ditto.
827 (gfc_build_class_symbol): Regard assumed-rank arrays
828 as having GFC_MAX_DIMENSIONS. And build extra class
829 container for a scalar pointer class.
830 * decl.c (merge_array_spec): Add assert.
831 * dump-parse-tree.c (show_array_spec): Add support for
833 * expr.c (gfc_is_simply_contiguous): Ditto.
834 * gfortran.h (array_type): Ditto.
835 (gfc_array_spec, gfc_expr): Add comment to "rank" field.
836 * interface.c (compare_type_rank, argument_rank_mismatch,
837 compare_parameter, gfc_procedure_use): Ditto.
838 (compare_actual_formal): Fix NULL() to optional-dummy
839 handling for polymorphic dummies.
840 * module.c (mio_typespec): Add support for
842 * resolve.c (resolve_formal_arglist, resolve_actual_arglist,
843 resolve_elemental_actual, resolve_global_procedure,
844 expression_shape, resolve_variable, update_ppc_arglist,
845 check_typebound_baseobject, gfc_resolve_expr,
846 resolve_fl_var_and_proc, gfc_resolve_finalizers,
847 resolve_typebound_procedure, resolve_symbol): Ditto.
848 (assumed_type_expr_allowed): Remove static variable.
849 (actual_arg, first_actual_arg): New static variables.
850 * simplify.c (simplify_bound, gfc_simplify_range): Add
851 support for assumed-rank arrays.
852 * trans-array.c (gfc_conv_array_parameter): Ditto.
853 (gfc_get_descriptor_dimension): New function, which returns
855 (gfc_conv_descriptor_dimension): Use it.
856 (gfc_conv_descriptor_stride_get, gfc_conv_array_parameter):
857 Handle GFC_ARRAY_ASSUMED_RANK_CONT and AS_ASSUMED_RANK.
858 * trans-array.h (gfc_get_descriptor_dimension): New prototype.
859 * trans-decl. (gfc_build_dummy_array_decl,
860 gfc_trans_deferred_vars, add_argument_checking): Add
861 support for assumed-rank arrays.
862 * trans-expr.c (gfc_conv_expr_present, gfc_conv_variable,
863 gfc_conv_procedure_call): Ditto.
864 (get_scalar_to_descriptor_type, class_array_data_assign,
865 conv_scalar_to_descriptor): New static functions.
866 (gfc_conv_derived_to_class, gfc_conv_class_to_class): Use
868 * trans-intrinsic.c (get_rank_from_desc): New function.
869 (gfc_conv_intrinsic_rank, gfc_conv_associated): Use it.
870 * trans-types.c (gfc_array_descriptor_base_caf,
871 gfc_array_descriptor_base): Make space for scalar array.
872 (gfc_is_nodesc_array, gfc_is_nodesc_array,
873 gfc_build_array_type, gfc_get_array_descriptor_base): Add
874 support for assumed-rank arrays.
875 * trans.h (gfc_array_kind): Add GFC_ARRAY_ASSUMED_RANK and
876 GFC_ARRAY_ASSUMED_RANK_CONT.
878 2012-07-19 Tobias Burnus <burnus@net-b.de>
880 * trans-expr.c (gfc_conv_procedure_call): Fix handling
881 of polymorphic arguments.
882 * resolve.c (resolve_formal_arglist): Ditto, mark polymorphic
883 assumed-shape arrays as such.
885 2012-07-19 Tobias Burnus <burnus@net-b.de>
887 * interface.c (compare_parameter, compare_actual_formal): Fix
888 handling of polymorphic arguments.
890 2012-07-17 Janus Weil <janus@gcc.gnu.org>
893 * error.c (gfc_notify_std): Automatically print the relevant Fortran
895 * arith.c (arith_power): Remove explicit standard reference string.
896 * array.c (gfc_match_array_spec, gfc_match_array_constructor): Ditto.
897 * check.c (gfc_check_a_p, gfc_check_besn, gfc_check_count,
898 gfc_check_float, gfc_check_fn_rc2008, gfc_check_iand,
899 gfc_check_ichar_iachar, gfc_check_ieor, gfc_check_index, gfc_check_ior,
900 gfc_check_lbound, gfc_check_len_lentrim, check_rest, gfc_check_min_max,
901 gfc_check_null, gfc_check_scan, gfc_check_selected_real_kind,
902 gfc_check_shape, gfc_check_size, gfc_check_sngl, gfc_check_ubound,
903 gfc_check_verify): Ditto.
904 * data.c (gfc_assign_data_value): Ditto.
905 * decl.c (var_element, char_len_param_value, match_char_length,
906 gfc_verify_c_interop_param, match_pointer_init, variable_decl,
907 gfc_match_decl_type_spec, gfc_match_import, match_attr_spec,
908 gfc_match_prefix, gfc_match_suffix, match_ppc_decl,
909 match_procedure_in_interface, gfc_match_procedure,gfc_match_entry,
910 gfc_match_subroutine, gfc_match_end, gfc_match_codimension,
911 gfc_match_protected, gfc_match_value, gfc_match_volatile,
912 gfc_match_asynchronous, gfc_match_modproc, gfc_get_type_attr_spec,
913 gfc_match_enum, match_procedure_in_type): Ditto.
914 * expr.c (check_elemental, gfc_check_assign, gfc_check_pointer_assign):
916 * interface.c (gfc_match_abstract_interface, check_interface0): Ditto.
917 * intrinsic.c (gfc_intrinsic_func_interface): Ditto.
918 * io.c (format_lex, resolve_tag_format, resolve_tag,
919 compare_to_allowed_values, gfc_match_open, gfc_match_rewind,
920 gfc_resolve_dt, gfc_match_wait): Ditto.
921 * match.c (match_arithmetic_if, gfc_match_if, gfc_match_critical,
922 gfc_match_do, match_exit_cycle, gfc_match_pause, gfc_match_stop,
923 gfc_match_lock, sync_statement, gfc_match_assign, gfc_match_goto,
924 gfc_match_allocate, gfc_match_return, gfc_match_st_function): Ditto.
925 * module.c (gfc_match_use, gfc_use_module): Ditto.
926 * parse.c (parse_derived_contains, parse_block_construct,
927 parse_associate, parse_contained): Ditto.
928 * primary.c (match_hollerith_constant, match_boz_constant,
929 match_real_constant, match_sym_complex_part, match_arg_list_function,
930 build_actual_constructor, gfc_convert_to_structure_constructor): Ditto.
931 * resolve.c (resolve_formal_arglist, resolve_entries,
932 resolve_common_blocks, resolve_actual_arglist, gfc_resolve_index_1,
933 gfc_resolve_iterator_expr, resolve_ordinary_assign,
934 resolve_fl_var_and_proc, resolve_fl_variable_derived,
935 resolve_fl_procedure, resolve_fl_derived0, resolve_fl_derived,
936 resolve_fl_namelist, resolve_symbol, resolve_fntype): Ditto.
937 * symbol.c (check_conflict, conflict, gfc_add_is_bind_c,
938 gfc_add_extension, gfc_check_symbol_typed): Ditto.
940 2012-07-17 Tobias Burnus <burnus@net-b.de>
943 * decl.c (gfc_verify_c_interop_param): Make warning conditional
944 on -Wc-binding-type works and improve the wording.
946 2012-07-17 Tobias Burnus <burnus@net-b.de>
949 * decl.c (match_char_length): Extra argument, show obsolenscent
950 warning only if *length is used after the typename.
951 (variable_decl, gfc_match_char_spec): Update call
953 2012-07-17 Tobias Burnus <burnus@net-b.de>
954 Steven G. Kargl <kargl@gcc.gnu.org>
957 * decl.c (match_procedure_in_interface): Support "::" for
958 Fortran 2008 and later.
960 2012-07-16 Thomas König <tkoenig@gcc.gnu.org>
963 * resolve.c (resolve_allocate_deallocate): If both
964 start indices are NULL, skip the test for equality.
966 2012-07-16 Steven Bosscher <steven@gcc.gnu.org>
968 * f95-lang.c: Include dumpfile.h instead of tree-dump.h.
969 * Make-lang.in: Fix dependencies.
971 2012-07-16 Janus Weil <janus@gcc.gnu.org>
974 * gfortran.h (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Modified
976 * symbol.c (gfc_copy_formal_args): New argument 'if_src'. Copy if_source
978 (gfc_copy_formal_args_ppc): Ditto.
979 * resolve.c (resolve_procedure_interface): Pass IFSRC_DECL to
980 gfc_copy_formal_args.
981 (resolve_fl_derived0): Pass IFSRC_DECL to gfc_copy_formal_args_ppc.
983 2012-07-12 Tobias Burnus <burnus@net-b.de>
985 * trans-expr.c (conv_isocbinding_procedure): Generate c_f_pointer code
988 2012-07-11 Steven Bosscher <steven@gcc.gnu.org>
990 * trans.c: Do not include defaults.h.
991 * trans-intrinsic.c: Likewise.
993 2012-07-08 Steven Bosscher <steven@gcc.gnu.org>
995 * gfortran.h: Do not include coretypes.h here.
996 Make it an error to include this before coretypes.h
997 * openmp.c: Include coretypes.h.
998 * interface.c: Likewise.
999 * intrinsic.c: Likewise.
1000 * symbol.c: Likewise.
1001 * class.c: Likewise.
1003 * matchexp.c: Likewise.
1004 * dump-parse-tree.c: Likewise.
1005 * array.c: Likewise.
1006 * constructor.c: Likewise.
1007 * error.c: Likewise.
1010 * module.c: Likewise.
1011 * scanner.c: Likewise.
1014 * frontend-passes.c: Likewise.
1015 * resolve.c: Likewise.
1017 * target-memory.c: Likewise.
1018 * match.c: Likewise.
1019 * arith.c: Likewise.
1020 * parse.c: Likewise.
1021 * check.c: Likewise.
1022 * dependency.c: Likewise.
1023 * primary.c: Likewise.
1025 * simplify.c: Likewise.
1027 2012-07-05 Mikael Morin <mikael@gcc.gnu.org>
1030 * trans-array.c (gfc_add_loop_ss_code): Disable self recursive calls
1031 handling nested loop(s) if the subscript flag is true.
1033 2012-07-05 Uros Bizjak <ubizjak@gmail.com>
1036 * parse.c (gfc_parse_file): Initialize errors_before.
1038 2012-06-27 Janus Weil <janus@gcc.gnu.org>
1042 * interface.c (check_new_interface): Rename, add 'loc' argument,
1044 (gfc_add_interface): Rename 'check_new_interface'
1045 * gfortran.h (gfc_check_new_interface): Add prototype.
1046 * resolve.c (resolve_typebound_intrinsic_op): Add typebound operator
1047 targets to non-typebound operator list.
1049 2012-06-22 Janus Weil <janus@gcc.gnu.org>
1053 * interface.c (count_types_test, generic_correspondence,
1054 gfc_compare_interfaces): Ignore PASS arguments.
1055 (check_interface1, compare_parameter): Pass NULL arguments to
1056 gfc_compare_interfaces.
1057 * gfortran.h (gfc_compare_interfaces): Modified prototype.
1058 * expr.c (gfc_check_pointer_assign): Pass NULL arguments to
1059 gfc_compare_interfaces.
1060 * resolve.c (resolve_structure_cons): Ditto.
1061 (check_generic_tbp_ambiguity): Determine PASS arguments and pass them
1062 to gfc_compare_interfaces.
1064 2012-06-21 Janne Blomqvist <jb@gcc.gnu.org>
1067 * iresolve.c (gfc_resolve_ftell): Fix result kind and use new
1070 2012-06-18 Tobias Burnus <burnus@net-b.de>
1072 * intrinsic.h (gfc_resolve_rank): New prototype.
1073 * intrinsic.c (add_functions): Use gfc_resolve_rank.
1074 * iresolve.c (add_functions): New function.
1075 * trans-intrinsic.c (gfc_conv_intrinsic_rank): New function.
1076 (gfc_conv_intrinsic_function): Call it.
1078 2012-06-18 Tobias Burnus <burnus@net-b.de>
1081 * trans-array.c (set_loop_bounds): Don't scalarize via absent
1083 * resolve.c (resolve_elemental_actual): Don't stop resolving after printing
1086 2012-06-18 Tobias Burnus <burnus@net-b.de>
1089 * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle coarrays.
1091 2012-06-18 Tobias Burnus <burnus@net-b.de>
1094 * check.c (gfc_check_move_alloc): Reject coindexed actual arguments
1095 and those with different corank.
1097 2012-06-17 Tobias Burnus <burnus@net-b.de>
1101 * check.c (gfc_calculate_transfer_sizes): Return if
1102 SIZE= is not constant or source-size cannot be determined.
1104 2012-06-16 Tobias Burnus <burnus@net-b.de>
1108 * frontend-passes.c (optimize_assignment): Don't remove RHS's
1109 trim when assigning to a deferred-length string.
1110 * trans-expr.c (gfc_trans_assignment_1): Ensure that the RHS string
1111 length is evaluated before the deferred-length LHS is reallocated.
1113 2012-06-13 Tobias Burnus <burnus@net-b.de>
1116 * trans-decl.c (init_intent_out_dt): Fix for polymorphic arrays.
1117 * trans-array.c (structure_alloc_comps): Don't loop for
1120 2012-06-13 Tobias Burnus <burnus@net-b.de>
1123 * decl.c (match_attr_spec): Only mark module variables
1124 as SAVE_IMPLICIT for Fortran 2008 and later.
1126 2012-06-08 Janus Weil <janus@gcc.gnu.org>
1129 * match.c (gfc_match_allocate): Modify order of checks. Change wording
1130 of error message. Remove FIXME note.
1131 * resolve.c (resolve_allocate_expr): Add a comment.
1133 2012-06-07 Thomas König <tkoenig@gcc.gnu.org>
1136 * frontend-passes.c (optimize_assignment): Don't set the
1137 length of an empty string for deferred-length character
1140 2012-06-07 Thomas König <tkoenig@gcc.gnu.org>
1143 * frontend-passes.c (empty_string): Add prototype.
1144 (optimize_assignment): Set the length of an empty string
1147 2012-06-04 Tobias Burnus <burnus@net-b.de>
1150 * resolve.c (build_default_init_expr): Don't initialize
1153 2012-06-03 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
1154 Tobias Burnus <burnus@net-b.de>
1157 * gfortran.h (gfc_check_init_expr): Add prototype declaration
1159 * check.c (kind_check): Change if condition to use
1160 to gfc_check_init_expr.
1161 * expr.c (check_init_expr): Remove forward declaration
1162 and static keyword. Change name in gfc_check_init_expr.
1163 (scalarize_intrinsic_call, check_init_expr_arguments,
1164 check_inquiry, check_conversion, gfc_reduce_init_expr): Update
1165 call to gfc_check_init_expr.
1167 2012-05-31 Steven Bosscher <steven@gcc.gnu.org>
1169 * trans-common.c: Do not include output.h.
1170 * trans-decl.c: Likewise.
1172 2012-05-31 Tobias Burnus <burnus@net-b.de>
1175 * trans.c (gfc_deallocate_scalar_with_status): Properly
1176 handle the case size == 0.
1178 2012-05-30 Tobias Burnus <burnus@net-b.de>
1181 * decl.c (match_attr_spec): Remove "typedef".
1183 2012-05-30 Tobias Burnus <burnus@net-b.de>
1185 * decl.c: Fix comment typos.
1187 * frontend-passes.c: Ditto.
1190 * trans-array.c: Ditto.
1191 * trans-common.c: Ditto.
1192 * trans-intrinsic.c: Ditto.
1193 * trans-types.c: Ditto.
1195 2012-05-23 Tobias Burnus <burnus@net-b.de>
1199 * match.c (gfc_match_allocate): Set length_from_typespec
1201 * resolve.c (resolve_charlen): If set, don't check whether
1202 the len is a specification expression.
1204 2012-05-22 Tobias Burnus <burnus@net-b.de>
1207 * trans-array.c (gfc_add_loop_ss_code): Don't evaluate expression, if
1208 ss->is_alloc_lhs is set.
1210 2012-05-22 Dodji Seketeli <dodji@redhat.com>
1213 * f95-lang.c (gfc_init_builtin_functions): Remove the unused
1214 typedef builtin_type.
1216 2012-05-14 Janne Blomqvist <jb@gcc.gnu.org>
1219 * gfortran.texi: Update _gfortran_set_options documentation.
1220 * invoke.texi: Remove runtime behavior description of
1222 * trans-decl.c (create_main_function): Don't pass the range-check
1223 setting to the library.
1225 2012-05-14 Tobias Burnus <burnus@net-b.de>
1230 * trans-expr.c (gfc_trans_assignment_1): Fix allocation
1231 handling for assignment of function results to allocatable
1232 deferred-length strings.
1233 * trans-decl.c (gfc_create_string_length): For deferred-length
1234 module variables, include module name in the assembler name.
1235 (gfc_get_symbol_decl): Don't override the assembler name.
1237 2012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
1240 * options.c (gfc_handle_option): Call lang-specific generated function.
1242 2012-05-13 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
1243 Tobias Burnus <burnus@net-b.de>
1248 * resolve.c (resolve_fl_derived0): Deferred character length
1249 procedure components are supported.
1250 * trans-expr.c (gfc_conv_procedure_call): Handle TBP with
1251 deferred-length results.
1252 (gfc_string_to_single_character): Add a new check to prevent
1254 (gfc_conv_procedure_call): Remove unuseful checks on
1255 symbol's attributes. Add new checks to prevent NULL read on
1258 2012-05-12 Tobias Burnus <burnus@net-b.de>
1262 * resolve.c (resolve_fl_procedure): Don't regard
1263 character(len=:) as character(*) in the diagnostic.
1265 2012-05-11 Thomas Koenig <tkoenig@gcc.gnu.org>
1268 * frontend-passes.c (optimize_op): Change
1269 old-style comparison operators to new-style, simplify
1271 (empty_string): New function.
1272 (get_len_trim_call): New function.
1273 (optimize_comparison): If comparing to an empty string,
1274 use comparison of len_trim to zero.
1275 Use new-style comparison operators only.
1276 (optimize_trim): Use get_len_trim_call.
1278 2012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
1281 * options.c: Include diagnostics.h instead of
1283 (set_Wall): Do not see warn_unused here.
1284 (gfc_handle_option): Set it here using handle_generated_option.
1286 2012-05-08 Jan Hubicka <jh@suse.cz>
1288 * trans-common.c (create_common): Do not fake TREE_ASM_WRITTEN.
1289 * trans-decl.c (gfc_finish_cray_pointee): Likewise.
1291 2012-05-07 Tobias Burnus <burnus@net-b.de>
1294 * resolve.c (resolve_typebound_static): Fix handling
1295 of overridden specific to generic operator.
1297 2012-05-06 Tobias Burnus <burnus@net-b.de>
1300 * decl.c (build_struct): Don't ignore FAILED status.
1302 2012-05-05 Paul Thomas <pault@gcc.gnu.org>
1305 * trans-array.c (build_array_ref): New static function.
1306 (gfc_conv_array_ref, gfc_get_dataptr_offset): Call it.
1307 * trans-expr.c (gfc_get_vptr_from_expr): New function.
1308 (gfc_conv_derived_to_class): Add a new argument for a caller
1309 supplied vptr and use it if it is not NULL.
1310 (gfc_conv_procedure_call): Add NULL to call to above.
1311 symbol.c (gfc_is_associate_pointer): Return true if symbol is
1313 * trans-stmt.c (trans_associate_var): Handle class associate-
1315 * expr.c (gfc_get_variable_expr): Supply the array-spec if
1317 * trans-types.c (gfc_typenode_for_spec): Set GFC_CLASS_TYPE_P
1319 * trans.h : Add prototypes for gfc_get_vptr_from_expr and
1320 gfc_conv_derived_to_class. Define GFC_CLASS_TYPE_P.
1321 * resolve.c (resolve_variable): For class arrays, ensure that
1322 the target expression has all the necessary _data references.
1323 (resolve_assoc_var): Throw a "not yet implemented" error for
1324 class array selectors that need a temporary.
1325 * match.c (copy_ts_from_selector_to_associate,
1326 select_derived_set_tmp, select_class_set_tmp): New functions.
1327 (select_type_set_tmp): Call one of last two new functions.
1328 (gfc_match_select_type): Copy_ts_from_selector_to_associate is
1329 called if associate-name is typed.
1332 * resolve.c (resolve_ref): C614 applied to class expressions.
1334 2012-05-05 Janne Blomqvist <jb@gcc.gnu.org>
1338 * intrinsic.texi (MOD, MODULO): Mention sign and magnitude of result.
1339 * simplify.c (gfc_simplify_mod): Use mpfr_fmod.
1340 (gfc_simplify_modulo): Likewise, use copysign to fix the result if
1342 * trans-intrinsic.c (gfc_conv_intrinsic_mod): Remove fallback as
1343 builtin_fmod is always available. For modulo, call copysign to fix
1344 the result when signed zeros are enabled.
1346 2012-05-05 Janne Blomqvist <jb@gcc.gnu.org>
1348 * gfortran.texi (GFORTRAN_TMPDIR): Rename to TMPDIR, explain
1349 algorithm for choosing temp directory.
1351 2012-05-04 Tobias Burnus <burnus@net-b.de>
1354 * resolve.c (resolve_variable): Set public_used
1355 if a private module variable is used in a (public)
1356 specification expression.
1357 * trans-decl.c (gfc_finish_var_decl): Mark those
1360 2012-05-04 Tobias Burnus <burnus@net-b.de>
1363 * resolve.c (resolve_fl_derived): Fix -std=f95
1364 diagnostic for generic vs. DT names.
1366 2012-05-03 Tobias Burnus <burnus@net-b.de>
1369 * interface.c (compare_parameter_intent): Remove.
1370 (check_intents): Remove call, handle CLASS pointer.
1371 (compare_actual_formal): Handle CLASS pointer.
1373 2012-04-30 Jan Hubicka <jh@suse.cz>
1375 * f95-lang.c (gfc_finish): Update comments.
1377 2012-04-29 Thomas Koenig <tkoenig@gcc.gnu.org>
1380 * frontend-passes.c (create_var): If the statement has a label,
1381 put the label around the block.
1383 2012-04-25 Tobias Burnus <burnus@net-b.de>
1386 * lang.opt (Wrealloc-lhs, Wrealloc-lhs-all): New flags.
1387 * gfortran.h (gfc_option_t): Add them.
1388 * options.c (gfc_init_options, gfc_post_options,
1389 gfc_handle_option): Handle them.
1390 * invoke.texi: Document them.
1391 * trans-expr.c (realloc_lhs_warning): New function.
1392 (gfc_trans_arrayfunc_assign,
1393 alloc_scalar_allocatable_for_assignment,
1394 gfc_trans_assignment_1): Use it.
1396 2012-04-18 Steven Bosscher <steven@gcc.gnu.org>
1398 * trans-decl.c (gfc_trans_entry_master_switch): Build SWITCH_EXPR
1399 with NULL_TREE type instead of void_type_node.
1400 * trans-io.c (io_result): Likewise.
1401 * trans-stmt.c (gfc_trans_integer_select,
1402 gfc_trans_character_select): Likewise.
1404 2012-04-16 Tobias Burnus <burnus@net-b.de>
1407 * expr.c (gfc_check_vardef_context): Fix assignment check for
1410 2012-04-16 Janus Weil <janus@gcc.gnu.org>
1413 * class.c (gfc_build_class_symbol): Make sure the 'f2k_derived'
1414 namespace is present.
1416 2012-04-15 Janus Weil <janus@gcc.gnu.org>
1419 * trans-expr.c (gfc_conv_expr_reference): Check if the expression is a
1420 simple function call (or a more involved PPC reference).
1422 2012-04-15 Tobias Burnus <burnus@net-b.de>
1426 * gfortran.h (symbol_attribute): Add public_used.
1427 * interface.c (check_sym_interfaces, check_uop_interfaces,
1428 gfc_check_interfaces): Set it.
1429 * resolve.c (resolve_typebound_procedure): Ditto.
1430 * trans-decl.c (build_function_decl): Use it.
1432 2012-04-11 Tobias Burnus <burnus@net-b.de>
1435 * resolve.c (resolve_symbol): Fix searching for parent NS decl.
1437 2012-04-08 Tobias Burnus <burnus@net-b.de>
1440 * trans-decl.c (gfc_finish_var_decl): Don't set TREE_PUBLIC
1441 for PRIVATE module variables without C-binding label.
1444 * trans-decl.c (build_function_decl): Ditto for procedures.
1446 2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
1449 * frontend-passes.c: Keep track of wether we are in an implicit
1450 DO loop; do not do function elimination if we are.
1452 2012-04-06 Thomas Koenig <tkoenig@gcc.gnu.org>
1455 * module.c: Only mark symbols as use_only if they have been
1456 imported via an only list.
1458 2012-03-28 Paul Thomas <pault@gcc.gnu.org>
1459 Tobias Burnus <burnus@gcc.gnu.org>
1462 * match.c (gfc_match_allocate, gfc_match_deallocate): Change
1463 "not.. or" to "neither.. nor".
1464 * parse.c (decode_specification_statement): Correct error in
1465 chpice of matching function for "allocatable".
1467 2012-03-23 Janne Blomqvist <jb@gcc.gnu.org>
1469 * gfortran.h (GFC_MAX_LINE): Remove unused macro.
1471 2012-03-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1474 * error.c (gfc_widechar_display_length): Consider tabs as
1475 one character wide, as they're displayed as spaces.
1476 (show_locus): Move tab handling to...
1477 (print_wide_char_into_buffer): ... here.
1479 2012-03-17 Tobias Burnus <burnus@net-b.de>
1482 * trans-intrinsic.c (gfc_conv_associated): Fix handling of
1483 procpointer dummy arguments.
1485 2012-03-16 Janne Blomqvist <jb@gcc.gnu.org>
1487 * trans-intrinsic.c (build_round_expr): Don't use BUILT_IN_IROUND
1490 2012-03-15 Janne Blomqvist <jb@gcc.gnu.org>
1492 * f95-lang.c (gfc_init_builtin_functions): Initialize
1494 * mathbuiltins.def: Add IROUND.
1495 * trans-intrinsic.c (build_round_expr): Use BUILT_IN_IROUND if
1497 (gfc_build_intrinsic_lib_fndecls): Build iround functions.
1499 2012-03-12 Richard Guenther <rguenther@suse.de>
1501 * f95-lang.c (builtin_type_for_size): Use gfc_type_for_size.
1503 2012-03-12 Tobias Burnus <burnus@net-b.de>
1506 * decl.c (match_procedure_decl): If the interface
1507 is bind(C), the procedure is as well.
1509 2012-03-10 Steven Bosscher <steven@gcc.gnu.org>
1511 * convert.c (convert): Fold BOOLEAN_TYPE types to the proper variant.
1513 2012-03-09 Steven Bosscher <steven@gcc.gnu.org>
1515 * Make-lang.in (convert.o): Depend on convert.h.
1516 * convert.c: Header and comment cleanups.
1517 (gfc_thruthvalue_conversion): Rename static function
1518 to truthvalue_conversion. Do not use 'internal_error' from here,
1519 use 'gcc_unreachable' instead.
1520 (convert): Do not use 'error' for conversions to void, use
1521 'gcc_unreachable' instead. Likewise for conversions to non-scalar
1522 types. Do not hanlde ENUMERAL_TYPE, the front end never creates them.
1523 Clean up #if 0 code.
1525 2012-03-08 Tobias Burnus <burnus@net-b.de>
1528 * trans-types.c (gfc_get_function_type): Handle backend_decl
1529 of a procedure pointer.
1531 2012-03-06 Steven Bosscher <steven@gcc.gnu.org>
1533 * f95-lang.c (yyerror, yylex): Remove.
1534 (clear_binding_stack): Remove, fold into its only user.
1535 (LANG_HOOKS_PRINT_IDENTIFIER): Do not re-define.
1536 (ridpointers): Remove.
1537 (gfc_eh_initialized_p): Make static.
1538 (gfc_truthvalue_conversion): Move to convert.c.
1539 (gfc_be_parse_file): Clear binding level stack when done.
1540 (gfc_print_identifier): Remove.
1541 (pushlevel): Remove ignored 'ignore' argument. Update all callers.
1542 (poplevel): Remove unused 'reverse' argument. Update all callers.
1544 (gfc_builtin_function): Make static. Do not attempt to make RTL for
1546 * convert.c (gfc_truthvalue_conversion): Moved here from f95-lang.c,
1548 * trans.h (pushlevel, poplevel): Adjust prototypes.
1549 (gfc_truthvalue_conversion, gfc_builtin_function): Remove prototypes.
1550 * trans-openmp.c: Update calls to pushlevel and poplevel.
1551 * trans.c: Likewise.
1552 * trans-decl.c: Likewise.
1554 2012-03-04 Mikael Morin <mikael@gcc.gnu.org>
1557 * gfortran.h (gfc_is_class_container_ref): New prototype.
1558 * class.c (gfc_is_class_container_ref): New function.
1559 * trans-expr.c (gfc_conv_procedure_call): Add a "_data" component
1560 reference to polymorphic actual arguments.
1562 2012-03-04 Mikael Morin <mikael@gcc.gnu.org>
1565 * trans-expr.c (gfc_conv_procedure_call): Save se->ss's value.
1566 Handle the case of unallocated arrays passed to elemental procedures.
1568 2012-03-04 Mikael Morin <mikael@gcc.gnu.org>
1570 * trans.h (struct gfc_ss_info): Move can_be_null_ref component from
1571 the data::scalar subcomponent to the toplevel.
1572 * trans-expr.c (gfc_conv_expr): Update component reference.
1573 * trans-array.c (gfc_add_loop_ss_code): Ditto.
1574 (gfc_walk_elemental_function_args): Ditto. Move the conditional setting
1575 the field out of the scalar-only block.
1577 2012-03-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1580 * error.c (gfc_widechar_display_length, gfc_wide_display_length):
1582 (print_wide_char_into_buffer): Return length written.
1583 (show_locus): Fix locus displayed when wide characters are present.
1585 2012-03-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1587 * module.c (gfc_use_module): Improve error message some more.
1589 2012-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1592 * module.c (gfc_use_module): Improve error messages.
1594 2012-03-03 Tobias Burnus <burnus@net-b.de>
1597 * resolve.c (resolve_actual_arglist): Properly reset
1598 assumed_type_expr_allowed.
1600 2012-03-03 Tobias Burnus <burnus@net-b.de>
1602 * lang.opt (Wc-binding-type): New flag.
1603 * options.c (gfc_init_options, gfc_handle_option): Handle it.
1604 * invoke.texi (Wc-binding-type): Document it.
1605 * gfortran.h (gfc_option_t): Add warn_c_binding_type.
1606 * decl.c (verify_bind_c_sym): Handle -Wc-binding-type.
1607 * symbol.c (gfc_set_default_type, verify_bind_c_derived_type):
1610 2012-03-03 Tobias Burnus <burnus@net-b.de>
1613 * decl.c (gfc_match_decl_type_spec): Support type(*).
1614 (gfc_verify_c_interop): Allow type(*).
1615 * dump-parse-tree.c (show_typespec): Handle type(*).
1616 * expr.c (gfc_copy_expr): Ditto.
1617 * interface.c (compare_type_rank, compare_parameter,
1618 compare_actual_formal, gfc_procedure_use): Ditto.
1619 * libgfortran.h (bt): Add BT_ASSUMED.
1620 * misc.c (gfc_basic_typename, gfc_typename): Handle type(*).
1621 * module.c (bt_types): Ditto.
1622 * resolve.c (assumed_type_expr_allowed): New static variable.
1623 (resolve_actual_arglist, resolve_variable, resolve_symbol):
1625 * trans-expr.c (gfc_conv_procedure_call): Ditto.
1626 * trans-types.c (gfc_typenode_for_spec, gfc_get_dtype): Ditto.
1628 2012-03-02 Tobias Burnus <burnus@net-b.de>
1631 * primary.c (gfc_match_varspec): Add missing ;.
1633 2012-03-02 Tobias Burnus <burnus@net-b.de>
1636 * primary.c (gfc_match_varspec): Add diagnostic for % with
1639 2012-03-02 Tobias Burnus <burnus@net-b.de>
1642 * expr.c (gfc_check_vardef_context): Fix check for
1643 intent-in polymorphic pointer .
1644 * interface.c (compare_parameter): Allow passing TYPE to
1645 intent-in polymorphic pointer.
1647 2012-03-02 Tobias Burnus <burnus@net-b.de>
1650 * resolve.c (resolve_intrinsic): Don't search for a
1651 function if we know that it is a subroutine.
1653 2012-02-29 Paul Thomas <pault@gcc.gnu.org>
1656 * trans-expr.c (fcncall_realloc_result): Dereference the
1657 descriptor if needed.
1659 2012-02-22 Tobias Burnus <burnus@net-b.de>
1662 * io.c (gfc_match_open): Remove bogus F2003 DELIM= check.
1664 2012-02-18 Tobias Burnus <burnus@net-b.de>
1667 * interface.c (check_interface0): Internal procs in
1668 generic interfaces are allowed in Fortran 2008.
1670 2012-02-17 Tobias Burnus <burnus@net-b.de>
1671 Roland Stigge <stigge@antcom.de>
1673 PR translation/52273
1674 * interface.c (compare_actual_formal): Fix typo "at at".
1676 2012-02-17 Tobias Burnus <burnus@net-b.de>
1678 * gfortran.texi (Q exponent-letter): Fix grammar.
1680 2012-02-17 Tobias Burnus <burnus@net-b.de>
1682 * gfortran.texi (Status): Fix typos.
1683 * invoke.texi (ffixed-form, fstack-arrays): Spell Fortran with
1686 2012-02-17 Tobias Burnus <burnus@net-b.de>
1687 Roland Stigge <stigge@antcom.de>
1689 PR translation/52232
1690 PR translation/52234
1691 PR translation/52245
1692 PR translation/52246
1693 PR translation/52262
1694 PR translation/52273
1695 * io.c (gfc_match_open): Fix typo.
1696 * interface.c (compare_actual_formal): Ditto.
1697 * lang.opt (freal-4-real-8, freal-4-real-16, freal-8-real-16): Ditto.
1698 * match.c (alloc_opt_list, gfc_match_nullify): Ditto.
1699 * check.c (gfc_check_associated, gfc_check_null): Ditto.
1701 2012-02-12 Mikael Morin <mikael@gcc.gnu.org>
1704 * trans-stmt.c (gfc_get_proc_ifc_for_call): New function.
1705 (gfc_trans_call): Use gfc_get_proc_ifc_for_call.
1707 2012-02-12 Mikael Morin <mikael@gcc.gnu.org>
1709 * trans-array.c (gfc_walk_elemental_function_args,
1710 gfc_walk_function_expr): Move call to gfc_get_proc_ifc_for_expr out
1711 of gfc_walk_elemental_function_args.
1712 * trans-stmt.c (gfc_trans_call): Ditto.
1713 * trans-array.h (gfc_get_proc_ifc_for_expr): New prototype.
1714 (gfc_walk_elemental_function_args): Update prototype.
1716 2012-02-12 Mikael Morin <mikael@gcc.gnu.org>
1718 * trans-array.c (gfc_get_proc_ifc_for_expr): New function.
1719 (gfc_walk_elemental_function_args): Move code to
1720 gfc_get_proc_ifc_for_expr and call it.
1722 2012-02-08 Tobias Burnus <burnus@net-b.de>
1725 * trans-expr.c (fcncall_realloc_result): Set also the stride.
1727 2012-02-07 Tobias Burnus <burnus@net-b.de>
1730 * trans-expr.c (gfc_conv_procedure_call): Add _data component
1731 for calls of scalar CLASS actuals to TYPE dummies.
1733 2012-02-05 Thomas König <tkoenig@gcc.gnu.org>
1736 * trans-decl.c: Warn about unused dummy procedure arguments
1737 if -Wunused-dummy-argument is specified. Suppress middle-end
1738 warnings about procedure arguments.
1740 2012-02-05 Paul Thomas <pault@gcc.gnu.org>
1742 * trans-array.c (gfc_array_allocate): Zero memory for all class
1744 * trans-stmt.c (gfc_trans_allocate): Ditto for class scalars.
1747 * trans-stmt.c (gfc_trans_allocate): Before correcting a class
1748 array reference, ensure that 'dataref' points to the _data
1749 component that is followed by the array reference..
1751 2012-02-02 Mikael Morin <mikael@gcc.gnu.org>
1757 * class.c (insert_component_ref, class_data_ref_missing,
1758 gfc_fix_class_refs): New functions.
1759 * gfortran.h (gfc_fix_class_refs): New prototype.
1760 * trans-expr.c (gfc_conv_expr): Remove special case handling and call
1761 gfc_fix_class_refs instead.
1763 2012-02-02 Paul Thomas <pault@gcc.gnu.org>
1766 * trans-expr.c (fcncall_realloc_result): If variable shape is
1767 correct, retain the bounds, whatever they are.
1769 2012-02-02 Tobias Burnus <burnus@net-b.de>
1772 * simplify.c (gfc_simplify_size): Handle INTRINSIC_PARENTHESES.
1774 2012-02-01 Thomas König <tkoenig@gcc.gnu.org>
1777 * frontend-passes.c (convert_elseif): New function.
1778 (optimize_namespace): Call it.
1780 2012-02-01 Tobias Burnus <burnus@net-b.de>
1783 * module.c (MOD_VERSION): Bump.
1784 (mio_typebound_proc): Read/write is_operator from/to the
1787 2012-02-01 Tobias Burnus <burnus@net-b.de>
1790 * trans-expr.c (gfc_conv_procedure_call): Add array ref
1793 2012-01-31 Tobias Burnus <burnus@net-b.de>
1796 * gfortran.h (gfc_tbp_generic): Store whether the
1797 generic is an operator.
1798 * decl.c (gfc_match_generic): Set that flag.
1799 * resolve.c (check_generic_tbp_ambiguity): Use it in the
1800 gfc_compare_interfaces check.
1802 2012-01-31 Tobias Burnus <burnus@net-b.de>
1805 * class.c (gfc_find_derived_vtab): Mark _copy function as pure.
1807 2012-01-31 Tobias Burnus <burnus@net-b.de>
1810 * class.c (get_unique_hashed_string): Adapt trim length.
1811 (gfc_build_class_symbol) Encode also corank in the container name.
1813 2012-01-31 Paul Thomas <pault@gcc.gnu.org>
1816 * trans-expr.c (fcncall_realloc_result): Correct calculation of
1819 2012-01-29 Janne Blomqvist <jb@gcc.gnu.org>
1821 * module.c (pointer_info): Make true_name and module pointers
1822 rather than arrays, order pointers before other fields.
1823 (free_pi_tree): free true_name and module as well.
1824 (mio_read_string): Rename to read_string.
1825 (mio_write_string): Remove.
1826 (load_commons): Use read_string.
1827 (read_module): Use read_string rather than mio_internal_string.
1828 (write_blank_common): Call write_atom directly.
1829 (write_symbol): Likewise.
1831 2012-01-29 Tobias Burnus <burnus@net-b.de>
1834 * expr.c (gfc_default_initializer): Convert the values if
1835 the type does not match.
1837 2012-01-29 Tobias Burnus <burnus@net-b.de>
1840 * trans-array.c (structure_alloc_comps): Fix assignment of
1841 polymorphic components (polymorphic deep copying).
1843 2012-01-29 Janne Blomqvist <jb@gcc.gnu.org>
1846 * decl.c (set_binding_label): Make binding_label argument const.
1847 (curr_binding_label): Constify.
1848 * gfortran.h (gfc_symbol): Constify binding_label.
1849 (gfc_common_head): Likewise.
1850 (get_iso_c_sym): Likewise.
1851 * match.c (gfc_match_name_C): Constify buffer argument.
1852 * match.h (gfc_match_name_C): Likewise.
1853 * resolve.c (set_name_and_label): Constify binding_label argument.
1854 (gfc_iso_c_sub_interface): Constify binding_label variable.
1855 * symbol.c (get_iso_c_sym): Constify binding_label argument.
1857 2012-01-29 Janne Blomqvist <jb@gcc.gnu.org>
1860 * decl.c (set_binding_label): Move prototype from match.h to here.
1861 (curr_binding_label): Make a pointer rather than static array.
1862 (build_sym): Check sym->binding_label pointer rather than array,
1863 update set_binding_label call, handle curr_binding_label changes.
1864 (set_binding_label): Handle new curr_binding_label, dest_label
1865 double ptr, and sym->binding_label.
1866 (verify_bind_c_sym): Handle sym->binding_label being a pointer.
1867 (set_verify_bind_c_sym): Check sym->binding_label pointer rather
1868 than array, update set_binding_label call.
1869 (gfc_match_bind_c_stmt): Handle curr_binding_label change.
1870 (match_procedure_decl): Update set_binding_label call.
1871 (gfc_match_bind_c): Change binding_label to pointer, update
1872 gfc_match_name_C call.
1873 * gfortran.h (GFC_MAX_BINDING_LABEL_LEN): Remove macro.
1874 (gfc_symbol): Make binding_label a pointer.
1875 (gfc_common_head): Likewise.
1876 * match.c (gfc_match_name_C): Heap allocate bind(C) name.
1877 * match.h (gfc_match_name_C): Change prototype argument.
1878 (set_binding_label): Move prototype to decl.c.
1879 * module.c (struct pointer_info): Make binding_label a pointer.
1880 (free_pi_tree): Free unused binding_label.
1881 (mio_read_string): New function.
1882 (mio_write_string): New function.
1883 (load_commons): Redo reading of binding_label.
1884 (read_module): Likewise.
1885 (write_common_0): Change to write empty string instead of name if
1887 (write_blank_common): Write empty string for binding label.
1888 (write_symbol): Change to write empty string instead of name if no
1890 * resolve.c (gfc_iso_c_func_interface): Don't set binding_label.
1891 (set_name_and_label): Make binding_label double pointer, use
1893 (gfc_iso_c_sub_interface): Make binding_label a pointer.
1894 (resolve_bind_c_comms): Handle cases if
1895 gfc_common_head->binding_label is NULL.
1896 (gfc_verify_binding_labels): sym->binding_label is a pointer.
1897 * symbol.c (gfc_new_symbol): Rely on XCNEW zero init for
1899 (gen_special_c_interop_ptr): Don't set binding label.
1900 (generate_isocbinding_symbol): Insert binding_label into symbol
1902 (get_iso_c_sym): Use pointer assignment instead of strcpy.
1903 * trans-common.c (gfc_sym_mangled_common_id): Handle
1904 com->binding_label being a pointer.
1905 * trans-decl.c (gfc_sym_mangled_identifier): Handle
1906 sym->binding_label being a pointer.
1907 (gfc_sym_mangled_function_id): Likewise.
1909 2012-01-29 Tobias Burnus <burnus@net-b.de>
1912 * resolve.c (symbol_as): Remove unused, accidentally
1915 2012-01-28 Tobias Burnus <burnus@net-b.de>
1918 * trans-stmt.c (gfc_trans_allocate): Properly check whether
1919 we have a BT_CLASS which needs to be memset.
1921 2012-01-27 Tobias Burnus <burnus@net-b.de>
1924 * trans-expr.c (gfc_conv_procedure_call): Fix passing
1925 of functions, which return allocatables.
1927 2012-01-27 Tobias Burnus <burnus@net-b.de>
1930 * resolve.c (resolve_formal_arglist): Fix elemental
1931 constraint checks for polymorphic dummies also for
1934 2012-01-27 Tobias Burnus <burnus@net-b.de>
1938 * primary.c (gfc_match_varspec. gfc_match_rvalue): Set
1939 handle array spec for BT_CLASS.
1940 * expr.c (gfc_get_variable_expr, gfc_lval_expr_from_sym)
1941 * frontend-passes.c (create_var): Ditto.
1942 * resolve.c (resolve_actual_arglist, resolve_assoc_var): Ditto.
1943 * trans-decl.c (gfc_trans_deferred_vars): Use class_pointer
1944 instead of attr.pointer.
1945 (gfc_generate_function_code): Use CLASS_DATA (sym) for BT_CLASS.
1946 * trans-intrinsic.c (conv_intrinsic_move_alloc): Move assert.
1947 * trans-stmt.c (trans_associate_var): Ask for the descriptor.
1949 2012-01-27 Tobias Burnus <burnus@net-b.de>
1952 * match.c (gfc_match_allocate): Allow more than allocate
1953 object with SOURCE=.
1955 2012-01-27 Tobias Burnus <burnus@net-b.de>
1958 * resolve.c (resolve_formal_arglist): Fix elemental
1959 constraint checks for polymorphic dummies.
1961 2012-01-27 Paul Thomas <pault@gcc.gnu.org>
1962 Tobias Burnus <burnus@gcc.gnu.org>
1968 * trans-array.c (gfc_array_init_size): Add two extra arguments
1969 to convey the dynamic element size of a calls object and to
1970 return the number of elements that have been allocated.
1971 (gfc_array_allocate): Add the same arguments and use them to
1972 call gfc_array_init_size. Before the allocation dereference
1973 the data pointer, if necessary. Set the allocated array to zero
1974 if the class element size or expr3 are non-null.
1975 * trans-expr.c (gfc_conv_class_to_class): Give this function
1977 (get_class_array_ref): New function.
1978 (gfc_copy_class_to_class): New function.
1979 * trans-array.h : Update prototype for gfc_array_allocate.
1980 * trans-stmt.c (gfc_trans_allocate): For non-variable class
1981 STATUS expressions extract the class object and the dynamic
1982 element size. Use the latter to call gfc_array_allocate and
1983 the former for setting the vptr and, via
1984 gfc_copy_class_to_clasfc_cs, to copy to the allocated data.
1985 * trans.h : Prototypes for gfc_get_class_array_ref,
1986 gfc_copy_class_to_class and gfc_conv_class_to_class.
1988 2012-01-25 Tobias Burnus <burnus@net-b.de>
1990 * resolve.c (symbol_as): Check also for attr.class_ok.
1992 2012-01-25 Tobias Burnus <burnus@net-b.de>
1995 * class.c (gfc_build_class_symbol): Fix invalid freeing
1996 issue with fclass->f2k_derived.
1998 2012-01-25 Tobias Burnus <burnus@net-b.de>
2001 * class.c (gfc_build_class_symbol): Ensure that
2002 fclass->f2k_derived is set.
2004 2012-01-25 Tobias Burnus <burnus@net-b.de>
2007 * resolve.c (resolve_structure_cons): Only create an
2008 array constructors for nonscalars.
2010 2012-01-23 Tobias Burnus <burnus@net-b.de>
2013 * check.c (variable_check): Fix checking for
2014 variables and deeply nested BLOCKs.
2016 2012-01-21 Tobias Burnus <burnus@net-b.de>
2017 Steven G. Kargl <kargl@gcc.gnu.org>
2020 * symbol.c (check_conflict): namelist-group-name cannot have the SAVE
2023 2012-01-21 Tobias Burnus <burnus@net-b.de>
2026 * interface.c (compare_parameter): Fix CLASS comparison.
2028 2012-01-20 Tobias Burnus <burnus@net-b.de>
2029 Janus Weil <janus@gcc.gnu.org>
2032 * module.c (load_needed, read_module): Don't mark __vtab etc.
2035 2012-01-19 Tobias Burnus <burnus@net-b.de>
2038 * expr.c (gfc_build_intrinsic_call): Also set the symtree.
2040 2012-01-18 Paul Thomas <pault@gcc.gnu.org>
2043 * trans-expr.c (gfc_conv_procedure_call): Deallocate allocatable
2044 components of temporary class arguments.
2046 2012-01-17 Tobias Burnus <burnus@net-b.de>
2047 Janne Blomqvist <jb@gcc.gnu.org>
2050 * trans-expr.c (alloc_scalar_allocatable_for_assignment): Nullify
2051 LHS after allocation, if it has allocatable components.
2052 * f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_CALLOC.
2054 2012-01-16 Mikael Morin <mikael@gcc.gnu.org>
2055 Tobias Burnus <burnus@net-b.de>
2058 * trans-array.c (gfc_walk_elemental_function_args): Fix
2059 passing of deallocated allocatables/pointers as absent argument.
2061 2012-01-16 Tobias Burnus <burnus@net-b.de>
2064 * class.c (gfc_find_derived_vtab): Mark __vtab and
2065 __def_init as FL_VARIABLE not as FL_PARAMETER.
2066 * expr.c (gfc_simplify_expr): Remove special
2068 * resolve.c (resolve_values): Ditto.
2069 * trans-decl.c (gfc_get_symbol_decl): Mark __vtab
2070 and __def_init as TREE_READONLY.
2072 2012-01-16 Zydrunas Gimbutas <gimbutas@cims.nyu.edu>
2073 Andreas Kloeckner <kloeckner@cims.nyu.edu>
2074 Steven G. Kargl <kargl@gcc.gnu.org>
2077 * gfortran.h (gfc_option_t): Add members flag_*_kind to store kind.
2078 * lang.opt: Add options -freal-4-real-8, -freal-4-real-10,
2079 -freal-4-real-16, -freal-8-real-4, -freal-8-real-10, -freal-8-real-16
2080 and -finteger-4-integer-8. User-desired type conversion information.
2081 * decl.c (gfc_match_old_kind_spec,kind_expr): Type conversions
2082 in declaration parsing.
2083 * trans-types.c (gfc_init_kinds): User-specified type conversion
2084 checked for current backend.
2085 * primary.c (match_integer_constant,match_real_constant): Implement
2086 type conversion in constant parsing.
2087 * options.c (gfc_init_options,gfc_handle_option): Translate input
2088 options to flags in internal options data structure.
2089 * invoke.texi: Document new options. Re-order options in Options
2092 2012-01-16 Paul Thomas <pault@gcc.gnu.org>
2094 * trans-array.c (gfc_trans_create_temp_array): In the case of a
2095 class array temporary, detect a null 'eltype' on entry and use
2096 'initial' to provde the class reference and so, through the
2097 vtable, the element size for the dynamic type.
2098 * trans-stmt.c (gfc_conv_elemental_dependencies): For class
2099 expressions, set 'eltype' to null and pass the values via the
2100 'initial' expression.
2102 2012-01-14 Tobias Burnus <burnus@net-b.de>
2105 * resolve.c (build_default_init_expr): Also initialize
2106 nonconstant-length strings with -finit-character=<n>.
2108 2011-01-14 Tobias Burnus <burnus@net-b.de>
2111 * module.c (read_module): Don't make nonexisting
2112 intrinsic operators as found.
2113 (rename_list_remove_duplicate): New function.
2114 (gfc_use_modules): Use it.
2116 2012-01-13 Paul Thomas <pault@gcc.gnu.org>
2119 * trans-array.c (structure_alloc_comps): Suppress interative
2120 call to self, when current component is deallocated using
2121 gfc_trans_dealloc_allocated.
2122 * class.c (gfc_build_class_symbol): Copy the 'alloc_comp'
2123 attribute from the declared type to the class structure.
2125 2012-01-13 Tobias Burnus <burnus@net-b.de>
2128 * fortran/trans-types.c (gfc_init_kinds): Use PTRDIFF_TYPE
2129 instead of a signed int of size POINTER_SIZE for
2130 gfc_index_integer_kind.
2132 2012-01-12 Tobias Burnus <burnus@net-b.de>
2135 * intrinsic.texi (CHMOD): Extend a bit and remove statement
2136 that /bin/chmod is called.
2138 2012-01-10 Gerald Pfeifer <gerald@pfeifer.com>
2140 * gfortran.texi (Fortran 2003 Status): Fix grammar.
2142 2012-01-10 Tobias Burnus <burnus@net-b.de>
2145 * resolve.c (resolve_allocate_expr): For non-deferred char lengths,
2146 check whether type-spec matches declaration.
2148 2012-01-10 Tobias Burnus <burnus@net-b.de>
2150 * resolve.c (resolve_ordinary_assign): Improve error wording.
2152 2012-01-09 Paul Thomas <pault@gcc.gnu.org>
2155 * interface.c (matching_typebound_op): Drill down through
2156 possible parentheses to obtain base expression. Do not test for
2157 'class_ok' but, instead for the class structure components.
2158 * resolve.c (resolve_ordinary_assign): Extend error message for
2159 polymorphic assignment to advise checking for specific
2163 * resolve.c (resolve_typebound_function): Restore 'static' to
2166 2012-01-09 Mikael Morin <mikael@gcc.gnu.org>
2169 * trans-array.c (gfc_walk_elemental_function_args):
2170 Skip over NULL() actual arguments.
2172 2012-01-09 Tobias Burnus <burnus@net-b.de>
2174 * gfortran.texi: Bump copyright year.
2175 (Fortran 2003 Status): Update polymorphism item, add
2176 item for generic interface with DT name.
2178 2012-01-09 Tobias Burnus <burnus@net-b.de>
2181 * gfortran.h (gfc_use_list):
2182 * match.h (gfc_use_module): Rename to ...
2183 (gfc_use_modules): ... this.
2184 * module.c (use_locus, specified_nonint, specified_int): Remove
2186 (module_name): Change type to const char*, used with gfc_get_string.
2187 (module_list): New global variable.
2188 (free_rename): Free argument not global var.
2189 (gfc_match_use): Save match to module_list.
2190 (load_generic_interfaces, read_module): Don't free symtree.
2191 (write_dt_extensions, gfc_dump_module): Fix module-name I/O due to the
2192 type change of module_name.
2193 (write_symbol0, write_generic): Optimize due to the type change.
2194 (import_iso_c_binding_module, use_iso_fortran_env_module): Use
2195 locus of rename->where.
2196 (gfc_use_module): Take module_list as argument.
2197 (gfc_use_modules): New function.
2198 (gfc_module_init_2, gfc_module_done_2): Init module_list, rename_list.
2199 * parse.c (last_was_use_stmt): New global variable.
2200 (use_modules): New function.
2201 (decode_specification_statement, decode_statement): Move USE match up
2202 and call use_modules.
2203 (next_free, next_fixed): Call use_modules.
2204 (accept_statement): Don't call gfc_module_use.
2206 2012-01-06 Tobias Burnus <burnus@net-b.de>
2208 * trans-openmp.c (gfc_omp_clause_dtor, gfc_trans_omp_array_reduction):
2209 Update call to gfc_trans_dealloc_allocated.
2210 * trans.c (gfc_allocate_using_malloc): Fix spacing.
2211 (gfc_allocate_allocatable): For gfc_allocate_using_lib, jump to
2212 label_finish when an error occurs.
2213 (gfc_deallocate_with_status): Call caf_deregister for -fcoarray=lib.
2214 * trans.h (gfc_allocate_allocatable, gfc_deallocate_with_status):
2216 (gfor_fndecl_caf_deregister): New tree symbol.
2217 * trans-expr.c (gfc_conv_procedure_call): Update
2218 gfc_deallocate_with_status and gfc_trans_dealloc_allocated calls.
2219 * trans-array.c (gfc_array_allocate, gfc_trans_dealloc_allocated,
2220 structure_alloc_comps, gfc_trans_deferred_array): Ditto.
2221 (gfc_array_deallocate): Handle coarrays with -fcoarray=lib.
2222 * trans-array.h (gfc_array_deallocate, gfc_array_allocate,
2223 gfc_trans_dealloc_allocated): Update prototypes.
2224 * trans-stmt.c (gfc_trans_sync): Fix indentation.
2225 (gfc_trans_allocate): Fix errmsg padding and label handling.
2226 (gfc_trans_deallocate): Ditto and handle -fcoarray=lib.
2227 * expr.c (gfc_is_coarray): Fix algorithm for BT_CLASS.
2228 * libgfortran.h (GFC_STAT_STOPPED_IMAGE): Use large value
2229 to avoid other stats accidentally matching this one.
2230 * trans-decl.c (gfor_fndecl_caf_deregister): New global var.
2231 (gfc_build_builtin_function_decls): Fix prototype decl of caf_register
2232 and add decl for caf_deregister.
2233 (gfc_trans_deferred_vars): Handle CAF vars with -fcoarrays=lib.
2234 * trans-intrinsic.c (conv_intrinsic_move_alloc): Update call to
2235 gfc_deallocate_with_status.
2237 2012-01-05 Paul Thomas <pault@gcc.gnu.org>
2240 * resolve.c (resolve_typebound_static): If the typebound
2241 procedure is 'deferred' try to find the correct specific
2242 procedure in the derived type operator space itself.
2244 2012-01-04 Mikael Morin <mikael@gcc.gnu.org>
2247 * trans-array.h (gfc_walk_elemental_function_args): New argument.
2248 * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call.
2249 * trans-stmt.c (gfc_trans_call): Ditto.
2250 * trans-array.c (gfc_walk_function_expr): Ditto.
2251 (gfc_walk_elemental_function_args): Get the dummy argument list
2252 if possible. Check that the dummy and the actual argument are both
2253 optional, and set can_be_null_ref accordingly.
2255 2012-01-04 Mikael Morin <mikael@gcc.gnu.org>
2258 * trans.h (struct gfc_ss_info): New field data::scalar::can_be_null_ref
2259 * trans-array.c: If the reference can be NULL, save the reference
2260 instead of the value.
2261 * trans-expr.c (gfc_conv_expr): If we have saved a reference,
2264 2012-01-04 Mikael Morin <mikael@gcc.gnu.org>
2266 * trans-expr.c (gfc_conv_expr): Move address taking...
2267 (gfc_conv_expr_reference): ... here.
2269 2012-01-04 Thomas Koenig <tkoenig@gcc.gnu.org>
2272 * trans-common.c (create_common): Update copyright years. Mark
2273 variables as used to avoid warnings about unused variables in
2276 2012-01-03 Hans-Peter Nilsson <hp@axis.com>
2278 * gfortran.h (struct gfc_expr): Add missing "struct"
2279 qualifier for member base_expr.
2281 2012-01-02 Paul Thomas <pault@gcc.gnu.org>
2284 * trans-array.c (gfc_array_allocate): Null allocated memory of
2285 newly allocted class arrays.
2290 * interface.c(build_compcall_for_operator): Add a type to the
2292 * trans-expr.c (conv_base_obj_fcn_val): New function.
2293 (gfc_conv_procedure_call): Use base_expr to detect non-variable
2294 base objects and, ensuring that there is a temporary variable,
2295 build up the typebound call using conv_base_obj_fcn_val.
2296 (gfc_trans_class_assign): Pick out class procedure pointer
2297 assignments and do the assignment with no further prcessing.
2298 (gfc_trans_class_array_init_assign, gfc_trans_class_init_assign
2299 gfc_trans_class_assign): Move to top of file.
2300 * gfortran.h : Add 'base_expr' field to gfc_expr.
2301 * resolve.c (get_declared_from_expr): Add 'types' argument to
2302 switch checking of derived types on or off.
2303 (resolve_typebound_generic_call): Set the new argument.
2304 (resolve_typebound_function, resolve_typebound_subroutine):
2305 Set 'types' argument for get_declared_from_expr appropriately.
2306 Identify base expression, if not a variable, in the argument
2307 list of class valued calls. Assign it to the 'base_expr' field
2308 of the final expression. Strip away all references after the
2309 last class reference.
2311 2012-01-02 Tobias Burnus <burnus@net-b.de>
2314 * trans-intrinsic.c (trans_this_image, trans_image_index,
2315 trans_num_images, conv_intrinsic_cobound): Fold_convert the
2316 caf_num_images/caf_this_images variables to the correct int kind.
2318 2012-01-01 Jakub Jelinek <jakub@redhat.com>
2320 * gfortranspec.c (lang_specific_driver): Update copyright notice
2323 Copyright (C) 2012 Free Software Foundation, Inc.
2325 Copying and distribution of this file, with or without modification,
2326 are permitted in any medium without royalty provided the copyright
2327 notice and this notice are preserved.