12021-12-29 Harald Anlauf <anlauf@gmx.de> 2 3 PR fortran/102332 4 * expr.c (gfc_get_variable_expr): Avoid NULL pointer dereferences 5 during handling of errors with invalid uses of CLASS variables. 6 * match.c (select_type_set_tmp): Likewise. 7 * primary.c (gfc_match_varspec): Likewise. 8 * resolve.c (resolve_variable): Likewise. 9 (resolve_select_type): Likewise. 10 112021-12-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 12 13 PR fortran/103828 14 * trans-decl.c (generate_local_decl): Do not call 15 gfc_conv_scalar_char_value(), but check the type tree. 16 * trans-expr.c (gfc_conv_scalar_char_value): Rename to 17 conv_scalar_char_value, do not alter type tree. 18 (gfc_conv_procedure_call): Adjust call to renamed 19 conv_scalar_char_value() function. 20 * trans-types.c (gfc_sym_type): Take care of 21 CHARACTER(C_CHAR), VALUE arguments. 22 * trans.h (gfc_conv_scalar_char_value): Remove prototype. 23 242021-12-28 Martin Liska <mliska@suse.cz> 25 26 * gfortran.texi: Replace http:// with https. 27 * intrinsic.texi: Likewise. 28 292021-12-22 Harald Anlauf <anlauf@gmx.de> 30 31 PR fortran/103778 32 * check.c (is_c_interoperable): A BOZ literal constant is not 33 interoperable. 34 352021-12-22 Harald Anlauf <anlauf@gmx.de> 36 37 PR fortran/103776 38 * match.c (match_case_selector): Reject expressions in CASE 39 selector which are not scalar. 40 412021-12-18 Harald Anlauf <anlauf@gmx.de> 42 43 PR fortran/103412 44 * check.c (gfc_check_sizeof): Reject BOZ type argument. 45 462021-12-14 Harald Anlauf <anlauf@gmx.de> 47 48 PR fortran/103717 49 * frontend-passes.c (doloop_code): Prevent NULL pointer 50 dereference when checking for passing a do-loop variable to a 51 contained procedure with an interface mismatch. 52 532021-12-14 Harald Anlauf <anlauf@gmx.de> 54 55 PR fortran/103718 56 PR fortran/103719 57 * frontend-passes.c (doloop_contained_procedure_code): Add several 58 checks to prevent NULL pointer dereferences on valid and invalid 59 code called within do-loops. 60 612021-12-14 Manfred Schwarb <manfred99@gmx.ch> 62 63 PR fortran/91497 64 * simplify.c (simplify_min_max): Disable conversion warnings for 65 MIN1 and MAX1. 66 672021-12-13 Tobias Burnus <tobias@codesourcery.com> 68 69 PR fortran/103576 70 * openmp.c (is_scalar_intrinsic_expr): Fix condition. 71 (resolve_omp_atomic): Fix/update checks, accept compare. 72 * trans-openmp.c (gfc_trans_omp_atomic): Handle compare. 73 742021-12-11 Harald Anlauf <anlauf@gmx.de> 75 76 PR fortran/103606 77 * resolve.c (resolve_fl_procedure): Do not access CLASS components 78 before class container has been built. 79 802021-12-10 Harald Anlauf <anlauf@gmx.de> 81 82 PR fortran/103418 83 * check.c (variable_check): Replace previous check of procedure 84 dummy arguments with INTENT(IN) attribute when passed to intrinsic 85 procedures by gfc_check_vardef_context. 86 * expr.c (gfc_check_vardef_context): Correct check of INTENT(IN) 87 dummy arguments for the case of sub-components of a CLASS pointer. 88 892021-12-08 Harald Anlauf <anlauf@gmx.de> 90 91 PR fortran/103609 92 * symbol.c (gfc_sym_get_dummy_args): Catch NULL pointer 93 dereference. 94 952021-12-08 Harald Anlauf <anlauf@gmx.de> 96 97 PR fortran/103610 98 * array.c (spec_dimen_size): Fix simplification of SHAPE: 99 dimensions must be non-negative. 100 1012021-12-08 Chung-Lin Tang <cltang@codesourcery.com> 102 103 * trans-openmp.c (gfc_trans_omp_array_section): Do not generate 104 GOMP_MAP_ALWAYS_POINTER map for main array maps of ARRAY_TYPE type. 105 1062021-12-07 Harald Anlauf <anlauf@gmx.de> 107 108 PR fortran/103607 109 * frontend-passes.c (do_subscript): Ensure that array bounds are 110 of type INTEGER before performing checks on array subscripts. 111 1122021-12-07 Harald Anlauf <anlauf@gmx.de> 113 114 PR fortran/103588 115 * array.c (gfc_ref_dimen_size): Do not generate internal error on 116 failed simplification of stride expression; just return failure. 117 1182021-12-07 Harald Anlauf <anlauf@gmx.de> 119 120 PR fortran/103591 121 * match.c (match_case_selector): Check type of upper bound in case 122 range. 123 1242021-12-04 Tobias Burnus <tobias@codesourcery.com> 125 126 * dump-parse-tree.c (show_omp_clauses): Handle 127 weak/compare/fail clause. 128 * gfortran.h (gfc_omp_clauses): Add weak, compare, fail. 129 * openmp.c (enum omp_mask1, gfc_match_omp_clauses, 130 OMP_ATOMIC_CLAUSES): Update for new clauses. 131 (gfc_match_omp_atomic): Update for 5.1 atomic changes. 132 (is_conversion): Support widening in one go. 133 (is_scalar_intrinsic_expr): New. 134 (resolve_omp_atomic): Update for 5.1 atomic changes. 135 * parse.c (parse_omp_oacc_atomic): Update for compare. 136 * resolve.c (gfc_resolve_blocks): Update asserts. 137 * trans-openmp.c (gfc_trans_omp_atomic): Handle new clauses. 138 1392021-12-03 Harald Anlauf <anlauf@gmx.de> 140 Steven G. Kargl <kargl@gcc.gnu.org> 141 142 PR fortran/103505 143 * array.c (match_array_element_spec): Try to simplify array 144 element specifications to improve early checking. 145 * expr.c (gfc_try_simplify_expr): New. Try simplification of an 146 expression via gfc_simplify_expr. When an error occurs, roll 147 back. 148 * gfortran.h (gfc_try_simplify_expr): Declare it. 149 1502021-12-03 Tobias Burnus <tobias@codesourcery.com> 151 152 * trans-stmt.c (gfc_trans_allocate): Set e3_has_nodescriptor to true 153 only for non-named arrays. 154 1552021-12-02 Chung-Lin Tang <cltang@codesourcery.com> 156 157 PR fortran/90030 158 * trans-openmp.c (gfc_omp_finish_clause): Remove fold_convert to pointer 159 to char_type_node, add gcc_assert of POINTER_TYPE_P. 160 (gfc_trans_omp_array_section): Likewise. 161 (gfc_trans_omp_clauses): Likewise. 162 1632021-11-30 Harald Anlauf <anlauf@gmx.de> 164 165 PR fortran/102787 166 * array.c (expand_constructor): When encountering a constant array 167 expression or array section within a constructor, simplify it to 168 enable better expansion. 169 1702021-11-30 Harald Anlauf <anlauf@gmx.de> 171 172 PR fortran/103473 173 * simplify.c (simplify_minmaxloc_nodim): Avoid NULL pointer 174 dereference when shape is not set. 175 1762021-11-30 Harald Anlauf <anlauf@gmx.de> 177 Steven G. Kargl <kargl@gcc.gnu.org> 178 179 PR fortran/101565 180 * check.c (gfc_check_image_index): Verify that SUB argument to 181 IMAGE_INDEX is of type integer. 182 1832021-11-30 Richard Biener <rguenther@suse.de> 184 185 * frontend-passes.c (gfc_expr_walker): Add comment to 186 indicate tail recursion. 187 1882021-11-30 Richard Biener <rguenther@suse.de> 189 190 * target-memory.c (gfc_element_size): Remove unreachable return. 191 1922021-11-30 Thomas Schwinge <thomas@codesourcery.com> 193 194 * openmp.c (resolve_oacc_loop_blocks): Remove "gang reduction on 195 an orphan loop" checking. 196 (oacc_is_parallel, oacc_is_kernels, oacc_is_serial) 197 (oacc_is_compute_construct): Remove. 198 1992021-11-30 Frederik Harwath <frederik@codesourcery.com> 200 Thomas Schwinge <thomas@codesourcery.com> 201 202 * openmp.c (oacc_is_parallel_or_serial): Evolve into... 203 (oacc_is_compute_construct): ... this function. 204 (resolve_oacc_loop_blocks): Use "oacc_is_compute_construct" 205 instead of "oacc_is_parallel_or_serial" for checking that a 206 loop is not orphaned. 207 2082021-11-30 Kwok Cheung Yeung <kcy@codesourcery.com> 209 Thomas Schwinge <thomas@codesourcery.com> 210 211 * openmp.c (oacc_is_serial, oacc_is_parallel_or_serial): New. 212 (resolve_oacc_loop_blocks): Use oacc_is_parallel_or_serial instead of 213 oacc_is_parallel. 214 2152021-11-30 Cesar Philippidis <cesar@codesourcery.com> 216 Thomas Schwinge <thomas@codesourcery.com> 217 218 * openmp.c (oacc_is_parallel, oacc_is_kernels): New 'static' 219 functions. 220 (resolve_oacc_loop_blocks): Emit an error on orphan OpenACC gang 221 reductions. 222 2232021-11-30 Richard Biener <rguenther@suse.de> 224 225 * decl.c (gfc_insert_parameter_exprs): Only return after 226 resetting type_param_spec_list. 227 2282021-11-30 Richard Biener <rguenther@suse.de> 229 230 * frontend-passes.c (gfc_expr_walker): Remove unreachable 231 break. 232 * scanner.c (skip_fixed_comments): Remove unreachable 233 gcc_unreachable. 234 * trans-expr.c (gfc_expr_is_variable): Refactor to make 235 control flow more obvious. 236 2372021-11-29 Eric Gallager <egallager@gcc.gnu.org> 238 239 PR other/103021 240 * Make-lang.in: Use ETAGS variable in TAGS target. 241 2422021-11-26 Harald Anlauf <anlauf@gmx.de> 243 244 PR fortran/103411 245 * check.c (gfc_check_reshape): Improve check of size of source 246 array for the RESHAPE intrinsic against the given shape when pad 247 is not given, and shape is a parameter. Try other simplifications 248 of shape. 249 2502021-11-23 Harald Anlauf <anlauf@gmx.de> 251 252 PR fortran/103392 253 * simplify.c (simplify_bound): Do not try to simplify 254 LBOUND/UBOUND for arrays with POINTER or ALLOCATABLE attribute. 255 2562021-11-23 Harald Anlauf <anlauf@gmx.de> 257 258 PR fortran/87711 259 PR fortran/87851 260 * trans-array.c (arg_evaluated_for_scalarization): Add LEN_TRIM to 261 list of intrinsics for which an optional KIND argument needs to be 262 removed before scalarization. 263 2642021-11-21 Jakub Jelinek <jakub@redhat.com> 265 266 PR debug/103315 267 * trans-types.c (gfc_get_array_descr_info): Use DW_OP_deref_size 1 268 instead of DW_OP_deref for DW_AT_rank. 269 2702021-11-21 Harald Anlauf <anlauf@gmx.de> 271 Steven G. Kargl <kargl@gcc.gnu.org> 272 273 PR fortran/99061 274 * trans-intrinsic.c (gfc_lookup_intrinsic): Helper function for 275 looking up gfortran builtin intrinsics. 276 (gfc_conv_intrinsic_atrigd): Use it. 277 (gfc_conv_intrinsic_cotan): Likewise. 278 (gfc_conv_intrinsic_cotand): Likewise. 279 (gfc_conv_intrinsic_atan2d): Likewise. 280 2812021-11-18 Harald Anlauf <anlauf@gmx.de> 282 Steven G. Kargl <kargl@gcc.gnu.org> 283 284 PR fortran/101329 285 * check.c (is_c_interoperable): Reject NULL() as it is not 286 interoperable. 287 2882021-11-16 Harald Anlauf <anlauf@gmx.de> 289 290 PR fortran/103286 291 * resolve.c (resolve_select): Choose appropriate range limit to 292 avoid NULL pointer dereference when generating error message. 293 2942021-11-16 Mikael Morin <mikael@gcc.gnu.org> 295 296 * interface.c (gfc_dummy_arg_get_name): New function. 297 * gfortran.h (gfc_dummy_arg_get_name): Declare it. 298 * trans-array.c (arg_evaluated_for_scalarization): Pass a dummy 299 argument wrapper as argument instead of an actual argument 300 and an index number. Check it’s non-NULL. Use its name 301 to identify it. 302 (gfc_walk_elemental_function_args): Update call to 303 arg_evaluated for scalarization. Remove argument counting. 304 3052021-11-16 Mikael Morin <mikael@gcc.gnu.org> 306 307 * gfortran.h (gfc_actual_arglist::missing_arg_type): Remove. 308 * interface.c (gfc_compare_actual_formal): Remove 309 missing_arg_type initialization. 310 * intrinsic.c (sort_actual): Ditto. 311 * trans-expr.c (gfc_conv_procedure_call): Use associated_dummy 312 and gfc_dummy_arg_get_typespec to get the dummy argument type. 313 3142021-11-16 Mikael Morin <mikael@gcc.gnu.org> 315 316 * interface.c (gfc_dummy_arg_get_typespec, 317 gfc_dummy_arg_is_optional): New functions. 318 * gfortran.h (gfc_dummy_arg_get_typespec, 319 gfc_dummy_arg_is_optional): Declare them. 320 * trans.h (gfc_ss_info::dummy_arg): Use the wrapper type 321 as declaration type. 322 * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference): 323 use gfc_dummy_arg_get_typespec function to get the type. 324 (gfc_walk_elemental_function_args): Remove proc_ifc argument. 325 Get info about the dummy arg using the associated_dummy field. 326 * trans-array.h (gfc_walk_elemental_function_args): Update declaration. 327 * trans-intrinsic.c (gfc_walk_intrinsic_function): 328 Update call to gfc_walk_elemental_function_args. 329 * trans-stmt.c (gfc_trans_call): Ditto. 330 (get_proc_ifc_for_call): Remove. 331 3322021-11-16 Mikael Morin <mikael@gcc.gnu.org> 333 334 * gfortran.h (gfc_dummy_arg_kind, gfc_dummy_arg): New. 335 (gfc_actual_arglist): New field associated_dummy. 336 (gfc_intrinsic_arg): Remove field actual. 337 * interface.c (get_nonintrinsic_dummy_arg): New. 338 (gfc_compare_actual): Initialize associated_dummy. 339 * intrinsic.c (get_intrinsic_dummy_arg): New. 340 (sort_actual): Add argument vectors. 341 Use loops with indices on argument vectors. 342 Initialize associated_dummy. 343 3442021-11-16 Mikael Morin <mikael@gcc.gnu.org> 345 346 * intrinsic.c (sort_actual): initialise variable and use it earlier. 347 3482021-11-15 Tobias Burnus <tobias@codesourcery.com> 349 350 * openmp.c (OMP_TARGET_CLAUSES): Add thread_limit. 351 * trans-openmp.c (gfc_split_omp_clauses): Add thread_limit also to 352 teams. 353 3542021-11-12 Tobias Burnus <tobias@codesourcery.com> 355 356 * parse.c (decode_omp_directive): Fix permitting 'nowait' for some 357 combined directives, add missing 'omp end ... loop'. 358 (gfc_ascii_statement): Fix ST_OMP_END_TEAMS_LOOP result. 359 * openmp.c (resolve_omp_clauses): Add missing combined loop constructs 360 case values to the 'if(directive-name: ...)' check. 361 * trans-openmp.c (gfc_split_omp_clauses): Put nowait on target if 362 first leaf construct accepting it. 363 3642021-11-12 Martin Jambor <mjambor@suse.cz> 365 366 * trans-types.c (gfc_get_array_descr_info): Use build_debug_expr_decl 367 instead of building DEBUG_EXPR_DECL manually. 368 3692021-11-12 Mikael Morin <mikael@gcc.gnu.org> 370 371 PR fortran/97896 372 * intrinsic.c (add_sym_4ind): Remove. 373 (add_functions): Use add_sym4 instead of add_sym4ind. 374 Don’t special case the index intrinsic. 375 * iresolve.c (gfc_resolve_index_func): Use the individual arguments 376 directly instead of the full argument list. 377 * intrinsic.h (gfc_resolve_index_func): Update the declaration 378 accordingly. 379 * trans-decl.c (gfc_get_extern_function_decl): Don’t modify the 380 list of arguments in the case of the index intrinsic. 381 * trans-array.h (gfc_get_intrinsic_for_expr, 382 gfc_get_proc_ifc_for_expr): New. 383 * trans-array.c (gfc_get_intrinsic_for_expr, 384 arg_evaluated_for_scalarization): New. 385 (gfc_walk_elemental_function_args): Add intrinsic procedure 386 as argument. Count arguments. Check arg_evaluated_for_scalarization. 387 * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call. 388 * trans-stmt.c (get_intrinsic_for_code): New. 389 (gfc_trans_call): Update call. 390 3912021-11-12 Jakub Jelinek <jakub@redhat.com> 392 393 * types.def (BT_FN_VOID_UINT_UINT): Remove. 394 (BT_FN_BOOL_UINT_UINT_UINT_BOOL): New. 395 3962021-11-11 Tobias Burnus <tobias@codesourcery.com> 397 398 * gfortran.h (struct gfc_omp_clauses): Rename num_teams to 399 num_teams_upper, add num_teams_upper. 400 * dump-parse-tree.c (show_omp_clauses): Update to handle 401 lower-bound num_teams clause. 402 * frontend-passes.c (gfc_code_walker): Likewise 403 * openmp.c (gfc_free_omp_clauses, gfc_match_omp_clauses, 404 resolve_omp_clauses): Likewise. 405 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses, 406 gfc_trans_omp_target): Likewise. 407 4082021-11-11 Jakub Jelinek <jakub@redhat.com> 409 410 * trans-openmp.c (gfc_trans_omp_clauses): Use 411 OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead of OMP_CLAUSE_NUM_TEAMS_EXPR. 412 4132021-11-10 Harald Anlauf <anlauf@gmx.de> 414 415 PR fortran/103137 416 PR fortran/103138 417 * check.c (gfc_check_shape): Avoid NULL pointer dereference on 418 missing ref. 419 * simplify.c (gfc_simplify_cshift): Avoid NULL pointer dereference 420 when shape not set. 421 (gfc_simplify_transpose): Likewise. 422 4232021-11-09 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 424 425 PR fortran/68800 426 * class.c (generate_finalization_wrapper): Do not leak 427 finalization wrappers if they will not be used. 428 * expr.c (gfc_free_actual_arglist): Formatting fix. 429 * gfortran.h (gfc_free_symbol): Pass argument by reference. 430 (gfc_release_symbol): Likewise. 431 (gfc_free_namespace): Likewise. 432 * symbol.c (gfc_release_symbol): Adjust acordingly. 433 (free_components): Set procedure pointer components 434 of derived types to NULL after freeing. 435 (free_tb_tree): Likewise. 436 (gfc_free_symbol): Set sym to NULL after freeing. 437 (gfc_free_namespace): Set namespace to NULL after freeing. 438 4392021-11-09 Martin Liska <mliska@suse.cz> 440 441 * symbol.c (gfc_get_ultimate_derived_super_type): Remove. 442 4432021-11-09 Aldy Hernandez <aldyh@redhat.com> 444 445 * misc.c (gfc_dummy_typename): Make sure ts->kind is 446 non-negative. 447 4482021-11-07 Thomas Koenig <tkoenig@gcc.gnu.org> 449 450 * intrinsic.c (add_subroutines): Change keyword "operator" 451 to the correct one, "operation". 452 * check.c (gfc_check_co_reduce): Change OPERATOR to 453 OPERATION in error messages. 454 * intrinsic.texi: Change OPERATOR to OPERATION in 455 documentation. 456 4572021-11-07 Sandra Loosemore <sandra@codesourcery.com> 458 459 * interface.c (gfc_compare_actual_formal): Continue checking 460 all arguments after encountering an error. 461 * intrinsic.c (do_ts29113_check): Likewise. 462 * resolve.c (resolve_operator): Continue resolving on op2 error. 463 4642021-11-06 Harald Anlauf <anlauf@gmx.de> 465 466 PR fortran/102715 467 * decl.c (add_init_expr_to_sym): Reject rank mismatch between 468 array and its initializer. 469 4702021-11-05 Harald Anlauf <anlauf@gmx.de> 471 472 PR fortran/102817 473 * expr.c (simplify_parameter_variable): Copy shape of referenced 474 subobject when simplifying. 475 4762021-11-05 Harald Anlauf <anlauf@gmx.de> 477 478 PR fortran/69419 479 * match.c (gfc_match_common): Check array spec of a symbol in a 480 COMMON object list and reject it if it is a coarray. 481 4822021-11-05 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 483 484 PR fortran/100972 485 * decl.c (gfc_match_implicit_none): Fix typo in warning. 486 * resolve.c (resolve_unknown_f): Reject external procedures 487 without explicit EXTERNAL attribute whe IMPLICIT none (external) 488 is in effect. 489 4902021-11-05 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 491 492 * decl.c (gfc_insert_kind_parameter_exprs): Make static. 493 * expr.c (gfc_build_init_expr): Make static 494 (gfc_build_default_init_expr): Move below its static helper. 495 * gfortran.h (gfc_insert_kind_parameter_exprs, gfc_add_saved_common, 496 gfc_add_common, gfc_use_derived_tree, gfc_free_charlen, 497 gfc_get_ultimate_derived_super_type, 498 gfc_resolve_oacc_parallel_loop_blocks, gfc_build_init_expr, 499 gfc_iso_c_sub_interface): Delete. 500 * symbol.c (gfc_new_charlen, gfc_get_derived_super_type): Make 501 static. 502 5032021-11-05 Sandra Loosemore <sandra@codesourcery.com> 504 505 PR fortran/35276 506 * gfortran.texi (Mixed-Language Programming): Talk about C++, 507 and how to link. 508 5092021-11-04 Sandra Loosemore <sandra@codesourcery.com> 510 511 * gfortran.texi (Projects): Add bullet for helping with 512 incomplete standards compliance. 513 (Proposed Extensions): Delete section. 514 5152021-11-04 Sandra Loosemore <sandra@codesourcery.com> 516 517 * intrinsic.texi (Introduction to Intrinsics): Genericize 518 references to standard versions. 519 * invoke.texi (-fall-intrinsics): Likewise. 520 (-fmax-identifier-length=): Likewise. 521 5222021-11-04 Sandra Loosemore <sandra@codesourcery.com> 523 524 * gfortran.texi (Interoperability with C): Copy-editing. Add 525 more index entries. 526 (Intrinsic Types): Likewise. 527 (Derived Types and struct): Likewise. 528 (Interoperable Global Variables): Likewise. 529 (Interoperable Subroutines and Functions): Likewise. 530 (Working with C Pointers): Likewise. 531 (Further Interoperability of Fortran with C): Likewise. Rewrite 532 to reflect that this is now fully supported by gfortran. 533 5342021-11-04 Sandra Loosemore <sandra@codesourcery.com> 535 536 * gfortran.texi (About GNU Fortran): Consolidate material 537 formerly in other sections. Copy-editing. 538 (Preprocessing and conditional compilation): Delete, moving 539 most material to invoke.texi. 540 (GNU Fortran and G77): Delete. 541 (Project Status): Delete. 542 (Standards): Update. 543 (Fortran 95 status): Mention conditional compilation here. 544 (Fortran 2003 status): Rewrite to mention the 1 missing feature 545 instead of all the ones implemented. 546 (Fortran 2008 status): Similarly for the 2 missing features. 547 (Fortran 2018 status): Rewrite to reflect completion of TS29113 548 feature support. 549 * invoke.texi (Preprocessing Options): Move material formerly 550 in introductory chapter here. 551 5522021-11-04 Sandra Loosemore <sandra@codesourcery.com> 553 554 * gfortran.texi (Standards): Move discussion of specific 555 standard versions here.... 556 (Fortran standards status): ...from here, and delete this node. 557 5582021-10-31 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 559 560 * symbol.c (gfc_get_typebound_proc): Revert memcpy. 561 5622021-10-31 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 563 564 * resolve.c (resolve_fl_procedure): Initialize 565 allocatable_or_pointer. 566 5672021-10-30 Manfred Schwarb <manfred99@gmx.ch> 568 569 * intrinsic.texi: Remove entries for SHORT and LONG intrinsics. 570 5712021-10-30 Manfred Schwarb <manfred99@gmx.ch> 572 573 * check.c (gfc_check_intconv): Change error message. 574 5752021-10-30 Manfred Schwarb <manfred99@gmx.ch> 576 577 * intrinsic.texi (REAL): Fix entries in Specific names table. 578 5792021-10-30 Manfred Schwarb <manfred99@gmx.ch> 580 581 * intrinsic.texi: Adjust @columnfractions commands to improve 582 appearance for narrow 80 character terminals. 583 5842021-10-30 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 585 586 * parse.c (clean_up_modules): Free gsym. 587 5882021-10-30 Harald Anlauf <anlauf@gmx.de> 589 590 * gfortran.texi (bug reports): credit Gerhard Steinmetz for 591 numerous bug reports. 592 5932021-10-30 Steve Kargl <kargl@gcc.gnu.org> 594 595 PR fortran/99853 596 * resolve.c (resolve_select): Generate regular gfc_error on 597 invalid conversions instead of an gfc_internal_error. 598 5992021-10-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 600 601 * symbol.c (free_tb_tree): Free type-bound procedure struct. 602 (gfc_get_typebound_proc): Use explicit memcpy for clarity. 603 6042021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 605 606 * intrinsic.h (gfc_check_sum, gfc_resolve_atan2d, gfc_resolve_kill, 607 gfc_resolve_kill_sub): Delete declaration. 608 6092021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 610 611 * trans-types.h (gfc_convert_function_code): Delete. 612 6132021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 614 615 * trans-stmt.h (gfc_trans_deallocate_array): Delete. 616 6172021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 618 619 * trans-array.c (gfc_trans_scalarized_loop_end): Make static. 620 * trans-array.h (gfc_trans_scalarized_loop_end, 621 gfc_conv_tmp_ref, gfc_conv_array_transpose): Delete declaration. 622 6232021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 624 625 * constructor.c (gfc_constructor_get_base): Make static. 626 (gfc_constructor_expr_foreach, gfc_constructor_swap): Delete. 627 * constructor.h (gfc_constructor_get_base): Remove declaration. 628 (gfc_constructor_expr_foreach, gfc_constructor_swap): Delete. 629 6302021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 631 632 * decl.c (gfc_match_old_kind_spec, set_com_block_bind_c, 633 set_verify_bind_c_sym, set_verify_bind_c_com_block, 634 get_bind_c_idents, gfc_match_suffix, gfc_get_type_attr_spec, 635 check_extended_derived_type): Make static. 636 (gfc_match_gcc_unroll): Add comment. 637 * match.c (gfc_match_small_int_expr): Delete definition. 638 * match.h (gfc_match_small_int_expr): Delete declaration. 639 (gfc_match_name_C, gfc_match_old_kind_spec, set_com_block_bind_c, 640 set_verify_bind_c_sym, set_verify_bind_c_com_block, 641 get_bind_c_idents, gfc_match_suffix, 642 gfc_get_type_attr_spec): Delete declaration. 643 6442021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 645 646 * expr.c (is_non_empty_structure_constructor): Make static. 647 * gfortran.h (gfc_check_any_c_kind): Delete. 648 * match.c (gfc_match_label): Make static. 649 * match.h (gfc_match_label): Delete declaration. 650 * scanner.c (file_changes_cur, file_changes_count, 651 file_changes_allocated): Make static. 652 * trans-expr.c (gfc_get_character_len): Make static. 653 (gfc_class_len_or_zero_get): Make static. 654 (VTAB_GET_FIELD_GEN): Undefine. 655 (gfc_get_class_array_ref): Make static. 656 (gfc_finish_interface_mapping): Make static. 657 * trans-types.c (gfc_check_any_c_kind): Delete. 658 (pfunc_type_node, dtype_type_node, gfc_get_ppc_type): Make static. 659 * trans-types.h (gfc_get_ppc_type): Delete declaration. 660 * trans.c (gfc_msg_wrong_return): Delete. 661 * trans.h (gfc_class_len_or_zero_get, gfc_class_vtab_extends_get, 662 gfc_vptr_extends_get, gfc_get_class_array_ref, gfc_get_character_len, 663 gfc_finish_interface_mapping, gfc_msg_wrong_return, 664 gfc_get_function_decl): Delete declaration. 665 6662021-10-27 Tobias Burnus <tobias@codesourcery.com> 667 668 * trans-stmt.c (gfc_trans_select_rank_cases): Fix condition 669 for allocatables/pointers. 670 6712021-10-26 Harald Anlauf <anlauf@gmx.de> 672 673 PR fortran/102956 674 * symbol.c (gfc_check_conflict): Add conflict check for PDT KIND 675 and LEN type parameters. 676 6772021-10-26 Harald Anlauf <anlauf@gmx.de> 678 679 PR fortran/102917 680 * decl.c (match_attr_spec): Remove invalid integer kind checks on 681 KIND and LEN attributes of PDTs. 682 6832021-10-26 Harald Anlauf <anlauf@gmx.de> 684 685 PR fortran/102816 686 * resolve.c (resolve_structure_cons): Reject invalid array spec of 687 a DT component referenced in a structure constructor. 688 6892021-10-26 Tobias Burnus <tobias@codesourcery.com> 690 691 PR fortran/102885 692 * trans-decl.c (gfc_conv_cfi_to_gfc): Properly handle nonconstant 693 character lenghts. 694 6952021-10-25 Andrew MacLeod <amacleod@redhat.com> 696 697 * trans-decl.c (gfc_conv_cfi_to_gfc): Initialize rank to NULL_TREE. 698 6992021-10-22 Eric Gallager <egallager@gcc.gnu.org> 700 701 PR other/102663 702 * Make-lang.in: Allow dvi-formatted documentation 703 to be installed. 704 7052021-10-22 Tobias Burnus <tobias@codesourcery.com> 706 707 PR fortran/92621 708 * trans-expr.c (gfc_trans_assignment_1): Add STRIP_NOPS. 709 7102021-10-21 Chung-Lin Tang <cltang@codesourcery.com> 711 712 * decl.c (gfc_match_end): Add COMP_OMP_STRICTLY_STRUCTURED_BLOCK case 713 together with COMP_BLOCK. 714 * parse.c (parse_omp_structured_block): Change return type to 715 'gfc_statement', add handling for strictly-structured block case, adjust 716 recursive calls to parse_omp_structured_block. 717 (parse_executable): Adjust calls to parse_omp_structured_block. 718 * parse.h (enum gfc_compile_state): Add 719 COMP_OMP_STRICTLY_STRUCTURED_BLOCK. 720 * trans-openmp.c (gfc_trans_omp_workshare): Add EXEC_BLOCK case 721 handling. 722 7232021-10-21 Sandra Loosemore <sandra@codesourcery.com> 724 725 PR fortran/94070 726 * expr.c (gfc_simplify_expr): Handle GFC_ISYM_SHAPE along with 727 GFC_ISYM_LBOUND and GFC_ISYM_UBOUND. 728 * trans-array.c (gfc_conv_ss_startstride): Likewise. 729 (set_loop_bounds): Likewise. 730 * trans-intrinsic.c (gfc_trans_intrinsic_bound): Extend to 731 handle SHAPE. Correct logic for zero-size special cases and 732 detecting assumed-rank arrays associated with an assumed-size 733 argument. 734 (gfc_conv_intrinsic_shape): Deleted. 735 (gfc_conv_intrinsic_function): Handle GFC_ISYM_SHAPE like 736 GFC_ISYM_LBOUND and GFC_ISYM_UBOUND. 737 (gfc_add_intrinsic_ss_code): Likewise. 738 (gfc_walk_intrinsic_bound): Likewise. 739 7402021-10-20 Chung-Lin Tang <cltang@codesourcery.com> 741 742 * openmp.c (gfc_match_omp_clause_reduction): Add 'openmp_target' default 743 false parameter. Add 'always,tofrom' map for OMP_LIST_IN_REDUCTION case. 744 (gfc_match_omp_clauses): Add 'openmp_target' default false parameter, 745 adjust call to gfc_match_omp_clause_reduction. 746 (match_omp): Adjust call to gfc_match_omp_clauses 747 * trans-openmp.c (gfc_trans_omp_taskgroup): Add call to 748 gfc_match_omp_clause, create and return block. 749 7502021-10-19 Tobias Burnus <tobias@codesourcery.com> 751 752 * trans-types.c (create_fn_spec): For allocatable/pointer 753 character(len=:), use 'w' not 'R' as fn spec for the length dummy 754 argument. 755 7562021-10-19 Tobias Burnus <tobias@codesourcery.com> 757 758 PR fortran/92482 759 * trans-expr.c (gfc_conv_procedure_call): Use TREE_OPERAND not 760 build_fold_indirect_ref_loc to undo an ADDR_EXPR. 761 7622021-10-18 Tobias Burnus <tobias@codesourcery.com> 763 764 PR fortran/102086 765 PR fortran/92189 766 PR fortran/92621 767 PR fortran/101308 768 PR fortran/101309 769 PR fortran/101635 770 PR fortran/92482 771 * decl.c (gfc_verify_c_interop_param): Remove 'sorry' for 772 scalar allocatable/pointer and len=*. 773 * expr.c (is_CFI_desc): Return true for for those. 774 * gfortran.h (CFI_type_kind_shift, CFI_type_mask, 775 CFI_type_from_type_kind, CFI_VERSION, CFI_MAX_RANK, 776 CFI_attribute_pointer, CFI_attribute_allocatable, 777 CFI_attribute_other, CFI_type_Integer, CFI_type_Logical, 778 CFI_type_Real, CFI_type_Complex, CFI_type_Character, 779 CFI_type_ucs4_char, CFI_type_struct, CFI_type_cptr, 780 CFI_type_cfunptr, CFI_type_other): New #define. 781 * trans-array.c (CFI_FIELD_BASE_ADDR, CFI_FIELD_ELEM_LEN, 782 CFI_FIELD_VERSION, CFI_FIELD_RANK, CFI_FIELD_ATTRIBUTE, 783 CFI_FIELD_TYPE, CFI_FIELD_DIM, CFI_DIM_FIELD_LOWER_BOUND, 784 CFI_DIM_FIELD_EXTENT, CFI_DIM_FIELD_SM, 785 gfc_get_cfi_descriptor_field, gfc_get_cfi_desc_base_addr, 786 gfc_get_cfi_desc_elem_len, gfc_get_cfi_desc_version, 787 gfc_get_cfi_desc_rank, gfc_get_cfi_desc_type, 788 gfc_get_cfi_desc_attribute, gfc_get_cfi_dim_item, 789 gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm): 790 New define/functions to access the CFI array descriptor. 791 (gfc_conv_descriptor_type): New function for the GFC descriptor. 792 (gfc_get_array_span): Handle expr of CFI descriptors and 793 assumed-type descriptors. 794 (gfc_trans_array_bounds): Remove 'static'. 795 (gfc_conv_expr_descriptor): For assumed type, use the dtype of 796 the actual argument. 797 (structure_alloc_comps): Remove ' ' inside tabs. 798 * trans-array.h (gfc_trans_array_bounds, gfc_conv_descriptor_type, 799 gfc_get_cfi_desc_base_addr, gfc_get_cfi_desc_elem_len, 800 gfc_get_cfi_desc_version, gfc_get_cfi_desc_rank, 801 gfc_get_cfi_desc_type, gfc_get_cfi_desc_attribute, 802 gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm): 803 New prototypes. 804 * trans-decl.c (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi): 805 Remove global vars. 806 (gfc_build_builtin_function_decls): Remove their initialization. 807 (gfc_get_symbol_decl, create_function_arglist, 808 gfc_trans_deferred_vars): Update for CFI. 809 (convert_CFI_desc): Remove and replace by ... 810 (gfc_conv_cfi_to_gfc): ... this function 811 (gfc_generate_function_code): Call it; create local GFC var for CFI. 812 * trans-expr.c (gfc_maybe_dereference_var): Handle CFI. 813 (gfc_conv_subref_array_arg): Handle the if-noncontigous-only copy in 814 when the result should be a descriptor. 815 (gfc_conv_gfc_desc_to_cfi_desc): Completely rewritten. 816 (gfc_conv_procedure_call): CFI fixes. 817 * trans-openmp.c (gfc_omp_is_optional_argument, 818 gfc_omp_check_optional_argument): Handle optional 819 CFI. 820 * trans-stmt.c (gfc_trans_select_rank_cases): Cleanup, avoid invalid 821 code for allocatable/pointer dummies, which cannot be assumed size. 822 * trans-types.c (gfc_cfi_descriptor_base): New global var. 823 (gfc_get_dtype_rank_type): Skip rank init for rank < 0. 824 (gfc_sym_type): Handle CFI dummies. 825 (gfc_get_function_type): Update call. 826 (gfc_get_cfi_dim_type, gfc_get_cfi_type): New. 827 * trans-types.h (gfc_sym_type): Update prototype. 828 (gfc_get_cfi_type): New prototype. 829 * trans.c (gfc_trans_runtime_check): Make conditions more consistent 830 to avoid '<logical> AND_THEN <long int>' in conditions. 831 * trans.h (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi): Remove 832 global-var declaration. 833 8342021-10-18 Tobias Burnus <tobias@codesourcery.com> 835 836 PR fortran/102745 837 * intrinsic.c (gfc_convert_type_warn): Fix checks by checking CLASS 838 and do typcheck in correct order for type extension. 839 * misc.c (gfc_typename): Print proper not internal CLASS type name. 840 8412021-10-15 Harald Anlauf <anlauf@gmx.de> 842 Tobias Burnus <tobias@codesourcery.com> 843 844 PR fortran/102685 845 * decl.c (match_clist_expr): Set rank/shape of clist initializer 846 to match LHS. 847 * resolve.c (resolve_structure_cons): In a structure constructor, 848 compare shapes of array components against declared shape. 849 8502021-10-14 Harald Anlauf <anlauf@gmx.de> 851 852 PR fortran/102717 853 * simplify.c (gfc_simplify_reshape): Replace assert by error 854 message for negative elements in SHAPE array. 855 8562021-10-14 Harald Anlauf <anlauf@gmx.de> 857 858 PR fortran/102716 859 * check.c (gfc_check_shape): Reorder checks so that invalid KIND 860 arguments can be detected. 861 8622021-10-14 Kwok Cheung Yeung <kcy@codesourcery.com> 863 864 * gfortran.h (enum gfc_statement): Add ST_OMP_DECLARE_VARIANT. 865 (enum gfc_omp_trait_property_kind): New. 866 (struct gfc_omp_trait_property): New. 867 (gfc_get_omp_trait_property): New macro. 868 (struct gfc_omp_selector): New. 869 (gfc_get_omp_selector): New macro. 870 (struct gfc_omp_set_selector): New. 871 (gfc_get_omp_set_selector): New macro. 872 (struct gfc_omp_declare_variant): New. 873 (gfc_get_omp_declare_variant): New macro. 874 (struct gfc_namespace): Add omp_declare_variant field. 875 (gfc_free_omp_declare_variant_list): New prototype. 876 * match.h (gfc_match_omp_declare_variant): New prototype. 877 * openmp.c (gfc_free_omp_trait_property_list): New. 878 (gfc_free_omp_selector_list): New. 879 (gfc_free_omp_set_selector_list): New. 880 (gfc_free_omp_declare_variant_list): New. 881 (gfc_match_omp_clauses): Add extra optional argument. Handle end of 882 clauses for context selectors. 883 (omp_construct_selectors, omp_device_selectors, 884 omp_implementation_selectors, omp_user_selectors): New. 885 (gfc_match_omp_context_selector): New. 886 (gfc_match_omp_context_selector_specification): New. 887 (gfc_match_omp_declare_variant): New. 888 * parse.c: Include tree-core.h and omp-general.h. 889 (decode_omp_directive): Handle 'declare variant'. 890 (case_omp_decl): Include ST_OMP_DECLARE_VARIANT. 891 (gfc_ascii_statement): Handle ST_OMP_DECLARE_VARIANT. 892 (gfc_parse_file): Initialize omp_requires_mask. 893 * symbol.c (gfc_free_namespace): Call 894 gfc_free_omp_declare_variant_list. 895 * trans-decl.c (gfc_get_extern_function_decl): Call 896 gfc_trans_omp_declare_variant. 897 (gfc_create_function_decl): Call gfc_trans_omp_declare_variant. 898 * trans-openmp.c (gfc_trans_omp_declare_variant): New. 899 * trans-stmt.h (gfc_trans_omp_declare_variant): New prototype. 900 9012021-10-13 Tobias Burnus <tobias@codesourcery.com> 902 903 * dump-parse-tree.c (show_omp_clauses): Handle ancestor modifier, 904 avoid ICE for GFC_OMP_ATOMIC_SWAP. 905 * gfortran.h (gfc_omp_clauses): Change 'anecestor' into a bitfield. 906 9072021-10-12 Tobias Burnus <tobias@codesourcery.com> 908 909 PR fortran/102541 910 * check.c (gfc_check_present): Handle optional CLASS. 911 * interface.c (gfc_compare_actual_formal): Likewise. 912 * trans-array.c (gfc_trans_g77_array): Likewise. 913 * trans-decl.c (gfc_build_dummy_array_decl): Likewise. 914 * trans-types.c (gfc_sym_type): Likewise. 915 * primary.c (gfc_variable_attr): Fixes for dummy and 916 pointer when 'class%_data' is passed. 917 * trans-expr.c (set_dtype_for_unallocated, gfc_conv_procedure_call): 918 For assumed-rank dummy, fix setting rank for dealloc/notassoc actual 919 and setting ubound to -1 for assumed-size actuals. 920 9212021-10-10 Harald Anlauf <anlauf@gmx.de> 922 923 PR fortran/99348 924 PR fortran/102521 925 * decl.c (add_init_expr_to_sym): Extend initialization of 926 parameter arrays from scalars to handle derived types. 927 9282021-10-09 Harald Anlauf <anlauf@gmx.de> 929 930 PR fortran/65454 931 * module.c (read_module): Handle old and new-style relational 932 operators when used in USE module, ONLY: OPERATOR(op). 933 9342021-10-08 Sandra Loosemore <sandra@codesourcery.com> 935 936 PR fortran/54753 937 * interface.c (gfc_compare_actual_formal): Add diagnostic 938 for F2018:C839. Refactor shared code and fix bugs with class 939 array info lookup, and extend similar diagnostic from PR94110 940 to also cover class types. 941 9422021-10-08 Martin Liska <mliska@suse.cz> 943 944 * options.c (gfc_post_options): Use new macro 945 OPTION_SET_P. 946 9472021-10-06 Tobias Burnus <tobias@codesourcery.com> 948 949 * resolve.c (resolve_values): Only show 950 deprecated warning if attr.referenced. 951 9522021-10-04 Tobias Burnus <tobias@codesourcery.com> 953 954 PR fortran/54753 955 * resolve.c (can_generate_init, resolve_fl_variable_derived, 956 resolve_symbol): Only do initialization with intent(out) if not 957 inside of an interface block. 958 9592021-10-01 Martin Sebor <msebor@redhat.com> 960 961 PR c/102103 962 * array.c: Remove an unnecessary test. 963 * trans-array.c: Same. 964 9652021-10-01 Jakub Jelinek <jakub@redhat.com> 966 967 * gfortran.h (gfc_omp_clauses): Add order_reproducible bitfield. 968 * dump-parse-tree.c (show_omp_clauses): Print REPRODUCIBLE: for it. 969 * openmp.c (gfc_match_omp_clauses): Set order_reproducible for 970 explicit reproducible: modifier. 971 * trans-openmp.c (gfc_trans_omp_clauses): Set 972 OMP_CLAUSE_ORDER_REPRODUCIBLE for order_reproducible. 973 (gfc_split_omp_clauses): Also copy order_reproducible. 974 9752021-09-30 Harald Anlauf <anlauf@gmx.de> 976 977 PR fortran/102458 978 * simplify.c (simplify_size): Resolve expressions used in array 979 specifications so that SIZE can be simplified. 980 9812021-09-30 Harald Anlauf <anlauf@gmx.de> 982 983 * expr.c: The correct reference to Fortran standard is: F2018:10.1.12. 984 9852021-09-30 Tobias Burnus <tobias@codesourcery.com> 986 987 PR fortran/71703 988 PR fortran/84007 989 * trans-intrinsic.c (gfc_conv_same_type_as): Fix handling 990 of UNLIMITED_POLY. 991 * trans.h (gfc_vtpr_hash_get): Renamed prototype to ... 992 (gfc_vptr_hash_get): ... this to match function name. 993 9942021-09-29 Harald Anlauf <anlauf@gmx.de> 995 996 PR fortran/102520 997 * array.c (expand_constructor): Do not dereference NULL pointer. 998 9992021-09-27 Tobias Burnus <tobias@codesourcery.com> 1000 1001 PR fortran/94070 1002 * trans-array.c (gfc_tree_array_size): New function to 1003 find size inline (whole array or one dimension). 1004 (array_parameter_size): Use it, take stmt_block as arg. 1005 (gfc_conv_array_parameter): Update call. 1006 * trans-array.h (gfc_tree_array_size): Add prototype. 1007 * trans-decl.c (gfor_fndecl_size0, gfor_fndecl_size1): Remove 1008 these global vars. 1009 (gfc_build_intrinsic_function_decls): Remove their initialization. 1010 * trans-expr.c (gfc_conv_procedure_call): Update 1011 bounds of pointer/allocatable actual args to nonallocatable/nonpointer 1012 dummies to be one based. 1013 * trans-intrinsic.c (gfc_conv_intrinsic_shape): Fix case for 1014 assumed rank with allocatable/pointer dummy. 1015 (gfc_conv_intrinsic_size): Update to use inline function. 1016 * trans.h (gfor_fndecl_size0, gfor_fndecl_size1): Remove var decl. 1017 10182021-09-26 Tobias Burnus <tobias@codesourcery.com> 1019 1020 PR fortran/101334 1021 * trans-intrinsic.c (gfc_conv_associated): Support assumed-rank 1022 'pointer' with scalar/array 'target' argument. 1023 10242021-09-24 Harald Anlauf <anlauf@gmx.de> 1025 1026 PR fortran/102458 1027 * expr.c (is_non_constant_intrinsic): Check for intrinsics 1028 excluded in constant expressions (F2018:10.1.2). 1029 (gfc_is_constant_expr): Use that check. 1030 10312021-09-24 Sandra Loosemore <sandra@codesourcery.com> 1032 1033 PR fortran/101333 1034 * interface.c (compare_parameter): Enforce F2018 C711. 1035 10362021-09-24 Tobias Burnus <tobias@codesourcery.com> 1037 1038 PR fortran/55534 1039 * scanner.c (load_file): Return void, call (gfc_)fatal_error for 1040 all errors. 1041 (include_line, include_stmt, gfc_new_file): Remove exit call 1042 for failed load_file run. 1043 10442021-09-23 Sandra Loosemore <sandra@codesourcery.com> 1045 1046 PR fortran/101320 1047 * decl.c (gfc_verify_c_interop_param): Handle F2018 C1557, 1048 aka TS29113 C516. 1049 10502021-09-23 Harald Anlauf <anlauf@gmx.de> 1051 Tobias Burnus <tobias@codesourcery.com> 1052 1053 PR fortran/93834 1054 * trans-intrinsic.c (gfc_conv_allocated): Cleanup. Handle 1055 coindexed scalar coarrays. 1056 10572021-09-23 Sandra Loosemore <sandra@codesourcery.com> 1058 1059 PR fortran/101319 1060 * interface.c (gfc_compare_actual_formal): Extend existing 1061 assumed-type diagnostic to also check for argument with type 1062 parameters. 1063 10642021-09-23 Sandra Loosemore <sandra@codesourcery.com> 1065 1066 PR fortran/101334 1067 * check.c (gfc_check_associated): Allow an assumed-rank 1068 array for the pointer argument. 1069 * interface.c (compare_parameter): Also give rank mismatch 1070 error on assumed-rank array. 1071 10722021-09-23 Sandra Loosemore <sandra@codesourcery.com> 1073 1074 * trans-stmt.c (trans_associate_var): Check that result of 1075 GFC_DECL_SAVED_DESCRIPTOR is not null before using it. 1076 10772021-09-22 Tobias Burnus <tobias@codesourcery.com> 1078 1079 PR fortran/55534 1080 * cpp.c (gfc_cpp_register_include_paths, gfc_cpp_post_options): 1081 Add new bool verbose_missing_dir_warn argument. 1082 * cpp.h (gfc_cpp_post_options): Update prototype. 1083 * f95-lang.c (gfc_init): Remove duplicated file-not found diag. 1084 * gfortran.h (gfc_check_include_dirs): Takes bool 1085 verbose_missing_dir_warn arg. 1086 (gfc_new_file): Returns now void. 1087 * options.c (gfc_post_options): Update to warn for -I and -J, 1088 only, by default but for all when user requested. 1089 * scanner.c (gfc_do_check_include_dir): 1090 (gfc_do_check_include_dirs, gfc_check_include_dirs): Take bool 1091 verbose warn arg and update to avoid printing the same message 1092 twice or never. 1093 (load_file): Fix indent. 1094 (gfc_new_file): Return void and exit when load_file failed 1095 as all other load_file users do. 1096 10972021-09-22 Tobias Burnus <tobias@codesourcery.com> 1098 1099 * trans-expr.c (gfc_simple_for_loop): New. 1100 * trans.h (gfc_simple_for_loop): New prototype. 1101 11022021-09-21 Tobias Burnus <tobias@codesourcery.com> 1103 1104 PR fortran/55534 1105 * cpp.c: Define GCC_C_COMMON_C for #include "options.h" to make 1106 cpp_reason_option_codes available. 1107 (gfc_cpp_register_include_paths): Make static, set pfile's 1108 warn_missing_include_dirs and move before caller. 1109 (gfc_cpp_init_cb): New, cb code moved from ... 1110 (gfc_cpp_init_0): ... here. 1111 (gfc_cpp_post_options): Call gfc_cpp_init_cb. 1112 (cb_cpp_diagnostic_cpp_option): New. As implemented in c-family 1113 to match CppReason flags to -W... names. 1114 (cb_cpp_diagnostic): Use it to replace single special case. 1115 * cpp.h (gfc_cpp_register_include_paths): Remove as now static. 1116 * gfortran.h (gfc_check_include_dirs): New prototype. 1117 (gfc_add_include_path): Add new bool arg. 1118 * options.c (gfc_init_options): Don't set -Wmissing-include-dirs. 1119 (gfc_post_options): Set it here after commandline processing. Call 1120 gfc_add_include_path with defer_warn=false. 1121 (gfc_handle_option): Call it with defer_warn=true. 1122 * scanner.c (gfc_do_check_include_dir, gfc_do_check_include_dirs, 1123 gfc_check_include_dirs): New. Diagnostic moved from ... 1124 (add_path_to_list): ... here, which came before cmdline processing. 1125 Take additional bool defer_warn argument. 1126 (gfc_add_include_path): Take additional defer_warn arg. 1127 * scanner.h (struct gfc_directorylist): Reorder for alignment issues, 1128 add new 'bool warn'. 1129 11302021-09-20 Tobias Burnus <tobias@codesourcery.com> 1131 1132 * gfortran.h (gfc_omp_clauses): Add order_unconstrained. 1133 * dump-parse-tree.c (show_omp_clauses): Dump it. 1134 * openmp.c (gfc_match_omp_clauses): Match unconstrained/reproducible 1135 modifiers to ordered(concurrent). 1136 (OMP_DISTRIBUTE_CLAUSES): Accept ordered clause. 1137 (resolve_omp_clauses): Reject ordered + order on same directive. 1138 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses): Pass 1139 on unconstrained modifier of ordered(concurrent). 1140 11412021-09-17 Harald Anlauf <anlauf@gmx.de> 1142 1143 PR fortran/102366 1144 * trans-decl.c (gfc_finish_var_decl): Disable the warning message 1145 for variables moved from stack to static storange if they are 1146 declared in the main, but allow the move to happen. 1147 11482021-09-17 Sandra Loosemore <sandra@codesourcery.com> 1149 1150 * intrinsic.texi (ISO_C_BINDING): Change C_FLOAT128 to correspond 1151 to _Float128 rather than __float128. 1152 * iso-c-binding.def (c_float128): Update comments. 1153 * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Likewise. 1154 (build_round_expr): Likewise. 1155 (gfc_build_intrinsic_lib_fndcecls): Likewise. 1156 * trans-types.h (gfc_real16_is_float128): Likewise. 1157 11582021-09-16 Harald Anlauf <anlauf@gmx.de> 1159 1160 PR fortran/102287 1161 * trans-expr.c (gfc_conv_procedure_call): Wrap deallocation of 1162 allocatable components of optional allocatable derived type 1163 procedure arguments with INTENT(OUT) into a presence check. 1164 11652021-09-14 Harald Anlauf <anlauf@gmx.de> 1166 1167 PR fortran/102311 1168 * resolve.c (resolve_entries): Attempt to recover cleanly after 1169 rejecting mismatched function entries. 1170 11712021-09-14 Tobias Burnus <tobias@codesourcery.com> 1172 1173 PR fortran/102313 1174 * parse.c (gfc_ascii_statement): Add missing ST_OMP_END_SCOPE. 1175 11762021-09-13 Harald Anlauf <anlauf@gmx.de> 1177 1178 PR fortran/82314 1179 * decl.c (add_init_expr_to_sym): For proper initialization of 1180 array-valued named constants the array bounds need to be 1181 simplified before adding the initializer. 1182 11832021-09-13 Harald Anlauf <anlauf@gmx.de> 1184 1185 PR fortran/85130 1186 * expr.c (find_substring_ref): Handle given substring start and 1187 end indices as signed integers, not unsigned. 1188 11892021-09-09 Harald Anlauf <anlauf@gmx.de> 1190 1191 PR fortran/98490 1192 * trans-expr.c (gfc_conv_substring): Do not generate substring 1193 bounds check for implied do loop index variable before it actually 1194 becomes defined. 1195 11962021-09-08 liuhongt <hongtao.liu@intel.com> 1197 1198 * options.c (gfc_post_options): Issue an error for 1199 -fexcess-precision=16. 1200 12012021-09-07 Harald Anlauf <anlauf@gmx.de> 1202 1203 PR fortran/101327 1204 * expr.c (find_array_element): When bounds cannot be determined as 1205 constant, return error instead of aborting. 1206 12072021-09-07 Marcel Vollweiler <marcel@codesourcery.com> 1208 1209 * openmp.c (gfc_match_omp_flush): Parse 'seq_cst' clause on 'flush' 1210 directive. 1211 * trans-openmp.c (gfc_trans_omp_flush): Handle OMP_MEMORDER_SEQ_CST. 1212 12132021-09-03 Tobias Burnus <tobias@codesourcery.com> 1214 1215 * decl.c (gfc_verify_c_interop_param): Reject pointer with 1216 CONTIGUOUS attributes as dummy arg. Reject character len > 1 1217 when passed as byte stream. 1218 12192021-09-01 Harald Anlauf <anlauf@gmx.de> 1220 1221 PR fortran/56985 1222 * resolve.c (resolve_common_vars): Fix grammar and improve wording 1223 of error message rejecting an unlimited polymorphic in COMMON. 1224 12252021-08-31 Harald Anlauf <anlauf@gmx.de> 1226 1227 PR fortran/100950 1228 * simplify.c (substring_has_constant_len): Minimize checks for 1229 substring expressions being allowed. 1230 12312021-08-31 Marcel Vollweiler <marcel@codesourcery.com> 1232 1233 * gfortran.h: Add variable for 'ancestor' in struct gfc_omp_clauses. 1234 * openmp.c (gfc_match_omp_clauses): Parse device-modifiers 'device_num' 1235 and 'ancestor' in 'target device' clauses. 1236 * trans-openmp.c (gfc_trans_omp_clauses): Set OMP_CLAUSE_DEVICE_ANCESTOR. 1237 12382021-08-30 Harald Anlauf <anlauf@gmx.de> 1239 1240 PR fortran/102113 1241 * match.c (gfc_match_goto): Allow for whitespace in parsing list 1242 of labels. 1243 12442021-08-30 Harald Anlauf <anlauf@gmx.de> 1245 1246 PR fortran/101349 1247 * resolve.c (resolve_allocate_expr): An unlimited polymorphic 1248 argument to ALLOCATE must be ALLOCATABLE or a POINTER. Fix the 1249 corresponding check. 1250 12512021-08-28 Harald Anlauf <anlauf@gmx.de> 1252 1253 PR fortran/87737 1254 * resolve.c (resolve_entries): For functions of type CHARACTER 1255 tighten the checks for matching characteristics. 1256 12572021-08-25 Lewis Hyatt <lhyatt@gmail.com> 1258 1259 PR other/93067 1260 * cpp.c (gfc_cpp_post_options): Call new function 1261 diagnostic_initialize_input_context(). 1262 12632021-08-24 Harald Anlauf <anlauf@gmx.de> 1264 1265 PR fortran/98411 1266 * trans-decl.c (gfc_finish_var_decl): Adjust check to handle 1267 implicit SAVE as well as variables in the main program. Improve 1268 warning message text. 1269 12702021-08-23 Tobias Burnus <tobias@codesourcery.com> 1271 1272 * openmp.c (gfc_match_dupl_check, gfc_match_dupl_memorder, 1273 gfc_match_dupl_atomic): New. 1274 (gfc_match_omp_clauses): Use them; remove duplicate 1275 'release'/'relaxed' clause matching; improve error dignostic 1276 for 'default'. 1277 12782021-08-23 Tobias Burnus <tobias@codesourcery.com> 1279 1280 * dump-parse-tree.c (show_omp_clauses): Handle 'strict' modifier 1281 on grainsize/num_tasks 1282 * gfortran.h (gfc_omp_clauses): Add grainsize_strict 1283 and num_tasks_strict. 1284 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses): 1285 Handle 'strict' modifier on grainsize/num_tasks. 1286 * openmp.c (gfc_match_omp_clauses): Likewise. 1287 12882021-08-20 Tobias Burnus <tobias@codesourcery.com> 1289 1290 * error.c 1291 (error_uinteger): Take 'long long unsigned' instead 1292 of 'long unsigned' as argumpent. 1293 (error_integer): Take 'long long' instead of 'long'. 1294 (error_hwuint, error_hwint): New. 1295 (error_print): Update to handle 'll' and 'w' 1296 length modifiers. 1297 * simplify.c (substring_has_constant_len): Use '%wd' 1298 in gfc_error. 1299 13002021-08-20 Harald Anlauf <anlauf@gmx.de> 1301 1302 PR fortran/100950 1303 * simplify.c (substring_has_constant_len): Fix format string of 1304 gfc_error, pass HOST_WIDE_INT bounds values via char buffer. 1305 13062021-08-20 Tobias Burnus <tobias@codesourcery.com> 1307 1308 * dump-parse-tree.c (show_omp_clauses): Handle 'at', 'severity' 1309 and 'message' clauses. 1310 (show_omp_node, show_code_node): Handle EXEC_OMP_ERROR. 1311 * gfortran.h (gfc_statement): Add ST_OMP_ERROR. 1312 (gfc_omp_severity_type, gfc_omp_at_type): New. 1313 (gfc_omp_clauses): Add 'at', 'severity' and 'message' clause; 1314 use more bitfields + ENUM_BITFIELD. 1315 (gfc_exec_op): Add EXEC_OMP_ERROR. 1316 * match.h (gfc_match_omp_error): New. 1317 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_(AT,SEVERITY,MESSAGE). 1318 (gfc_match_omp_clauses): Handle new clauses. 1319 (OMP_ERROR_CLAUSES, gfc_match_omp_error): New. 1320 (resolve_omp_clauses): Resolve new clauses. 1321 (omp_code_to_statement, gfc_resolve_omp_directive): Handle 1322 EXEC_OMP_ERROR. 1323 * parse.c (decode_omp_directive, next_statement, 1324 gfc_ascii_statement): Handle 'omp error'. 1325 * resolve.c (gfc_resolve_blocks): Likewise. 1326 * st.c (gfc_free_statement): Likewise. 1327 * trans-openmp.c (gfc_trans_omp_error): Likewise. 1328 (gfc_trans_omp_directive): Likewise. 1329 * trans.c (trans_code): Likewise. 1330 13312021-08-20 Jakub Jelinek <jakub@redhat.com> 1332 1333 * types.def (BT_FN_VOID_CONST_PTR_SIZE): New DEF_FUNCTION_TYPE_2. 1334 * f95-lang.c (ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST): Define. 1335 13362021-08-19 Harald Anlauf <anlauf@gmx.de> 1337 1338 PR fortran/100950 1339 * simplify.c (substring_has_constant_len): New. 1340 (gfc_simplify_len): Handle case of substrings with constant 1341 bounds. 1342 13432021-08-18 Tobias Burnus <tobias@codesourcery.com> 1344 1345 * match.h (gfc_match_omp_nothing): New. 1346 * openmp.c (gfc_match_omp_nothing): New. 1347 * parse.c (decode_omp_directive): Match 'nothing' directive. 1348 13492021-08-17 Tobias Burnus <tobias@codesourcery.com> 1350 1351 * dump-parse-tree.c (show_omp_node, show_code_node): Handle 1352 EXEC_OMP_SCOPE. 1353 * gfortran.h (enum gfc_statement): Add ST_OMP_(END_)SCOPE. 1354 (enum gfc_exec_op): Add EXEC_OMP_SCOPE. 1355 * match.h (gfc_match_omp_scope): New. 1356 * openmp.c (OMP_SCOPE_CLAUSES): Define 1357 (gfc_match_omp_scope): New. 1358 (gfc_match_omp_cancellation_point, gfc_match_omp_end_nowait): 1359 Improve error diagnostic. 1360 (omp_code_to_statement): Handle ST_OMP_SCOPE. 1361 (gfc_resolve_omp_directive): Handle EXEC_OMP_SCOPE. 1362 * parse.c (decode_omp_directive, next_statement, 1363 gfc_ascii_statement, parse_omp_structured_block, 1364 parse_executable): Handle OpenMP's scope construct. 1365 * resolve.c (gfc_resolve_blocks): Likewise 1366 * st.c (gfc_free_statement): Likewise 1367 * trans-openmp.c (gfc_trans_omp_scope): New. 1368 (gfc_trans_omp_directive): Call it. 1369 * trans.c (trans_code): handle EXEC_OMP_SCOPE. 1370 13712021-08-16 Tobias Burnus <tobias@codesourcery.com> 1372 1373 * dump-parse-tree.c (show_omp_clauses): Handle 'filter' clause. 1374 (show_omp_node, show_code_node): Handle (combined) omp masked construct. 1375 * frontend-passes.c (gfc_code_walker): Likewise. 1376 * gfortran.h (enum gfc_statement): Add ST_OMP_*_MASKED*. 1377 (enum gfc_exec_op): Add EXEC_OMP_*_MASKED*. 1378 * match.h (gfc_match_omp_masked, gfc_match_omp_masked_taskloop, 1379 gfc_match_omp_masked_taskloop_simd, gfc_match_omp_parallel_masked, 1380 gfc_match_omp_parallel_masked_taskloop, 1381 gfc_match_omp_parallel_masked_taskloop_simd): New prototypes. 1382 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_FILTER. 1383 (gfc_match_omp_clauses): Match it. 1384 (OMP_MASKED_CLAUSES, gfc_match_omp_parallel_masked, 1385 gfc_match_omp_parallel_masked_taskloop, 1386 gfc_match_omp_parallel_masked_taskloop_simd, 1387 gfc_match_omp_masked, gfc_match_omp_masked_taskloop, 1388 gfc_match_omp_masked_taskloop_simd): New. 1389 (resolve_omp_clauses): Resolve filter clause. 1390 (gfc_resolve_omp_parallel_blocks, resolve_omp_do, 1391 omp_code_to_statement, gfc_resolve_omp_directive): Handle 1392 omp masked constructs. 1393 * parse.c (decode_omp_directive, case_exec_markers, 1394 gfc_ascii_statement, parse_omp_do, parse_omp_structured_block, 1395 parse_executable): Likewise. 1396 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise. 1397 * st.c (gfc_free_statement): Likewise. 1398 * trans-openmp.c (gfc_trans_omp_clauses): Handle filter clause. 1399 (GFC_OMP_SPLIT_MASKED, GFC_OMP_MASK_MASKED): New enum values. 1400 (gfc_trans_omp_masked): New. 1401 (gfc_split_omp_clauses): Handle combined masked directives. 1402 (gfc_trans_omp_master_taskloop): Rename to ... 1403 (gfc_trans_omp_master_masked_taskloop): ... this; handle also 1404 combined masked directives. 1405 (gfc_trans_omp_parallel_master): Rename to ... 1406 (gfc_trans_omp_parallel_master_masked): ... this; handle 1407 combined masked directives. 1408 (gfc_trans_omp_directive): Handle EXEC_OMP_*_MASKED*. 1409 * trans.c (trans_code): Likewise. 1410 14112021-08-15 Harald Anlauf <anlauf@gmx.de> 1412 1413 PR fortran/99351 1414 * match.c (sync_statement): Replace %v code by %e in gfc_match to 1415 allow for function references as STAT and ERRMSG arguments. 1416 * resolve.c (resolve_sync): Adjust checks of STAT= and ERRMSG= to 1417 being definable arguments. Function references with a data 1418 pointer result are accepted. 1419 * trans-stmt.c (gfc_trans_sync): Adjust assertion. 1420 14212021-08-12 Tobias Burnus <tobias@codesourcery.com> 1422 1423 * gfortran.h (gfc_omp_proc_bind_kind): Add OMP_PROC_BIND_PRIMARY. 1424 * dump-parse-tree.c (show_omp_clauses): Add TODO comment to 1425 change 'master' to 'primary' in proc_bind for OpenMP 5.1. 1426 * intrinsic.texi (OMP_LIB): Mention OpenMP 5.1; add 1427 omp_proc_bind_primary. 1428 * openmp.c (gfc_match_omp_clauses): Accept 1429 'primary' as alias for 'master'. 1430 * trans-openmp.c (gfc_trans_omp_clauses): Handle 1431 OMP_PROC_BIND_PRIMARY. 1432 14332021-08-11 Sandra Loosemore <sandra@codesourcery.com> 1434 1435 * iso-c-binding.def (c_float128, c_float128_complex): Check 1436 float128_type_node instead of gfc_float128_type_node. 1437 * trans-types.c (gfc_init_kinds, gfc_build_real_type): 1438 Update comments re supported 128-bit floating-point types. 1439 14402021-08-11 Richard Biener <rguenther@suse.de> 1441 1442 * trans-common.c (create_common): Set TREE_THIS_VOLATILE on the 1443 COMPONENT_REF if the field is volatile. 1444 14452021-08-07 Harald Anlauf <anlauf@gmx.de> 1446 1447 PR fortran/68568 1448 * primary.c (gfc_expr_attr): Variable attribute can only be 1449 inquired when symtree is non-NULL. 1450 14512021-07-28 Harald Anlauf <anlauf@gmx.de> 1452 1453 PR fortran/101564 1454 * expr.c (gfc_check_vardef_context): Add check for KIND and LEN 1455 parameter inquiries. 1456 * match.c (gfc_match): Fix comment for %v code. 1457 (gfc_match_allocate, gfc_match_deallocate): Replace use of %v code 1458 by %e in gfc_match to allow for function references as STAT and 1459 ERRMSG arguments. 1460 * resolve.c (resolve_allocate_deallocate): Avoid NULL pointer 1461 dereferences and shortcut for bad STAT and ERRMSG argument to 1462 (DE)ALLOCATE. Remove bogus parts of checks for STAT and ERRMSG. 1463 14642021-07-26 José Rui Faustino de Sousa <jrfsousa@gmail.com> 1465 Tobias Burnus <tobias@codesourcery.com> 1466 1467 PR fortran/93308 1468 PR fortran/93963 1469 PR fortran/94327 1470 PR fortran/94331 1471 PR fortran/97046 1472 * trans-decl.c (convert_CFI_desc): Only copy out the descriptor 1473 if necessary. 1474 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Updated attribute 1475 handling which reflect a previous intermediate version of the 1476 standard. Only copy out the descriptor if necessary. 1477 14782021-07-23 Harald Anlauf <anlauf@gmx.de> 1479 1480 PR fortran/101536 1481 * check.c (array_check): Adjust check for the case of CLASS 1482 arrays. 1483 14842021-07-21 Thomas Schwinge <thomas@codesourcery.com> 1485 Joseph Myers <joseph@codesourcery.com> 1486 Cesar Philippidis <cesar@codesourcery.com> 1487 1488 * dump-parse-tree.c (show_attr): Update. 1489 * gfortran.h (symbol_attribute): Add 'oacc_routine_nohost' member. 1490 (gfc_omp_clauses): Add 'nohost' member. 1491 * module.c (ab_attribute): Add 'AB_OACC_ROUTINE_NOHOST'. 1492 (attr_bits, mio_symbol_attribute): Update. 1493 * openmp.c (omp_mask2): Add 'OMP_CLAUSE_NOHOST'. 1494 (gfc_match_omp_clauses): Handle 'OMP_CLAUSE_NOHOST'. 1495 (OACC_ROUTINE_CLAUSES): Add 'OMP_CLAUSE_NOHOST'. 1496 (gfc_match_oacc_routine): Update. 1497 * trans-decl.c (add_attributes_to_decl): Update. 1498 * trans-openmp.c (gfc_trans_omp_clauses): Likewise. 1499 15002021-07-21 Harald Anlauf <anlauf@gmx.de> 1501 1502 PR fortran/101514 1503 * target-memory.c (gfc_interpret_derived): Size of array component 1504 of derived type can only be computed here for explicit shape. 1505 * trans-types.c (gfc_get_nodesc_array_type): Do not dereference 1506 NULL pointers. 1507 15082021-07-21 Tobias Burnus <tobias@codesourcery.com> 1509 1510 * decl.c (gfc_verify_c_interop_param): Update for F2008 + F2018 1511 changes; reject unsupported bits with 'Error: Sorry,'. 1512 * trans-expr.c (gfc_conv_procedure_call): Fix condition to 1513 For using CFI descriptor with characters. 1514 15152021-07-18 Harald Anlauf <anlauf@gmx.de> 1516 1517 PR fortran/101084 1518 * io.c (resolve_tag_format): Extend FORMAT check to unknown type. 1519 15202021-07-14 Harald Anlauf <anlauf@gmx.de> 1521 1522 PR fortran/100949 1523 * trans-expr.c (gfc_trans_class_init_assign): Call 1524 gfc_conv_expr_present only for dummy variables. 1525 15262021-07-06 Thomas Koenig <tkoenig@gcc.gnu.org> 1527 1528 PR fortran/100227 1529 * frontend-passes.c (traverse_io_block): Adjust test for 1530 when a variable is eligible for the transformation to 1531 array slice. 1532 15332021-06-28 Martin Sebor <msebor@redhat.com> 1534 1535 * trans-array.c (trans_array_constructor): Replace direct uses 1536 of TREE_NO_WARNING with warning_suppressed_p, and suppress_warning. 1537 * trans-decl.c (gfc_build_qualified_array): Same. 1538 (gfc_build_dummy_array_decl): Same. 1539 (generate_local_decl): Same. 1540 (gfc_generate_function_code): Same. 1541 * trans-openmp.c (gfc_omp_clause_default_ctor): Same. 1542 (gfc_omp_clause_copy_ctor): Same. 1543 * trans-types.c (get_dtype_type_node): Same. 1544 (gfc_get_desc_dim_type): Same. 1545 (gfc_get_array_descriptor_base): Same. 1546 (gfc_get_caf_vector_type): Same. 1547 (gfc_get_caf_reference_type): Same. 1548 * trans.c (gfc_create_var_np): Same. 1549 15502021-06-23 Tobias Burnus <tobias@codesourcery.com> 1551 1552 * dump-parse-tree.c (show_omp_clauses): Fix enum type used 1553 for dumping gfc_omp_defaultmap_category. 1554 15552021-06-23 Andre Vehreschild <vehre@gcc.gnu.org> 1556 1557 PR fortran/100337 1558 * trans-intrinsic.c (conv_co_collective): Check stat for null ptr 1559 before dereferrencing. 1560 15612021-06-18 Harald Anlauf <anlauf@gmx.de> 1562 1563 PR fortran/100283 1564 PR fortran/101123 1565 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Unconditionally 1566 convert result of min/max to result type. 1567 15682021-06-16 Harald Anlauf <anlauf@gmx.de> 1569 1570 PR fortran/95501 1571 PR fortran/95502 1572 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer 1573 dereference. 1574 * match.c (gfc_match_pointer_assignment): Likewise. 1575 * parse.c (gfc_check_do_variable): Avoid comparison with NULL 1576 symtree. 1577 15782021-06-16 Harald Anlauf <anlauf@gmx.de> 1579 1580 Revert: 1581 2021-06-16 Harald Anlauf <anlauf@gmx.de> 1582 1583 PR fortran/95501 1584 PR fortran/95502 1585 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer 1586 dereference. 1587 * match.c (gfc_match_pointer_assignment): Likewise. 1588 * parse.c (gfc_check_do_variable): Avoid comparison with NULL 1589 symtree. 1590 15912021-06-16 Harald Anlauf <anlauf@gmx.de> 1592 1593 PR fortran/95501 1594 PR fortran/95502 1595 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer 1596 dereference. 1597 * match.c (gfc_match_pointer_assignment): Likewise. 1598 * parse.c (gfc_check_do_variable): Avoid comparison with NULL 1599 symtree. 1600 16012021-06-15 Tobias Burnus <tobias@codesourcery.com> 1602 1603 PR fortran/92568 1604 * dump-parse-tree.c (show_omp_clauses): Update for defaultmap. 1605 * f95-lang.c (LANG_HOOKS_OMP_ALLOCATABLE_P, 1606 LANG_HOOKS_OMP_SCALAR_TARGET_P): New. 1607 * gfortran.h (enum gfc_omp_defaultmap, 1608 enum gfc_omp_defaultmap_category): New. 1609 * openmp.c (gfc_match_omp_clauses): Update defaultmap matching. 1610 * trans-decl.c (gfc_finish_decl_attrs): Set GFC_DECL_SCALAR_TARGET. 1611 * trans-openmp.c (gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New. 1612 (gfc_omp_scalar_p): Take 'ptr_alloc_ok' argument. 1613 (gfc_trans_omp_clauses, gfc_split_omp_clauses): Update for 1614 defaultmap changes. 1615 * trans.h (gfc_omp_scalar_p): Update prototype. 1616 (gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New. 1617 (struct lang_decl): Add scalar_target. 1618 (GFC_DECL_SCALAR_TARGET, GFC_DECL_GET_SCALAR_TARGET): New. 1619 16202021-06-14 Tobias Burnus <tobias@codesourcery.com> 1621 1622 * resolve.c (resolve_variable): Remove *XCNEW used to 1623 nullify nullified memory. 1624 16252021-06-09 Martin Liska <mliska@suse.cz> 1626 1627 * intrinsic.texi: Add missing @headitem to tables with a header. 1628 16292021-06-09 Jakub Jelinek <jakub@redhat.com> 1630 1631 PR fortran/100965 1632 * trans-openmp.c (gfc_omp_finish_clause): Gimplify OMP_CLAUSE_SIZE. 1633 16342021-06-08 Tobias Burnus <tobias@codesourcery.com> 1635 1636 PR middle-end/99928 1637 * trans-openmp.c (gfc_add_clause_implicitly): New. 1638 (gfc_split_omp_clauses): Use it. 1639 (gfc_free_split_omp_clauses): New. 1640 (gfc_trans_omp_do_simd, gfc_trans_omp_parallel_do, 1641 gfc_trans_omp_parallel_do_simd, gfc_trans_omp_distribute, 1642 gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_taskloop, 1643 gfc_trans_omp_master_taskloop, gfc_trans_omp_parallel_master): Use it. 1644 16452021-06-08 Martin Liska <mliska@suse.cz> 1646 1647 * intrinsic.texi: Fix typo. 1648 * trans-expr.c (gfc_trans_pointer_assignment): Likewise. 1649 16502021-06-05 José Rui Faustino de Sousa <jrfsousa@gmail.com> 1651 1652 PR fortran/100120 1653 PR fortran/100816 1654 PR fortran/100818 1655 PR fortran/100819 1656 PR fortran/100821 1657 * trans-array.c (gfc_get_array_span): rework the way character 1658 array "span" was calculated. 1659 (gfc_conv_expr_descriptor): improve handling of character sections 1660 and unlimited polymorphic objects. 1661 * trans-expr.c (gfc_get_character_len): new function to calculate 1662 character string length. 1663 (gfc_get_character_len_in_bytes): new function to calculate 1664 character string length in bytes. 1665 (gfc_conv_scalar_to_descriptor): add call to set the "span". 1666 (gfc_trans_pointer_assignment): set "_len" and antecipate the 1667 initialization of the deferred character length hidden argument. 1668 * trans-intrinsic.c (gfc_conv_associated): set "force_no_tmp" to 1669 avoid the creation of a temporary. 1670 * trans-types.c (gfc_get_dtype_rank_type): rework type detection 1671 so that unlimited polymorphic objects get proper type infomation, 1672 also important for bind(c). 1673 (gfc_get_dtype): add argument to pass the rank if necessary. 1674 (gfc_get_array_type_bounds): cosmetic change to have character 1675 arrays called character instead of unknown. 1676 * trans-types.h (gfc_get_dtype): modify prototype. 1677 * trans.c (get_array_span): rework the way character array "span" 1678 was calculated. 1679 * trans.h (gfc_get_character_len): new prototype. 1680 (gfc_get_character_len_in_bytes): new prototype. 1681 Add "unlimited_polymorphic" flag to "gfc_se" type to signal when 1682 expression carries an unlimited polymorphic object. 1683 16842021-06-04 Harald Anlauf <anlauf@gmx.de> 1685 1686 PR fortran/99839 1687 * frontend-passes.c (inline_matmul_assign): Do not inline matmul 1688 if the assignment to the resulting array if it is not of canonical 1689 type (real/integer/complex/logical). 1690 16912021-06-04 Tobias Burnus <tobias@codesourcery.com> 1692 1693 * dump-parse-tree.c (show_code_node): Handle 1694 EXEC_OMP_(TARGET_)(,PARALLEL_,TEAMS_)LOOP. 1695 16962021-06-04 Tobias Burnus <tobias@codesourcery.com> 1697 1698 * scanner.c (skip_fixed_omp_sentinel): Set openacc_flag if 1699 this is not an (OpenMP) continuation line. 1700 (skip_fixed_oacc_sentinel): Likewise for openmp_flag and OpenACC. 1701 (gfc_next_char_literal): gfc_error_now to force error for mixed OMP/ACC 1702 continuation once per location and return '\n'. 1703 17042021-06-04 Tobias Burnus <tobias@codesourcery.com> 1705 1706 PR middle-end/99928 1707 * openmp.c (gfc_match_omp_clauses): Fix typo in error message. 1708 17092021-06-04 Tobias Burnus <tobias@codesourcery.com> 1710 1711 PR middle-end/99928 1712 * dump-parse-tree.c (show_omp_clauses): Handle bind clause. 1713 (show_omp_node): Handle loop directive. 1714 * frontend-passes.c (gfc_code_walker): Likewise. 1715 * gfortran.h (enum gfc_statement): Add 1716 ST_OMP_(END_)(TARGET_)(|PARALLEL_|TEAMS_)LOOP. 1717 (enum gfc_omp_bind_type): New. 1718 (gfc_omp_clauses): Use it. 1719 (enum gfc_exec_op): Add EXEC_OMP_(TARGET_)(|PARALLEL_|TEAMS_)LOOP. 1720 * match.h (gfc_match_omp_loop, gfc_match_omp_parallel_loop, 1721 gfc_match_omp_target_parallel_loop, gfc_match_omp_target_teams_loop, 1722 gfc_match_omp_teams_loop): New. 1723 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_BIND. 1724 (gfc_match_omp_clauses): Handle it. 1725 (OMP_LOOP_CLAUSES, gfc_match_omp_loop, gfc_match_omp_teams_loop, 1726 gfc_match_omp_target_teams_loop, gfc_match_omp_parallel_loop, 1727 gfc_match_omp_target_parallel_loop): New. 1728 (resolve_omp_clauses, resolve_omp_do, omp_code_to_statement, 1729 gfc_resolve_omp_directive): Handle omp loop. 1730 * parse.c (decode_omp_directive case_exec_markers, gfc_ascii_statement, 1731 parse_omp_do, parse_executable): Likewise. 1732 (parse_omp_structured_block): Remove ST_ which use parse_omp_do. 1733 * resolve.c (gfc_resolve_blocks): Add omp loop. 1734 * st.c (gfc_free_statement): Likewise. 1735 * trans-openmp.c (gfc_trans_omp_clauses): Handle bind clause. 1736 (gfc_trans_omp_do, gfc_trans_omp_parallel_do, gfc_trans_omp_distribute, 1737 gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_directive): 1738 Handle loop directive. 1739 (gfc_split_omp_clauses): Likewise; fix firstprivate/lastprivate 1740 and (in_)reduction for taskloop. 1741 * trans.c (trans_code): Handle omp loop directive. 1742 17432021-06-01 Tobias Burnus <tobias@codesourcery.com> 1744 1745 PR middle-end/99928 1746 * dump-parse-tree.c (show_omp_node, show_code_node): Handle 1747 (parallel) master taskloop (simd). 1748 * frontend-passes.c (gfc_code_walker): Set in_omp_workshare 1749 to false for parallel master taskloop (simd). 1750 * gfortran.h (enum gfc_statement): 1751 Add ST_OMP_(END_)(PARALLEL_)MASTER_TASKLOOP(_SIMD). 1752 (enum gfc_exec_op): EXEC_OMP_(PARALLEL_)MASTER_TASKLOOP(_SIMD). 1753 * match.h (gfc_match_omp_master_taskloop, 1754 gfc_match_omp_master_taskloop_simd, 1755 gfc_match_omp_parallel_master_taskloop, 1756 gfc_match_omp_parallel_master_taskloop_simd): New prototype. 1757 * openmp.c (gfc_match_omp_parallel_master_taskloop, 1758 gfc_match_omp_parallel_master_taskloop_simd, 1759 gfc_match_omp_master_taskloop, 1760 gfc_match_omp_master_taskloop_simd): New. 1761 (gfc_match_omp_taskloop_simd): Permit 'reduction' clause. 1762 (resolve_omp_clauses): Handle new combined directives; remove 1763 inscan-reduction check to reduce multiple errors; add 1764 task-reduction error for 'taskloop simd'. 1765 (gfc_resolve_omp_parallel_blocks, 1766 resolve_omp_do, omp_code_to_statement, 1767 gfc_resolve_omp_directive): Handle new combined constructs. 1768 * parse.c (decode_omp_directive, next_statement, 1769 gfc_ascii_statement, parse_omp_do, parse_omp_structured_block, 1770 parse_executable): Likewise. 1771 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise. 1772 * st.c (gfc_free_statement): Likewise. 1773 * trans.c (trans_code): Likewise. 1774 * trans-openmp.c (gfc_split_omp_clauses, 1775 gfc_trans_omp_directive): Likewise. 1776 (gfc_trans_omp_parallel_master): Move after gfc_trans_omp_master_taskloop; 1777 handle parallel master taskloop (simd) as well. 1778 (gfc_trans_omp_taskloop): Take gfc_exec_op as arg. 1779 (gfc_trans_omp_master_taskloop): New. 1780 17812021-05-30 Gerald Pfeifer <gerald@pfeifer.com> 1782 1783 * gfortran.texi (BOZ literal constants): Fix typo. 1784 17852021-05-28 Tobias Burnus <tobias@codesourcery.com> 1786 1787 * dump-parse-tree.c (show_iterator): New. 1788 (show_omp_namelist): Handle iterators. 1789 (show_omp_clauses): Handle affinity. 1790 * gfortran.h (gfc_free_omp_namelist): New union with 'udr' and new 'ns'. 1791 * match.c (gfc_free_omp_namelist): Add are to choose union element. 1792 * openmp.c (gfc_free_omp_clauses, gfc_match_omp_detach, 1793 gfc_match_omp_clause_reduction, gfc_match_omp_flush): Update 1794 call to gfc_free_omp_namelist. 1795 (gfc_match_omp_variable_list): Likewise; permit preceeding whitespace. 1796 (enum omp_mask1): Add OMP_CLAUSE_AFFINITY. 1797 (gfc_match_iterator): New. 1798 (gfc_match_omp_clauses): Use it; update call to gfc_free_omp_namelist. 1799 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_AFFINITY. 1800 (gfc_match_omp_taskwait): Match depend clause. 1801 (resolve_omp_clauses): Handle affinity; update for udr/union change. 1802 (gfc_resolve_omp_directive): Resolve clauses of taskwait. 1803 * st.c (gfc_free_statement): Update gfc_free_omp_namelist call. 1804 * trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Likewise 1805 (handle_iterator): New. 1806 (gfc_trans_omp_clauses): Handle iterators for depend/affinity clause. 1807 (gfc_trans_omp_taskwait): Handle depend clause. 1808 (gfc_trans_omp_directive): Update call. 1809 18102021-05-27 Harald Anlauf <anlauf@gmx.de> 1811 1812 PR fortran/100602 1813 * trans-intrinsic.c (gfc_conv_intrinsic_size): Use CLASS data 1814 attributes for CLASS arrays for generation of runtime error. 1815 18162021-05-27 Harald Anlauf <anlauf@gmx.de> 1817 1818 PR fortran/100656 1819 * trans-array.c (gfc_conv_ss_startstride): Do not call check for 1820 presence of a dummy argument when a symbol actually refers to a 1821 non-dummy. 1822 18232021-05-25 Tobias Burnus <tobias@codesourcery.com> 1824 Johannes Nendwich <a08727063@unet.univie.ac.at> 1825 1826 * intrinsic.texi (GERROR, GETARGS, GETLOG, NORM2, PARITY, RANDOM_INIT, 1827 RANDOM_NUMBER): Fix typos and copy'n'paste errors. 1828 18292021-05-24 Tobias Burnus <tobias@codesourcery.com> 1830 1831 PR fortran/86470 1832 * trans-expr.c (gfc_copy_class_to_class): Add unshare_expr. 1833 * trans-openmp.c (gfc_is_polymorphic_nonptr, 1834 gfc_is_unlimited_polymorphic_nonptr): New. 1835 (gfc_omp_clause_copy_ctor, gfc_omp_clause_dtor): Handle 1836 polymorphic scalars. 1837 18382021-05-23 Harald Anlauf <anlauf@gmx.de> 1839 1840 PR fortran/100551 1841 * trans-expr.c (gfc_conv_procedure_call): Adjust check for 1842 implicit conversion of actual argument to an unlimited polymorphic 1843 procedure argument. 1844 18452021-05-23 Tobias Burnus <tobias@codesourcery.com> 1846 1847 * intrinsic.texi (ATOMIC_ADD, ATOMIC_FETCH_ADD): Use the 1848 proper variable name in the description. 1849 18502021-05-22 Andre Vehreschild <vehre@gcc.gnu.org> 1851 Steve Kargl <kargl@gcc.gnu.org> 1852 1853 PR fortran/98301 1854 * trans-decl.c (gfc_build_builtin_function_decls): Move decl. 1855 * trans-intrinsic.c (conv_intrinsic_random_init): Use bool for 1856 lib-call of caf_random_init instead of logical (4-byte). 1857 * trans.h: Add tree var for random_init. 1858 18592021-05-20 Marcel Vollweiler <marcel@codesourcery.com> 1860 1861 * openmp.c (gfc_match_omp_clauses): Support map-type-modifier 'close'. 1862 18632021-05-18 Tobias Burnus <tobias@codesourcery.com> 1864 1865 PR fortran/100642 1866 * openmp.c (omp_code_to_statement): Add missing EXEC_OMP_DEPOBJ. 1867 18682021-05-17 Harald Anlauf <anlauf@gmx.de> 1869 1870 PR fortran/98411 1871 * trans-decl.c (gfc_finish_var_decl): Add check for explicit SAVE 1872 attribute. 1873 18742021-05-17 Tobias Burnus <tobias@codesourcery.com> 1875 1876 PR fortran/100633 1877 * resolve.c (gfc_resolve_code): Reject nonintrinsic assignments in 1878 OMP WORKSHARE. 1879 18802021-05-14 Tobias Burnus <tobias@codesourcery.com> 1881 1882 * dump-parse-tree.c (show_omp_node, show_code_node): Handle 1883 EXEC_OMP_PARALLEL_MASTER. 1884 * frontend-passes.c (gfc_code_walker): Likewise. 1885 * gfortran.h (enum gfc_statement): Add ST_OMP_PARALLEL_MASTER and 1886 ST_OMP_END_PARALLEL_MASTER. 1887 (enum gfc_exec_op): Add EXEC_OMP_PARALLEL_MASTER.. 1888 * match.h (gfc_match_omp_parallel_master): Handle it. 1889 * openmp.c (gfc_match_omp_parallel_master, resolve_omp_clauses, 1890 omp_code_to_statement, gfc_resolve_omp_directive): Likewise. 1891 * parse.c (decode_omp_directive, case_exec_markers, 1892 gfc_ascii_statement, parse_omp_structured_block, 1893 parse_executable): Likewise. 1894 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise. 1895 * st.c (gfc_free_statement): Likewise. 1896 * trans-openmp.c (gfc_trans_omp_parallel_master, 1897 gfc_trans_omp_workshare, gfc_trans_omp_directive): Likewise. 1898 * trans.c (trans_code): Likewise. 1899 19002021-05-14 Tobias Burnus <tobias@codesourcery.com> 1901 1902 * resolve.c (resolve_symbol): Handle implicit SAVE of main-program 1903 for vars in 'omp threadprivate' and 'omp declare target'. 1904 19052021-05-10 Martin Liska <mliska@suse.cz> 1906 1907 * decl.c (variable_decl): Use startswith 1908 function instead of strncmp. 1909 (gfc_match_end): Likewise. 1910 * gfortran.h (gfc_str_startswith): Likewise. 1911 * module.c (load_omp_udrs): Likewise. 1912 (read_module): Likewise. 1913 * options.c (gfc_handle_runtime_check_option): Likewise. 1914 * primary.c (match_arg_list_function): Likewise. 1915 * trans-decl.c (gfc_get_symbol_decl): Likewise. 1916 * trans-expr.c (gfc_conv_procedure_call): Likewise. 1917 * trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Likewise. 1918 19192021-05-06 Paul Thomas <pault@gcc.gnu.org> 1920 1921 PR fortran/46991 1922 PR fortran/99819 1923 * class.c (gfc_build_class_symbol): Remove the error that 1924 disables assumed size class arrays. Class array types that are 1925 not deferred shape or assumed rank are given a unique name and 1926 placed in the procedure namespace. 1927 * trans-array.c (gfc_trans_g77_array): Obtain the data pointer 1928 for class arrays. 1929 (gfc_trans_dummy_array_bias): Suppress the runtime error for 1930 extent violations in explicit shape class arrays because it 1931 always fails. 1932 * trans-expr.c (gfc_conv_procedure_call): Handle assumed size 1933 class actual arguments passed to non-descriptor formal args by 1934 using the data pointer, stored as the symbol's backend decl. 1935 19362021-05-05 Harald Anlauf <anlauf@gmx.de> 1937 1938 PR fortran/100274 1939 * interface.c (gfc_compare_actual_formal): Continue checks after 1940 emitting warning for argument length mismatch. 1941 * trans-expr.c (gfc_conv_procedure_call): Check for NULL pointer 1942 dereference. 1943 19442021-05-04 Tobias Burnus <tobias@codesourcery.com> 1945 1946 PR testsuite/100397 1947 * trans-openmp.c (gfc_trans_omp_depobj): Fix pasto in enum values. 1948 19492021-04-28 Tobias Burnus <tobias@codesourcery.com> 1950 1951 * openmp.c (gfc_match_omp_variable_list): Gobble whitespace before 1952 checking whether a '%' or parenthesis-open follows as next character. 1953 19542021-04-28 José Rui Faustino de Sousa <jrfsousa@gmail.com> 1955 1956 PR fortran/82376 1957 * trans-expr.c (gfc_conv_procedure_call): Evaluate function result 1958 and then pass a pointer. 1959 19602021-04-26 Thomas Schwinge <thomas@codesourcery.com> 1961 Nathan Sidwell <nathan@codesourcery.com> 1962 Tom de Vries <vries@codesourcery.com> 1963 Julian Brown <julian@codesourcery.com> 1964 Kwok Cheung Yeung <kcy@codesourcery.com> 1965 1966 * lang.opt (Wopenacc-parallelism): New. 1967 19682021-04-24 Harald Anlauf <anlauf@gmx.de> 1969 1970 PR fortran/100154 1971 * check.c (variable_check): Allow function reference having a data 1972 pointer result. 1973 (arg_strlen_is_zero): New function. 1974 (gfc_check_fgetputc_sub): Add static check of character and status 1975 arguments. 1976 (gfc_check_fgetput_sub): Likewise. 1977 * intrinsic.c (add_subroutines): Fix argument name for the 1978 character argument to intrinsic subroutines fget[c], fput[c]. 1979 19802021-04-24 Harald Anlauf <anlauf@gmx.de> 1981 1982 PR fortran/100218 1983 * expr.c (gfc_check_vardef_context): Extend check to allow pointer 1984 from a function reference. 1985 19862021-04-22 Martin Liska <mliska@suse.cz> 1987 1988 PR testsuite/100159 1989 PR testsuite/100192 1990 * frontend-passes.c (optimize_expr): Fix typos and missing comments. 1991 19922021-04-22 Michael Meissner <meissner@linux.ibm.com> 1993 1994 PR fortran/96983 1995 * trans-intrinsic.c (build_round_expr): If int type is larger than 1996 long long, do the round and convert to the integer type. Do not 1997 try to find a floating point type the exact size of the integer 1998 type. 1999 20002021-04-21 Tobias Burnus <tobias@codesourcery.com> 2001 2002 * dump-parse-tree.c (show_omp_namelist): Handle depobj + mutexinoutset 2003 in the depend clause. 2004 (show_omp_clauses, show_omp_node, show_code_node): Handle depobj. 2005 * gfortran.h (enum gfc_statement): Add ST_OMP_DEPOBJ. 2006 (enum gfc_omp_depend_op): Add OMP_DEPEND_UNSET, 2007 OMP_DEPEND_MUTEXINOUTSET and OMP_DEPEND_DEPOBJ. 2008 (gfc_omp_clauses): Add destroy, depobj_update and depobj. 2009 (enum gfc_exec_op): Add EXEC_OMP_DEPOBJ 2010 * match.h (gfc_match_omp_depobj): Match 'omp depobj'. 2011 * openmp.c (gfc_match_omp_clauses): Add depobj + mutexinoutset 2012 to depend clause. 2013 (gfc_match_omp_depobj, resolve_omp_clauses, gfc_resolve_omp_directive): 2014 Handle 'omp depobj'. 2015 * parse.c (decode_omp_directive, next_statement, gfc_ascii_statement): 2016 Likewise. 2017 * resolve.c (gfc_resolve_code): Likewise. 2018 * st.c (gfc_free_statement): Likewise. 2019 * trans-openmp.c (gfc_trans_omp_clauses): Handle depobj + mutexinoutset 2020 in the depend clause. 2021 (gfc_trans_omp_depobj, gfc_trans_omp_directive): Handle EXEC_OMP_DEPOBJ. 2022 * trans.c (trans_code): Likewise. 2023 20242021-04-20 Paul Thomas <pault@gcc.gnu.org> 2025 2026 PR fortran/100110 2027 * trans-decl.c (gfc_get_symbol_decl): Replace test for host 2028 association with a check that the current and symbol namespaces 2029 are the same. 2030 20312021-04-19 Thomas Schwinge <thomas@codesourcery.com> 2032 2033 * lang.opt (fopenacc-kernels=): Remove. 2034 20352021-04-16 José Rui Faustino de Sousa <jrfsousa@gmail.com> 2036 2037 PR fortran/100094 2038 * trans-array.c (gfc_trans_deferred_array): Add code to initialize 2039 pointers and allocatables with correct TKR parameters. 2040 20412021-04-16 José Rui Faustino de Sousa <jrfsousa@gmail.com> 2042 2043 PR fortran/100018 2044 * resolve.c: Add association check before de-referencing pointer. 2045 20462021-04-16 Harald Anlauf <anlauf@gmx.de> 2047 Paul Thomas <pault@gcc.gnu.org> 2048 2049 PR fortran/63797 2050 * module.c (write_symtree): Do not write interface of intrinsic 2051 procedure to module file for F2003 and newer. 2052 20532021-04-15 Paul Thomas <pault@gcc.gnu.org> 2054 2055 PR fortran/99307 2056 * symbol.c: Remove trailing white space. 2057 * trans-array.c (gfc_trans_create_temp_array): Create a class 2058 temporary for class expressions and assign the new descriptor 2059 to the data field. 2060 (build_class_array_ref): If the class expr can be extracted, 2061 then use that for 'decl'. Class function results are reliably 2062 handled this way. Call gfc_find_and_cut_at_last_class_ref to 2063 eliminate largely redundant code. Remove dead code and recast 2064 the rest of the code to extract 'decl' for remaining cases. 2065 Call gfc_build_spanned_array_ref. 2066 (gfc_alloc_allocatable_for_assignment): Use class descriptor 2067 element length for 'elemsize1'. Eliminate repeat set of dtype 2068 for class expressions. 2069 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Include 2070 additional code from build_class_array_ref, and use optional 2071 gfc_typespec pointer argument. 2072 (gfc_trans_scalar_assign): Make use of pre and post blocks for 2073 all class expressions. 2074 * trans.c (get_array_span): For unlimited polymorphic exprs 2075 multiply the span by the value of the _len field. 2076 (gfc_build_spanned_array_ref): New function. 2077 (gfc_build_array_ref): Call gfc_build_spanned_array_ref and 2078 eliminate repeated code. 2079 * trans.h: Add arg to gfc_find_and_cut_at_last_class_ref and 2080 add prototype for gfc_build_spanned_array_ref. 2081 20822021-04-14 Martin Liska <mliska@suse.cz> 2083 2084 * intrinsic.texi: The table has first column empty and it makes 2085 trouble when processing makeinfo --xml output. 2086 20872021-04-09 Tobias Burnus <tobias@codesourcery.com> 2088 2089 PR fortran/99817 2090 * trans-types.c (gfc_get_function_type): Also generate hidden 2091 coarray argument for character arguments. 2092 20932021-04-03 Paul Thomas <pault@gcc.gnu.org> 2094 2095 PR fortran/99818 2096 * interface.c (compare_parameter): The codimension attribute is 2097 applied to the _data field of class formal arguments. 2098 20992021-04-01 Harald Anlauf <anlauf@gmx.de> 2100 2101 PR fortran/99840 2102 * simplify.c (gfc_simplify_transpose): Properly initialize 2103 resulting shape. 2104 21052021-03-28 Paul Thomas <pault@gcc.gnu.org> 2106 2107 PR fortran/99602 2108 * trans-expr.c (gfc_conv_procedure_call): Use the _data attrs 2109 for class expressions and detect proc pointer evaluations by 2110 the non-null actual argument list. 2111 21122021-03-27 Steve Kargl <kargl@gcc.gnu.org> 2113 2114 * misc.c (gfc_typename): Fix off-by-one in buffer sizes. 2115 21162021-03-26 Tobias Burnus <tobias@codesourcery.com> 2117 2118 PR fortran/99651 2119 * intrinsic.c (gfc_intrinsic_func_interface): Set 2120 attr.proc = PROC_INTRINSIC if FL_PROCEDURE. 2121 21222021-03-24 Tobias Burnus <tobias@codesourcery.com> 2123 2124 PR fortran/99369 2125 * resolve.c (resolve_operator): Make 'msg' buffer larger 2126 and use snprintf. 2127 21282021-03-23 Tobias Burnus <tobias@codesourcery.com> 2129 2130 PR fortran/93660 2131 * trans-decl.c (build_function_decl): Add comment; 2132 increment hidden_typelist for caf_token/caf_offset. 2133 * trans-types.c (gfc_get_function_type): Add comment; 2134 add missing caf_token/caf_offset args. 2135 21362021-03-22 Tobias Burnus <tobias@codesourcery.com> 2137 2138 PR fortran/99688 2139 * match.c (select_type_set_tmp, gfc_match_select_type, 2140 gfc_match_select_rank): Fix 'name' buffersize to avoid out of bounds. 2141 * resolve.c (resolve_select_type): Likewise. 2142 21432021-03-19 Thomas Koenig <tkoenig@gcc.gnu.org> 2144 2145 * frontend-passes.c (inline_limit_check): Add rank_a 2146 argument. If a is rank 1, set the second dimension to 1. 2147 (inline_matmul_assign): Pass rank_a argument to inline_limit_check. 2148 (call_external_blas): Likewise. 2149 21502021-03-15 Thomas Koenig <tkoenig@gcc.gnu.org> 2151 2152 PR fortran/99345 2153 * frontend-passes.c (doloop_contained_procedure_code): 2154 Properly handle EXEC_IOLENGTH. 2155 21562021-03-15 Paul Thomas <pault@gcc.gnu.org> 2157 2158 PR fortran/99545 2159 * trans-stmt.c (gfc_trans_allocate): Mark the initialization 2160 assignment by setting init_flag. 2161 21622021-03-14 Harald Anlauf <anlauf@gmx.de> 2163 Paul Thomas <pault@gcc.gnu.org> 2164 2165 * trans-expr.c (gfc_conv_procedure_call): Fix runtime checks for 2166 CLASS arguments. 2167 * trans-intrinsic.c (gfc_conv_intrinsic_size): Likewise. 2168 21692021-03-13 Paul Thomas <pault@gcc.gnu.org> 2170 2171 PR fortran/99125 2172 * trans-array.c (gfc_conv_expr_descriptor): For deferred length 2173 length components use the ss_info string length instead of 2174 gfc_get_expr_charlen. Make sure that the deferred string length 2175 is a variable before assigning to it. Otherwise use the expr. 2176 * trans-expr.c (gfc_conv_string_length): Make sure that the 2177 deferred string length is a variable before assigning to it. 2178 21792021-03-12 Tobias Burnus <tobias@codesourcery.com> 2180 2181 PR fortran/99514 2182 * resolve.c (resolve_symbol): Accept vars which are in DATA 2183 and hence (either) implicit SAVE (or in common). 2184 21852021-03-10 Harald Anlauf <anlauf@gmx.de> 2186 2187 PR fortran/99205 2188 * data.c (gfc_assign_data_value): Reject non-constant character 2189 length for lvalue. 2190 * trans-array.c (gfc_conv_array_initializer): Restrict loop to 2191 elements which are defined to avoid NULL pointer dereference. 2192 21932021-03-10 Tobias Burnus <tobias@codesourcery.com> 2194 2195 * intrinsic.texi (MIN): Correct 'maximum' to 'minimum'. 2196 21972021-03-10 Eric Botcazou <ebotcazou@adacore.com> 2198 2199 PR fortran/96983 2200 * trans-intrinsic.c (build_round_expr): Do not implicitly assume 2201 that __float128 is the 128-bit floating-point type. 2202 22032021-03-08 Harald Anlauf <anlauf@gmx.de> 2204 2205 PR fortran/49278 2206 * data.c (gfc_assign_data_value): Reject variable with PARAMETER 2207 attribute in DATA statement. 2208 22092021-03-05 Tobias Burnus <tobias@codesourcery.com> 2210 2211 PR fortran/99355 2212 PR fortran/57871 2213 * invoke.texi (-freal{4,8}-real-*): Extend description. 2214 * primary.c (match_real_constant): Also promote real literals 2215 with '_kind' number. 2216 22172021-03-04 Tobias Burnus <tobias@codesourcery.com> 2218 2219 PR fortran/99355 2220 * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Avoid 2221 redoing kind conversions. 2222 * primary.c (match_real_constant): Likewise. 2223 22242021-02-28 Jakub Jelinek <jakub@redhat.com> 2225 2226 PR fortran/99303 2227 * openmp.c (gfc_omp_requires_add_clause): Fix up diagnostic message 2228 wordings. 2229 (resolve_omp_clauses): Likewise. 2230 22312021-02-28 Jakub Jelinek <jakub@redhat.com> 2232 2233 PR fortran/99300 2234 * frontend-passes.c (doloop_code): Replace double space in diagnostics 2235 with a single space. 2236 22372021-02-24 Paul Thomas <pault@gcc.gnu.org> 2238 2239 PR fortran/98342 2240 * trans-expr.c (gfc_conv_derived_to_class): Add optional arg. 2241 'derived_array' to hold the fixed, parmse expr in the case of 2242 assumed rank formal arguments. Deal with optional arguments. 2243 (gfc_conv_procedure_call): Null 'derived' array for each actual 2244 argument. Add its address to the call to gfc_conv_derived_to_ 2245 class. Access the 'data' field of scalar descriptors before 2246 deallocating allocatable components. Also strip NOPs before the 2247 calls to gfc_deallocate_alloc_comp. Use 'derived' array as the 2248 input to gfc_deallocate_alloc_comp if it is available. 2249 * trans.h : Include the optional argument 'derived_array' to 2250 the prototype of gfc_conv_derived_to_class. The default value 2251 is NULL_TREE. 2252 22532021-02-23 Paul Thomas <pault@gcc.gnu.org> 2254 2255 PR fortran/99124 2256 * resolve.c (resolve_fl_procedure): Include class results in 2257 the test for F2018, C15100. 2258 * trans-array.c (get_class_info_from_ss): Do not use the saved 2259 descriptor to obtain the class expression for variables. Use 2260 gfc_get_class_from_expr instead. 2261 22622021-02-23 Harald Anlauf <anlauf@gmx.de> 2263 2264 PR fortran/99206 2265 * simplify.c (gfc_simplify_reshape): Set string length for 2266 character arguments. 2267 22682021-02-22 Tobias Burnus <tobias@codesourcery.com> 2269 2270 PR fortran/99171 2271 * trans-openmp.c (gfc_omp_is_optional_argument): Regard optional 2272 dummy procs as nonoptional as no special treatment is needed. 2273 22742021-02-21 Harald Anlauf <anlauf@gmx.de> 2275 2276 * trans-expr.c (gfc_conv_procedure_call): Do not add clobber to 2277 allocatable intent(out) argument. 2278 22792021-02-19 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2280 2281 PR fortran/98686 2282 * match.c (gfc_match_namelist): If BT_UNKNOWN, check for 2283 IMPLICIT NONE and and issue an error, otherwise set the type 2284 to its IMPLICIT type so that any subsequent use of objects will 2285 will confirm their types. 2286 22872021-02-19 Harald Anlauf <anlauf@gmx.de> 2288 2289 * symbol.c (gfc_add_flavor): Reverse order of conditions. 2290 22912021-02-19 Tobias Burnus <tobias@codesourcery.com> 2292 2293 PR fortran/99010 2294 * dependency.c (gfc_dep_resolver): Fix coarray handling. 2295 22962021-02-19 Tobias Burnus <tobias@codesourcery.com> 2297 2298 PR fortran/99146 2299 * interface.c: 2300 23012021-02-19 Tobias Burnus <tobias@codesourcery.com> 2302 2303 PR fortran/99027 2304 * simplify.c (simplify_bound_dim): Honor DIMEN_ELEMENT 2305 when using dim=. 2306 23072021-02-17 Julian Brown <julian@codesourcery.com> 2308 2309 * openmp.c (resolve_omp_clauses): Disallow selecting components 2310 of arrays of derived type. 2311 23122021-02-17 Julian Brown <julian@codesourcery.com> 2313 2314 * trans-openmp.c (gfc_trans_omp_clauses): Handle element selection 2315 for arrays of derived types. 2316 23172021-02-16 Tobias Burnus <tobias@codesourcery.com> 2318 2319 * expr.c (gfc_is_simplify_contiguous): Handle REF_INQUIRY, i.e. 2320 %im and %re which are EXPR_VARIABLE. 2321 * openmp.c (resolve_omp_clauses): Diagnose %re/%im explicitly. 2322 23232021-02-16 Tobias Burnus <tobias@codesourcery.com> 2324 2325 PR fortran/99111 2326 * io.c (resolve_tag_format): Reject BT_DERIVED/CLASS/VOID 2327 as (array-valued) FORMAT tag. 2328 23292021-02-12 Tobias Burnus <tobias@codesourcery.com> 2330 2331 PR fortran/99043 2332 * trans-expr.c (gfc_conv_procedure_call): Don't reset 2333 rank of assumed-rank array. 2334 23352021-02-11 Paul Thomas <pault@gcc.gnu.org> 2336 2337 PR fortran/98897 2338 * match.c (gfc_match_call): Include associate names as possible 2339 entities with typebound subroutines. The target needs to be 2340 resolved for the type. 2341 23422021-02-11 Paul Thomas <pault@gcc.gnu.org> 2343 2344 PR fortran/99060 2345 * primary.c (gfc_match_varspec): Test for non-null 'previous' 2346 before using its name in the error message. 2347 23482021-02-11 Tobias Burnus <tobias@codesourcery.com> 2349 2350 * intrinsic.texi (FINDLOC): Add 'MASK' to argument table. 2351 (MAXLOC, MAXVAL, MINLOC, MINVAL): For 'MASK', remove 'an 2352 array' as scalars are also permitted. 2353 23542021-02-10 Julian Brown <julian@codesourcery.com> 2355 2356 PR fortran/98979 2357 * openmp.c (resolve_omp_clauses): Omit OpenACC update in 2358 contiguity check and stride-specified error. 2359 23602021-02-04 Julian Brown <julian@codesourcery.com> 2361 2362 * openmp.c (resolve_omp_clauses): Omit OpenACC update in 2363 contiguity check and stride-specified error. 2364 23652021-02-04 Julian Brown <julian@codesourcery.com> 2366 2367 * trans-openmp.c (gfc_trans_omp_clauses): Use class_pointer attribute 2368 for BT_CLASS. 2369 23702021-02-04 Julian Brown <julian@codesourcery.com> 2371 2372 * trans-openmp.c (gfc_trans_omp_clauses): Fix dereferencing for 2373 BT_DERIVED members. 2374 23752021-02-04 Tobias Burnus <tobias@codesourcery.com> 2376 2377 * openmp.c (resolve_omp_clauses): Explicitly diagnose 2378 substrings as not permitted. 2379 23802021-02-03 Jeff Law <law@redhat.com> 2381 2382 * intrinsic.texi (ANINT): Fix typo. 2383 23842021-02-03 Tobias Burnus <tobias@codesourcery.com> 2385 2386 PR fortran/98913 2387 * dependency.c (gfc_dep_resolver): Treat local access 2388 to coarrays like any array access in dependency analysis. 2389 23902021-01-28 Harald Anlauf <anlauf@gmx.de> 2391 2392 PR fortran/86470 2393 * trans.c (gfc_call_malloc): Allocate area of size 1 if passed 2394 size is NULL (as documented). 2395 23962021-01-27 Paul Thomas <pault@gcc.gnu.org> 2397 2398 PR fortran/93924 2399 PR fortran/93925 2400 * trans-expr.c (gfc_conv_procedure_call): Suppress the call to 2401 gfc_conv_intrinsic_to_class for unlimited polymorphic procedure 2402 pointers. 2403 (gfc_trans_assignment_1): Similarly suppress class assignment 2404 for class valued procedure pointers. 2405 24062021-01-27 Paul Thomas <pault@gcc.gnu.org> 2407 2408 PR fortran/98472 2409 * trans-array.c (gfc_conv_expr_descriptor): Include elemental 2410 procedure pointers in the assert under the comment 'elemental 2411 function' and eliminate the second, spurious assert. 2412 24132021-01-25 Harald Anlauf <anlauf@gmx.de> 2414 2415 PR fortran/70070 2416 * data.c (create_character_initializer): Check substring indices 2417 against bounds. 2418 (gfc_assign_data_value): Catch error returned from 2419 create_character_initializer. 2420 24212021-01-25 Tobias Burnus <tobias@codesourcery.com> 2422 2423 * intrinsic.texi (CO_BROADCAST, CO_MIN, CO_REDUCE, CO_SUM): Fix typos. 2424 24252021-01-25 Steve Kargl <kargl@gcc.gnu.org> 2426 2427 PR fortran/98517 2428 * resolve.c (resolve_charlen): Check that length expression is 2429 present before testing for scalar/integer.. 2430 24312021-01-22 Paul Thomas <pault@gcc.gnu.org> 2432 2433 PR fortran/98565 2434 * trans-intrinsic.c (gfc_conv_associated): Do not add a _data 2435 component for scalar class function targets. Instead, fix the 2436 function result and access the _data from that. 2437 24382021-01-21 Jorge D'Elia <jdelia@cimec.unl.edu.ar> 2439 2440 * intrinsic.texi (CO_MAX): Fix typo. 2441 24422021-01-21 Paul Thomas <pault@gcc.gnu.org> 2443 2444 PR fortran/96320 2445 * decl.c (gfc_match_modproc): It is not an error to find a 2446 module procedure declaration within a contains block. 2447 * expr.c (gfc_check_vardef_context): Pure procedure result is 2448 assignable. Change 'own_scope' accordingly. 2449 * resolve.c (resolve_typebound_procedure): A procedure that 2450 has the module procedure attribute is almost certainly a 2451 module procedure, whatever its interface. 2452 24532021-01-19 Tobias Burnus <tobias@codesourcery.com> 2454 2455 PR fortran/98476 2456 * openmp.c (resolve_omp_clauses): Change use_device_ptr 2457 to use_device_addr for unless type(c_ptr); check all 2458 list item for is_device_ptr. 2459 24602021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com> 2461 2462 * dump-parse-tree.c (show_omp_clauses): Handle detach clause. 2463 * frontend-passes.c (gfc_code_walker): Walk detach expression. 2464 * gfortran.h (struct gfc_omp_clauses): Add detach field. 2465 (gfc_c_intptr_kind): New. 2466 * openmp.c (gfc_free_omp_clauses): Free detach clause. 2467 (gfc_match_omp_detach): New. 2468 (enum omp_mask1): Add OMP_CLAUSE_DETACH. 2469 (enum omp_mask2): Remove OMP_CLAUSE_DETACH. 2470 (gfc_match_omp_clauses): Handle OMP_CLAUSE_DETACH for OpenMP. 2471 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DETACH. 2472 (resolve_omp_clauses): Prevent use of detach with mergeable and 2473 overriding the data sharing mode of the event handle. 2474 * trans-openmp.c (gfc_trans_omp_clauses): Handle detach clause. 2475 * trans-types.c (gfc_c_intptr_kind): New. 2476 (gfc_init_kinds): Initialize gfc_c_intptr_kind. 2477 * types.def 2478 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename 2479 to... 2480 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR): 2481 ...this. Add extra argument. 2482 24832021-01-14 Harald Anlauf <anlauf@gmx.de> 2484 2485 * gfortran.h (gfc_resolve_substring): Add prototype. 2486 * primary.c (match_string_constant): Simplify substrings with 2487 constant starting and ending points. 2488 * resolve.c: Rename resolve_substring to gfc_resolve_substring. 2489 (gfc_resolve_ref): Use renamed function gfc_resolve_substring. 2490 24912021-01-14 Harald Anlauf <anlauf@gmx.de> 2492 2493 PR fortran/98661 2494 * resolve.c (resolve_component): Derived type components with 2495 ALLOCATABLE or POINTER attribute shall have a deferred shape. 2496 24972021-01-14 Harald Anlauf <anlauf@gmx.de> 2498 2499 Revert: 2500 2021-01-14 Harald Anlauf <anlauf@gmx.de> 2501 2502 PR fortran/98661 2503 * resolve.c (resolve_component): Derived type components with 2504 ALLOCATABLE or POINTER attribute shall have a deferred shape. 2505 25062021-01-14 Harald Anlauf <anlauf@gmx.de> 2507 2508 PR fortran/98661 2509 * resolve.c (resolve_component): Derived type components with 2510 ALLOCATABLE or POINTER attribute shall have a deferred shape. 2511 25122021-01-08 Paul Thomas <pault@gcc.gnu.org> 2513 2514 PR fortran/93794 2515 * trans-expr.c (gfc_conv_component_ref): Remove the condition 2516 that deferred character length components only be allocatable. 2517 25182021-01-08 Paul Thomas <pault@gcc.gnu.org> 2519 2520 PR fortran/98458 2521 * simplify.c (is_constant_array_expr): If an array constructor 2522 expression has elements other than constants or structures, try 2523 fixing the expression with gfc_reduce_init_expr. Also, if shape 2524 is NULL, obtain the array size and set it. 2525 25262021-01-07 Paul Thomas <pault@gcc.gnu.org> 2527 2528 PR fortran/93701 2529 * resolve.c (find_array_spec): Put static prototype for 2530 resolve_assoc_var before this function and call for associate 2531 variables. 2532 25332021-01-06 Harald Anlauf <anlauf@gmx.de> 2534 2535 * resolve.c (resolve_component): Add check for valid CLASS 2536 reference before trying to access CLASS data. 2537 25382021-01-04 Martin Liska <mliska@suse.cz> 2539 2540 * ChangeLog-2018: Remove duplicate ChangeLog entries. 2541 25422021-01-01 Harald Anlauf <anlauf@gmx.de> 2543 2544 * class.c (gfc_find_vtab): Add check on attribute is_class. 2545 25462021-01-01 Jakub Jelinek <jakub@redhat.com> 2547 2548 * gfortranspec.c (lang_specific_driver): Update copyright notice 2549 dates. 2550 * gfc-internals.texi: Bump @copying's copyright year. 2551 * gfortran.texi: Ditto. 2552 * intrinsic.texi: Ditto. 2553 * invoke.texi: Ditto. 2554 25552021-01-01 Jakub Jelinek <jakub@redhat.com> 2556 2557 * ChangeLog-2020: Rotate ChangeLog. New file. 2558 2559Copyright (C) 2021 Free Software Foundation, Inc. 2560 2561Copying and distribution of this file, with or without modification, 2562are permitted in any medium without royalty provided the copyright 2563notice and this notice are preserved. 2564