12012-12-28 Janus Weil <janus@gcc.gnu.org> 2 3 PR fortran/55692 4 * check.c (gfc_check_associated): Remove a "gcc_assert (0)". 5 62012-12-28 Tobias Burnus <burnus@net-b.de> 7 8 PR fortran/55763 9 * check.c (gfc_check_move_alloc): Handle unlimited polymorphic. 10 * trans-intrinsic.c (conv_intrinsic_move_alloc): Ditto. 11 122012-12-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> 13 14 PR fortran/48976 15 * gfortran.h (gfc_inquire struct): Add pointer for inquire stream. 16 * io.c (io_tag): Add tag for inquire stream. (match_inquire_element): 17 Add matcher for new tag. (gfc_resolve_inquire): Resolve new tag. 18 * ioparm.def: Add new parameter for inquire stream. 19 * trans-io.c (gfc_trans_inquire): Add tranlste code for inquire 20 stream. 21 222012-12-23 Tobias Burnus <burnus@net-b.de> 23 24 PR fortran/54884 25 * module.c (write_symbol1_recursion): Set attr.public_use. 26 * interface.c (check_sym_interfaces, check_uop_interfaces, 27 gfc_check_interfaces): Remove attr.public_use code. 28 * resolve.c (resolve_function, resolve_variable, 29 resolve_typebound_procedure): Ditto. 30 312012-12-22 Tobias Burnus <burnus@net-b.de> 32 33 PR fortran/55763 34 * module.c (mio_component): Don't skip _hash's initializer. 35 * resolve.c (resolve_select_type): Add an assert. 36 * trans-expr.c (gfc_conv_procedure_call): Handle 37 INTENT(OUT) for UNLIMIT_POLY. 38 392012-12-21 Richard Biener <rguenther@suse.de> 40 41 PR bootstrap/54659 42 * gfortran.h: Do not include gmp.h here. 43 442012-12-21 Paul Thomas <pault@gcc.gnu.org> 45 46 PR fortran/55763 47 * match.c (select_type_set_tmp): Return is a derived type or 48 class typespec has no derived type. 49 * resolve.c (resolve_fl_var_and_proc): Exclude select type 50 temporaries from 'pointer'. 51 (resolve_symbol): Exclude select type temporaries from tests 52 for assumed size and assumed rank. 53 542012-12-20 Janus Weil <janus@gcc.gnu.org> 55 56 PR fortran/36044 57 * gfortran.h (gfc_isym_id): Add GFC_ISYM_BACKTRACE. 58 * intrinsic.c (add_subroutines): Add "backtrace". 59 * intrinsic.texi (BACKTRACE): Document BACKTRACE intrinsic. 60 612012-12-20 Tobias Burnus <burnus@net-b.de> 62 63 PR fortran/54818 64 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ensure that 65 the string length is of type gfc_charlen_type_node. 66 672012-12-19 Paul Thomas <pault@gcc.gnu.org> 68 69 * array.c (resolve_array_list): Apply C4106. 70 * check.c (gfc_check_same_type_as): Exclude polymorphic 71 entities from check for extensible types. Improved error 72 for disallowed argument types to name the offending type. 73 * class.c : Update copyright date. 74 (gfc_class_null_initializer): Add argument for initialization 75 expression and deal with unlimited polymorphic typespecs. 76 (get_unique_type_string): Give unlimited polymorphic 77 entities a type string. 78 (gfc_intrinsic_hash_value): New function. 79 (gfc_build_class_symbol): Incorporate unlimited polymorphic 80 entities. 81 (gfc_find_derived_vtab): Deal with unlimited polymorphic 82 entities. 83 (gfc_find_intrinsic_vtab): New function. 84 * decl.c (gfc_match_decl_type_spec): Match typespec for 85 unlimited polymorphic type. 86 (gfc_match_data_decl): Skip to 'ok' if unlimited polymorphic. 87 expr.c (gfc_check_pointer_assign): Apply C717. If unlimited 88 polymorphic lvalue, find rvalue vtable for all typespecs, 89 except unlimited polymorphic expressions. 90 (gfc_check_vardef_context): Handle unlimited polymorphic 91 entities. 92 * gfortran.h : Add unlimited polymorphic attribute. Add 93 second arg to gfc_class_null_initializer primitive and 94 primitive for gfc_find_intrinsic_vtab. Add UNLIMITED_POLY 95 to detect unlimited polymorphic expressions. 96 * interface.c (gfc_compare_types): If expr1 is unlimited 97 polymorphic, always return 1. If expr2 is unlimited polymorphic 98 enforce C717. 99 (gfc_compare_interfaces): Skip past conditions that do not 100 apply for unlimited polymorphic entities. 101 (compare_parameter): Make sure that an unlimited polymorphic, 102 allocatable or pointer, formal argument is matched by an 103 unlimited polymorphic actual argument. 104 (compare_actual_formal): Ensure that an intrinsic vtable exists 105 to match an unlimited polymorphic formal argument. 106 * match.c (gfc_match_allocate): Type kind parameter does not 107 need to match an unlimited polymorphic allocate-object. 108 (alloc_opt_list): An unlimited polymorphic allocate-object 109 requires a typespec or a SOURCE tag. 110 (select_intrinsic_set_tmp): New function. 111 (select_type_set_tmp): Call new function. If it returns NULL, 112 build a derived type or class temporary instead. 113 (gfc_match_type_is): Remove restriction to derived types only. 114 Bind(C) or sequence derived types not permitted. 115 * misc (gfc_typename): Printed CLASS(*) for unlimited 116 polymorphism. 117 * module.c : Add AB_UNLIMITED_POLY to pass unlimited 118 polymorphic attribute to and from modules. 119 * resolve.c (resolve_common_vars): Unlimited polymorphic 120 entities cannot appear in common blocks. 121 (resolve_deallocate_expr): Deallocate unlimited polymorphic 122 enities. 123 (resolve_allocate_expr): Likewise for allocation. Make sure 124 vtable exists. 125 (gfc_type_is_extensible): Unlimited polymorphic entities are 126 not extensible. 127 (resolve_select_type): Handle unlimited polymorphic selectors. 128 Ensure that length type parameters are assumed and that names 129 for intrinsic types are generated. 130 (resolve_fl_var_and_proc): Exclude select type temporaries 131 from test of extensibility of type. 132 (resolve_fl_variable): Likewise for test that assumed character 133 length must be a dummy or a parameter. 134 (resolve_fl_derived0): Return SUCCESS unconditionally for 135 unlimited polymorphic entities. Also, allow unlimited 136 polymorphic components. 137 (resolve_fl_derived): Return SUCCESS unconditionally for 138 unlimited polymorphic entities. 139 (resolve_symbol): Return early with unlimited polymorphic 140 entities. 141 * simplifiy.c : Update copyright year. 142 (gfc_simplify_extends_type_of): No simplification possible 143 for unlimited polymorphic arguments. 144 * symbol.c (gfc_use_derived): Nothing to do for unlimited 145 polymorphic "derived type". 146 (gfc_type_compatible): Return unity if ts1 is unlimited 147 polymorphic. 148 * trans-decl.c (create_function_arglist) Formal arguments 149 without a character length should be treated in the same way 150 as passed lengths. 151 (gfc_trans_deferred_vars): Nullify the vptr of unlimited 152 polymorphic pointers. Avoid unlimited polymorphic entities 153 triggering gcc_unreachable. 154 * trans-expr.c (gfc_conv_intrinsic_to_class): New function. 155 (gfc_trans_class_init_assign): Make indirect reference of 156 src.expr. 157 (gfc_trans_class_assign): Expression NULL of unknown type 158 should set NULL vptr on lhs. Treat C717 cases where lhs is 159 a derived type and the rhs is unlimited polymorphic. 160 (gfc_conv_procedure_call): Handle the conversion of a non-class 161 actual argument to match an unlimited polymorphic formal 162 argument. Suppress the passing of a character string length 163 in this case. Make sure that calls to the character __copy 164 function have two character string length arguments. 165 (gfc_conv_initializer): Pass the initialization expression to 166 gfc_class_null_initializer. 167 (gfc_trans_subcomponent_assign): Ditto. 168 (gfc_conv_structure): Move handling of _size component. 169 trans-intrinsic.c: (gfc_conv_same_type_as): Handle conditions 170 where unlimited polymorphic arguments have null vptr. 171 * trans-stmt.c (trans_associate_var): Correctly treat array 172 temporaries associated with unlimited polymorphic selectors. 173 Recover the overwritten dtype for the descriptor. Use the _size 174 field of the vptr for character string lengths. 175 (gfc_trans_allocate): Cope with unlimited polymorphic allocate 176 objects; especially with character source tags. 177 (reset_vptr): New function. 178 (gfc_trans_deallocate): Call it. 179 * trans-types.c (gfc_get_derived_type): Detect unlimited 180 polymorphic types and deal with cases where the derived type of 181 components is null. 182 * trans.c : Update copyright year. 183 (trans_code): Call gfc_trans_class_assign for C717 cases where 184 the lhs is not unlimited polymorphic. 185 1862012-12-19 Tobias Burnus <burnus@net-b.de> 187 188 PR fortran/55733 189 * trans-decl.c (gfc_create_string_length): Avoid setting 190 TREE_STATIC for automatic variables with -fno-automatic. 191 1922012-12-19 Tobias Burnus <burnus@net-b.de> 193 Jakub Jelinek <jakub@redhat.com> 194 Janus Weil <janus@gcc.gnu.org> 195 196 PR fortran/55636 197 PR fortran/55733 198 * gfortran.h (GFC_PREFIX): Define. 199 * trans-decl.c (gfc_create_string_length): For VAR_DECLs that 200 will be TREE_STATIC, use GFC_PREFIX to mangle the names. Handle 201 -fno-automatic 202 (gfc_trans_deferred_vars): Don't free variables SAVEd via 203 -fno-automatic. 204 2052012-12-16 Tobias Burnus <burnus@net-b.de> 206 207 PR fortran/55197 208 * module.c (gfc_use_module): Free rename list only for 209 internally generated intrinsic modules. 210 2112012-12-16 Tobias Burnus <burnus@net-b.de> 212 213 * trans-intrinsic.c (conv_intrinsic_move_alloc): Set dynamic 214 type of the FROM variable to the declared type. 215 2162012-12-16 Tobias Burnus <burnus@net-b.de> 217 218 PR fortran/55638 219 * resolve.c (resolve_formal_arglist): Allow VALUE without 220 INTENT for ELEMENTAL procedures. 221 2222012-12-10 Janus Weil <janus@gcc.gnu.org> 223 224 PR fortran/52909 225 * trans-decl.c (get_proc_pointer_decl): Apply name mangling. 226 2272012-12-09 Tobias Burnus <burnus@net-b.de> 228 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. 233 2342012-12-09 Thomas Koenig <tkoenig@gcc.gnu.org> 235 236 PR fortran/55593 237 * frontend-passes.c (doloop_code): Use resolved_sym 238 instead of n.sym->formal for formal argument list 239 to get the correct version for all generic subroutines. 240 2412012-12-05 Tobias Burnus <burnus@net-b.de> 242 243 * resolve.c (generate_component_assignments): Fix memleak. 244 2452012-12-03 Janus Weil <janus@gcc.gnu.org> 246 247 PR fortran/55548 248 * intrinsic.texi (SYSTEM_CLOCK): Update documentation of SYSTEM_CLOCK. 249 2502012-12-03 Tobias Burnus <burnus@net-b.de> 251 Janus Weil <janus@gcc.gnu.org> 252 253 PR fortran/37336 254 * class.c (gfc_is_finalizable): New function. 255 * gfortran.h (gfc_is_finalizable): Its prototype. 256 * module.c (mio_component): Read initializer for vtype's _final. 257 * resolve.c (resolve_fl_derived0): Call gfc_is_finalizable. 258 * trans-expr.c (gfc_vtable_final_get): New function. 259 (conv_parent_component_references): Fix comment. 260 (gfc_conv_variable): Fix for scalar coarray components. 261 * trans-intrinsic.c (conv_intrinsic_move_alloc): For BT_CLASS, 262 pass the BT_CLASS type and not the declared type to 263 gfc_deallocate_scalar_with_status. 264 * trans.h (gfc_vtable_final_get): New prototype. 265 2662012-12-03 Tobias Burnus <burnus@net-b.de> 267 268 PR fortran/55475 269 * scanner.c (gfc_next_char_literal): Fix setting locus 270 to free_line_length for the error message. 271 * error.c (show_locus): Fix potential out-of-bounds 272 read. 273 2742012-12-03 Tobias Burnus <burnus@net-b.de> 275 276 PR fortran/37336 277 * class.c (finalizer_insert_packed_call): New static function. 278 (finalize_component, generate_finalization_wrapper): 279 Fix coarray handling and packing. 280 2812012-12-02 Paul Thomas <pault@gcc.gnu.org> 282 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. 286 2872012-12-01 Alessandro Fanfarillo <alessandro.fanfarillo@gmail.com> 288 Paul Thomas <pault@gcc.gnu.org> 289 290 PR fortran/46897 291 * gfortran.h : Add bit field 'defined_assign_comp' to 292 symbol_attribute structure. 293 Add primitive for gfc_add_full_array_ref. 294 * expr.c (gfc_add_full_array_ref): New function. 295 (gfc_lval_expr_from_sym): Call new function. 296 * resolve.c (add_comp_ref): New function. 297 (build_assignment): New function. 298 (get_temp_from_expr): New function 299 (add_code_to_chain): New function 300 (generate_component_assignments): New function that calls all 301 the above new functions. 302 (resolve_code): Call generate_component_assignments. 303 (check_defined_assignments): New function. 304 (resolve_fl_derived0): Call check_defined_assignments. 305 (gfc_resolve): Reset component_assignment_level in case it is 306 left in a bad state by errors. 307 308 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. 332 3332012-11-28 Tobias Burnus <burnus@net-b.de> 334 335 PR fortran/52161 336 * trans-stmt.c (gfc_trans_sync): Fix bound checking 337 for -fcoarray=lib. 338 3392012-11-28 Tobias Burnus <burnus@net-b.de> 340 341 PR fortran/52161 342 * trans-stmt.c (gfc_trans_sync): Fix bound checking. 343 3442012-11-27 Tobias Burnus <burnus@net-b.de> 345 346 PR fortran/55476 347 * expr.c (gfc_check_pointer_assign): Fix check 348 pointer-might-outlive-target check for host_assoc. 349 3502012-11-26 Eric Botcazou <ebotcazou@adacore.com> 351 352 * trans-decl.c (gfc_finish_var_decl): Do not set DECL_RESTRICTED_P. 353 3542012-11-26 Janus Weil <janus@gcc.gnu.org> 355 356 PR fortran/54997 357 * decl.c (match_procedure_decl): Don't set 'referenced' attribute 358 for PROCEDURE declarations. 359 * parse.c (gfc_fixup_sibling_symbols,parse_contained): Don't set 360 'referenced' attribute for all contained procedures. 361 * trans-decl.c (gfc_get_symbol_decl): Allow for unreferenced procedures. 362 (build_function_decl): Set TREE_USED for referenced procedures. 363 3642012-11-26 Janus Weil <janus@gcc.gnu.org> 365 366 PR fortran/54881 367 * match.c (select_derived_set_tmp,select_class_set_tmp): Removed and 368 unified into ... 369 (select_type_set_tmp): ... this one. Set POINTER argument according to 370 selector. 371 * trans-intrinsic.c (gfc_conv_associated): Use 'gfc_class_data_get' 372 instead of 'gfc_add_data_component'. 373 3742012-11-25 Thomas Koenig <tkoenig@gcc.gnu.org> 375 376 PR fortran/30146 377 * frontend-passes.c (doloop_warn): New function. 378 (doloop_list): New static variable. 379 (doloop_size): New static variable. 380 (doloop_level): New static variable. 381 (gfc_run_passes): Call doloop_warn. 382 (doloop_code): New function. 383 (doloop_function): New function. 384 (gfc_code_walker): Keep track of DO level. 385 3862012-11-24 Thomas Koenig <tkoenig@gcc.gnu.org> 387 388 PR fortran/55314 389 * resolve.c (resolve_allocate_deallocate): Compare all 390 subscripts when deciding if to reject a (de)allocate 391 statement. 392 3932012-11-21 Janus Weil <janus@gcc.gnu.org> 394 395 PR fortran/55352 396 * trans-decl.c (generate_local_decl): Don't warn for explicitly imported 397 but unused module variables which are in a namelist or common block. 398 3992012-11-20 Diego Novillo <dnovillo@google.com> 400 Jakub Jelinek <jakub@redhat.com> 401 402 * trans-openmp.c: Replace all vec<T, A>() initializers 403 with vNULL. 404 4052012-11-17 Diego Novillo <dnovillo@google.com> 406 407 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 408 409 * frontend-passes.c: Use new vec API in vec.h. 410 * trans-array.c: Likewise. 411 * trans-common.c: Likewise. 412 * trans-decl.c: Likewise. 413 * trans-expr.c: Likewise. 414 * trans-intrinsic.c: Likewise. 415 * trans-openmp.c: Likewise. 416 * trans-stmt.c: Likewise. 417 * trans-types.c: Likewise. 418 * trans.h: Likewise. 419 4202012-11-17 Jakub Jelinek <jakub@redhat.com> 421 422 PR fortran/55341 423 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert last 424 argument to memcpy to size_type_node type. 425 * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise. 426 * trasn-array.c (duplicate_allocatable): Likewise. 427 4282012-11-16 Janus Weil <janus@gcc.gnu.org> 429 430 PR fortran/55297 431 * resolve.c (resolve_typebound_intrinsic_op): Only add typebound 432 operators to the operator list in the namespace of the derived type. 433 434 4352012-11-12 Jan Hubicka <jh@suse.cz> 436 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. 440 4412012-11-12 Tobias Burnus <burnus@net-b.de> 442 443 PR fortran/55272 444 * module.c (mio_array_spec): Correctly handle coarray 445 scalars. 446 4472012-11-07 Tobias Schlüter <tobi@gcc.gnu.org> 448 449 PR fortran/51727 450 * module.c (sorted_pointer_info): New. 451 (gfc_get_sorted_pointer_info): New. 452 (free_sorted_pointer_info_tree): New. 453 (compare_sorted_pointer_info): New. 454 (find_symbols_to_write): New. 455 (write_symbol1_recursion): New. 456 (write_symbol1): Collect symbols that need writing, output in order. 457 (write_generic): Traverse tree in order. 458 4592012-11-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 460 461 PR c/53063 462 * options.c (set_Wall): Do not set warn_switch here. 463 4642012-11-06 Janus Weil <janus@gcc.gnu.org> 465 466 PR fortran/54917 467 * target-memory.c (gfc_target_expr_size,gfc_target_interpret_expr): 468 Handle BT_CLASS. 469 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Add support for 470 polymorphic arguments. 471 4722012-11-04 Janus Weil <janus@gcc.gnu.org> 473 474 PR fortran/55199 475 * primary.c (gfc_match_varspec): Clear typespec if it cannot be 476 determined at this point. 477 4782012-10-31 Janus Weil <janus@gcc.gnu.org> 479 480 PR fortran/53718 481 * trans.h (GFC_DECL_PUSH_TOPLEVEL): Removed. 482 * trans-decl.c (gfc_get_symbol_decl,gfc_generate_function_code): Remove 483 GFC_DECL_PUSH_TOPLEVEL. 484 (build_function_decl): Do not push __copy procedure to toplevel. 485 4862012-10-31 Tobias Burnus <burnus@net-b.de> 487 488 PR fortran/55134 489 * trans-array.c (gfc_conv_array_parameter): Regard AS_DEFERRED as 490 array with descriptor. 491 4922012-10-28 Tobias Burnus <burnus@net-b.de> 493 494 PR fortran/54958 495 * gfortran.h (gfc_resolve_iterator_expr, 496 gfc_check_vardef_context): Update prototype. 497 * expr.c (gfc_check_vardef_context): Add own_scope 498 argument and honour it. 499 * resolve.c (gfc_resolve_iterator_expr): Add own_scope 500 argument and honour it. 501 (resolve_deallocate_expr, resolve_allocate_expr, 502 resolve_data_variables, resolve_transfer 503 resolve_lock_unlock, resolve_code): Update calls. 504 * array.c (resolve_array_list): Ditto. 505 * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto. 506 * interface.c (compare_actual_formal): Ditto. 507 * intrinsic.c (check_arglist): Ditto. 508 * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto. 509 5102012-10-27 Thomas Koenig <tkoenig@gcc.gnu.org> 511 512 * trans.c (gfc_allocate_allocatable): Revert accidental 513 commit. 514 5152012-10-24 Janus Weil <janus@gcc.gnu.org> 516 517 PR fortran/55037 518 * trans-expr.c (gfc_conv_procedure_call): Move a piece of code and 519 remove an assert. 520 5212012-10-21 Tobias Burnus <burnus@net-b.de> 522 523 PR fortran/54725 524 * Make-lang.in (CFLAGS-cpp.o): Use TARGET_SYSTEM_ROOT_DEFINE. 525 * cpp.o (gfc_cpp_init_options): Use it for 526 setting gfc_cpp_option.sysroot. 527 5282012-10-21 Thomas König <tkoenig@gcc.gnu.org> 529 530 PR fortran/54465 531 * lang.opt (Wextra): Add. 532 * invoke.texi: Document that -Wc-binding-type, -Wconversion 533 and -Wline-truncation are implied by -Wall. Document that 534 -Wcompare-reals is implied by -Wextra. Document -Wextra. 535 * options.c (set_Wextra): New function. 536 (gfc_handle_option): Handle -Wextra. 537 5382012-10-19 Janus Weil <janus@gcc.gnu.org> 539 540 PR fortran/54224 541 * trans-expr.c (conv_function_val): Set TREE_USED. 542 5432012-10-18 Tobias Burnus <burnus@net-b.de> 544 545 PR fortran/54884 546 * resolve.c (specification_expr): Change to bool. 547 (resolve_formal_arglist, resolve_symbol): Set 548 specification_expr to true before resolving the array spec. 549 (resolve_variable, resolve_charlen, resolve_fl_variable): 550 Properly reset specification_expr. 551 (resolve_function): Set public_use when used in 552 a specification expr. 553 5542012-10-16 Tobias Burnus <burnus@net-b.de> 555 556 PR fortran/50981 557 PR fortran/54618 558 * trans.h (gfc_conv_derived_to_class, gfc_conv_class_to_class): 559 Update prototype. 560 * trans-stmt.c (trans_associate_var,gfc_trans_allocate): Update 561 calls to those functions. 562 * trans-expr.c (gfc_conv_derived_to_class, gfc_conv_class_to_class, 563 gfc_conv_expr_present): Handle absent polymorphic arguments. 564 (class_scalar_coarray_to_class): New function. 565 (gfc_conv_procedure_call): Update calls. 566 5672012-10-12 Janus Weil <janus@gcc.gnu.org> 568 569 PR fortran/40453 570 * interface.c (check_dummy_characteristics): Recursively check dummy 571 procedures. 572 5732012-10-11 Janus Weil <janus@gcc.gnu.org> 574 575 PR fortran/54784 576 * trans-stmt.c (gfc_trans_allocate): Correctly determine the reference 577 to the _data component for polymorphic allocation with SOURCE. 578 5792012-10-06 Janus Weil <janus@gcc.gnu.org> 580 581 PR fortran/54832 582 * resolve.c (resolve_fl_derived0): Correctly copy the 'class_ok' 583 attribute for proc-ptr components with RESULT variable. 584 5852012-10-06 Janus Weil <janus@gcc.gnu.org> 586 587 PR fortran/45521 588 * interface.c (generic_correspondence): Implement additional 589 distinguishability criteria of F08. 590 (compare_actual_formal): Reject data object as actual argument for 591 procedure formal argument. 592 5932012-10-04 Tobias Burnus <burnus@net-b.de> 594 595 * expr.c (scalarize_intrinsic_call): Plug memory leak. 596 * frontend-passes.c (gcc_assert): Extend assert. 597 * interface.c (gfc_compare_derived_types): Fix comparison. 598 (gfc_check_operator_interface): Move up to make this error 599 message reachable. 600 (get_sym_storage_size): Remove always-true checks. 601 * io.c (format_lex): Add comment. 602 (gfc_free_wait): Free memory. 603 * match.c (gfc_match_select_type): Ditto. 604 * matchexpr.c (match_level_3): Ditto. 605 * primary.c (match_string_constant): Ditto. 606 (match_actual_arg): Check return value. 607 * resolve.c (gfc_resolve_substring_charlen, 608 resolve_typebound_generic_call, resolve_typebound_function, 609 resolve_typebound_subroutine): Free memory. 610 * trans-types.c (gfc_get_derived_type): Remove always-true check. 611 6122012-10-02 Janus Weil <janus@gcc.gnu.org> 613 614 PR fortran/54778 615 * interface.c (matching_typebound_op): Check for 'class_ok' attribute. 616 6172012-09-30 Janus Weil <janus@gcc.gnu.org> 618 619 PR fortran/54667 620 * intrinsic.texi (C_F_POINTER): Fix description. 621 * resolve.c (gfc_iso_c_sub_interface): Add a check for FPTR argument 622 of C_F_POINTER. Modify two error messages. Cleanup. 623 6242012-09-24 Tobias Burnus <burnus@net-b.de> 625 626 PR fortran/54618 627 PR fortran/54690 628 * trans-expr.c (gfc_conv_procedure_call): Fix INTENT(OUT) 629 handling for allocatable BT_CLASS. 630 6312012-09-24 Lawrence Crowl <crowl@google.com> 632 633 * trans-expr.c (gfc_conv_cst_int_power): Change to new double_int API. 634 * target-memory.c (gfc_interpret_logical): Likewise. 635 6362012-09-23 Tobias Burnus <burnus@net-b.de> 637 638 * parse.c (parse_derived): Don't set attr.alloc_comp 639 for pointer components with allocatable subcomps. 640 641 PR fortran/54599 642 * resolve.c (resolve_fl_namelist): Remove superfluous 643 NULL check. 644 * simplify.c (simplify_min_max): Remove unreachable code. 645 * trans-array.c (gfc_trans_create_temp_array): Change 646 a condition into an assert. 647 648 PR fortran/54618 649 * trans-expr.c (gfc_trans_class_init_assign): Guard 650 re-setting of the _data by gfc_conv_expr_present. 651 (gfc_conv_procedure_call): Fix INTENT(OUT) handling 652 for allocatable BT_CLASS. 653 6542012-09-22 Thomas König <tkoenig@gcc.gnu.org> 655 656 PR fortran/54599 657 * dependency.c (gfc_dep_compare_expr): Clarify logic, 658 remove dead code. 659 6602012-09-20 Tobias Burnus <burnus@net-b.de> 661 662 PR fortran/54599 663 * cpp.c (print_line): Properly handle extern C. 664 6652012-09-20 Martin Jambor <mjambor@suse.cz> 666 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. 670 6712012-09-17 Tobias Burnus <burnus@net-b.de> 672 673 PR fortran/54608 674 * simplify.c (gfc_simplify_scan, gfc_simplify_verify): 675 Fix handling of BACK=variable. 676 6772012-09-17 Janus Weil <janus@gcc.gnu.org> 678 679 PR fortran/54285 680 * expr.c (gfc_check_pointer_assign): Correctly handle procedure pointers 681 as function results. 682 * primary.c (gfc_match_varspec): Allow to call a PPC with proc-ptr 683 result. 684 6852012-09-17 Tobias Burnus <burnus@net-b.de> 686 687 PR fortran/54603 688 * trans-expr.c (gfc_trans_subcomponent_assign): Handle 689 proc-pointer components. 690 6912012-09-17 Tobias Burnus <burnus@net-b.de> 692 693 PR fortran/54599 694 * error.c (error_print): Move increment out of the assert. 695 * interface.c (gfc_compare_derived_types): Add assert. 696 (get_expr_storage_size): Remove always-true logical condition. 697 * resolve.c (resolve_allocate_expr): Fix looping logic. 698 * target-memory.c (gfc_target_expr_size): Add assert. 699 7002012-09-16 Janus Weil <janus@gcc.gnu.org> 701 702 PR fortran/54594 703 * resolve.c (get_checked_tb_operator_target): Add a reference to the 704 relevant quote from the F08 standard. 705 7062012-09-16 Janus Weil <janus@gcc.gnu.org> 707 708 PR fortran/54594 709 * interface.c (compare_type_rank): Handle CLASS arrays. 710 7112012-09-16 Janus Weil <janus@gcc.gnu.org> 712 713 PR fortran/54387 714 * expr.c (gfc_check_pointer_assign): Check for result of embracing 715 function. 716 7172012-09-16 Tobias Burnus <burnus@net-b.de> 718 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. 723 7242012-09-16 Mikael Morin <mikael@gcc.gnu.org> 725 726 * symbol.c (gfc_undo_symbols): Correctly undo namelists. 727 7282012-09-15 Tobias Burnus <burnus@net-b.de> 729 730 * trans-io.c (gfc_trans_transfer): Add an assert. 731 7322012-09-15 Tobias Burnus <burnus@net-b.de> 733 734 * arith.c (arith_power): Call gfc_free_expr in case of error. 735 * array.c (gfc_match_array_constructor): Initialize variable. 736 (gfc_resolve_character_array_constructor): Remove superfluous check. 737 (gfc_array_dimen_size): Add assert. 738 * check.c (numeric_check): Fix implicit typing. 739 * class.c (gfc_build_class_symbol): Add assert. 740 (finalize_component): Free memory. 741 * dump-parse-tree.c (show_namespace): Add assert. 742 * trans-io.c (transfer_namelist_element, transfer_expr): Avoid 743 memory leakage. 744 (gfc_trans_transfer): Add assert. 745 * trans.c (gfc_trans_runtime_check): Call va_end 746 7472012-09-15 Tobias Burnus <burnus@net-b.de> 748 749 * match.c (lock_unlock_statement, sync_statement): Fix potential 750 double freeing. 751 (sync_statement): Remove unreachable code. 752 * simplify.c (gfc_simplify_bessel_n2): Avoid double freeing. 753 (gfc_simplify_repeat): Remove bogus code. 754 * target-memory.h (gfc_target_encode_expr): Update prototype. 755 * target-memory.c (gfc_target_encode_expr, encode_array, 756 encode_derived): Return unsigned HOST_WIDE_INT. 757 (gfc_target_interpret_expr): Add assert. 758 (gfc_merge_initializers): Fix "== 0" check for mpz_t. 759 * symbol.c (gfc_get_typebound_proc): Add assert. 760 (gfc_merge_initializers): Remove unreachable check. 761 7622012-09-13 Tobias Burnus <burnus@net-b.de> 763 764 PR fortran/54556 765 * resolve.c (resolve_formal_arglist): Allow VALUE arguments 766 with implicit_pure. 767 (gfc_impure_variable): Don't check gfc_pure such that the 768 function also works for gfc_implicit_pure procedures. 769 7702012-09-12 Tobias Burnus <burnus@net-b.de> 771 772 PR fortran/54225 773 PR fortran/53306 774 * array.c (match_subscript, gfc_match_array_ref): Fix 775 diagnostic of coarray's '*'. 776 7772012-09-07 Mikael Morin <mikael@gcc.gnu.org> 778 779 PR fortran/54208 780 * simplify.c (simplify_bound_dim): Resolve array spec before 781 proceeding with simplification. 782 7832012-09-06 Tobias Burnus <burnus@net-b.de> 784 785 PR fortran/54463 786 * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Fix matmul 787 call to BLAS if the default-kind has been promoted. 788 7892012-09-05 Tobias Burnus <burnus@net-b.de> 790 791 PR fortran/54462 792 * symbol.c (gfc_undo_symbols): Avoid NULL pointer dereference. 793 7942012-09-04 Janus Weil <janus@gcc.gnu.org> 795 796 PR fortran/54435 797 PR fortran/54443 798 * match.c (gfc_match_select_type): Make sure to only access CLASS_DATA 799 for BT_CLASS. 800 8012012-09-03 Tobias Burnus <burnus@net-b.de> 802 803 PR fortran/54467 804 * class.c (gfc_find_derived_vtab): Fix disabling of _final 805 by continuing to generate normal type-bound procedures. 806 8072012-09-03 Tobias Burnus <burnus@net-b.de> 808 809 * class.c (gfc_find_derived_vtab): Disable ABI-breaking 810 generation of the "_final" subroutine for now. 811 8122012-09-03 Tobias Burnus <burnus@net-b.de> 813 814 * class.c (finalize_component): Fixes to the comment. 815 8162012-09-03 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> 817 Tobias Burnus <burnus@net-b.de> 818 819 PR fortran/37336 820 * gfortran.h (symbol_attribute): Add artificial. 821 * module.c (mio_symbol_attribute): Handle attr.artificial 822 * class.c (gfc_build_class_symbol): Defer creation of the vtab 823 if the DT has finalizers, mark generated symbols as 824 attr.artificial. 825 (has_finalizer_component, finalize_component, 826 finalization_scalarizer, generate_finalization_wrapper): 827 New static functions. 828 (gfc_find_derived_vtab): Add _final component and call 829 generate_finalization_wrapper. 830 * dump-parse-tree.c (show_f2k_derived): Use resolved 831 proc_tree->n.sym rather than unresolved proc_sym. 832 (show_attr): Handle attr.artificial. 833 * resolve.c (gfc_resolve_finalizers): Ensure that the vtab exists. 834 (resolve_fl_derived): Resolve finalizers before 835 generating the vtab. 836 (resolve_symbol): Also allow assumed-rank arrays with CONTIGUOUS; 837 skip artificial symbols. 838 (resolve_fl_derived0): Skip artificial symbols. 839 8402012-09-02 Tobias Burnus <burnus@net-b.de> 841 842 PR fortran/54426 843 * symbol.c (find_common_symtree): New function. 844 (gfc_undo_symbols): Use it; free common_head if needed. 845 8462012-08-28 Tobias Burnus <burnus@net-b.de> 847 848 PR fortran/54389 849 * trans-decl.c (gfc_get_extern_function_decl, 850 build_function_decl): Don't mark impure elemental 851 functions as DECL_PURE_P and honour implicit_pure. 852 8532012-08-28 Tobias Burnus <burnus@net-b.de> 854 855 PR fortran/54382 856 * error.c (show_locus): Avoid out of bound access. 857 8582012-08-28 Tobias Burnus <burnus@net-b.de> 859 860 PR fortran/54384 861 * decl.c (match_data_constant): Add missing gfc_free_expr. 862 (top_val_list): Remove always-true condition. 863 * data.c (get_array_index, create_character_initializer): 864 Free temporary expressions. 865 (gfc_assign_data_value): Free expression when aborting. 866 8672012-08-28 Tobias Burnus <burnus@net-b.de> 868 869 PR fortran/54384 870 * symbol.c (gfc_copy_formal_args): Set also sym->formal_ns. 871 8722012-08-27 Tobias Burnus <burnus@net-b.de> 873 874 PR fortran/54384 875 * resolve.c (gfc_resolve_character_operator): Free temporary 876 variables. 877 * trans-expr.c (gfc_conv_statement_function): Ditto. 878 8792012-08-27 Tobias Burnus <burnus@net-b.de> 880 881 PR fortran/54384 882 * dependency.c (check_section_vs_section): Use gfc_free_expr 883 instead of free. 884 * trans-intrinsic.c (conv_generic_with_optional_char_arg): Use 885 gfc_free_symbol instead of free. 886 8872012-08-27 Tobias Burnus <burnus@net-b.de> 888 889 PR fortran/54384 890 * trans-expr.c (gfc_trans_arrayfunc_assign): Free se.ss 891 and loop. 892 8932012-08-27 Tobias Burnus <burnus@net-b.de> 894 895 PR fortran/41093 896 * gfortran.h (gfc_common_head): Add "int refs". 897 * match.c (gfc_match_common): Increment refs. 898 * resolve.c (resolve_symbol): Only increment formal_ns->refs 899 if formal_ns is not sym->ns. 900 * symbol.c (gfc_free_symbol): Only free formal_ns if 901 if formal_ns is not sym->ns. Free common_block if refs is one. 902 (gfc_release_symbol): Release formal_ns only if the 903 symbol is not ENTRY of a module. 904 * decl.c (get_proc_name): Don't increment gfc_current_ns->refs. 905 * parse.c (parse_interface): Incement proc_unit->refs++ for 906 proc-pointer result variables. 907 * module.c (mio_symbol): Don't increase sym->refs for its 908 use in sym->formal_ns->proc_name. 909 9102012-08-27 Tobias Burnus <burnus@net-b.de> 911 912 PR fortran/54370 913 * trans-stmt.c (gfc_trans_do_while): Don't change the logical 914 kind for negation of the condition. 915 9162012-08-27 Tobias Burnus <burnus@net-b.de> 917 918 * options.c (set_Wall): Don't set for -Wcompare-reals. 919 * invoke.texi (-Wall, -Wcompare-reals): -Wall no longer 920 implies -Wcompare-reals. 921 9222012-08-24 Simon Baldwin <simonb@google.com> 923 924 * lang.opt (-cpp=): Mark flag NoDWARFRecord. 925 9262012-08-23 Tobias Burnus <burnus@net-b.de> 927 928 PR fortran/54350 929 * trans-array.c (free_ss_info): Free data.array.subscript. 930 (gfc_free_ss): No longer free data.array.subscript. 931 (walk_coarray): New function, moved from trans-intrinsic.c 932 (gfc_conv_expr_descriptor): Walk array descriptor instead 933 of taking passed "ss". 934 (get_array_ctor_all_strlen, gfc_add_loop_ss_code, 935 gfc_conv_array_parameter): Update call and cleanup ss handling. 936 * trans-array.h (gfc_conv_expr_descriptor, 937 gfc_conv_array_parameter): Update prototype. 938 * trans-expr.c (gfc_conv_derived_to_class, 939 conv_isocbinding_procedure, gfc_conv_procedure_call, 940 gfc_trans_alloc_subarray_assign, gfc_trans_subcomponent_assign, 941 gfc_trans_pointer_assignment, gfc_trans_arrayfunc_assign): Update 942 call to gfc_conv_expr_descriptor and gfc_conv_array_parameter, and 943 clean up. 944 * trans-intrinsic.c (walk_coarray): Moved to trans-array.c 945 (trans_this_image, trans_image_index, gfc_conv_intrinsic_rank 946 gfc_conv_intrinsic_bound, gfc_conv_intrinsic_cobound, 947 gfc_conv_intrinsic_len, gfc_conv_intrinsic_size, 948 gfc_conv_intrinsic_sizeof, gfc_conv_intrinsic_storage_size, 949 gfc_conv_intrinsic_transfer, gfc_conv_allocated, 950 gfc_conv_associated, gfc_conv_intrinsic_loc, 951 conv_intrinsic_move_alloc): Update calls. 952 * trans-io.c (gfc_convert_array_to_string, set_internal_unit, 953 gfc_trans_transfer): Ditto. 954 * trans-stmt.c (gfc_conv_elemental_dependencies, 955 gfc_trans_sync, trans_associate_var, 956 gfc_trans_pointer_assign_need_temp): Ditto. 957 9582012-08-23 Jakub Jelinek <jakub@redhat.com> 959 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. 963 9642012-08-22 Tobias Burnus <burnus@net-b.de> 965 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. 969 9702012-08-21 Tobias Burnus <burnus@net-b.de> 971 972 * parse.c (parse_contained): Include EXEC_END_PROCEDURE 973 in ns->code to make sure the gfc_code is freed. 974 9752012-08-20 Tobias Burnus <burnus@net-b.de> 976 977 PR fortran/54301 978 * expr.c (gfc_check_pointer_assign): Warn when a pointer, 979 which is a function result, might outlive its target. 980 9812012-08-20 Tobias Burnus <burnus@net-b.de> 982 983 PR fortran/54301 984 * expr.c (gfc_check_pointer_assign): Warn when the pointer 985 might outlive its target. 986 * gfortran.h (struct gfc_option_t): Add warn_target_lifetime. 987 * options.c (gfc_init_options, set_wall, gfc_handle_option): 988 handle it. 989 * invoke.texi (-Wtarget-lifetime): Document it. 990 (-Wall): Implied it. 991 * lang.opt (-Wtarget-lifetime): New flag. 992 9932012-08-19 Thomas König <tkoenig@gcc.gnu.org> 994 995 PR fortran/54298 996 * gfortran.h (struct gfc_option_t): Add warn_compare_reals. 997 * lang.opt: Add Wcompare-reals. 998 * invoke.texi: Document -Wcompare-reals. 999 * resolve.c (resolve_operator): If -Wcompare-reals is in effect, 1000 warn about equality/inequality comparisions for REAL and COMPLEX. 1001 * options.c (gfc_init_options): Set warn_compare_reals. 1002 (set_Wall): Include warn_compare_reals in Wall. 1003 (gfc_handle_option): Handle Wcompare_reals. 1004 10052012-08-17 Jakub Jelinek <jakub@redhat.com> 1006 1007 * array.c (gfc_match_array_ref): Fix up memset arguments. 1008 10092012-08-16 Diego Novillo <dnovillo@google.com> 1010 1011 Revert 1012 1013 PR bootstrap/54281 1014 * gfortran.h: Do not include gmp.h. 1015 10162012-08-16 Diego Novillo <dnovillo@google.com> 1017 1018 PR bootstrap/54281 1019 * gfortran.h: Do not include gmp.h. 1020 10212012-08-15 Janus Weil <janus@gcc.gnu.org> 1022 1023 PR fortran/54243 1024 PR fortran/54244 1025 * resolve.c (check_typebound_baseobject): Check for class_ok attribute. 1026 (resolve_procedure_interface,resolve_fl_derived0): Copy class_ok 1027 attribute. 1028 10292012-08-14 Mikael Morin <mikael@gcc.gnu.org> 1030 1031 PR fortran/47586 1032 * trans-expr.c (expr_is_variable): Handle regular, procedure pointer, 1033 and typebound functions returning a data pointer. 1034 10352012-08-14 Mikael Morin <mikael@gcc.gnu.org> 1036 1037 * decl.c (match_ppc_decl): Copy the procedure interface's symbol 1038 as procedure interface's result. 1039 10402012-08-14 Mikael Morin <mikael@gcc.gnu.org> 1041 1042 * trans-expr.c (gfc_trans_scalar_assign): Rename argument, 1043 extend comment. 1044 10452012-08-14 Mikael Morin <mikael@gcc.gnu.org> 1046 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. 1068 10692012-08-14 Tobias Burnus <burnus@net-b.de> 1070 1071 PR fortran/40881 1072 * error.c (gfc_notify_std): Reset cur_error_buffer->flag flag 1073 when the error/warning has been printed. 1074 * gfortran.h (gfc_sl_type): Add ST_LABEL_DO_TARGET. 1075 * match.c (gfc_match_do): Use ST_LABEL_DO_TARGET. 1076 * parse.c (check_statement_label): Use ST_LABEL_DO_TARGET. 1077 (parse_executable): Add obsolescence check for DATA. 1078 * resolve.c (resolve_branch): Handle ST_LABEL_DO_TARGET. 1079 * symbol.c (gfc_define_st_label, gfc_reference_st_label): 1080 Add obsolescence diagnostics. 1081 * trans-stmt.c (gfc_trans_label_assign): Handle ST_LABEL_DO_TARGET. 1082 10832012-08-14 Tobias Burnus <burnus@net-b.de> 1084 1085 PR fortran/54234 1086 * check.c (gfc_check_cmplx): Add -Wconversion warning 1087 when converting higher-precision REAL to default-precision 1088 CMPLX without kind= parameter. 1089 10902012-08-12 Tobias Burnus <burnus@net-b.de> 1091 1092 PR fortran/54221 1093 * trans-decl.c (gfc_finish_var_decl, build_function_decl): 1094 Fix setting private module vars/procs as TREE_PUBLIC(...) = 0. 1095 10962012-08-09 Tobias Burnus <burnus@net-b.de> 1097 1098 PR fortran/54199 1099 * intrinsic.c (gfc_warn_intrinsic_shadow): Better warning 1100 for internal procedures. 1101 11022012-08-06 Janus Weil <janus@gcc.gnu.org> 1103 1104 PR fortran/35831 1105 * interface.c (check_result_characteristics): New function, which checks 1106 the characteristics of function results. 1107 (gfc_compare_interfaces,gfc_check_typebound_override): Call it. 1108 11092012-08-02 Thomas König <tkoenig@gcc.gnu.org> 1110 1111 PR fortran/54033 1112 * scanner.c (add_path_to_list): New argument warn. Don't 1113 warn if it is true. 1114 (gfc_add_include_path): Warn if directory is missing. 1115 (gfc_add_intrinsic_modules_path): Do not warn if directory 1116 is missing. 1117 * optinons.c (gfc_handle_option): Do not add directory 1118 for intrinsic modules to normal include path. 1119 11202012-08-03 Mikael Morin <mikael@gcc.gnu.org> 1121 1122 PR fortran/54166 1123 * trans-array.c (set_loop_bounds): Access specinfo using spec_dim. 1124 11252012-08-02 Mikael Morin <mikael@gcc.gnu.org> 1126 1127 PR fortran/48820 1128 * trans-array.c (gfc_conv_ss_startstride): Set the intrinsic 1129 result's lower and upper bounds according to the rank. 1130 (set_loop_bounds): Set the loop upper bound in the intrinsic case. 1131 11322012-08-02 Mikael Morin <mikael@gcc.gnu.org> 1133 1134 * trans-array.c (set_loop_bounds): Allow non-array-section to be 1135 chosen using the stride and lower bound criteria. 1136 11372012-08-02 Mikael Morin <mikael@gcc.gnu.org> 1138 1139 * trans-array.c (set_loop_bounds): Remove useless dimension check. 1140 Don't update loopspec if it would loose the wanted stride criterion. 1141 11422012-08-02 Mikael Morin <mikael@gcc.gnu.org> 1143 1144 * trans-array.h (gfc_conv_descriptor_rank): New prototype. 1145 * trans-array.c (gfc_conv_descriptor_rank): New function moved and 1146 renamed ... 1147 * trans-intrinsic.c (get_rank_from_desc): ... from this one. 1148 (gfc_conv_intrinsic_rank, gfc_conv_intrinsic_bound, 1149 gfc_conv_associated): Also rename function calls. 1150 11512012-08-02 Mikael Morin <mikael@gcc.gnu.org> 1152 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. 1157 11582012-08-02 Mikael Morin <mikael@gcc.gnu.org> 1159 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. 1165 11662012-08-02 Janus Weil <janus@gcc.gnu.org> 1167 1168 PR fortran/54147 1169 * resolve.c (check_proc_interface): New routine for PROCEDURE interface 1170 checks. 1171 (resolve_procedure_interface,resolve_typebound_procedure, 1172 resolve_fl_derived0): Call it. 1173 11742012-08-01 Thomas König <tkoenig@gcc.gnu.org> 1175 1176 PR fortran/54033 1177 * scanner.c (add_path_to_list): Emit warning if an error occurs 1178 for an include path, if it is not present or if it is not a 1179 directory. Do not add the path in these cases. 1180 11812012-07-31 Janus Weil <janus@gcc.gnu.org> 1182 1183 PR fortran/42418 1184 * decl.c (match_procedure_interface): Move some checks to 1185 'resolve_procedure_interface'. Set flavor if appropriate. 1186 * expr.c (gfc_check_pointer_assign): Cleanup of 'gfc_is_intrinsic'. 1187 * intrinsic.c (gfc_is_intrinsic): Additional checks for attributes which 1188 identify a procedure as being non-intrinsic. 1189 * resolve.c (resolve_procedure_interface): Checks moved here from 1190 'match_procedure_interface'. Minor cleanup. 1191 (resolve_formal_arglist,resolve_symbol): Cleanup of 1192 'resolve_procedure_interface' 1193 (resolve_actual_arglist,is_external_proc): Cleanup of 1194 'gfc_is_intrinsic'. 1195 11962012-07-31 Janus Weil <janus@gcc.gnu.org> 1197 1198 PR fortran/54134 1199 * dependency.c (gfc_dep_compare_expr): Check if arguments are NULL. 1200 12012012-07-31 Tobias Burnus <burnus@net-b.de> 1202 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. 1209 12102012-07-30 Janus Weil <janus@gcc.gnu.org> 1211 1212 PR fortran/51081 1213 * gfortran.h (gfc_resolve_intrinsic): Add prototype. 1214 * expr.c (gfc_check_pointer_assign): Set INTRINSIC attribute if needed. 1215 Check for invalid intrinsics. 1216 * primary.c (gfc_match_rvalue): Check for intrinsics came too early. 1217 Set procedure flavor if appropriate. 1218 * resolve.c (resolve_intrinsic): Renamed to gfc_resolve_intrinsic. 1219 (resolve_procedure_interface,resolve_procedure_expression, 1220 resolve_function,resolve_fl_derived0,resolve_symbol): Ditto. 1221 12222012-07-26 Mikael Morin <mikael@gcc.gnu.org> 1223 1224 PR fortran/44354 1225 * trans-array.c (gfc_trans_array_constructor_value): 1226 Evaluate the iteration bounds before the inner variable shadows 1227 the outer. 1228 12292012-07-26 Mikael Morin <mikael@gcc.gnu.org> 1230 1231 PR fortran/44354 1232 * array.c (sought_symbol): New variable. 1233 (expr_is_sought_symbol_ref, find_symbol_in_expr): New functions. 1234 (resolve_array_list): Check for references to the induction 1235 variable in the iteration bounds and issue a diagnostic if some 1236 are found. 1237 12382012-07-26 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> 1239 Tobias Burnus <burnus@net-b.de> 1240 1241 * module.c (mio_array_spec): Don't read as->lower for 1242 assumed-rank arrays. 1243 12442012-07-25 Tobias Burnus <burnus@net-b.de> 1245 1246 * trans-types.c (gfc_real16_is_float128): Fix spelling 1247 in a comment. 1248 * trans.h (struct gfc_array_info): Ditto. 1249 * gfortran.h (gfc_expr): Ditto. 1250 * simplify.c (gfc_count): Ditto. 1251 * trans-expr.c (gfc_copy_class_to_class, 1252 conv_parent_component_references, 1253 gfc_trans_pointer_assignment): Ditto. 1254 * expr.c (check_pointer_assign): Fix diagnostic spelling. 1255 * interface.c (compare_parameter): Ditto. 1256 * parse.c (use_modules, parse_associate): Ditto. 1257 * decl.c (match_char_length): Fix spelling of the 1258 an function argument. 1259 12602012-07-21 Tobias Burnus <burnus@net-b.de> 1261 1262 * iso-c-binding.def (C_PTRDIFF_T): New TS29113 parameter. 1263 * intrinsic.texi (ISO_C_BINDING): Document it. 1264 12652012-07-21 Tobias Burnus <burnus@net-b.de> 1266 1267 PR fortran/48820 1268 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Support 1269 lbound/ubound with dim= for assumed-rank arrays. 1270 * array.c (gfc_set_array_spec): Reject coarrays with 1271 assumed shape. 1272 * decl.c (merge_array_spec): Ditto. Return gfc_try. 1273 (match_attr_spec, match_attr_spec): Update call. 1274 12752012-07-21 Tobias Burnus <burnus@net-b.de> 1276 1277 * resolve.c (resolve_formal_arglist): Put variable 1278 declaration before the first assignment. 1279 12802012-07-21 Tobias Burnus <burnus@net-b.de> 1281 1282 * trans-expr.c (gfc_conv_derived_to_class): Fix argument passed 1283 to class_array_data_assign. 1284 12852012-07-20 Tobias Burnus <burnus@net-b.de> 1286 1287 * decl.c (gfc_verify_c_interop_param): Allow assumed-shape 1288 with -std=f2008ts. 1289 12902012-07-20 Tobias Burnus <burnus@net-b.de> 1291 1292 PR fortran/48820 1293 * array.c (match_array_element_spec, gfc_match_array_spec, 1294 spec_size, gfc_array_dimen_size): Add support for 1295 assumed-rank arrays. 1296 * check.c (dim_rank_check): Ditto. 1297 * class.c (gfc_add_component_ref): Ditto. 1298 (gfc_build_class_symbol): Regard assumed-rank arrays 1299 as having GFC_MAX_DIMENSIONS. And build extra class 1300 container for a scalar pointer class. 1301 * decl.c (merge_array_spec): Add assert. 1302 * dump-parse-tree.c (show_array_spec): Add support for 1303 assumed-rank arrays. 1304 * expr.c (gfc_is_simply_contiguous): Ditto. 1305 * gfortran.h (array_type): Ditto. 1306 (gfc_array_spec, gfc_expr): Add comment to "rank" field. 1307 * interface.c (compare_type_rank, argument_rank_mismatch, 1308 compare_parameter, gfc_procedure_use): Ditto. 1309 (compare_actual_formal): Fix NULL() to optional-dummy 1310 handling for polymorphic dummies. 1311 * module.c (mio_typespec): Add support for 1312 assumed-rank arrays. 1313 * resolve.c (resolve_formal_arglist, resolve_actual_arglist, 1314 resolve_elemental_actual, resolve_global_procedure, 1315 expression_shape, resolve_variable, update_ppc_arglist, 1316 check_typebound_baseobject, gfc_resolve_expr, 1317 resolve_fl_var_and_proc, gfc_resolve_finalizers, 1318 resolve_typebound_procedure, resolve_symbol): Ditto. 1319 (assumed_type_expr_allowed): Remove static variable. 1320 (actual_arg, first_actual_arg): New static variables. 1321 * simplify.c (simplify_bound, gfc_simplify_range): Add 1322 support for assumed-rank arrays. 1323 * trans-array.c (gfc_conv_array_parameter): Ditto. 1324 (gfc_get_descriptor_dimension): New function, which returns 1325 the descriptor. 1326 (gfc_conv_descriptor_dimension): Use it. 1327 (gfc_conv_descriptor_stride_get, gfc_conv_array_parameter): 1328 Handle GFC_ARRAY_ASSUMED_RANK_CONT and AS_ASSUMED_RANK. 1329 * trans-array.h (gfc_get_descriptor_dimension): New prototype. 1330 * trans-decl. (gfc_build_dummy_array_decl, 1331 gfc_trans_deferred_vars, add_argument_checking): Add 1332 support for assumed-rank arrays. 1333 * trans-expr.c (gfc_conv_expr_present, gfc_conv_variable, 1334 gfc_conv_procedure_call): Ditto. 1335 (get_scalar_to_descriptor_type, class_array_data_assign, 1336 conv_scalar_to_descriptor): New static functions. 1337 (gfc_conv_derived_to_class, gfc_conv_class_to_class): Use 1338 them. 1339 * trans-intrinsic.c (get_rank_from_desc): New function. 1340 (gfc_conv_intrinsic_rank, gfc_conv_associated): Use it. 1341 * trans-types.c (gfc_array_descriptor_base_caf, 1342 gfc_array_descriptor_base): Make space for scalar array. 1343 (gfc_is_nodesc_array, gfc_is_nodesc_array, 1344 gfc_build_array_type, gfc_get_array_descriptor_base): Add 1345 support for assumed-rank arrays. 1346 * trans.h (gfc_array_kind): Add GFC_ARRAY_ASSUMED_RANK and 1347 GFC_ARRAY_ASSUMED_RANK_CONT. 1348 13492012-07-19 Tobias Burnus <burnus@net-b.de> 1350 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. 1355 13562012-07-19 Tobias Burnus <burnus@net-b.de> 1357 1358 * interface.c (compare_parameter, compare_actual_formal): Fix 1359 handling of polymorphic arguments. 1360 13612012-07-17 Janus Weil <janus@gcc.gnu.org> 1362 1363 PR fortran/51081 1364 * error.c (gfc_notify_std): Automatically print the relevant Fortran 1365 standard version. 1366 * arith.c (arith_power): Remove explicit standard reference string. 1367 * array.c (gfc_match_array_spec, gfc_match_array_constructor): Ditto. 1368 * check.c (gfc_check_a_p, gfc_check_besn, gfc_check_count, 1369 gfc_check_float, gfc_check_fn_rc2008, gfc_check_iand, 1370 gfc_check_ichar_iachar, gfc_check_ieor, gfc_check_index, gfc_check_ior, 1371 gfc_check_lbound, gfc_check_len_lentrim, check_rest, gfc_check_min_max, 1372 gfc_check_null, gfc_check_scan, gfc_check_selected_real_kind, 1373 gfc_check_shape, gfc_check_size, gfc_check_sngl, gfc_check_ubound, 1374 gfc_check_verify): Ditto. 1375 * data.c (gfc_assign_data_value): Ditto. 1376 * decl.c (var_element, char_len_param_value, match_char_length, 1377 gfc_verify_c_interop_param, match_pointer_init, variable_decl, 1378 gfc_match_decl_type_spec, gfc_match_import, match_attr_spec, 1379 gfc_match_prefix, gfc_match_suffix, match_ppc_decl, 1380 match_procedure_in_interface, gfc_match_procedure,gfc_match_entry, 1381 gfc_match_subroutine, gfc_match_end, gfc_match_codimension, 1382 gfc_match_protected, gfc_match_value, gfc_match_volatile, 1383 gfc_match_asynchronous, gfc_match_modproc, gfc_get_type_attr_spec, 1384 gfc_match_enum, match_procedure_in_type): Ditto. 1385 * expr.c (check_elemental, gfc_check_assign, gfc_check_pointer_assign): 1386 Ditto. 1387 * interface.c (gfc_match_abstract_interface, check_interface0): Ditto. 1388 * intrinsic.c (gfc_intrinsic_func_interface): Ditto. 1389 * io.c (format_lex, resolve_tag_format, resolve_tag, 1390 compare_to_allowed_values, gfc_match_open, gfc_match_rewind, 1391 gfc_resolve_dt, gfc_match_wait): Ditto. 1392 * match.c (match_arithmetic_if, gfc_match_if, gfc_match_critical, 1393 gfc_match_do, match_exit_cycle, gfc_match_pause, gfc_match_stop, 1394 gfc_match_lock, sync_statement, gfc_match_assign, gfc_match_goto, 1395 gfc_match_allocate, gfc_match_return, gfc_match_st_function): Ditto. 1396 * module.c (gfc_match_use, gfc_use_module): Ditto. 1397 * parse.c (parse_derived_contains, parse_block_construct, 1398 parse_associate, parse_contained): Ditto. 1399 * primary.c (match_hollerith_constant, match_boz_constant, 1400 match_real_constant, match_sym_complex_part, match_arg_list_function, 1401 build_actual_constructor, gfc_convert_to_structure_constructor): Ditto. 1402 * resolve.c (resolve_formal_arglist, resolve_entries, 1403 resolve_common_blocks, resolve_actual_arglist, gfc_resolve_index_1, 1404 gfc_resolve_iterator_expr, resolve_ordinary_assign, 1405 resolve_fl_var_and_proc, resolve_fl_variable_derived, 1406 resolve_fl_procedure, resolve_fl_derived0, resolve_fl_derived, 1407 resolve_fl_namelist, resolve_symbol, resolve_fntype): Ditto. 1408 * symbol.c (check_conflict, conflict, gfc_add_is_bind_c, 1409 gfc_add_extension, gfc_check_symbol_typed): Ditto. 1410 14112012-07-17 Tobias Burnus <burnus@net-b.de> 1412 1413 PR fortran/53985 1414 * decl.c (gfc_verify_c_interop_param): Make warning conditional 1415 on -Wc-binding-type works and improve the wording. 1416 14172012-07-17 Tobias Burnus <burnus@net-b.de> 1418 1419 PR fortran/52101 1420 * decl.c (match_char_length): Extra argument, show obsolenscent 1421 warning only if *length is used after the typename. 1422 (variable_decl, gfc_match_char_spec): Update call 1423 14242012-07-17 Tobias Burnus <burnus@net-b.de> 1425 Steven G. Kargl <kargl@gcc.gnu.org> 1426 1427 PR fortran/49265 1428 * decl.c (match_procedure_in_interface): Support "::" for 1429 Fortran 2008 and later. 1430 14312012-07-16 Thomas König <tkoenig@gcc.gnu.org> 1432 1433 PR fortran/53824 1434 * resolve.c (resolve_allocate_deallocate): If both 1435 start indices are NULL, skip the test for equality. 1436 14372012-07-16 Steven Bosscher <steven@gcc.gnu.org> 1438 1439 * f95-lang.c: Include dumpfile.h instead of tree-dump.h. 1440 * Make-lang.in: Fix dependencies. 1441 14422012-07-16 Janus Weil <janus@gcc.gnu.org> 1443 1444 PR fortran/53956 1445 * gfortran.h (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Modified 1446 prototypes. 1447 * symbol.c (gfc_copy_formal_args): New argument 'if_src'. Copy if_source 1448 of dummy procedures. 1449 (gfc_copy_formal_args_ppc): Ditto. 1450 * resolve.c (resolve_procedure_interface): Pass IFSRC_DECL to 1451 gfc_copy_formal_args. 1452 (resolve_fl_derived0): Pass IFSRC_DECL to gfc_copy_formal_args_ppc. 1453 14542012-07-12 Tobias Burnus <burnus@net-b.de> 1455 1456 * trans-expr.c (conv_isocbinding_procedure): Generate c_f_pointer code 1457 inline. 1458 14592012-07-11 Steven Bosscher <steven@gcc.gnu.org> 1460 1461 * trans.c: Do not include defaults.h. 1462 * trans-intrinsic.c: Likewise. 1463 14642012-07-08 Steven Bosscher <steven@gcc.gnu.org> 1465 1466 * gfortran.h: Do not include coretypes.h here. 1467 Make it an error to include this before coretypes.h 1468 * openmp.c: Include coretypes.h. 1469 * interface.c: Likewise. 1470 * intrinsic.c: Likewise. 1471 * symbol.c: Likewise. 1472 * class.c: Likewise. 1473 * decl.c: Likewise. 1474 * matchexp.c: Likewise. 1475 * dump-parse-tree.c: Likewise. 1476 * array.c: Likewise. 1477 * constructor.c: Likewise. 1478 * error.c: Likewise. 1479 * data.c: Likewise. 1480 * expr.c: Likewise. 1481 * module.c: Likewise. 1482 * scanner.c: Likewise. 1483 * bbt.c: Likewise. 1484 * io.c: Likewise. 1485 * frontend-passes.c: Likewise. 1486 * resolve.c: Likewise. 1487 * st.c: Likewise. 1488 * target-memory.c: Likewise. 1489 * match.c: Likewise. 1490 * arith.c: Likewise. 1491 * parse.c: Likewise. 1492 * check.c: Likewise. 1493 * dependency.c: Likewise. 1494 * primary.c: Likewise. 1495 * misc.c: Likewise. 1496 * simplify.c: Likewise. 1497 14982012-07-05 Mikael Morin <mikael@gcc.gnu.org> 1499 1500 PR fortran/53732 1501 * trans-array.c (gfc_add_loop_ss_code): Disable self recursive calls 1502 handling nested loop(s) if the subscript flag is true. 1503 15042012-07-05 Uros Bizjak <ubizjak@gmail.com> 1505 1506 PR fortran/53449 1507 * parse.c (gfc_parse_file): Initialize errors_before. 1508 15092012-06-27 Janus Weil <janus@gcc.gnu.org> 1510 1511 PR fortran/41951 1512 PR fortran/49591 1513 * interface.c (check_new_interface): Rename, add 'loc' argument, 1514 make non-static. 1515 (gfc_add_interface): Rename 'check_new_interface' 1516 * gfortran.h (gfc_check_new_interface): Add prototype. 1517 * resolve.c (resolve_typebound_intrinsic_op): Add typebound operator 1518 targets to non-typebound operator list. 1519 15202012-06-22 Janus Weil <janus@gcc.gnu.org> 1521 1522 PR fortran/47710 1523 PR fortran/53328 1524 * interface.c (count_types_test, generic_correspondence, 1525 gfc_compare_interfaces): Ignore PASS arguments. 1526 (check_interface1, compare_parameter): Pass NULL arguments to 1527 gfc_compare_interfaces. 1528 * gfortran.h (gfc_compare_interfaces): Modified prototype. 1529 * expr.c (gfc_check_pointer_assign): Pass NULL arguments to 1530 gfc_compare_interfaces. 1531 * resolve.c (resolve_structure_cons): Ditto. 1532 (check_generic_tbp_ambiguity): Determine PASS arguments and pass them 1533 to gfc_compare_interfaces. 1534 15352012-06-21 Janne Blomqvist <jb@gcc.gnu.org> 1536 1537 PR fortran/39654 1538 * iresolve.c (gfc_resolve_ftell): Fix result kind and use new 1539 library function. 1540 15412012-06-18 Tobias Burnus <burnus@net-b.de> 1542 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. 1548 15492012-06-18 Tobias Burnus <burnus@net-b.de> 1550 1551 PR fortran/53692 1552 * trans-array.c (set_loop_bounds): Don't scalarize via absent 1553 optional arrays. 1554 * resolve.c (resolve_elemental_actual): Don't stop resolving after printing 1555 a warning. 1556 15572012-06-18 Tobias Burnus <burnus@net-b.de> 1558 1559 PR fortran/53526 1560 * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle coarrays. 1561 15622012-06-18 Tobias Burnus <burnus@net-b.de> 1563 1564 PR fortran/53526 1565 * check.c (gfc_check_move_alloc): Reject coindexed actual arguments 1566 and those with different corank. 1567 15682012-06-17 Tobias Burnus <burnus@net-b.de> 1569 1570 PR fortran/53691 1571 PR fortran/53685 1572 * check.c (gfc_calculate_transfer_sizes): Return if 1573 SIZE= is not constant or source-size cannot be determined. 1574 15752012-06-16 Tobias Burnus <burnus@net-b.de> 1576 1577 PR fortran/53642 1578 PR fortran/45170 1579 * frontend-passes.c (optimize_assignment): Don't remove RHS's 1580 trim when assigning to a deferred-length string. 1581 * trans-expr.c (gfc_trans_assignment_1): Ensure that the RHS string 1582 length is evaluated before the deferred-length LHS is reallocated. 1583 15842012-06-13 Tobias Burnus <burnus@net-b.de> 1585 1586 PR fortran/53643 1587 * trans-decl.c (init_intent_out_dt): Fix for polymorphic arrays. 1588 * trans-array.c (structure_alloc_comps): Don't loop for 1589 scalar coarrays. 1590 15912012-06-13 Tobias Burnus <burnus@net-b.de> 1592 1593 PR fortran/53597 1594 * decl.c (match_attr_spec): Only mark module variables 1595 as SAVE_IMPLICIT for Fortran 2008 and later. 1596 15972012-06-08 Janus Weil <janus@gcc.gnu.org> 1598 1599 PR fortran/52552 1600 * match.c (gfc_match_allocate): Modify order of checks. Change wording 1601 of error message. Remove FIXME note. 1602 * resolve.c (resolve_allocate_expr): Add a comment. 1603 16042012-06-07 Thomas König <tkoenig@gcc.gnu.org> 1605 1606 PR fortran/52861 1607 * frontend-passes.c (optimize_assignment): Don't set the 1608 length of an empty string for deferred-length character 1609 variables. 1610 16112012-06-07 Thomas König <tkoenig@gcc.gnu.org> 1612 1613 PR fortran/52861 1614 * frontend-passes.c (empty_string): Add prototype. 1615 (optimize_assignment): Set the length of an empty string 1616 constant to zero. 1617 16182012-06-04 Tobias Burnus <burnus@net-b.de> 1619 1620 PR fortran/50619 1621 * resolve.c (build_default_init_expr): Don't initialize 1622 ASSOCIATE names. 1623 16242012-06-03 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> 1625 Tobias Burnus <burnus@net-b.de> 1626 1627 PR fortran/48831 1628 * gfortran.h (gfc_check_init_expr): Add prototype declaration 1629 of function. 1630 * check.c (kind_check): Change if condition to use 1631 to gfc_check_init_expr. 1632 * expr.c (check_init_expr): Remove forward declaration 1633 and static keyword. Change name in gfc_check_init_expr. 1634 (scalarize_intrinsic_call, check_init_expr_arguments, 1635 check_inquiry, check_conversion, gfc_reduce_init_expr): Update 1636 call to gfc_check_init_expr. 1637 16382012-05-31 Steven Bosscher <steven@gcc.gnu.org> 1639 1640 * trans-common.c: Do not include output.h. 1641 * trans-decl.c: Likewise. 1642 16432012-05-31 Tobias Burnus <burnus@net-b.de> 1644 1645 PR fortran/53521 1646 * trans.c (gfc_deallocate_scalar_with_status): Properly 1647 handle the case size == 0. 1648 16492012-05-30 Tobias Burnus <burnus@net-b.de> 1650 1651 PR c/53502 1652 * decl.c (match_attr_spec): Remove "typedef". 1653 16542012-05-30 Tobias Burnus <burnus@net-b.de> 1655 1656 * decl.c: Fix comment typos. 1657 * expr.c: Ditto. 1658 * frontend-passes.c: Ditto. 1659 * match.c: Ditto. 1660 * resolve.c: Ditto. 1661 * trans-array.c: Ditto. 1662 * trans-common.c: Ditto. 1663 * trans-intrinsic.c: Ditto. 1664 * trans-types.c: Ditto. 1665 16662012-05-23 Tobias Burnus <burnus@net-b.de> 1667 1668 PR fortran/51055 1669 PR fortran/45170 1670 * match.c (gfc_match_allocate): Set length_from_typespec 1671 for characters. 1672 * resolve.c (resolve_charlen): If set, don't check whether 1673 the len is a specification expression. 1674 16752012-05-22 Tobias Burnus <burnus@net-b.de> 1676 1677 PR fortran/53389 1678 * trans-array.c (gfc_add_loop_ss_code): Don't evaluate expression, if 1679 ss->is_alloc_lhs is set. 1680 16812012-05-22 Dodji Seketeli <dodji@redhat.com> 1682 1683 PR c++/53322 1684 * f95-lang.c (gfc_init_builtin_functions): Remove the unused 1685 typedef builtin_type. 1686 16872012-05-14 Janne Blomqvist <jb@gcc.gnu.org> 1688 1689 PR fortran/52428 1690 * gfortran.texi: Update _gfortran_set_options documentation. 1691 * invoke.texi: Remove runtime behavior description of 1692 -fno-range-check. 1693 * trans-decl.c (create_main_function): Don't pass the range-check 1694 setting to the library. 1695 16962012-05-14 Tobias Burnus <burnus@net-b.de> 1697 1698 PR fortran/49110 1699 PR fortran/51055 1700 PR fortran/53329 1701 * trans-expr.c (gfc_trans_assignment_1): Fix allocation 1702 handling for assignment of function results to allocatable 1703 deferred-length strings. 1704 * trans-decl.c (gfc_create_string_length): For deferred-length 1705 module variables, include module name in the assembler name. 1706 (gfc_get_symbol_decl): Don't override the assembler name. 1707 17082012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org> 1709 1710 PR 53063 1711 * options.c (gfc_handle_option): Call lang-specific generated function. 1712 17132012-05-13 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> 1714 Tobias Burnus <burnus@net-b.de> 1715 1716 PR fortran/52158 1717 PR fortran/45170 1718 PR fortran/49430 1719 * resolve.c (resolve_fl_derived0): Deferred character length 1720 procedure components are supported. 1721 * trans-expr.c (gfc_conv_procedure_call): Handle TBP with 1722 deferred-length results. 1723 (gfc_string_to_single_character): Add a new check to prevent 1724 NULL read. 1725 (gfc_conv_procedure_call): Remove unuseful checks on 1726 symbol's attributes. Add new checks to prevent NULL read on 1727 string length. 1728 17292012-05-12 Tobias Burnus <burnus@net-b.de> 1730 1731 PR fortran/49110 1732 PR fortran/52843 1733 * resolve.c (resolve_fl_procedure): Don't regard 1734 character(len=:) as character(*) in the diagnostic. 1735 17362012-05-11 Thomas Koenig <tkoenig@gcc.gnu.org> 1737 1738 PR fortran/52537 1739 * frontend-passes.c (optimize_op): Change 1740 old-style comparison operators to new-style, simplify 1741 switch as a result. 1742 (empty_string): New function. 1743 (get_len_trim_call): New function. 1744 (optimize_comparison): If comparing to an empty string, 1745 use comparison of len_trim to zero. 1746 Use new-style comparison operators only. 1747 (optimize_trim): Use get_len_trim_call. 1748 17492012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org> 1750 1751 PR 53063 1752 * options.c: Include diagnostics.h instead of 1753 diagnostics-core.h. 1754 (set_Wall): Do not see warn_unused here. 1755 (gfc_handle_option): Set it here using handle_generated_option. 1756 17572012-05-08 Jan Hubicka <jh@suse.cz> 1758 1759 * trans-common.c (create_common): Do not fake TREE_ASM_WRITTEN. 1760 * trans-decl.c (gfc_finish_cray_pointee): Likewise. 1761 17622012-05-07 Tobias Burnus <burnus@net-b.de> 1763 1764 PR fortran/53255 1765 * resolve.c (resolve_typebound_static): Fix handling 1766 of overridden specific to generic operator. 1767 17682012-05-06 Tobias Burnus <burnus@net-b.de> 1769 1770 PR fortran/41587 1771 * decl.c (build_struct): Don't ignore FAILED status. 1772 17732012-05-05 Paul Thomas <pault@gcc.gnu.org> 1774 1775 PR fortran/41600 1776 * trans-array.c (build_array_ref): New static function. 1777 (gfc_conv_array_ref, gfc_get_dataptr_offset): Call it. 1778 * trans-expr.c (gfc_get_vptr_from_expr): New function. 1779 (gfc_conv_derived_to_class): Add a new argument for a caller 1780 supplied vptr and use it if it is not NULL. 1781 (gfc_conv_procedure_call): Add NULL to call to above. 1782 symbol.c (gfc_is_associate_pointer): Return true if symbol is 1783 a class object. 1784 * trans-stmt.c (trans_associate_var): Handle class associate- 1785 names. 1786 * expr.c (gfc_get_variable_expr): Supply the array-spec if 1787 possible. 1788 * trans-types.c (gfc_typenode_for_spec): Set GFC_CLASS_TYPE_P 1789 for class types. 1790 * trans.h : Add prototypes for gfc_get_vptr_from_expr and 1791 gfc_conv_derived_to_class. Define GFC_CLASS_TYPE_P. 1792 * resolve.c (resolve_variable): For class arrays, ensure that 1793 the target expression has all the necessary _data references. 1794 (resolve_assoc_var): Throw a "not yet implemented" error for 1795 class array selectors that need a temporary. 1796 * match.c (copy_ts_from_selector_to_associate, 1797 select_derived_set_tmp, select_class_set_tmp): New functions. 1798 (select_type_set_tmp): Call one of last two new functions. 1799 (gfc_match_select_type): Copy_ts_from_selector_to_associate is 1800 called if associate-name is typed. 1801 1802 PR fortran/53191 1803 * resolve.c (resolve_ref): C614 applied to class expressions. 1804 18052012-05-05 Janne Blomqvist <jb@gcc.gnu.org> 1806 1807 PR fortran/49010 1808 PR fortran/24518 1809 * intrinsic.texi (MOD, MODULO): Mention sign and magnitude of result. 1810 * simplify.c (gfc_simplify_mod): Use mpfr_fmod. 1811 (gfc_simplify_modulo): Likewise, use copysign to fix the result if 1812 zero. 1813 * trans-intrinsic.c (gfc_conv_intrinsic_mod): Remove fallback as 1814 builtin_fmod is always available. For modulo, call copysign to fix 1815 the result when signed zeros are enabled. 1816 18172012-05-05 Janne Blomqvist <jb@gcc.gnu.org> 1818 1819 * gfortran.texi (GFORTRAN_TMPDIR): Rename to TMPDIR, explain 1820 algorithm for choosing temp directory. 1821 18222012-05-04 Tobias Burnus <burnus@net-b.de> 1823 1824 PR fortran/53175 1825 * resolve.c (resolve_variable): Set public_used 1826 if a private module variable is used in a (public) 1827 specification expression. 1828 * trans-decl.c (gfc_finish_var_decl): Mark those 1829 TREE_PUBLIC. 1830 18312012-05-04 Tobias Burnus <burnus@net-b.de> 1832 1833 PR fortran/53111 1834 * resolve.c (resolve_fl_derived): Fix -std=f95 1835 diagnostic for generic vs. DT names. 1836 18372012-05-03 Tobias Burnus <burnus@net-b.de> 1838 1839 PR fortran/52864 1840 * interface.c (compare_parameter_intent): Remove. 1841 (check_intents): Remove call, handle CLASS pointer. 1842 (compare_actual_formal): Handle CLASS pointer. 1843 18442012-04-30 Jan Hubicka <jh@suse.cz> 1845 1846 * f95-lang.c (gfc_finish): Update comments. 1847 18482012-04-29 Thomas Koenig <tkoenig@gcc.gnu.org> 1849 1850 PR fortran/53148 1851 * frontend-passes.c (create_var): If the statement has a label, 1852 put the label around the block. 1853 18542012-04-25 Tobias Burnus <burnus@net-b.de> 1855 1856 PR fortran/52196 1857 * lang.opt (Wrealloc-lhs, Wrealloc-lhs-all): New flags. 1858 * gfortran.h (gfc_option_t): Add them. 1859 * options.c (gfc_init_options, gfc_post_options, 1860 gfc_handle_option): Handle them. 1861 * invoke.texi: Document them. 1862 * trans-expr.c (realloc_lhs_warning): New function. 1863 (gfc_trans_arrayfunc_assign, 1864 alloc_scalar_allocatable_for_assignment, 1865 gfc_trans_assignment_1): Use it. 1866 18672012-04-18 Steven Bosscher <steven@gcc.gnu.org> 1868 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. 1874 18752012-04-16 Tobias Burnus <burnus@net-b.de> 1876 1877 PR fortran/52864 1878 * expr.c (gfc_check_vardef_context): Fix assignment check for 1879 pointer components. 1880 18812012-04-16 Janus Weil <janus@gcc.gnu.org> 1882 1883 PR fortran/52968 1884 * class.c (gfc_build_class_symbol): Make sure the 'f2k_derived' 1885 namespace is present. 1886 18872012-04-15 Janus Weil <janus@gcc.gnu.org> 1888 1889 PR fortran/51082 1890 * trans-expr.c (gfc_conv_expr_reference): Check if the expression is a 1891 simple function call (or a more involved PPC reference). 1892 18932012-04-15 Tobias Burnus <burnus@net-b.de> 1894 1895 PR fortran/52916 1896 PR fortran/40973 1897 * gfortran.h (symbol_attribute): Add public_used. 1898 * interface.c (check_sym_interfaces, check_uop_interfaces, 1899 gfc_check_interfaces): Set it. 1900 * resolve.c (resolve_typebound_procedure): Ditto. 1901 * trans-decl.c (build_function_decl): Use it. 1902 19032012-04-11 Tobias Burnus <burnus@net-b.de> 1904 1905 PR fortran/52729 1906 * resolve.c (resolve_symbol): Fix searching for parent NS decl. 1907 19082012-04-08 Tobias Burnus <burnus@net-b.de> 1909 1910 PR fortran/52751 1911 * trans-decl.c (gfc_finish_var_decl): Don't set TREE_PUBLIC 1912 for PRIVATE module variables without C-binding label. 1913 1914 PR fortran/40973 1915 * trans-decl.c (build_function_decl): Ditto for procedures. 1916 19172012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org> 1918 1919 PR fortran/52893 1920 * frontend-passes.c: Keep track of wether we are in an implicit 1921 DO loop; do not do function elimination if we are. 1922 19232012-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> 1924 1925 PR fortran/52668 1926 * module.c: Only mark symbols as use_only if they have been 1927 imported via an only list. 1928 19292012-03-28 Paul Thomas <pault@gcc.gnu.org> 1930 Tobias Burnus <burnus@gcc.gnu.org> 1931 1932 PR fortran/52652 1933 * match.c (gfc_match_allocate, gfc_match_deallocate): Change 1934 "not.. or" to "neither.. nor". 1935 * parse.c (decode_specification_statement): Correct error in 1936 chpice of matching function for "allocatable". 1937 19382012-03-23 Janne Blomqvist <jb@gcc.gnu.org> 1939 1940 * gfortran.h (GFC_MAX_LINE): Remove unused macro. 1941 19422012-03-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1943 1944 PR fortran/52559 1945 * error.c (gfc_widechar_display_length): Consider tabs as 1946 one character wide, as they're displayed as spaces. 1947 (show_locus): Move tab handling to... 1948 (print_wide_char_into_buffer): ... here. 1949 19502012-03-17 Tobias Burnus <burnus@net-b.de> 1951 1952 PR fortran/52585 1953 * trans-intrinsic.c (gfc_conv_associated): Fix handling of 1954 procpointer dummy arguments. 1955 19562012-03-16 Janne Blomqvist <jb@gcc.gnu.org> 1957 1958 * trans-intrinsic.c (build_round_expr): Don't use BUILT_IN_IROUND 1959 for __float128. 1960 19612012-03-15 Janne Blomqvist <jb@gcc.gnu.org> 1962 1963 * f95-lang.c (gfc_init_builtin_functions): Initialize 1964 BUILT_IN_IROUND. 1965 * mathbuiltins.def: Add IROUND. 1966 * trans-intrinsic.c (build_round_expr): Use BUILT_IN_IROUND if 1967 type size matches. 1968 (gfc_build_intrinsic_lib_fndecls): Build iround functions. 1969 19702012-03-12 Richard Guenther <rguenther@suse.de> 1971 1972 * f95-lang.c (builtin_type_for_size): Use gfc_type_for_size. 1973 19742012-03-12 Tobias Burnus <burnus@net-b.de> 1975 1976 PR fortran/52542 1977 * decl.c (match_procedure_decl): If the interface 1978 is bind(C), the procedure is as well. 1979 19802012-03-10 Steven Bosscher <steven@gcc.gnu.org> 1981 1982 * convert.c (convert): Fold BOOLEAN_TYPE types to the proper variant. 1983 19842012-03-09 Steven Bosscher <steven@gcc.gnu.org> 1985 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. 1995 19962012-03-08 Tobias Burnus <burnus@net-b.de> 1997 1998 PR fortran/52469 1999 * trans-types.c (gfc_get_function_type): Handle backend_decl 2000 of a procedure pointer. 2001 20022012-03-06 Steven Bosscher <steven@gcc.gnu.org> 2003 2004 * f95-lang.c (yyerror, yylex): Remove. 2005 (clear_binding_stack): Remove, fold into its only user. 2006 (LANG_HOOKS_PRINT_IDENTIFIER): Do not re-define. 2007 (ridpointers): Remove. 2008 (gfc_eh_initialized_p): Make static. 2009 (gfc_truthvalue_conversion): Move to convert.c. 2010 (gfc_be_parse_file): Clear binding level stack when done. 2011 (gfc_print_identifier): Remove. 2012 (pushlevel): Remove ignored 'ignore' argument. Update all callers. 2013 (poplevel): Remove unused 'reverse' argument. Update all callers. 2014 (ggc_p): Remove. 2015 (gfc_builtin_function): Make static. Do not attempt to make RTL for 2016 builtin functions. 2017 * convert.c (gfc_truthvalue_conversion): Moved here from f95-lang.c, 2018 and made static. 2019 * trans.h (pushlevel, poplevel): Adjust prototypes. 2020 (gfc_truthvalue_conversion, gfc_builtin_function): Remove prototypes. 2021 * trans-openmp.c: Update calls to pushlevel and poplevel. 2022 * trans.c: Likewise. 2023 * trans-decl.c: Likewise. 2024 20252012-03-04 Mikael Morin <mikael@gcc.gnu.org> 2026 2027 PR fortran/50981 2028 * gfortran.h (gfc_is_class_container_ref): New prototype. 2029 * class.c (gfc_is_class_container_ref): New function. 2030 * trans-expr.c (gfc_conv_procedure_call): Add a "_data" component 2031 reference to polymorphic actual arguments. 2032 20332012-03-04 Mikael Morin <mikael@gcc.gnu.org> 2034 2035 PR fortran/50981 2036 * trans-expr.c (gfc_conv_procedure_call): Save se->ss's value. 2037 Handle the case of unallocated arrays passed to elemental procedures. 2038 20392012-03-04 Mikael Morin <mikael@gcc.gnu.org> 2040 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. 2047 20482012-03-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2049 2050 PR fortran/36160 2051 * error.c (gfc_widechar_display_length, gfc_wide_display_length): 2052 New functions. 2053 (print_wide_char_into_buffer): Return length written. 2054 (show_locus): Fix locus displayed when wide characters are present. 2055 20562012-03-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2057 2058 * module.c (gfc_use_module): Improve error message some more. 2059 20602012-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2061 2062 PR fortran/52313 2063 * module.c (gfc_use_module): Improve error messages. 2064 20652012-03-03 Tobias Burnus <burnus@net-b.de> 2066 2067 PR fortran/48820 2068 * resolve.c (resolve_actual_arglist): Properly reset 2069 assumed_type_expr_allowed. 2070 20712012-03-03 Tobias Burnus <burnus@net-b.de> 2072 2073 * lang.opt (Wc-binding-type): New flag. 2074 * options.c (gfc_init_options, gfc_handle_option): Handle it. 2075 * invoke.texi (Wc-binding-type): Document it. 2076 * gfortran.h (gfc_option_t): Add warn_c_binding_type. 2077 * decl.c (verify_bind_c_sym): Handle -Wc-binding-type. 2078 * symbol.c (gfc_set_default_type, verify_bind_c_derived_type): 2079 Ditto. 2080 20812012-03-03 Tobias Burnus <burnus@net-b.de> 2082 2083 PR fortran/48820 2084 * decl.c (gfc_match_decl_type_spec): Support type(*). 2085 (gfc_verify_c_interop): Allow type(*). 2086 * dump-parse-tree.c (show_typespec): Handle type(*). 2087 * expr.c (gfc_copy_expr): Ditto. 2088 * interface.c (compare_type_rank, compare_parameter, 2089 compare_actual_formal, gfc_procedure_use): Ditto. 2090 * libgfortran.h (bt): Add BT_ASSUMED. 2091 * misc.c (gfc_basic_typename, gfc_typename): Handle type(*). 2092 * module.c (bt_types): Ditto. 2093 * resolve.c (assumed_type_expr_allowed): New static variable. 2094 (resolve_actual_arglist, resolve_variable, resolve_symbol): 2095 Handle type(*). 2096 * trans-expr.c (gfc_conv_procedure_call): Ditto. 2097 * trans-types.c (gfc_typenode_for_spec, gfc_get_dtype): Ditto. 2098 20992012-03-02 Tobias Burnus <burnus@net-b.de> 2100 2101 PR fortran/52325 2102 * primary.c (gfc_match_varspec): Add missing ;. 2103 21042012-03-02 Tobias Burnus <burnus@net-b.de> 2105 2106 PR fortran/52325 2107 * primary.c (gfc_match_varspec): Add diagnostic for % with 2108 nonderived types. 2109 21102012-03-02 Tobias Burnus <burnus@net-b.de> 2111 2112 PR fortran/52270 2113 * expr.c (gfc_check_vardef_context): Fix check for 2114 intent-in polymorphic pointer . 2115 * interface.c (compare_parameter): Allow passing TYPE to 2116 intent-in polymorphic pointer. 2117 21182012-03-02 Tobias Burnus <burnus@net-b.de> 2119 2120 PR fortran/52452 2121 * resolve.c (resolve_intrinsic): Don't search for a 2122 function if we know that it is a subroutine. 2123 21242012-02-29 Paul Thomas <pault@gcc.gnu.org> 2125 2126 PR fortran/52386 2127 * trans-expr.c (fcncall_realloc_result): Dereference the 2128 descriptor if needed. 2129 21302012-02-22 Tobias Burnus <burnus@net-b.de> 2131 2132 PR fortran/52335 2133 * io.c (gfc_match_open): Remove bogus F2003 DELIM= check. 2134 21352012-02-18 Tobias Burnus <burnus@net-b.de> 2136 2137 PR fortran/52295 2138 * interface.c (check_interface0): Internal procs in 2139 generic interfaces are allowed in Fortran 2008. 2140 21412012-02-17 Tobias Burnus <burnus@net-b.de> 2142 Roland Stigge <stigge@antcom.de> 2143 2144 PR translation/52273 2145 * interface.c (compare_actual_formal): Fix typo "at at". 2146 21472012-02-17 Tobias Burnus <burnus@net-b.de> 2148 2149 * gfortran.texi (Q exponent-letter): Fix grammar. 2150 21512012-02-17 Tobias Burnus <burnus@net-b.de> 2152 2153 * gfortran.texi (Status): Fix typos. 2154 * invoke.texi (ffixed-form, fstack-arrays): Spell Fortran with 2155 a majuscule. 2156 21572012-02-17 Tobias Burnus <burnus@net-b.de> 2158 Roland Stigge <stigge@antcom.de> 2159 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. 2171 21722012-02-12 Mikael Morin <mikael@gcc.gnu.org> 2173 2174 PR fortran/50981 2175 * trans-stmt.c (gfc_get_proc_ifc_for_call): New function. 2176 (gfc_trans_call): Use gfc_get_proc_ifc_for_call. 2177 21782012-02-12 Mikael Morin <mikael@gcc.gnu.org> 2179 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. 2186 21872012-02-12 Mikael Morin <mikael@gcc.gnu.org> 2188 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. 2192 21932012-02-08 Tobias Burnus <burnus@net-b.de> 2194 2195 PR fortran/52151 2196 * trans-expr.c (fcncall_realloc_result): Set also the stride. 2197 21982012-02-07 Tobias Burnus <burnus@net-b.de> 2199 2200 PR fortran/51514 2201 * trans-expr.c (gfc_conv_procedure_call): Add _data component 2202 for calls of scalar CLASS actuals to TYPE dummies. 2203 22042012-02-05 Thomas König <tkoenig@gcc.gnu.org> 2205 2206 PR fortran/48847 2207 * trans-decl.c: Warn about unused dummy procedure arguments 2208 if -Wunused-dummy-argument is specified. Suppress middle-end 2209 warnings about procedure arguments. 2210 22112012-02-05 Paul Thomas <pault@gcc.gnu.org> 2212 2213 * trans-array.c (gfc_array_allocate): Zero memory for all class 2214 array allocations. 2215 * trans-stmt.c (gfc_trans_allocate): Ditto for class scalars. 2216 2217 PR fortran/52102 2218 * trans-stmt.c (gfc_trans_allocate): Before correcting a class 2219 array reference, ensure that 'dataref' points to the _data 2220 component that is followed by the array reference.. 2221 22222012-02-02 Mikael Morin <mikael@gcc.gnu.org> 2223 2224 PR fortran/41587 2225 PR fortran/46356 2226 PR fortran/51754 2227 PR fortran/50981 2228 * class.c (insert_component_ref, class_data_ref_missing, 2229 gfc_fix_class_refs): New functions. 2230 * gfortran.h (gfc_fix_class_refs): New prototype. 2231 * trans-expr.c (gfc_conv_expr): Remove special case handling and call 2232 gfc_fix_class_refs instead. 2233 22342012-02-02 Paul Thomas <pault@gcc.gnu.org> 2235 2236 PR fortran/52012 2237 * trans-expr.c (fcncall_realloc_result): If variable shape is 2238 correct, retain the bounds, whatever they are. 2239 22402012-02-02 Tobias Burnus <burnus@net-b.de> 2241 2242 PR fortran/52093 2243 * simplify.c (gfc_simplify_size): Handle INTRINSIC_PARENTHESES. 2244 22452012-02-01 Thomas König <tkoenig@gcc.gnu.org> 2246 2247 PR fortran/51958 2248 * frontend-passes.c (convert_elseif): New function. 2249 (optimize_namespace): Call it. 2250 22512012-02-01 Tobias Burnus <burnus@net-b.de> 2252 2253 PR fortran/52024 2254 * module.c (MOD_VERSION): Bump. 2255 (mio_typebound_proc): Read/write is_operator from/to the 2256 .mod file. 2257 22582012-02-01 Tobias Burnus <burnus@net-b.de> 2259 2260 PR fortran/52059 2261 * trans-expr.c (gfc_conv_procedure_call): Add array ref 2262 only to variables. 2263 22642012-01-31 Tobias Burnus <burnus@net-b.de> 2265 2266 PR fortran/52024 2267 * gfortran.h (gfc_tbp_generic): Store whether the 2268 generic is an operator. 2269 * decl.c (gfc_match_generic): Set that flag. 2270 * resolve.c (check_generic_tbp_ambiguity): Use it in the 2271 gfc_compare_interfaces check. 2272 22732012-01-31 Tobias Burnus <burnus@net-b.de> 2274 2275 PR fortran/52029 2276 * class.c (gfc_find_derived_vtab): Mark _copy function as pure. 2277 22782012-01-31 Tobias Burnus <burnus@net-b.de> 2279 2280 PR fortran/52013 2281 * class.c (get_unique_hashed_string): Adapt trim length. 2282 (gfc_build_class_symbol) Encode also corank in the container name. 2283 22842012-01-31 Paul Thomas <pault@gcc.gnu.org> 2285 2286 PR fortran/52012 2287 * trans-expr.c (fcncall_realloc_result): Correct calculation of 2288 result offset. 2289 22902012-01-29 Janne Blomqvist <jb@gcc.gnu.org> 2291 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. 2301 23022012-01-29 Tobias Burnus <burnus@net-b.de> 2303 2304 PR fortran/41600 2305 * expr.c (gfc_default_initializer): Convert the values if 2306 the type does not match. 2307 23082012-01-29 Tobias Burnus <burnus@net-b.de> 2309 2310 PR fortran/51972 2311 * trans-array.c (structure_alloc_comps): Fix assignment of 2312 polymorphic components (polymorphic deep copying). 2313 23142012-01-29 Janne Blomqvist <jb@gcc.gnu.org> 2315 2316 PR fortran/51808 2317 * decl.c (set_binding_label): Make binding_label argument const. 2318 (curr_binding_label): Constify. 2319 * gfortran.h (gfc_symbol): Constify binding_label. 2320 (gfc_common_head): Likewise. 2321 (get_iso_c_sym): Likewise. 2322 * match.c (gfc_match_name_C): Constify buffer argument. 2323 * match.h (gfc_match_name_C): Likewise. 2324 * resolve.c (set_name_and_label): Constify binding_label argument. 2325 (gfc_iso_c_sub_interface): Constify binding_label variable. 2326 * symbol.c (get_iso_c_sym): Constify binding_label argument. 2327 23282012-01-29 Janne Blomqvist <jb@gcc.gnu.org> 2329 2330 PR fortran/51808 2331 * decl.c (set_binding_label): Move prototype from match.h to here. 2332 (curr_binding_label): Make a pointer rather than static array. 2333 (build_sym): Check sym->binding_label pointer rather than array, 2334 update set_binding_label call, handle curr_binding_label changes. 2335 (set_binding_label): Handle new curr_binding_label, dest_label 2336 double ptr, and sym->binding_label. 2337 (verify_bind_c_sym): Handle sym->binding_label being a pointer. 2338 (set_verify_bind_c_sym): Check sym->binding_label pointer rather 2339 than array, update set_binding_label call. 2340 (gfc_match_bind_c_stmt): Handle curr_binding_label change. 2341 (match_procedure_decl): Update set_binding_label call. 2342 (gfc_match_bind_c): Change binding_label to pointer, update 2343 gfc_match_name_C call. 2344 * gfortran.h (GFC_MAX_BINDING_LABEL_LEN): Remove macro. 2345 (gfc_symbol): Make binding_label a pointer. 2346 (gfc_common_head): Likewise. 2347 * match.c (gfc_match_name_C): Heap allocate bind(C) name. 2348 * match.h (gfc_match_name_C): Change prototype argument. 2349 (set_binding_label): Move prototype to decl.c. 2350 * module.c (struct pointer_info): Make binding_label a pointer. 2351 (free_pi_tree): Free unused binding_label. 2352 (mio_read_string): New function. 2353 (mio_write_string): New function. 2354 (load_commons): Redo reading of binding_label. 2355 (read_module): Likewise. 2356 (write_common_0): Change to write empty string instead of name if 2357 no binding_label. 2358 (write_blank_common): Write empty string for binding label. 2359 (write_symbol): Change to write empty string instead of name if no 2360 binding_label. 2361 * resolve.c (gfc_iso_c_func_interface): Don't set binding_label. 2362 (set_name_and_label): Make binding_label double pointer, use 2363 asprintf. 2364 (gfc_iso_c_sub_interface): Make binding_label a pointer. 2365 (resolve_bind_c_comms): Handle cases if 2366 gfc_common_head->binding_label is NULL. 2367 (gfc_verify_binding_labels): sym->binding_label is a pointer. 2368 * symbol.c (gfc_new_symbol): Rely on XCNEW zero init for 2369 binding_label. 2370 (gen_special_c_interop_ptr): Don't set binding label. 2371 (generate_isocbinding_symbol): Insert binding_label into symbol 2372 table. 2373 (get_iso_c_sym): Use pointer assignment instead of strcpy. 2374 * trans-common.c (gfc_sym_mangled_common_id): Handle 2375 com->binding_label being a pointer. 2376 * trans-decl.c (gfc_sym_mangled_identifier): Handle 2377 sym->binding_label being a pointer. 2378 (gfc_sym_mangled_function_id): Likewise. 2379 23802012-01-29 Tobias Burnus <burnus@net-b.de> 2381 2382 PR fortran/52038 2383 * resolve.c (symbol_as): Remove unused, accidentally 2384 added function. 2385 23862012-01-28 Tobias Burnus <burnus@net-b.de> 2387 2388 PR fortran/51972 2389 * trans-stmt.c (gfc_trans_allocate): Properly check whether 2390 we have a BT_CLASS which needs to be memset. 2391 23922012-01-27 Tobias Burnus <burnus@net-b.de> 2393 2394 PR fortran/52022 2395 * trans-expr.c (gfc_conv_procedure_call): Fix passing 2396 of functions, which return allocatables. 2397 23982012-01-27 Tobias Burnus <burnus@net-b.de> 2399 2400 PR fortran/52016 2401 * resolve.c (resolve_formal_arglist): Fix elemental 2402 constraint checks for polymorphic dummies also for 2403 pointers. 2404 24052012-01-27 Tobias Burnus <burnus@net-b.de> 2406 2407 PR fortran/51970 2408 PR fortran/51977 2409 * primary.c (gfc_match_varspec. gfc_match_rvalue): Set 2410 handle array spec for BT_CLASS. 2411 * expr.c (gfc_get_variable_expr, gfc_lval_expr_from_sym) 2412 * frontend-passes.c (create_var): Ditto. 2413 * resolve.c (resolve_actual_arglist, resolve_assoc_var): Ditto. 2414 * trans-decl.c (gfc_trans_deferred_vars): Use class_pointer 2415 instead of attr.pointer. 2416 (gfc_generate_function_code): Use CLASS_DATA (sym) for BT_CLASS. 2417 * trans-intrinsic.c (conv_intrinsic_move_alloc): Move assert. 2418 * trans-stmt.c (trans_associate_var): Ask for the descriptor. 2419 24202012-01-27 Tobias Burnus <burnus@net-b.de> 2421 2422 PR fortran/51953 2423 * match.c (gfc_match_allocate): Allow more than allocate 2424 object with SOURCE=. 2425 24262012-01-27 Tobias Burnus <burnus@net-b.de> 2427 2428 PR fortran/52016 2429 * resolve.c (resolve_formal_arglist): Fix elemental 2430 constraint checks for polymorphic dummies. 2431 24322012-01-27 Paul Thomas <pault@gcc.gnu.org> 2433 Tobias Burnus <burnus@gcc.gnu.org> 2434 2435 PR fortran/48705 2436 PR fortran/51870 2437 PR fortran/51943 2438 PR fortran/51946 2439 * trans-array.c (gfc_array_init_size): Add two extra arguments 2440 to convey the dynamic element size of a calls object and to 2441 return the number of elements that have been allocated. 2442 (gfc_array_allocate): Add the same arguments and use them to 2443 call gfc_array_init_size. Before the allocation dereference 2444 the data pointer, if necessary. Set the allocated array to zero 2445 if the class element size or expr3 are non-null. 2446 * trans-expr.c (gfc_conv_class_to_class): Give this function 2447 global scope. 2448 (get_class_array_ref): New function. 2449 (gfc_copy_class_to_class): New function. 2450 * trans-array.h : Update prototype for gfc_array_allocate. 2451 * trans-stmt.c (gfc_trans_allocate): For non-variable class 2452 STATUS expressions extract the class object and the dynamic 2453 element size. Use the latter to call gfc_array_allocate and 2454 the former for setting the vptr and, via 2455 gfc_copy_class_to_clasfc_cs, to copy to the allocated data. 2456 * trans.h : Prototypes for gfc_get_class_array_ref, 2457 gfc_copy_class_to_class and gfc_conv_class_to_class. 2458 24592012-01-25 Tobias Burnus <burnus@net-b.de> 2460 2461 * resolve.c (symbol_as): Check also for attr.class_ok. 2462 24632012-01-25 Tobias Burnus <burnus@net-b.de> 2464 2465 PR fortran/51995 2466 * class.c (gfc_build_class_symbol): Fix invalid freeing 2467 issue with fclass->f2k_derived. 2468 24692012-01-25 Tobias Burnus <burnus@net-b.de> 2470 2471 PR fortran/51995 2472 * class.c (gfc_build_class_symbol): Ensure that 2473 fclass->f2k_derived is set. 2474 24752012-01-25 Tobias Burnus <burnus@net-b.de> 2476 2477 PR fortran/51966 2478 * resolve.c (resolve_structure_cons): Only create an 2479 array constructors for nonscalars. 2480 24812012-01-23 Tobias Burnus <burnus@net-b.de> 2482 2483 PR fortran/51948 2484 * check.c (variable_check): Fix checking for 2485 variables and deeply nested BLOCKs. 2486 24872012-01-21 Tobias Burnus <burnus@net-b.de> 2488 Steven G. Kargl <kargl@gcc.gnu.org> 2489 2490 PR fortran/50556 2491 * symbol.c (check_conflict): namelist-group-name cannot have the SAVE 2492 attribute. 2493 24942012-01-21 Tobias Burnus <burnus@net-b.de> 2495 2496 PR fortran/51913 2497 * interface.c (compare_parameter): Fix CLASS comparison. 2498 24992012-01-20 Tobias Burnus <burnus@net-b.de> 2500 Janus Weil <janus@gcc.gnu.org> 2501 2502 PR fortran/51056 2503 * module.c (load_needed, read_module): Don't mark __vtab etc. 2504 as use_only. 2505 25062012-01-19 Tobias Burnus <burnus@net-b.de> 2507 2508 PR fortran/51904 2509 * expr.c (gfc_build_intrinsic_call): Also set the symtree. 2510 25112012-01-18 Paul Thomas <pault@gcc.gnu.org> 2512 2513 PR fortran/51634 2514 * trans-expr.c (gfc_conv_procedure_call): Deallocate allocatable 2515 components of temporary class arguments. 2516 25172012-01-17 Tobias Burnus <burnus@net-b.de> 2518 Janne Blomqvist <jb@gcc.gnu.org> 2519 2520 PR fortran/51869 2521 * trans-expr.c (alloc_scalar_allocatable_for_assignment): Nullify 2522 LHS after allocation, if it has allocatable components. 2523 * f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_CALLOC. 2524 25252012-01-16 Mikael Morin <mikael@gcc.gnu.org> 2526 Tobias Burnus <burnus@net-b.de> 2527 2528 PR fortran/50981 2529 * trans-array.c (gfc_walk_elemental_function_args): Fix 2530 passing of deallocated allocatables/pointers as absent argument. 2531 25322012-01-16 Tobias Burnus <burnus@net-b.de> 2533 2534 PR fortran/51809 2535 * class.c (gfc_find_derived_vtab): Mark __vtab and 2536 __def_init as FL_VARIABLE not as FL_PARAMETER. 2537 * expr.c (gfc_simplify_expr): Remove special 2538 handling of __vtab. 2539 * resolve.c (resolve_values): Ditto. 2540 * trans-decl.c (gfc_get_symbol_decl): Mark __vtab 2541 and __def_init as TREE_READONLY. 2542 25432012-01-16 Zydrunas Gimbutas <gimbutas@cims.nyu.edu> 2544 Andreas Kloeckner <kloeckner@cims.nyu.edu> 2545 Steven G. Kargl <kargl@gcc.gnu.org> 2546 2547 PR fortran/48426 2548 * gfortran.h (gfc_option_t): Add members flag_*_kind to store kind. 2549 * lang.opt: Add options -freal-4-real-8, -freal-4-real-10, 2550 -freal-4-real-16, -freal-8-real-4, -freal-8-real-10, -freal-8-real-16 2551 and -finteger-4-integer-8. User-desired type conversion information. 2552 * decl.c (gfc_match_old_kind_spec,kind_expr): Type conversions 2553 in declaration parsing. 2554 * trans-types.c (gfc_init_kinds): User-specified type conversion 2555 checked for current backend. 2556 * primary.c (match_integer_constant,match_real_constant): Implement 2557 type conversion in constant parsing. 2558 * options.c (gfc_init_options,gfc_handle_option): Translate input 2559 options to flags in internal options data structure. 2560 * invoke.texi: Document new options. Re-order options in Options 2561 summary section. 2562 25632012-01-16 Paul Thomas <pault@gcc.gnu.org> 2564 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. 2572 25732012-01-14 Tobias Burnus <burnus@net-b.de> 2574 2575 PR fortran/51800 2576 * resolve.c (build_default_init_expr): Also initialize 2577 nonconstant-length strings with -finit-character=<n>. 2578 25792011-01-14 Tobias Burnus <burnus@net-b.de> 2580 2581 PR fortran/51816 2582 * module.c (read_module): Don't make nonexisting 2583 intrinsic operators as found. 2584 (rename_list_remove_duplicate): New function. 2585 (gfc_use_modules): Use it. 2586 25872012-01-13 Paul Thomas <pault@gcc.gnu.org> 2588 2589 PR fortran/48351 2590 * trans-array.c (structure_alloc_comps): Suppress interative 2591 call to self, when current component is deallocated using 2592 gfc_trans_dealloc_allocated. 2593 * class.c (gfc_build_class_symbol): Copy the 'alloc_comp' 2594 attribute from the declared type to the class structure. 2595 25962012-01-13 Tobias Burnus <burnus@net-b.de> 2597 2598 PR fortran/51842 2599 * fortran/trans-types.c (gfc_init_kinds): Use PTRDIFF_TYPE 2600 instead of a signed int of size POINTER_SIZE for 2601 gfc_index_integer_kind. 2602 26032012-01-12 Tobias Burnus <burnus@net-b.de> 2604 2605 PR fortran/36755 2606 * intrinsic.texi (CHMOD): Extend a bit and remove statement 2607 that /bin/chmod is called. 2608 26092012-01-10 Gerald Pfeifer <gerald@pfeifer.com> 2610 2611 * gfortran.texi (Fortran 2003 Status): Fix grammar. 2612 26132012-01-10 Tobias Burnus <burnus@net-b.de> 2614 2615 PR fortran/51652 2616 * resolve.c (resolve_allocate_expr): For non-deferred char lengths, 2617 check whether type-spec matches declaration. 2618 26192012-01-10 Tobias Burnus <burnus@net-b.de> 2620 2621 * resolve.c (resolve_ordinary_assign): Improve error wording. 2622 26232012-01-09 Paul Thomas <pault@gcc.gnu.org> 2624 2625 PR fortran/51791 2626 * interface.c (matching_typebound_op): Drill down through 2627 possible parentheses to obtain base expression. Do not test for 2628 'class_ok' but, instead for the class structure components. 2629 * resolve.c (resolve_ordinary_assign): Extend error message for 2630 polymorphic assignment to advise checking for specific 2631 subroutine. 2632 2633 PR fortran/51792 2634 * resolve.c (resolve_typebound_function): Restore 'static' to 2635 declaration. 2636 26372012-01-09 Mikael Morin <mikael@gcc.gnu.org> 2638 2639 PR fortran/51758 2640 * trans-array.c (gfc_walk_elemental_function_args): 2641 Skip over NULL() actual arguments. 2642 26432012-01-09 Tobias Burnus <burnus@net-b.de> 2644 2645 * gfortran.texi: Bump copyright year. 2646 (Fortran 2003 Status): Update polymorphism item, add 2647 item for generic interface with DT name. 2648 26492012-01-09 Tobias Burnus <burnus@net-b.de> 2650 2651 PR fortran/51578 2652 * gfortran.h (gfc_use_list): 2653 * match.h (gfc_use_module): Rename to ... 2654 (gfc_use_modules): ... this. 2655 * module.c (use_locus, specified_nonint, specified_int): Remove 2656 global variable. 2657 (module_name): Change type to const char*, used with gfc_get_string. 2658 (module_list): New global variable. 2659 (free_rename): Free argument not global var. 2660 (gfc_match_use): Save match to module_list. 2661 (load_generic_interfaces, read_module): Don't free symtree. 2662 (write_dt_extensions, gfc_dump_module): Fix module-name I/O due to the 2663 type change of module_name. 2664 (write_symbol0, write_generic): Optimize due to the type change. 2665 (import_iso_c_binding_module, use_iso_fortran_env_module): Use 2666 locus of rename->where. 2667 (gfc_use_module): Take module_list as argument. 2668 (gfc_use_modules): New function. 2669 (gfc_module_init_2, gfc_module_done_2): Init module_list, rename_list. 2670 * parse.c (last_was_use_stmt): New global variable. 2671 (use_modules): New function. 2672 (decode_specification_statement, decode_statement): Move USE match up 2673 and call use_modules. 2674 (next_free, next_fixed): Call use_modules. 2675 (accept_statement): Don't call gfc_module_use. 2676 26772012-01-06 Tobias Burnus <burnus@net-b.de> 2678 2679 * trans-openmp.c (gfc_omp_clause_dtor, gfc_trans_omp_array_reduction): 2680 Update call to gfc_trans_dealloc_allocated. 2681 * trans.c (gfc_allocate_using_malloc): Fix spacing. 2682 (gfc_allocate_allocatable): For gfc_allocate_using_lib, jump to 2683 label_finish when an error occurs. 2684 (gfc_deallocate_with_status): Call caf_deregister for -fcoarray=lib. 2685 * trans.h (gfc_allocate_allocatable, gfc_deallocate_with_status): 2686 Update prototype. 2687 (gfor_fndecl_caf_deregister): New tree symbol. 2688 * trans-expr.c (gfc_conv_procedure_call): Update 2689 gfc_deallocate_with_status and gfc_trans_dealloc_allocated calls. 2690 * trans-array.c (gfc_array_allocate, gfc_trans_dealloc_allocated, 2691 structure_alloc_comps, gfc_trans_deferred_array): Ditto. 2692 (gfc_array_deallocate): Handle coarrays with -fcoarray=lib. 2693 * trans-array.h (gfc_array_deallocate, gfc_array_allocate, 2694 gfc_trans_dealloc_allocated): Update prototypes. 2695 * trans-stmt.c (gfc_trans_sync): Fix indentation. 2696 (gfc_trans_allocate): Fix errmsg padding and label handling. 2697 (gfc_trans_deallocate): Ditto and handle -fcoarray=lib. 2698 * expr.c (gfc_is_coarray): Fix algorithm for BT_CLASS. 2699 * libgfortran.h (GFC_STAT_STOPPED_IMAGE): Use large value 2700 to avoid other stats accidentally matching this one. 2701 * trans-decl.c (gfor_fndecl_caf_deregister): New global var. 2702 (gfc_build_builtin_function_decls): Fix prototype decl of caf_register 2703 and add decl for caf_deregister. 2704 (gfc_trans_deferred_vars): Handle CAF vars with -fcoarrays=lib. 2705 * trans-intrinsic.c (conv_intrinsic_move_alloc): Update call to 2706 gfc_deallocate_with_status. 2707 27082012-01-05 Paul Thomas <pault@gcc.gnu.org> 2709 2710 PR fortran/PR48946 2711 * resolve.c (resolve_typebound_static): If the typebound 2712 procedure is 'deferred' try to find the correct specific 2713 procedure in the derived type operator space itself. 2714 27152012-01-04 Mikael Morin <mikael@gcc.gnu.org> 2716 2717 PR fortran/50981 2718 * trans-array.h (gfc_walk_elemental_function_args): New argument. 2719 * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call. 2720 * trans-stmt.c (gfc_trans_call): Ditto. 2721 * trans-array.c (gfc_walk_function_expr): Ditto. 2722 (gfc_walk_elemental_function_args): Get the dummy argument list 2723 if possible. Check that the dummy and the actual argument are both 2724 optional, and set can_be_null_ref accordingly. 2725 27262012-01-04 Mikael Morin <mikael@gcc.gnu.org> 2727 2728 PR fortran/50981 2729 * trans.h (struct gfc_ss_info): New field data::scalar::can_be_null_ref 2730 * trans-array.c: If the reference can be NULL, save the reference 2731 instead of the value. 2732 * trans-expr.c (gfc_conv_expr): If we have saved a reference, 2733 dereference it. 2734 27352012-01-04 Mikael Morin <mikael@gcc.gnu.org> 2736 2737 * trans-expr.c (gfc_conv_expr): Move address taking... 2738 (gfc_conv_expr_reference): ... here. 2739 27402012-01-04 Thomas Koenig <tkoenig@gcc.gnu.org> 2741 2742 PR fortran/49693 2743 * trans-common.c (create_common): Update copyright years. Mark 2744 variables as used to avoid warnings about unused variables in 2745 common blocks. 2746 27472012-01-03 Hans-Peter Nilsson <hp@axis.com> 2748 2749 * gfortran.h (struct gfc_expr): Add missing "struct" 2750 qualifier for member base_expr. 2751 27522012-01-02 Paul Thomas <pault@gcc.gnu.org> 2753 2754 PR fortran/51529 2755 * trans-array.c (gfc_array_allocate): Null allocated memory of 2756 newly allocted class arrays. 2757 2758 PR fortran/46262 2759 PR fortran/46328 2760 PR fortran/51052 2761 * interface.c(build_compcall_for_operator): Add a type to the 2762 expression. 2763 * trans-expr.c (conv_base_obj_fcn_val): New function. 2764 (gfc_conv_procedure_call): Use base_expr to detect non-variable 2765 base objects and, ensuring that there is a temporary variable, 2766 build up the typebound call using conv_base_obj_fcn_val. 2767 (gfc_trans_class_assign): Pick out class procedure pointer 2768 assignments and do the assignment with no further prcessing. 2769 (gfc_trans_class_array_init_assign, gfc_trans_class_init_assign 2770 gfc_trans_class_assign): Move to top of file. 2771 * gfortran.h : Add 'base_expr' field to gfc_expr. 2772 * resolve.c (get_declared_from_expr): Add 'types' argument to 2773 switch checking of derived types on or off. 2774 (resolve_typebound_generic_call): Set the new argument. 2775 (resolve_typebound_function, resolve_typebound_subroutine): 2776 Set 'types' argument for get_declared_from_expr appropriately. 2777 Identify base expression, if not a variable, in the argument 2778 list of class valued calls. Assign it to the 'base_expr' field 2779 of the final expression. Strip away all references after the 2780 last class reference. 2781 27822012-01-02 Tobias Burnus <burnus@net-b.de> 2783 2784 PR fortran/51682 2785 * trans-intrinsic.c (trans_this_image, trans_image_index, 2786 trans_num_images, conv_intrinsic_cobound): Fold_convert the 2787 caf_num_images/caf_this_images variables to the correct int kind. 2788 27892012-01-01 Jakub Jelinek <jakub@redhat.com> 2790 2791 * gfortranspec.c (lang_specific_driver): Update copyright notice 2792 dates. 2793 2794Copyright (C) 2012 Free Software Foundation, Inc. 2795 2796Copying and distribution of this file, with or without modification, 2797are permitted in any medium without royalty provided the copyright 2798notice and this notice are preserved. 2799