12015-12-15 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> 2 3 Backport from mainline. 4 2015-12-15 5 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> 6 7 * resolve.c (resolve_critical): Committing symbols of 8 lock variables. 9 102015-12-14 Tobias Burnus <burnus@net-b.de> 11 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> 12 13 Backport from mainline. 14 2015-12-09 Tobias Burnus <burnus@net-b.de> 15 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> 16 17 * trans.c (gfc_allocate_using_lib,gfc_deallocate_with_status): 18 Introducing __asm__ __volatile__ ("":::"memory") 19 after image control statements. 20 * trans-stmt.c (gfc_trans_sync, gfc_trans_event_post_wait, 21 gfc_trans_lock_unlock, gfc_trans_critical): Ditto. 22 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get, 23 conv_caf_send): Introducing __asm__ __volatile__ ("":::"memory") 24 after send, before get and around sendget. 25 262015-12-04 Release Manager 27 28 * GCC 5.3.0 released. 29 302015-11-27 Andre Vehreschild <vehre@gcc.gnu.org> 31 32 PR fortran/68218 33 * trans-array.c (gfc_array_init_size): Add gfc_evaluate_now() when 34 array spec in allocate is a function call. 35 362015-11-24 Paul Thomas <pault@gcc.gnu.org> 37 38 Backport from trunk. 39 PR fortran/68196 40 * class.c (has_finalizer_component): Prevent infinite recursion 41 through this function if the derived type and that of its 42 component are the same. 43 * trans-types.c (gfc_get_derived_type): Do the same for proc 44 pointers by ignoring the explicit interface for the component. 45 46 PR fortran/66465 47 * check.c (same_type_check): If either of the expressions is 48 BT_PROCEDURE, use the typespec from the symbol, rather than the 49 expression. 50 512015-11-18 Dominique d'Humieres <dominiq@lps.ens.fr> 52 53 PR fortran/65751 54 * expr.c (gfc_check_pointer_assign): Fix error message. 55 562015-11-16 Steven G. Kargl <kargl@gcc.gnu.org> 57 58 PR fortran/58027 59 PR fortran/60993 60 * expr.c (gfc_check_init_expr): Prevent a redundant check when a 61 __convert_* function was inserted into an array constructor. 62 (gfc_check_assign_symbol): Check for an initialization expression 63 when a __convert_* was inserted. 64 652015-11-14 Steven G. Kargl <kargl@gcc.gnu.org> 66 67 PR fortran/67803 68 * array.c (gfc_match_array_constructor): If array constructor included 69 a CHARACTER typespec, check array elements for compatible type. 70 712015-11-13 Steven G. Kargl <kargl@gccc.gnu.org> 72 73 PR fortran/68319 74 * decl.c (gfc_match_data, gfc_match_entry): Enforce F2008:C1206. 75 * io.c (gfc_match_format): Ditto. 76 * match.c (gfc_match_st_function): Ditto. 77 782015-11-12 Steven G. Kargl <kargl@gcc.gnu.org> 79 80 PR fortran/68318 81 * decl.c (get_proc_name): Increment reference count for ENTRY. 82 While here, fix comment and use postfix ++ for consistency. 83 842015-11-08 Steven g. Kargl <kargl@gcc.gnu.org> 85 86 PR fortran/68053 87 * decl.c (add_init_expr_to_sym): Try to reduce initialization expression 88 before testing for a constant value. 89 902015-11-08 Steven G. Kargl <kargl@gcc.gnu.org> 91 92 PR fortran/68224 93 * array.c (match_array_element_spec): Check of invalid NULL(). 94 While here, fix nearby comments. 95 962015-11-08 Steven G. Kargl <kargl@gcc.gnu.org> 97 98 PR fortran/68153 99 * check.c (gfc_check_reshape): Improve check for valid SHAPE argument. 100 1012015-11-08 Steven G. Kargl <kargl@gcc.gnu.org> 102 103 PR fortran/68151 104 * match.c (match_case_selector): Check for invalid type. 105 1062015-01-25 Paul Thomas <pault@gcc.gnu.org> 107 108 Backported from trunk. 109 PR fortran/67171 110 * trans-array.c (structure_alloc_comps): On deallocation of 111 class components, reset the vptr to the declared type vtable 112 and reset the _len field of unlimited polymorphic components. 113 *trans-expr.c (gfc_find_and_cut_at_last_class_ref): Bail out on 114 allocatable component references to the right of part reference 115 with non-zero rank and return NULL. 116 (gfc_reset_vptr): Simplify this function by using the function 117 gfc_get_vptr_from_expr. Return if the vptr is NULL_TREE. 118 (gfc_reset_len): If gfc_find_and_cut_at_last_class_ref returns 119 NULL return. 120 1212015-10-30 Steven G. Kargl <kargl@gcc.gnu.org> 122 123 PR fortran/51993 124 * decl.c (gfc_set_constant_character_len): Convert gcc_assert into an 125 if-statement causing an early return leads to valid error message. 126 1272015-10-30 Steven G. Kargl <kargl@gcc.gnu.org> 128 129 PR fortran/68154 130 * decl.c (add_init_expr_to_sym): if the char length in the typespec 131 is NULL, check for and use a constructor. 132 1332015-10-30 Steven G. Kargl <kargl@gcc.gnu.org> 134 135 PR fortran/36192 136 * interface.c (get_expr_storage_size): Check for INTEGER type before 137 calling gmp routines. 138 1392015-10-29 Steven G. Kargl <kargl@gcc.gnu.org> 140 141 PR fortran/68055 142 * decl.c (gfc_match_decl_type_spec): Check for valid kind in old-style 143 declarations. 144 1452015-10-29 Steven G. Kargl <kargl@gcc.gnu.org> 146 147 PR fortran/68054 148 * decl.c (match_attr_spec): PROTECTED can only be a module. 149 1502015-10-29 Steven G. Kargl <kargl@gcc.gnu.org> 151 152 PR fortran/67939 153 * data.c (create_character_initializer): Deal with zero length string. 154 1552015-10-29 Steven G. Kargl <kargl@gcc.gnu.org> 156 157 PR fortran/67885 158 * trans-decl.c (generate_local_decl): Mark PARAMETER entities in 159 BLOCK construct. 160 1612015-10-29 Steven G. Kargl <kargl@gcc.gnu.org> 162 163 PR fortran/67805 164 PR fortran/68108 165 * array.c (gfc_match_array_constructor): Check for error from type 166 spec matching. 167 * decl.c (char_len_param_value): Check for valid of charlen parameter. 168 Check for REF_ARRAY. Reap dead code dating to 2008. 169 match.c (gfc_match_type_spec): Special case the keyword use in REAL. 170 1712015-10-26 Paul Thomas <pault@gcc.gnu.org> 172 173 PR fortran/67177 174 PR fortran/67977 175 Backport from mainline r228940: 176 * primary.c (match_substring): Add an argument 'deferred' to 177 flag that a substring reference with null start and end should 178 not be optimized away for deferred length strings. 179 (match_string_constant, gfc_match_rvalue): Set the argument. 180 * trans-expr.c (alloc_scalar_allocatable_for_assignment): If 181 there is a substring reference return. 182 * trans-intrinsic.c (conv_intrinsic_move_alloc): For deferred 183 characters, assign the 'from' string length to the 'to' string 184 length. If the 'from' expression is deferred, set its string 185 length to zero. If the 'to' expression has allocatable 186 components, deallocate them. 187 1882015-10-22 Paul Thomas <pault@gcc.gnu.org> 189 190 PR fortran/58754 191 * trans-stmt.c (gfc_trans_allocate): Do not use the scalar 192 character assignment if the allocate expression is an array 193 descriptor. 194 1952015-10-19 Steven G. Kargl <kargl@gcc.gnu.org> 196 197 PR fortran/67900 198 * resolve.c (gfc_verify_binding_labels): Check for NULL pointer. 199 2002015-10-19 Steven G. Kargl <kargl@gcc.gnu.org> 201 202 PR fortran/68019 203 * decl.c (add_init_expr_to_sym): Remove an assert() to allow an error 204 message to be issued. 205 2062015-10-19 Steven G. Kargl <kargl@gcc.gnu.org> 207 208 PR fortran/67987 209 * decl.c (char_len_param_value): Unwrap unlong line. If LEN < 0, 210 force it to zero per the Fortran 90, 95, 2003, and 2008 Standards. 211 * resolve.c (gfc_resolve_substring_charlen): Unwrap unlong line. 212 If 'start' is larger than 'end', length of substring is negative, 213 so explicitly set it to zero. 214 (resolve_charlen): Remove -Wsurprising warning. Update comment to 215 reflect that the text is from the F2008 standard. 216 2172015-10-18 Paul Thomas <pault@gcc.gnu.org> 218 219 PR fortran/66079 220 Backport from mainline r224383: 221 222 * trans-expr.c (gfc_conv_procedure_call): Allocatable scalar 223 function results must be freed and nullified after use. Create 224 a temporary to hold the result to prevent duplicate calls. 225 * trans-stmt.c (gfc_trans_allocate): Rename temporary variable 226 as 'source'. Deallocate allocatable components of non-variable 227 'source's. 228 2292015-10-18 Mikael Morin <mikael@gcc.gnu.org> 230 231 PR fortran/67721 232 PR fortran/67818 233 Backport from mainline r222477: 234 235 2015-04-27 Andre Vehreschild <vehre@gmx.de> 236 237 PR fortran/59678 238 PR fortran/65841 239 * trans-array.c (duplicate_allocatable): Fixed deep copy of 240 allocatable components, which are liable for copy only, when 241 they are allocated. 242 (gfc_duplicate_allocatable): Add deep-copy code into if 243 component allocated block. Needed interface change for that. 244 (gfc_copy_allocatable_data): Supplying NULL_TREE for code to 245 add into if-block for checking whether a component was 246 allocated. 247 (gfc_duplicate_allocatable_nocopy): Likewise. 248 (structure_alloc_comps): Likewise. 249 * trans-array.h: Likewise. 250 * trans-expr.c (gfc_trans_alloc_subarray_assign): Likewise. 251 * trans-openmp.c (gfc_walk_alloc_comps): Likewise. 252 2532015-10-02 Steven G. Kargl <kargl@gcc.gnu.org> 254 255 PR fortran/67802 256 * decl.c (add_init_expr_to_sym): Numeric constant for character 257 length must be an INTEGER. 258 2592015-10-02 Steven G. Kargl <kargl@gcc.gnu.org> 260 261 PR fortran/67616 262 * primary.c (gfc_match_structure_constructor): Use a possibly 263 host-associated symtree to prevent ICE. 264 2652015-10-02 Steven G. Kargl <kargl@gcc.gnu.org> 266 267 PR fortran/66979 268 * io.c (gfc_resolve_filepos): Check for a UNIT number. Add a nearby 269 missing 'return false'. 270 2712015-10-01 Mikael Morin <mikael@gcc.gnu.org> 272 273 PR fortran/67721 274 * trans-expr.c (gfc_trans_assignment_1): Remove the non-constantness 275 condition guarding deep copy. 276 2772015-09-25 Steven G. Kargl <kargl@gcc.gnu.org> 278 279 PR fortran/67614 280 * resolve.c (gfc_resolve_code): Prevent ICE for invalid EXPR_NULL. 281 2822015-09-25 Steven G. Kargl <kargl@gcc.gnu.org> 283 284 PR fortran/67525 285 * parse.c (match_deferred_characteristics): Remove an assert, which 286 allows an invalid SELECT TYPE selector to be detected. 287 2882015-09-21 Steven G. Kargl <kargl@gcc.gnu.org> 289 290 PR fortran/67615 291 * resolve.c (gfc_resolve_code): Check for scalar expression in 292 arithmetic-if. 293 2942015-09-10 Steven G. Kargl <kargl@gcc.gnu.org> 295 296 PR fortran/67526 297 * expr.c (gfc_check_init_expr): Do not dereference a NULL pointer. 298 2992015-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org> 300 301 PR fortran/67429 302 * error.c (gfc_clear_pp_buffer): Reset last_location, otherwise 303 caret lines might be skipped when actually giving a diagnostic. 304 3052015-08-07 Mikael Morin <mikael@gcc.gnu.org> 306 307 PR fortran/66929 308 * trans-array.c (gfc_get_proc_ifc_for_expr): Use esym as procedure 309 symbol if available. 310 3112015-08-05 Mikael Morin <mikael@gcc.gnu.org> 312 313 PR fortran/64921 314 * class.c (generate_finalization_wrapper): Set finalization 315 procedure symbol's always_explicit attribute. 316 3172015-08-03 Steven G. Kargl <kargl@gcc.gnu.org> 318 319 PR fortran/66942 320 * trans-expr.c (gfc_conv_procedure_call): Avoid NULL pointer reference 321 3222015-07-25 Mikael Morin <mikael@gcc.gnu.org> 323 324 PR fortran/64986 325 * trans-expr.c (gfc_trans_assignment_1): Put component deallocation 326 code at the beginning of the block. 327 3282015-07-21 Andre Vehreschild <vehre@gcc.gnu.org> 329 330 PR fortran/66035 331 * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment): 332 Compute the size to allocate for class and derived type objects 333 correclty. 334 (gfc_trans_subcomponent_assign): Only allocate memory for a 335 component when the object to assign is not an allocatable class 336 object (the memory is already present for allocatable class objects). 337 Furthermore use copy_class_to_class for assigning the rhs to the 338 component (may happen for dummy class objects on the rhs). 339 3402015-07-17 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> 341 342 * trans-intrinsic.c (conv_co_collective): Remove redundant address 343 operator in the generated code. 344 3452015-07-16 Steven G. Kargl <kargl@gcc.gnu.org> 346 347 PR fortran/66724 348 PR fortran/66724 349 * io.c (is_char_type): Call gfc_resolve_expr (). 350 (match_open_element, match_dt_element, match_inquire_element): Fix 351 ASYNCHRONOUS case. 352 3532015-07-16 Steven G. Kargl <kargl@gcc.gnu.org> 354 355 PR fortran/66864 356 * simplify.c (gfc_simplify_floor): Set precision of temporary to 357 that of arg. 358 3592015-07-16 Steven G. Kargl <kargl@gcc.gnu.org> 360 361 PR fortran/66545 362 * primary.c (match_sym_complex_part): Do not dereference NULL pointer. 363 3642015-07-16 Steven G. Kargl <kargl@gcc.gnu.org> 365 366 PR fortran/56520 367 * match.c (gfc_match_name): Special case unary minus and plus. 368 3692015-07-16 Steven G. Kargl <kargl@gcc.gnu.org> 370 371 * io.c (check_char_variable): New function. 372 (match_open_element, match_close_element, match_file_element, 373 match_dt_element, match_inquire_element, match_wait_element): Use it. 374 3752015-07-16 Steven G. Kargl <kargl@gcc.gnu.org> 376 377 PR fortran/66725 378 * io.c (is_char_type): New function to test for BT_CHARACTER 379 (gfc_match_open, gfc_match_close, match_dt_element): Use it. 380 3812015-07-16 Release Manager 382 383 * GCC 5.2.0 released. 384 3852015-06-24 Mikael Morin <mikael@gcc.gnu.org> 386 387 PR fortran/66549 388 * resolve.c (resolve_global_procedure): Don't save and restore 389 OpenMP state around the call to gfc_resolve. 390 (gfc_resolve): Save OpenMP state on entry and restore it on return. 391 3922015-06-14 Thomas Koenig <tkoenig@gcc.gnu.org> 393 394 PR fortran/66385 395 Backport from trunk 396 * frontend-passes.c (combine_array_constructor): Return early if 397 inside a FORALL loop. 398 3992015-06-14 Thomas Koenig <tkoenig@gcc.gnu.org> 400 401 * intrinsic.texi: Change \leq to < in descrition of imaginary 402 part in argument to log. 403 4042015-06-11 Pierre-Marie de Rodat <derodat@adacore.com> 405 406 * f95-lang.c (gfc_create_decls): Register the main translation unit 407 through the new debug hook. 408 4092015-06-08 Steven G. Kargl <kargl@gcc.gnu.org> 410 411 PR fortran/66245 412 * match.c (gfc_match_type_is, gfc_match_class_is): Check if the 413 return type spec or derived type spec is validate. 414 4152015-06-05 Steven G. Kargl <kargl@gcc.gnu.org> 416 417 PR fortran/66347 418 * resolve.c (apply_default_init_local): Do not dereference a NULL 419 pointer. 420 4212015-06-05 Russell Whitesides <russelldub@gmail.com> 422 Steven G. Kargl <kargl@gcc.gnu.org> 423 424 PR fortran/40958 425 PR fortran/60780 426 PR fortran/66377 427 * module.c (load_equiv): Add check for loading duplicate EQUIVALENCEs 428 from different modules. Eliminate the pruning of unused 429 equivalence-objects 430 431 4322015-06-02 Steven G. Kargl <kargl@gcc.gnu.org> 433 434 PR fortran/66380 435 * simplify.c (gfc_simplify_reshape): Convert assert into returning 436 NULL, which triggers an error condition. 437 4382015-05-29 Mikael Morin <mikael@gcc.gnu.org> 439 440 PR fortran/66257 441 * resolve.c (resolve_actual_arglist): Don't throw an error 442 if the argument with procedure pointer component is not a variable. 443 4442015-05-22 Jakub Jelinek <jakub@redhat.com> 445 446 Backported from mainline 447 2015-05-19 Jakub Jelinek <jakub@redhat.com> 448 449 PR middle-end/66199 450 * trans-openmp.c (gfc_trans_omp_teams): Set OMP_TEAMS_COMBINED for 451 combined constructs. 452 (gfc_trans_omp_target): Make sure BIND_EXPR has non-NULL 453 BIND_EXPR_BLOCK. 454 4552015-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org> 456 457 PR fortran/65903 458 * io.c (format_lex): Change to NONSTRING when checking for 459 possible doubled quote. 460 * scanner.c (gfc_next_char_literal): Revert change from 64506 461 and add a check for quotes and return. 462 4632015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> 464 465 PR fortran/66106 466 * interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201). 467 * match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE. 468 4692015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> 470 471 PR fortran/66057 472 * decl.c(gfc_match_generic): Detected a malformed GENERIC statement. 473 4742015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> 475 476 PR fortran/66052 477 * decl.c(gfc_match_protected): Prevent dereference of NULL pointer. 478 4792015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> 480 481 PR fortran/66045 482 * expr.c (gfc_check_assign): Check for assignment of NULL() instead 483 of the (intended) pointer assignment. 484 4852015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> 486 487 PR fortran/66044 488 * decl.c(gfc_match_entry): Change a gfc_internal_error() into 489 a gfc_error() 490 4912015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> 492 493 PR fortran/66043 494 * check.c (gfc_check_storage_size): Prevent the direct use of NULL() 495 in STORAGE_SIZE() reference. 496 4972015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> 498 499 PR fortran/66040 500 * parse.c(verify_st_order): Replace a gfc_internal_error with your 501 generic gfc_error. 502 5032015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> 504 505 PR fortran/66039 506 * io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH, 507 BACKSPACE, and ENDFILE statements 508 5092015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> 510 511 PR fortran/64925 512 * symbol.c(check_conflict): Check for a conflict between a dummy 513 argument and an internal procedure name. 514 5152015-05-02 Steven G. Kargl <kargl@gcc.gnu.org> 516 517 PR fortran/65976 518 * invoke.texi: Remove 'no-' in '-fno-fixed-form' 519 5202015-04-22 Release Manager 521 522 * GCC 5.1.0 released. 523 5242015-04-22 Steven G. Kargl <kargl@gcc.gnu.org> 525 526 PR fortran/65429 527 * decl.c (add_init_expr_to_sym): Set the length type parameter. 528 5292015-04-10 Tobias Burnus <burnus@net-b.de> 530 531 * trans-stmt.c (gfc_trans_lock_unlock): Implement -fcoarray=lib 532 version; reject not-yet-implemented variants. 533 * trans-types.c (gfc_get_derived_type): For lock_type with 534 -fcoarray=lib, use a void pointer as type. 535 * trans.c (gfc_allocate_using_lib, gfc_allocate_allocatable): 536 Handle lock_type with -fcoarray=lib. 537 5382015-04-10 Mikael Morin <mikael@gcc.gnu.org> 539 540 PR fortran/56674 541 PR fortran/58813 542 PR fortran/59016 543 PR fortran/59024 544 * symbol.c (save_symbol_data, gfc_save_symbol_data): Rename the 545 former to the latter and make it non-static. Update callers. 546 * gfortran.h (gfc_save_symbol_data): New prototype. 547 * decl.c (gfc_match_decl_type_spec): Call 'gfc_save_symbol_data' 548 before modifying symbols 'sym' and 'dt_sym'. 549 5502013-04-09 Paul Thomas <pault@gcc.gnu.org> 551 552 PR fortran/56852 553 * primary.c (gfc_variable_attr): Avoid ICE on AR_UNKNOWN if any 554 of the index variables are untyped and errors are present. 555 5562015-04-07 Andre Vehreschild <vehre@gmx.de> 557 558 PR fortran/65548 559 * trans-stmt.c (gfc_trans_allocate): For intrinsic functions 560 use conv_expr_descriptor() instead of conv_expr_reference(). 561 5622015-03-30 Jakub Jelinek <jakub@redhat.com> 563 564 PR fortran/65597 565 * trans-openmp.c (gfc_trans_omp_do): For !simple simd with explicit 566 linear clause for the iterator set OMP_CLAUSE_LINEAR_NO_COPYIN. 567 For implcitly added !simple OMP_CLAUSE_LINEAR set it too. Use step 1 568 instead of the original step on the new iterator - count. 569 5702015-03-25 Mikael Morin <mikael@gcc.gnu.org> 571 572 PR fortran/64952 573 PR fortran/65532 574 * gfortran.h (struct gfc_namespace): New field 'types_resolved'. 575 * resolve.c (resolve_types): Return early if field 'types_resolved' 576 is set. Set 'types_resolved' at the end. 577 5782015-03-24 Andre Vehreschild <vehre@gmx.de> 579 580 PR fortran/55901 581 * trans-expr.c (gfc_conv_structure): Fixed indendation. 582 Using integer_zero_node now instead of explicitly 583 constructing a integer constant zero node. 584 (gfc_conv_derived_to_class): Add handling of _len component, 585 i.e., when the rhs has a string_length then assign that to 586 class' _len, else assign 0. 587 (gfc_conv_intrinsic_to_class): Likewise. 588 5892015-03-24 Andre Vehreschild <vehre@gmx.de> 590 591 PR fortran/64787 592 PR fortran/57456 593 PR fortran/63230 594 * class.c (gfc_add_component_ref): Free no longer needed 595 ref-chains to prevent memory loss. 596 (find_intrinsic_vtab): For deferred length char arrays or 597 unlimited polymorphic objects, store the size in bytes of one 598 character in the size component of the vtab. 599 * gfortran.h: Added gfc_add_len_component () define. 600 * trans-array.c (gfc_trans_create_temp_array): Switched to new 601 function name for getting a class' vtab's field. 602 (build_class_array_ref): Likewise. 603 (gfc_array_init_size): Using the size information from allocate 604 more consequently now, i.e., the typespec of the entity to 605 allocate is no longer needed. This is to address the last open 606 comment in PR fortran/57456. 607 (gfc_array_allocate): Likewise. 608 (structure_alloc_comps): gfc_copy_class_to_class () needs to 609 know whether the class is unlimited polymorphic. 610 * trans-array.h: Changed interface of gfc_array_allocate () to 611 reflect the no longer needed typespec. 612 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): New. 613 (gfc_reset_len): New. 614 (gfc_get_class_array_ref): Switch to new function name for 615 getting a class' vtab's field. 616 (gfc_copy_class_to_class): Added flag to know whether the class 617 to copy is unlimited polymorphic. Adding _len dependent code 618 then, which calls ->vptr->copy () with four arguments adding 619 the length information ->vptr->copy(from, to, from_len, to_cap). 620 (gfc_conv_procedure_call): Switch to new function name for 621 getting a class' vtab's field. 622 (alloc_scalar_allocatable_for_assignment): Use the string_length 623 as computed by gfc_conv_expr and not the statically backend_decl 624 which may be incorrect when ref-ing. 625 (gfc_trans_assignment_1): Use the string_length variable and 626 not the rse.string_length. The former has been computed more 627 generally. 628 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Switch to new 629 function name for getting a class' vtab's field. 630 (gfc_conv_intrinsic_storage_size): Likewise. 631 (gfc_conv_intrinsic_transfer): Likewise. 632 * trans-stmt.c (gfc_trans_allocate): Restructured to evaluate 633 source=expr3 only once before the loop over the objects to 634 allocate, when the objects are not arrays. Doing correct _len 635 initialization and calling of vptr->copy () fixing PR 64787. 636 (gfc_trans_deallocate): Reseting _len to 0, preventing future 637 errors. 638 * trans.c (gfc_build_array_ref): Switch to new function name 639 for getting a class' vtab's field. 640 (gfc_add_comp_finalizer_call): Likewise. 641 * trans.h: Define the prototypes for the gfc_class_vtab_*_get () 642 and gfc_vptr_*_get () functions. 643 Added gfc_find_and_cut_at_last_class_ref () and 644 gfc_reset_len () routine prototype. Added flag to 645 gfc_copy_class_to_class () prototype to signal an unlimited 646 polymorphic entity to copy. 647 6482015-03-24 Iain Sandoe <iain@codesourcery.com> 649 Tobias Burnus <burnus@net-b.de> 650 651 * gfortran.texi (_gfortran_caf_sync_memory): Improve wording. 652 6532015-03-23 Paul Thomas <pault@gcc.gnu.org> 654 Mikael Morin <mikael@gcc.gnu.org> 655 656 PR fortran/64952 657 * gfortran.h (struct symbol_attribute) : New field 658 'array_outer_dependency'. 659 * trans.h (struct gfc_ss_info): New field 'array_outer_dependency'. 660 * module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY. 661 (attr_bits): Append same value to initializer. 662 (mio_symbol_attribute): Handle 'array_outer_dependency' attr 663 in module read and write. 664 * resolve.c (update_current_proc_outer_array_dependency): New function. 665 (resolve_function, resolve_call): Add code to update current procedure's 666 'array_outer_dependency' attribute. 667 (resolve_variable): Mark current procedure with attribute 668 array_outer_dependency if the variable is an array coming from outside 669 the current namespace. 670 (resolve_fl_procedure): Mark a procedure without body with attribute 671 'array_outer_dependency'. 672 * trans-array.c (gfc_conv_resolve_dependencies): If any ss is 673 marked as 'array_outer_dependency' generate a temporary. 674 (gfc_walk_function_expr): If the function may reference external arrays, 675 mark the head gfc_ss with flag 'array_outer_dependency'. 676 6772015-03-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> 678 679 PR libgfortran/59513 680 * gfortran.texi (Read/Write after EOF marker): New information. 681 6822015-03-21 H.J. Lu <hongjiu.lu@intel.com> 683 684 * gfortran.texi (_gfortran_caf_sync_memory): Put @{xxx} in one 685 line. 686 6872015-03-21 Tobias Burnus <burnus@net-b.de> 688 689 * gfortran.texi (_gfortran_caf_sync_all, _gfortran_caf_sync_images, 690 _gfortran_caf_sync_memory, _gfortran_caf_error_stop, 691 _gfortran_caf_error_stop_str, _gfortran_caf_atomic_define, 692 _gfortran_caf_atomic_ref, _gfortran_caf_atomic_cas, 693 _gfortran_caf_atomic_op): New sections. 694 6952015-03-21 Tobias Burnus <burnus@net-b.de> 696 697 * trans-expr.c (gfc_get_tree_for_caf_expr): Reject unimplemented 698 coindexed coarray accesses. 699 7002015-03-17 Paul Thomas <pault@gcc.gnu.org> 701 702 PR fortran/59198 703 * trans-types.c (gfc_get_derived_type): If an abstract derived 704 type with procedure pointer components has no other type of 705 component, return the backend_decl. Otherwise build the 706 components if any of the non-procedure pointer components have 707 no backend_decl. 708 7092015-03-16 Jerry DeLisle <jvdelisle@gcc.gnu.org> 710 711 PR fortran/64432 712 *trans-intrinisic.c (conv_intrinsic_system_clock): Check the 713 smallest kind passed in user arguments and hardcode tesults for 714 KIND=1 or KIND=2 to indicate no clock available. 715 7162015-03-16 Andre Vehreschild <vehre@gmx.de> 717 718 * resolve.c: Prevent segfault on illegal input. 719 7202015-03-14 Mikael Morin <mikael@gcc.gnu.org> 721 722 PR fortran/61138 723 * trans-expr.c (gfc_trans_pointer_assignment): Clear DESCRIPTOR_ONLY 724 field before reusing LSE. 725 7262015-03-11 Janne Blomqvist <jb@gcc.gnu.org> 727 728 PR libfortran/65200 729 * gfortran.texi: Document behavior when opening files without 730 explicit ACTION= specifier. 731 7322015-03-10 Paul Thomas <pault@gcc.gnu.org> 733 734 PR fortran/65024 735 * trans-expr.c (gfc_conv_component_ref): If the component 736 backend declaration is missing and the derived type symbol is 737 available in the reference, call gfc_build_derived_type. 738 7392015-03-10 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> 740 Tobias Burnus <burnus@net-b.de> 741 742 * trans.h (caf_sync_memory): New function decl tree. 743 * trans-decl.c (gfc_build_builtin_function_decls): Define it. 744 (create_main_function): Don't call sync_synchronize and leave 745 it to the CAF library. 746 * trans-stmt.c (gfc_trans_stop): Ditto. 747 (gfc_trans_sync): Ditto; add call library call for sync memory. 748 7492015-03-08 Mikael Morin <mikael@gcc.gnu.org> 750 751 PR fortran/60898 752 * resolve.c (resolve_symbol): Check that the symbol found by 753 name lookup really is the current symbol being resolved. 754 7552015-03-02 Tobias Burnus <burnus@net-b.de> 756 757 * check.c (gfc_check_atomic): Properly check for coarrayness 758 and for being coindexed. 759 7602015-02-26 Martin Liska <mliska@suse.cz> 761 762 * resolve.c: Rename enum 'comparison' to 'compare_result' as 763 solution for -Wodr issue. 764 7652015-02-24 Thomas Schwinge <thomas@codesourcery.com> 766 767 PR libgomp/64625 768 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12): 769 Remove macros. 770 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros. 771 * types.def (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR) 772 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR): 773 Remove function types. 774 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR) 775 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR) 776 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR): 777 New function types. 778 7792015-02-22 Bernd Edlinger <bernd.edlinger@hotmail.de> 780 781 PR fortran/64980 782 PR fortran/61960 783 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Remove mapping 784 for component references to class objects. 785 (gfc_conv_procedure_call): Compare the class by name. 786 7872015-02-13 Jerry DeLisle <jvdelisle@gcc.gnu.org> 788 789 PR fortran/64506 790 * scanner.c (gfc_next_char_literal): For free form source, 791 check for '!' and if found, clear the comment and go back 792 and get the next character. For fixed form source, skip the 793 rest of the line. 794 7952015-02-12 Paul Thomas <pault@gcc.gnu.org> 796 797 PR fortran/64932 798 * trans-stmt.c (gfc_trans_deallocate): If a component array 799 expression is not a descriptor type and it is a derived type 800 that has allocatable components and is not finalizable, then 801 deallocate the allocatable components. 802 8032015-02-08 Mikael Morin <mikael@gcc.gnu.org> 804 805 PR fortran/63744 806 * module.c (check_for_ambiguous): Change argument type 807 from gfc_symbol to gfc_symtree. Check local (symtree) name 808 instead of original (symbol) name. 809 (read_module): Update caller. 810 8112015-02-06 Paul Thomas <pault@gcc.gnu.org> 812 813 PR fortran/63205 814 * gfortran.h: Add 'must finalize' field to gfc_expr and 815 prototypes for gfc_is_alloc_class_scalar_function and for 816 gfc_is_alloc_class_array_function. 817 * expr.c (gfc_is_alloc_class_scalar_function, 818 gfc_is_alloc_class_array_function): New functions. 819 * trans-array.c (gfc_add_loop_ss_code): Do not move the 820 expression for allocatable class scalar functions outside the 821 loop. 822 (conv_array_index_offset): Cope with deltas being NULL_TREE. 823 (build_class_array_ref): Do not return with allocatable class 824 array functions. Add code to pick out the returned class array. 825 Dereference if necessary and return if not a class object. 826 (gfc_conv_scalarized_array_ref): Cope with offsets being NULL. 827 (gfc_walk_function_expr): Return an array ss for the result of 828 an allocatable class array function. 829 * trans-expr.c (gfc_conv_subref_array_arg): Remove the assert 830 that the argument should be a variable. If an allocatable class 831 array function, set the offset to zero and skip the write-out 832 loop in this case. 833 (gfc_conv_procedure_call): Add allocatable class array function 834 to the assert. Call gfc_conv_subref_array_arg for allocatable 835 class array function arguments with derived type formal arg.. 836 Add the code for handling allocatable class functions, including 837 finalization calls to prevent memory leaks. 838 (arrayfunc_assign_needs_temporary): Return if an allocatable 839 class array function. 840 (gfc_trans_assignment_1): Set must_finalize to rhs expression 841 for allocatable class functions. Set scalar_to_array as needed 842 for scalar class allocatable functions assigned to an array. 843 Nullify the allocatable components corresponding the the lhs 844 derived type so that the finalization does not free them. 845 8462015-01-29 Andre Vehreschild <vehre@gmx.de> 847 Janus Weil <janus@gcc.gnu.org> 848 849 PR fortran/60289 850 Initial patch by Janus Weil 851 * resolve.c (resolve_allocate_expr): Add check for comp. only 852 when target is not unlimited polymorphic. 853 * trans-stmt.c (gfc_trans_allocate): Assign correct value to 854 _len component of unlimited polymorphic entities. 855 8562015-02-05 Tobias Burnus <burnus@net-b.de> 857 858 PR fortran/64943 859 * resolve.c (resolve_transfer): Also check structure 860 constructors. 861 8622015-02-05 Paul Thomas <pault@gcc.gnu.org> 863 864 PR fortran/64757 865 * resolve.c (resolve_structure_cons): Obtain the rank of class 866 components. 867 * trans-expr.c (gfc_trans_alloc_subarray_assign): Do the 868 assignment to allocatable class array components. 869 (alloc_scalar_allocatable_for_subcomponent_assignment): If comp 870 is a class component, allocate to the _data field. 871 (gfc_trans_subcomponent_assign): If a class component with a 872 derived type expression set the _vptr field and for array 873 components, call gfc_trans_alloc_subarray_assign. For scalars, 874 the assignment is performed here. 875 8762015-02-04 Jakub Jelinek <jakub@redhat.com> 877 878 * options.c: Include langhooks.h. 879 (gfc_post_options): Change lang_hooks.name based on 880 selected -std= mode. 881 8822015-02-03 Steven G. Kargl <kargl@gcc.gnu.org> 883 884 * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1. 885 8862015-01-30 Andre Vehreschild <vehre@gmx.de> 887 888 * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code. 889 * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation. 890 Fixed datatype of charlen to be a 32-bit int. 891 8922015-02-01 Joseph Myers <joseph@codesourcery.com> 893 894 * error.c (gfc_warning (const char *, ...), gfc_warning_now (const 895 char *, ...)): Remove functions. 896 * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now 897 (const char *, ...)): Remove declarations. 898 * arith.c, check.c, data.c, decl.c, frontend-passes.c, 899 interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c, 900 options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c, 901 trans-common.c, trans-const.c, trans-stmt.c: All callers of 902 gfc_warning and gfc_warning_now changed to pass 0 or option number 903 as first argument. 904 9052015-01-30 Joseph Myers <joseph@codesourcery.com> 906 907 * f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All 908 callers of fatal_error changed to pass input_location as first 909 argument. 910 9112015-01-28 Tobias Burnus <burnus@net-b.de> 912 913 * intrinsic.texi (CO_BROADCAST): Correct argument description. 914 9152015-01-27 Tobias Burnus <burnus@net-b.de> 916 917 PR fortran/63861 918 * trans-openmp.c (gfc_has_alloc_comps, gfc_trans_omp_clauses): 919 Fix handling for scalar coarrays. 920 * trans-types.c (gfc_get_element_type): Add comment. 921 9222015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 923 924 PR fortran/64771 925 * interface.c: Remove <algorithm>. 926 (check_dummy_characteristics): Use MAX instead of std::max. 927 9282015-01-26 Paul Thomas <pault@gcc.gnu.org> 929 930 PR fortran/62044 931 * resolve.c (resolve_allocate_expr): If the default initializer 932 is NULL, keep the original MOLD expression so that the correct 933 typespec is available. 934 9352015-01-26 Tobias Burnus <burnus@net-b.de> 936 937 PR fortran/64771 938 * interface.c (check_dummy_characteristics): Fix coarray handling. 939 9402015-01-26 Tobias Burnus <burnus@net-b.de> 941 942 * io.c (gfc_match_inquire): Replace "-1" by a defined constant. 943 9442015-01-26 Janus Weil <janus@gcc.gnu.org> 945 946 PR fortran/64230 947 * class.c (finalize_component): New argument 'sub_ns'. Insert code to 948 check if 'expr' is associated. 949 (generate_finalization_wrapper): Rename 'ptr' symbols to 'ptr1' and 950 'ptr2'. Pass 'sub_ns' to finalize_component. 951 9522015-01-25 Mikael Morin <mikael@gcc.gnu.org> 953 954 PR fortran/62044 955 * decl.c (gfc_match_derived_decl): Don't insert a new symtree element. 956 * module.c (MOD_VERSION): Bump. 957 (write_module): Don't write list of extensions. 958 (read_module): Don't jump over list of extensions; 959 don't load list of extensions. 960 (load_derived_extensions, write_dt_extensions, 961 write_derived_extensions): Remove. 962 9632015-01-24 Tobias Burnus <burnus@net-b.de> 964 965 * parse.c (gfc_parse_file): Fix two-location gfc_error call. 966 9672015-01-23 Martin Liska <mliska@suse.cz> 968 969 * decl.c (attr_decl1): Workaround -Wmaybe-uninitialized 970 false positive during profiledbootstrap by initializing them. 971 * matchexp.c (match_mult_operand): Likewise. 972 * module.c (write_atom): Likewise. 973 (read_module): Likewise. 974 9752015-01-23 Tom de Vries <tom@codesourcery.com> 976 977 PR libgomp/64672 978 * lang.opt (fopenacc): Mark as LTO option. 979 9802015-01-23 Tom de Vries <tom@codesourcery.com> 981 982 PR libgomp/64707 983 * lang.opt (fopenmp): Mark as LTO option. 984 9852015-01-23 Andre Vehreschild <vehre@gmx.de> 986 987 * trans-decl.c (gfc_finish_var_decl): Fixed moved comment. 988 * trans-stmt.c (gfc_trans_allocate): Fixed indentation. 989 9902015-01-23 Jakub Jelinek <jakub@redhat.com> 991 992 * gfc-diagnostic.def (DK_ICE_NOBT): New kind. 993 9942015-01-23 Janus Weil <janus@gcc.gnu.org> 995 996 PR fortran/60922 997 * class.c (finalize_component): Apply the check for 'fini_coarray' only 998 to coarray components. 999 10002015-01-23 Tobias Burnus <burnus@net-b.de> 1001 1002 PR fortran/64726 1003 * trans-openmp.c (gfc_trans_oacc_combined_directive): Fix 1004 loop generation. 1005 10062015-01-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1007 1008 PR fortran/61933 1009 * libgfortran.h: 1010 * trans-io.c (set_parameter_value): Delete use of has_iostat. 1011 Redefine to not generate any runtime error check calls. 1012 (set_parameter_value_chk): Rename of the former 1013 set_parameter_value with the runtime error checks and fix 1014 whitespace. (set_parameter_value_inquire): New function that 1015 builds a runtime conditional block to set the INQUIRE 1016 common parameter block unit number to -2 when unit numbers 1017 exceed positive KIND=4 limits. (gfc_trans_open): Whitespace. 1018 For unit, use the renamed set_parameter_value_chk. 1019 (gfc_trans_close): Likewise use renamed function. 1020 (build_filepos): Whitespace and use renamed function. 1021 (gfc_trans_inquire): Whitespace and for unit use 1022 set_parameter_value and set_parameter_value_inquire. 1023 (gfc_trans_wait): Remove p->iostat from call to 1024 set_parameter_value. Use new set_parameter_value_chk for unit. 1025 (build_dt): Use the new set_parameter_value without p->iostat 1026 and fix whitespace. Use set_parameter_value_chk for unit. 1027 10282015-01-21 Thomas Koenig <tkoenig@netcologne.de> 1029 1030 PR fortran/57023 1031 * dependency.c (callback_dummy_intent_not_int): New function. 1032 (dummy_intent_not_in): New function. 1033 (gfc_full_array_ref_p): Use dummy_intent_not_in. 1034 10352015-01-18 Andre Vehreschild <vehre@gmx.de> 1036 Janus Weil <janus@gcc.gnu.org> 1037 1038 PR fortran/60255 1039 * class.c (gfc_get_len_component): New. 1040 (gfc_build_class_symbol): Add _len component to unlimited 1041 polymorphic entities. 1042 (find_intrinsic_vtab): Removed emitting of error message. 1043 * gfortran.h: Added prototype for gfc_get_len_component. 1044 * simplify.c (gfc_simplify_len): Use _len component where 1045 available. 1046 * trans-expr.c (gfc_class_len_get): New. 1047 (gfc_conv_intrinsic_to_class): Add handling for deferred 1048 character arrays. 1049 (gfc_conv_structure): Treat _len component correctly. 1050 (gfc_conv_expr): Prevent bind_c handling when not required. 1051 (gfc_trans_pointer_assignment): Propagate _len component. 1052 * trans-stmt.c (class_has_len_component): New. 1053 (trans_associate_var): _len component treatment for associate 1054 context. 1055 (gfc_trans_allocate): Same as for trans_associate_var() 1056 * trans.h: Added prototype for gfc_class_len_get. 1057 10582015-01-18 Paul Thomas <pault@gcc.gnu.org> 1059 1060 PR fortran/57959 1061 * trans-expr.c (gfc_trans_subcomponent_assign): Use a deep copy 1062 for allocatable components, where the source is a variable. 1063 10642015-01-18 Paul Thomas <pault@gcc.gnu.org> 1065 1066 PR fortran/55901 1067 * primary.c (gfc_match_varspec): Exclude dangling associate- 1068 names with dimension 0 from being counted as arrays. 1069 * resolve.c (resolve_assoc_var): Sub-strings are permissible 1070 for associate-names, so exclude characters from the test for 1071 misuse as arrays. 1072 * trans-decl.c (gfc_get_symbol_decl): Associate-names can use 1073 the hidden string length variable of their associated target. 1074 Signal this by setting 'length' to a constant, if the decl for 1075 the string length is a variable. 1076 10772015-01-17 Paul Thomas <pault@gcc.gnu.org> 1078 1079 PR fortran/64578 1080 * trans-expr.c (gfc_trans_pointer_assignment): Make sure that 1081 before reinitializing rse, to add the rse.pre to block before 1082 creating 'ptrtemp'. 1083 * trans-intrinsic.c (gfc_conv_associated): Deal with the class 1084 data being a descriptor. 1085 10862015-01-17 Andre Vehreschild <vehre@gmx.de> 1087 1088 PR fortran/60357 1089 * primary.c (build_actual_constructor): Prevent warning. 1090 * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_ 1091 assignment): New function encapsulates treatment of allocatable 1092 components. 1093 (gfc_trans_subcomponent_assign): Needed to distinguish between 1094 regular assignment and initilization. 1095 (gfc_trans_structure_assign): Same. 1096 (gfc_conv_structure): Same. 1097 1098 PR fortran/61275 1099 * gfortran.h: deferred_parameter is not needed, because 1100 it artificial does the trick completely. 1101 * primary.c (build_actual_constructor): Same. 1102 (gfc_convert_to_structure_constructor): Same. 1103 * resolve.c (resolve_fl_derived0): Same. 1104 * trans-expr.c (gfc_conv_component_ref): Prevent treating 1105 allocatable deferred length char arrays here. 1106 (gfc_trans_subcomponent_assign): Same as above. 1107 * trans-types.c (gfc_sym_type): This is done in 1108 gfc_get_derived_type already. 1109 11102015-01-17 Andre Vehreschild <vehre@gmx.de> 1111 1112 PR fortran/60334 1113 * trans-decl.c (gfc_get_symbol_decl):Use a ref on the string 1114 length when the symbol is declared to be a result. 1115 * trans-expr.c (gfc_conv_procedure_call): Strip deref on the 1116 string length when functions are nested and the string length 1117 is a reference already. 1118 11192015-01-16 Janus Weil <janus@gcc.gnu.org> 1120 1121 PR fortran/45290 1122 * decl.c (match_pointer_init): Error out if resolution of init expr 1123 failed. 1124 11252015-01-15 Tobias Burnus <burnus@net-b.de> 1126 1127 * openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses, 1128 resolve_oacc_deviceptr_clause, resolve_omp_clauses, 1129 gfc_resolve_oacc_declare): Replace '%s' by %qs. 1130 11312015-01-15 Thomas Schwinge <thomas@codesourcery.com> 1132 Cesar Philippidis <cesar@codesourcery.com> 1133 James Norris <jnorris@codesourcery.com> 1134 Ilmir Usmanov <i.usmanov@samsung.com> 1135 Tobias Burnus <burnus@net-b.de> 1136 1137 * lang.opt (fopenacc): New option. 1138 * cpp.c (cpp_define_builtins): Conditionally define _OPENACC. 1139 * dump-parse-tree.c (show_omp_node): Split part of it into... 1140 (show_omp_clauses): ... this new function. 1141 (show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP, 1142 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, 1143 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, 1144 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE, 1145 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA. 1146 (show_namespace): Update for OpenACC. 1147 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8) 1148 (DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN) 1149 (DEF_GOACC_BUILTIN_COMPILER): New macros. 1150 * types.def (BT_FN_VOID_INT_INT_VAR) 1151 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR) 1152 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR): 1153 New function types. 1154 * gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP, 1155 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL, 1156 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA, 1157 ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, 1158 ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, 1159 ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP, 1160 ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA, 1161 ST_OACC_ROUTINE. 1162 (struct gfc_expr_list): New data type. 1163 (gfc_get_expr_list): New macro. 1164 (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC, 1165 OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM, 1166 OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR. 1167 (OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE) 1168 (OMP_LIST_CACHE): New enumerators. 1169 (struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr, 1170 vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr, 1171 wait_list, tile_list, async, gang, worker, vector, seq, 1172 independent, wait, par_auto, gang_static, and loc members. 1173 (struct gfc_namespace): Add oacc_declare_clauses member. 1174 (gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP, 1175 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS, 1176 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, 1177 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE, 1178 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA. 1179 (gfc_free_expr_list, gfc_resolve_oacc_directive) 1180 (gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks) 1181 (gfc_resolve_oacc_blocks): New prototypes. 1182 * match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and 1183 EXEC_OACC_PARALLEL_LOOP. 1184 * match.h (gfc_match_oacc_cache, gfc_match_oacc_wait) 1185 (gfc_match_oacc_update, gfc_match_oacc_declare) 1186 (gfc_match_oacc_loop, gfc_match_oacc_host_data) 1187 (gfc_match_oacc_data, gfc_match_oacc_kernels) 1188 (gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel) 1189 (gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data) 1190 (gfc_match_oacc_exit_data, gfc_match_oacc_routine): New 1191 prototypes. 1192 * openmp.c: Include "diagnostic.h" and "gomp-constants.h". 1193 (gfc_free_omp_clauses): Update for members added to struct 1194 gfc_omp_clauses. 1195 (gfc_match_omp_clauses): Change mask paramter to uint64_t. Add 1196 openacc parameter. 1197 (resolve_omp_clauses): Add openacc parameter. Update for OpenACC. 1198 (struct fortran_omp_context): Add is_openmp member. 1199 (gfc_resolve_omp_parallel_blocks): Initialize it. 1200 (gfc_resolve_do_iterator): Update for OpenACC. 1201 (gfc_resolve_omp_directive): Call 1202 resolve_omp_directive_inside_oacc_region. 1203 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE) 1204 (OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE) 1205 (OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION) 1206 (OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE) 1207 (OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE) 1208 (OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE) 1209 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH) 1210 (OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND) 1211 (OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM) 1212 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO) 1213 (OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT) 1214 (OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t. 1215 (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS) 1216 (OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT) 1217 (OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT) 1218 (OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN) 1219 (OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE) 1220 (OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER) 1221 (OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT) 1222 (OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT) 1223 (OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT) 1224 (OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros. 1225 (gfc_match_omp_clauses): Handle those. 1226 (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES) 1227 (OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES) 1228 (OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES) 1229 (OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES) 1230 (OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES) 1231 (OACC_WAIT_CLAUSES): New macros. 1232 (gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang) 1233 (gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop) 1234 (gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop) 1235 (gfc_match_oacc_kernels, gfc_match_oacc_data) 1236 (gfc_match_oacc_host_data, gfc_match_oacc_loop) 1237 (gfc_match_oacc_declare, gfc_match_oacc_update) 1238 (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data) 1239 (gfc_match_oacc_wait, gfc_match_oacc_cache) 1240 (gfc_match_oacc_routine, oacc_is_loop) 1241 (resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr) 1242 (check_symbol_not_pointer, check_array_not_assumed) 1243 (resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause) 1244 (oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels) 1245 (omp_code_to_statement, oacc_code_to_statement) 1246 (resolve_oacc_directive_inside_omp_region) 1247 (resolve_omp_directive_inside_oacc_region) 1248 (resolve_oacc_nested_loops, resolve_oacc_params_in_parallel) 1249 (resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks) 1250 (resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare) 1251 (gfc_resolve_oacc_directive): New functions. 1252 * parse.c (next_free): Update for OpenACC. Move some code into... 1253 (verify_token_free): ... this new function. 1254 (next_fixed): Update for OpenACC. Move some code into... 1255 (verify_token_fixed): ... this new function. 1256 (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT, 1257 ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA. 1258 (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL, 1259 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP, 1260 ST_OACC_KERNELS_LOOP. 1261 (case_decl): Add ST_OACC_ROUTINE. 1262 (push_state, parse_critical_block, parse_progunit): Update for 1263 OpenACC. 1264 (gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP, 1265 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL, 1266 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP, 1267 ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA, 1268 ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP, 1269 ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT, 1270 ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA, 1271 ST_OACC_ROUTINE. 1272 (verify_st_order, parse_spec): Handle ST_OACC_DECLARE. 1273 (parse_executable): Handle ST_OACC_PARALLEL_LOOP, 1274 ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL, 1275 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA. 1276 (decode_oacc_directive, parse_oacc_structured_block) 1277 (parse_oacc_loop, is_oacc): New functions. 1278 * parse.h (struct gfc_state_data): Add oacc_declare_clauses 1279 member. 1280 (is_oacc): New prototype. 1281 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle 1282 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, 1283 EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA, 1284 EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE, 1285 EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA, 1286 EXEC_OACC_EXIT_DATA. 1287 (resolve_codes): Call gfc_resolve_oacc_declare. 1288 * scanner.c (openacc_flag, openacc_locus): New variables. 1289 (skip_free_comments): Update for OpenACC. Move some code into... 1290 (skip_omp_attribute): ... this new function. 1291 (skip_oacc_attribute): New function. 1292 (skip_fixed_comments, gfc_next_char_literal): Update for OpenACC. 1293 * st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP, 1294 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, 1295 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, 1296 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE, 1297 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA. 1298 * trans-decl.c (gfc_generate_function_code): Update for OpenACC. 1299 * trans-openmp.c: Include "gomp-constants.h". 1300 (gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_* 1301 instead of OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND. 1302 (gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE, 1303 OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC, 1304 OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, 1305 OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT, 1306 OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq, 1307 independent, wait_list, num_gangs_expr, num_workers_expr, 1308 vector_length_expr, vector, vector_expr, worker, worker_expr, 1309 gang, gang_expr members. 1310 (gfc_trans_omp_do): Handle EXEC_OACC_LOOP. 1311 (gfc_convert_expr_to_tree, gfc_trans_oacc_construct) 1312 (gfc_trans_oacc_executable_directive) 1313 (gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive) 1314 (gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions. 1315 * trans-stmt.c (gfc_trans_block_construct): Update for OpenACC. 1316 * trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare): 1317 New prototypes. 1318 * trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT, 1319 EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA, 1320 EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP, 1321 EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA, 1322 EXEC_OACC_EXIT_DATA. 1323 * gfortran.texi: Update for OpenACC. 1324 * intrinsic.texi: Likewise. 1325 * invoke.texi: Likewise. 1326 13272015-01-15 Janus Weil <janus@gcc.gnu.org> 1328 1329 PR fortran/58023 1330 * resolve.c (resolve_fl_derived0): Continue resolving next component 1331 after error. 1332 13332015-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1334 1335 PR fortran/61933 1336 * io.c (gfc_match_inquire): Generate error if unit number in 1337 inquire statement is a constant -1. All other values allowed. 1338 * trans-io.c (gfc_trans_inquire): Delete dummy iostat variable. 1339 (create_dummy_iostat): Delete function no longer used. 1340 13412015-01-13 Jakub Jelinek <jakub@redhat.com> 1342 1343 PR fortran/64528 1344 * trans-decl.c (create_function_arglist): Don't set TREE_READONLY 1345 on dummy args with VALUE attribute. 1346 13472015-01-11 Janus Weil <janus@gcc.gnu.org> 1348 1349 PR fortran/63733 1350 * interface.c (gfc_extend_expr): Look for type-bound operators before 1351 non-typebound ones. 1352 13532015-01-11 Janus Weil <janus@gcc.gnu.org> 1354 1355 PR fortran/58023 1356 * resolve.c (resolve_fl_derived0): Set error flag if problems with the 1357 interface of a procedure-pointer component were detected. 1358 13592015-01-11 Janus Weil <janus@gcc.gnu.org> 1360 1361 PR fortran/64508 1362 * interface.c (compare_parameter): Interface check for 1363 procedure-pointer component as actual argument. 1364 13652015-01-10 Thomas Schwinge <thomas@codesourcery.com> 1366 1367 * gfortran.texi: Update for libgomp being renamed from "GNU OpenMP 1368 Runtime Library" to "GNU Offloading and Multi Processing Runtime 1369 Library". 1370 * intrinsic.texi: Likewise. 1371 13722015-01-10 Tobias Burnus <burnus@net-b.de> 1373 1374 PR fortran/64522 1375 * invoke.texi (Wline-truncation): Document new behaviour. 1376 * lang.opt (Wline-truncation): Add Init(-1). 1377 * options.c (gfc_post_options): If -Wline-truncation is unset, 1378 enable it for free-form source files; for the latter, also use 1379 -Werror=line-truncation, unless -Wno-error has been specified. 1380 13812015-01-09 Michael Collison <michael.collison@linaro.org> 1382 1383 * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1384 input.h, alias.h, symtab.h, options.h, fold-const.h, 1385 wide-int.h, and inchash.h due to flattening of tree.h. 1386 * cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1387 input.h, alias.h, symtab.h, fold-const.h, 1388 wide-int.h, and inchash.h due to flattening of tree.h. 1389 * decl.c: Ditto. 1390 * f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1391 input.h, alias.h, symtab.h, options.h, fold-const.h, 1392 wide-int.h, and inchash.h due to flattening of tree.h. 1393 * iresolve.c: Ditto. 1394 * match.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1395 input.h, alias.h, symtab.h, fold-const.h, 1396 wide-int.h, and inchash.h due to flattening of tree.h. 1397 * module.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1398 input.h, alias.h, symtab.h, options.h, fold-const.h, 1399 wide-int.h, and inchash.h due to flattening of tree.h. 1400 * options.c: Ditto. 1401 * target-memory.c: Include hash-set.h, vec.h, 1402 double-int.h, input.h, alias.h, symtab.h, fold-const.h, 1403 wide-int.h, and inchash.h due to flattening of tree.h. 1404 * trans-array.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1405 input.h, alias.h, symtab.h, options.h, fold-const.h, 1406 wide-int.h, and inchash.h due to flattening of tree.h. 1407 * trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1408 input.h, alias.h, symtab.h, options.h, fold-const.h, 1409 wide-int.h, and inchash.h due to flattening of tree.h. 1410 * trans-common.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1411 input.h, alias.h, symtab.h, fold-const.h, 1412 wide-int.h, and inchash.h due to flattening of tree.h. 1413 * trans-const.c: Ditto. 1414 * trans-decl.c: Ditto. 1415 * trans-expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1416 input.h, alias.h, symtab.h, options.h, fold-const.h, 1417 wide-int.h, and inchash.h due to flattening of tree.h. 1418 * trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1419 input.h, alias.h, symtab.h, fold-const.h, 1420 wide-int.h, inchash.h and real.h due to flattening of tree.h. 1421 * trans-io.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1422 input.h, alias.h, symtab.h, options.h, fold-const.h, 1423 wide-int.h, and inchash.h due to flattening of tree.h. 1424 * trans-openmp.c: Ditto. 1425 * trans-stmt.c: Ditto. 1426 * trans-types.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 1427 input.h, alias.h, symtab.h, fold-const.h, 1428 wide-int.h, inchash.h and real.h due to flattening of tree.h. 1429 14302015-01-08 Tobias Burnus <burnus@net-b.de> 1431 1432 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens 1433 for module coarrays with -fcoarray=lib. 1434 (get_proc_pointer_decl): As module variable, make only public 1435 when not marked as private. 1436 14372015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org> 1438 1439 PR fortran/47674 1440 * dependency.h: Actually commit changes. 1441 14422015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org> 1443 1444 PR fortran/47674 1445 * dependency.c: Update copyright years. 1446 (gfc_discard_nops): Add prototype. 1447 * dependency.c (discard_nops): Rename to gfc_discard_nops, 1448 make non-static. 1449 (gfc_discard_nops): Use gfc_discard_nops. 1450 (gfc_dep_difference): Likewise. 1451 * frontend-passes.c Update copyright years. 1452 (realloc_strings): New function. Add prototype. 1453 (gfc_run_passes): Call realloc_strings. 1454 (realloc_string_callback): New function. 1455 (create_var): Add prototype. Handle case of a 1456 scalar character variable. 1457 (optimize_trim): Do not handle allocatable variables. 1458 14592015-01-05 Jakub Jelinek <jakub@redhat.com> 1460 1461 Update copyright years. 1462 1463 * gfortranspec.c (lang_specific_driver): Update copyright notice 1464 dates. 1465 * gfc-internals.texi: Bump @copying's copyright year. 1466 * gfortran.texi: Ditto. 1467 * intrinsic.texi: Ditto. 1468 * invoke.texi: Ditto. 1469 14702015-01-02 Janus Weil <janus@gcc.gnu.org> 1471 1472 PR fortran/57562 1473 * expr.c (find_component_ref): Deal with extended types. 1474 14752015-01-02 Tobias Burnus <burnus@net-b.de> 1476 1477 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens 1478 for module coarrays with -fcoarray=lib. 1479 14802015-01-02 Janus Weil <janus@gcc.gnu.org> 1481 1482 PR fortran/60507 1483 * interface.c (is_procptr_result): New function to check if an 1484 expression is a procedure-pointer result. 1485 (compare_actual_formal): Use it. 1486^L 1487Copyright (C) 2015 Free Software Foundation, Inc. 1488 1489Copying and distribution of this file, with or without modification, 1490are permitted in any medium without royalty provided the copyright 1491notice and this notice are preserved. 1492