12019-12-30 Thomas Koenig <tkoenig@gcc.gnu.org> 2 3 PR fortran/91651 4 * intrinsic.c (add_sym_4ind): New function. 5 (add_functions): Use it for INDEX. 6 (resolve_intrinsic): Also call f1m for INDEX. 7 * intrinsic.h (gfc_resolve_index_func): Adjust prototype to 8 take a gfc_arglist instead of individual arguments. 9 * iresolve.c (gfc_resolve_index_func): Adjust arguments. 10 Remove KIND argument if present, and make sure this is 11 not done twice. 12 * trans-decl.c: Include "intrinsic.h". 13 (gfc_get_extern_function_decl): Special case for resolving INDEX. 14 152019-12-30 Thomas Koenig <tkoenig@gcc.gnu.org> 16 17 PR fortran/92961 18 * gfortran.h (gfc_seen_div0): Add declaration. 19 * arith.h (gfc_seen_div0): Add definition. 20 (eval_intrinsic): For integer division by zero, set gfc_seen_div0. 21 * decl.c (variable_decl): If resolution resp. simplification 22 fails for array spec and a division of zero error has been 23 seen, return MATCH_ERROR. 24 252019-12-21 Harald Anlauf <anlauf@gmx.de> 26 27 PR fortran/92990 28 * match.c (gfc_match_nullify): Check for valid pointer object. 29 Reject bounds remapping. 30 312019-12-21 Paul Thomas <pault@gcc.gnu.org> 32 33 PR fortran/92753 34 * expr.c (find_inquiry_ref): Catch INQUIRY_LEN case, where the 35 temporary expression has been converted to a constant and make 36 the new expression accordingly. Correct the error in INQUIRY_RE 37 and INQUIRY_IM cases. The original rather than the resolved 38 expression was being used as the source in mpfr_set. 39 402019-12-20 Jakub Jelinek <jakub@redhat.com> 41 42 PR middle-end/91512 43 PR fortran/92738 44 * lang.opt (-finline-arg-packing): Add trailing dot to help text. 45 462019-12-20 Thomas Koenig <tkoenig@gcc.gnu.org> 47 48 PR middle-end/91512 49 PR fortran/92738 50 * invoke.texi: Document -finline-arg-packing. 51 * lang.opt: Add -finline-arg-packing. 52 * options.c (gfc_post_options): Handle -finline-arg-packing. 53 * trans-array.c (gfc_conv_array_parameter): Use 54 flag_inline_arg_packing instead of checking for optimize and 55 optimize_size. 56 572019-12-20 Tobias Burnus <tobias@codesourcery.com> 58 59 PR fortran/92996 60 * expr.c (simplify_parameter_variable): Call gfc_resolve_ref and 61 gfc_expression_rank; fix location info. 62 * gfortran.h (gfc_resolve_ref, gfc_expression_rank): Declare. 63 * match.c (gfc_match_stopcode): Remove redundant setting of 64 gfc_init_expr_flag; early return if gfc_simplify_expr has an error. 65 * resolve.c (gfc_expression_rank): Renamed from expression_rank; 66 minor cleanup. 67 (gfc_resolve_ref): Removed static and renamed from resolve_ref. 68 (resolve_variable, resolve_typebound_function, 69 resolve_typebound_subroutine, resolve_ppc_call, resolve_expr_ppc, 70 gfc_resolve_expr, resolve_procedure): Update calls. 71 722019-12-20 Tobias Burnus <tobias@codesourcery.com> 73 74 * openmp.c (resolve_omp_clauses): Move is-coindexed check from here ... 75 (gfc_match_omp_variable_list): ... to here. 76 772019-12-19 Julian Brown <julian@codesourcery.com> 78 79 * openmp.c (resolve_oacc_data_clauses): Don't disallow allocatable 80 polymorphic types for OpenACC. 81 * trans-openmp.c (gfc_trans_omp_clauses): Support polymorphic class 82 types. 83 842019-12-19 Julian Brown <julian@codesourcery.com> 85 86 * gfortran.h (gfc_omp_map_op): Add OMP_MAP_ATTACH, OMP_MAP_DETACH. 87 * openmp.c (gfc_match_omp_variable_list): Add allow_derived parameter. 88 Parse derived-type member accesses if true. 89 (omp_mask2): Add OMP_CLAUSE_ATTACH and OMP_CLAUSE_DETACH. 90 (gfc_match_omp_map_clause): Add allow_derived parameter. Pass to 91 gfc_match_omp_variable_list. 92 (gfc_match_omp_clauses): Support attach and detach. Support derived 93 types for appropriate OpenACC directives. 94 (OACC_PARALLEL_CLAUSES, OACC_SERIAL_CLAUSES, OACC_KERNELS_CLAUSES, 95 OACC_DATA_CLAUSES, OACC_ENTER_DATA_CLAUSES): Add OMP_CLAUSE_ATTACH. 96 (OACC_EXIT_DATA_CLAUSES): Add OMP_CLAUSE_DETACH. 97 (check_symbol_not_pointer): Don't disallow pointer objects of derived 98 type. 99 (resolve_oacc_data_clauses): Don't disallow allocatable derived types. 100 (resolve_omp_clauses): Perform duplicate checking only for non-derived 101 type component accesses (plain variables and arrays or array sections). 102 Support component refs. 103 * trans-expr.c (gfc_conv_component_ref, 104 conv_parent_component_references): Make global. 105 (gfc_maybe_dereference_var): New function, broken out of... 106 (gfc_conv_variable): ...here. Call above function. 107 * trans-openmp.c (gfc_omp_privatize_by_reference): Support component 108 refs. 109 (gfc_trans_omp_array_section): New function, broken out of... 110 (gfc_trans_omp_clauses): ...here. Support component refs/derived 111 types, attach and detach clauses. 112 * trans.h (gfc_conv_component_ref, conv_parent_component_references, 113 gfc_maybe_dereference_var): Add prototypes. 114 1152019-12-19 Mark Eggleston <mark.eggleston@codethink.com> 116 117 PR fortran/92896 118 * array.c (walk_array_constructor): Replace call to gfc_convert_type 119 with call to gfc_convert_type_warn with new argument set to true. 120 (check_element_type): Replace call to cfg_convert_type with call to 121 gfc_convert_type_warn with new argument set to true. 122 * gfortran.h: Add argument "array" to gfc_convert_type_warn default 123 value set to false. 124 *intrinsic.c (gfc_convert_type_warn): Update description of arguments. 125 Add new argument to argument list. Add check for conversion to numeric 126 or logical from character and array set to true, i.e. if conversion 127 from character is in an array constructor reject it, goto bad. 128 1292019-12-19 Jakub Jelinek <jakub@redhat.com> 130 131 PR fortran/92977 132 * frontend-passes.c (call_external_blas): Use || instead of |. 133 1342019-12-19 Jakub Jelinek <jakub@redhat.com> 135 136 PR fortran/92977 137 * frontend-passes.c (in_omp_atomic): New variable. 138 (cfe_expr_0, matmul_to_var_expr, matmul_temp_args, 139 inline_matmul_assign, call_external_blas): Don't optimize in 140 EXEC_OMP_ATOMIC. 141 (optimize_namespace): Clear in_omp_atomic. 142 (gfc_code_walker): Set in_omp_atomic for EXEC_OMP_ATOMIC, save/restore 143 it around. 144 1452019-12-19 Julian Brown <julian@codesourcery.com> 146 Maciej W. Rozycki <macro@codesourcery.com> 147 Tobias Burnus <tobias@codesourcery.com> 148 Thomas Schwinge <thomas@codesourcery.com> 149 150 * gfortran.h (gfc_omp_map_op): Add OMP_MAP_NO_ALLOC. 151 * openmp.c (omp_mask2): Add OMP_CLAUSE_NO_CREATE. 152 (gfc_match_omp_clauses): Support no_create. 153 (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES) 154 (OACC_DATA_CLAUSES): Add OMP_CLAUSE_NO_CREATE. 155 * trans-openmp.c (gfc_trans_omp_clauses_1): Support 156 OMP_MAP_NO_ALLOC. 157 1582019-12-18 Harald Anlauf <anlauf@gmx.de> 159 160 PR fortran/70853 161 * trans-expr.c (gfc_trans_pointer_assignment): Reject bounds 162 remapping if pointer target is NULL(). 163 1642019-12-12 Harald Anlauf <anlauf@gmx.de> 165 166 PR fortran/92898 167 * check.c (gfc_check_is_contiguous): Simplify check to handle 168 arbitrary NULL() argument. 169 1702019-12-11 Jakub Jelinek <jakub@redhat.com> 171 172 PR fortran/92899 173 * trans-openmp.c (gfc_trans_omp_atomic): For GFC_OMP_ATOMIC_SWAP, 174 do look through conversion on expr2 if any. 175 1762019-12-11 Steven G. Kargl <kargl@gcc.gnu.org> 177 178 PR fortran/92897 179 * array.c (gfc_set_array_spec): Remove invalid assert() triggered 180 by invalid Fortran code. 181 1822019-12-10 Thomas Koenig <tkoenig@gcc.gnu.org> 183 184 PR fortran/91643 185 * trans-array.c (gfc_conv_array_parameter): Do not repack 186 an assumed rank dummy argument. 187 1882019-12-10 Martin Liska <mliska@suse.cz> 189 190 PR fortran/92874 191 * dependency.c (gfc_dep_compare_expr): Bail out 192 when one of the arguments is null. 193 1942019-12-10 Thomas Koenig <tkoenig@gcc.gnu.org> 195 196 PR fortran/92863 197 * misc.c (gfc_typename): If derived component is NULL for 198 derived or class, return "invalid type" or "invalid class", 199 respectively. 200 2012019-12-10 Tobias Burnus <tobias@codesourcery.com> 202 203 PR fortran/92872 204 * trans-array.c (get_CFI_desc): Fix cond whether saved desc exists. 205 2062019-12-09 David Malcolm <dmalcolm@redhat.com> 207 208 * error.c (gfc_diagnostic_starter): Add pp_newline call before 209 call to diagnostic_show_locus. 210 2112019-12-09 Frederik Harwath <frederik@codesourcery.com> 212 213 * trans-openmp.c (gfc_trans_omp_reduction_list): Pass correct location for each 214 clause to build_omp_clause. 215 2162018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> 217 218 PR fortran/92780 219 * resolve.c (resolve_assoc_var): Issue error if the associating 220 entity is a program. 221 2222018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> 223 224 PR fortran/92764 225 * interface.c (gfc_procedure_use): Check for existence of derived 226 component before using (twice). 227 2282019-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> 229 230 PR fortran/92755 231 * dependency.c (gfc_dep_resolver): Move skipping of _data ref 232 into the loop. 233 2342019-12-07 Tobias Burnus <tobias@codesourcery.com> 235 236 PR fortran/92793 237 * trans.c (gfc_get_location): Declare. 238 * trans.c (gfc_get_location): Define; returns column-corrected location. 239 (trans_runtime_error_vararg, gfc_trans_runtime_check, 240 gfc_generate_module_code): Use new function. 241 * trans-array.c (gfc_trans_auto_array_allocation): Likewise. 242 * trans-common.c (build_field, get_init_field, create_common): Likewise. 243 * trans-decl.c (gfc_build_label_decl, gfc_get_symbol_decl): Likewise. 244 * trans-openmp.c (gfc_trans_omp_reduction_list, gfc_trans_omp_clauses): 245 Likewise. 246 * trans-stmt.c (gfc_trans_if_1): Likewise. 247 2482019-12-06 Jakub Jelinek <jakub@redhat.com> 249 250 PR fortran/92775 251 * trans.h (struct lang_type, struct lang_decl): Remove span member. 252 (GFC_DECL_SPAN, GFC_TYPE_ARRAY_SPAN): Remove macros. 253 * trans-array.h (gfc_get_descriptor_offsets_for_info): Add another 254 argument. 255 * trans-array.c (gfc_get_descriptor_offsets_for_info): Add SPAN_OFF 256 argument and initialize *SPAN_OFF to the offset of span field. 257 * trans-types.c (gfc_get_array_descr_info): Adjust 258 gfc_get_descriptor_offsets_for_info caller. Compute elem_size 259 as base->span instead of TYPE_SIZE_UNIT (etype) constant. 260 2612019-12-06 Tobias Burnus <tobias@codesourcery.com> 262 Kwok Cheung Yeung <kcy@codesourcery.com> 263 264 * trans-openmp.c (gfc_build_conditional_assign, 265 gfc_build_conditional_assign_expr): New static functions. 266 (gfc_omp_finish_clause, gfc_trans_omp_clauses): Handle mapping of 267 absent optional arguments and fix mapping of present optional args. 268 2692019-12-05 Tobias Burnus <tobias@codesourcery.com> 270 271 * trans-openmp.c (gfc_omp_is_optional_argument, 272 gfc_omp_check_optional_argument): Handle type(c_ptr),value which uses a 273 2742019-12-05 Jakub Jelinek <jakub@redhat.com> 275 276 PR fortran/92781 277 * trans-decl.c (gfc_get_symbol_decl): If sym->backend_decl is 278 current_function_decl, add length to current rather than parent 279 function and expect DECL_CONTEXT (length) to be current_function_decl. 280 2812019-12-04 Tobias Burnus <tobias@codesourcery.com> 282 283 PR fortran/92754 284 * intrinsic.c (gfc_intrinsic_func_interface): Set 285 sym's flavor, intrinsic and function attribute if 286 unset. 287 2882019-12-04 Jakub Jelinek <jakub@redhat.com> 289 290 PR fortran/92756 291 * trans-openmp.c (gfc_trans_omp_teams): Wrap OMP_TEAMS body into a 292 BIND_EXPR with a forced BLOCK. 293 2942019-11-30 Thomas Koenig <tkoenig@gcc.gnu.org> 295 296 PR fortran/91783 297 * dependency.c (gfc_dep_resolver): Do not look at _data 298 component if present. 299 3002019-11-28 Jerry DeLisle <jvdelisle@gcc.ngu.org> 301 302 PR fortran/90374 303 * io.c (check_format): Allow zero width expoenent with e0. 304 3052019-11-27 Jakub Jelinek <jakub@redhat.com> 306 307 PR fortran/91944 308 * simplify.c (gfc_simplify_spread): Check gfc_init_expr_flag instead 309 of gfc_current_ns->sym_root->n.sym->attr.flavor == FL_PARAMETER. 310 3112019-11-27 Tobias Burnus <tobias@codesourcery.com> 312 313 PR middle-end/92463 314 * arith.c (gfc_check_real_range): Replace mp_exp_t by mpfr_exp_t. 315 3162019-11-25 Harald Anlauf <anlauf@gmx.de> 317 318 PR fortran/92629 319 * simplify.c (convert_mpz_to_unsigned): Skip assert for argument 320 range when -fno-range-check is specified. 321 3222019-11-25 Mark Eggleston <mark.eggleston@codethink.com> 323 Jim MacArthur <jim.macarthur@codethink.co.uk> 324 325 * gfortran.texi: Update Hollerith constants support for character types 326 and use in comparisons. 327 * invoke.texi: Tidy up list of options. Update description of 328 -fdec-char-conversions. 329 * resolve.c (is_character_based): New. 330 (Convert_hollerith_to_character): New. (convert_to_numeric): New. 331 (resolve_operator): If both sides are character based and -fdec is 332 enabled convert Hollerith to character. If an operand is Hollerith, the 333 other is numeric and -fdec is enabled convert to numeric. 334 (resolve_ordinary_assign): Add check for -fdec-char-conversions for 335 assignment of character literals.2019-11-20 Janne Blomqvist <jb@gcc.gnu.org> 336 337 PR fortran/92463 338 Revert r269139 339 * simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use 340 mpfr_regular_p instead of mpfr_number_p && !mpfr_zero_p. 341 (norm2_add_squared): Likewise. Use mpfr_exp_t rather than 342 mp_exp_t. 343 3442019-11-20 Janne Blomqvist <jb@gcc.gnu.org> 345 346 PR fortran/92463 347 * arith.c (gfc_mpfr_to_mpz): Change mp_exp_t to mpfr_exp_t. 348 (gfc_check_real_range): Likewise. 349 * gfortran.h (GFC_RND_MODE): Change GMP_RNDN to MPFR_RNDN. 350 * module.c (mio_gmp_real): Change mp_exp_t to mpfr_exp_t. 351 * simplify.c (degrees_f): Change mp_rnd_t to mpfr_rnd_t. 352 (radians_f): Likewise. 353 (fullprec_erfc_scaled): Change mp_prec_t to mpfr_prec_t. 354 (asympt_erfc_scaled): Likewise. 355 (gfc_simplify_nearest): Change mp_exp_t to mpfr_exp_t, and 356 GMP_RND* to MPFR_RND*. 357 3582019-11-15 Paul Thomas <pault@gcc.gnu.org> 359 360 PR fortran/69654 361 * trans-expr.c (gfc_trans_structure_assign): Move assignment to 362 'cm' after treatment of C pointer types and test that the type 363 has been completely built before it. Add an assert that the 364 backend_decl for each component exists. 365 3662019-11-13 Tobias Burnus <tobias@codesourcery.com> 367 368 * trans-expr.c (gfc_conv_procedure_call): Fold hidden 369 is-present argument to the right type. 370 3712019-11-12 Harald Anlauf <anlauf@gmx.de> 372 373 PR fortran/81651 374 * module.c (gzopen_included_file, gzopen_included_file_1) 375 (gzopen_intrinsic_module, bad_module, gfc_use_module): Use fully 376 qualified module path for error reporting. 377 3782019-11-12 Martin Liska <mliska@suse.cz> 379 380 * options.c (gfc_init_options): 381 Use SET_OPTION_IF_UNSET. 382 3832019-11-12 Maciej W. Rozycki <macro@codesourcery.com> 384 Frederik Harwath <frederik@codesourcery.com> 385 386 gcc/fortran/ 387 * gfortran.h (gfc_statement): Add ST_OACC_SERIAL_LOOP, 388 ST_OACC_END_SERIAL_LOOP, ST_OACC_SERIAL and ST_OACC_END_SERIAL 389 enumeration constants. 390 (gfc_exec_op): Add EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL 391 enumeration constants. 392 * match.h (gfc_match_oacc_serial): New prototype. 393 (gfc_match_oacc_serial_loop): Likewise. 394 * dump-parse-tree.c (show_omp_node, show_code_node): Handle 395 EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL. 396 * match.c (match_exit_cycle): Handle EXEC_OACC_SERIAL_LOOP. 397 * openmp.c (OACC_SERIAL_CLAUSES): New macro. 398 (gfc_match_oacc_serial_loop): New function. 399 (gfc_match_oacc_serial): Likewise. 400 (oacc_is_loop): Handle EXEC_OACC_SERIAL_LOOP. 401 (resolve_omp_clauses): Handle EXEC_OACC_SERIAL. 402 (oacc_code_to_statement): Handle EXEC_OACC_SERIAL and 403 EXEC_OACC_SERIAL_LOOP. 404 (gfc_resolve_oacc_directive): Likewise. 405 * parse.c (decode_oacc_directive) <'s'>: Add case for "serial" 406 and "serial loop". 407 (next_statement): Handle ST_OACC_SERIAL_LOOP and ST_OACC_SERIAL. 408 (gfc_ascii_statement): Likewise. Handle ST_OACC_END_SERIAL_LOOP 409 and ST_OACC_END_SERIAL. 410 (parse_oacc_structured_block): Handle ST_OACC_SERIAL. 411 (parse_oacc_loop): Handle ST_OACC_SERIAL_LOOP and 412 ST_OACC_END_SERIAL_LOOP. 413 (parse_executable): Handle ST_OACC_SERIAL_LOOP and 414 ST_OACC_SERIAL. 415 (is_oacc): Handle EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL. 416 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise. 417 * st.c (gfc_free_statement): Likewise. 418 * trans-openmp.c (gfc_trans_oacc_construct): Handle 419 EXEC_OACC_SERIAL. 420 (gfc_trans_oacc_combined_directive): Handle 421 EXEC_OACC_SERIAL_LOOP. 422 (gfc_trans_oacc_directive): Handle EXEC_OACC_SERIAL_LOOP and 423 EXEC_OACC_SERIAL. 424 * trans.c (trans_code): Likewise. 425 4262019-11-11 Janne Blomqvist <jb@gcc.gnu.org> 427 428 PR fortran/91828 429 * simplify.c (gfc_simplify_fraction): Remove fallback path for 430 MPFR < 3.1.0. 431 4322019-11-11 Tobias Burnus <tobias@codesourcery.com> 433 Kwok Cheung Yeung <kcy@codesourcery.com> 434 435 * trans-expr.c (gfc_conv_expr_present): Check for DECL_ARTIFICIAL 436 for the VALUE hidden argument avoiding -fallow-underscore issues. 437 * trans-decl.c (create_function_arglist): Also set 438 GFC_DECL_OPTIONAL_ARGUMENT for per-value arguments. 439 * f95-lang.c (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT): 440 Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; point 441 to gfc_omp_check_optional_argument. 442 * trans.h (gfc_omp_check_optional_argument): Subsitutes 443 gfc_omp_is_optional_argument declaration. 444 * trans-openmp.c (gfc_omp_is_optional_argument): Make static. 445 (gfc_omp_check_optional_argument): New function. 446 4472019-11-10 Janne Blomqvist <jb@gcc.gnu.org> 448 449 PR fortran/91413 450 * trans-decl.c (gfc_finish_var_decl): Don't print warning when 451 -fno-automatic is enabled. 452 4532019-11-10 Paul Thomas <pault@gcc.gnu.org> 454 455 PR fortran/92123 456 *decl.c (gfc_verify_c_interop_param): Remove error asserting 457 that pointer or allocatable variables in a bind C procedure are 458 not supported. Delete some trailing spaces. 459 * trans-stmt.c (trans_associate_var): Correct the attempt to 460 treat scalar pointer or allocatable temporaries as if they are 461 array descriptors. 462 4632019-11-09 Thomas Koenig <tkoenig@gcc.gnu.org> 464 465 PR fortran/92321 466 * frontend-passes.c (call_external_blas): Commit symbol for 467 external BLAS routine. 468 4692019-11-08 Jakub Jelinek <jakub@redhat.com> 470 471 * arith.c (character2representation): Change i type to size_t. 472 4732019-11-08 Mark Eggleston <mark.eggleston@codethink.com> 474 Jim MacArthur <jim.macarthur@codethink.co.uk> 475 476 * arith.c (hollerith2representation): Use OPT_Wcharacter_truncation in 477 call to gfc_warning. 478 (character2representation, gfc_character2int, gfc_character2real, 479 gfc_character2complex and gfc_character2logical): New. 480 * arith.h (gfc_character2int, gfc_character2real, gfc_character2complex, 481 gfc_character2logical): Declare. 482 * expr.c (gfc_check_assign): Return true if left hand side is numeric 483 or logical and the right hand side is character and of kind=1. 484 * gfortran.texi: Add -fdec-char-conversions. 485 * intrinsic.c (add_conversions): Add conversions from character to 486 integer, real, complex and logical types for their supported kinds. 487 (gfc_convert_type_warn): Reorder if..else if.. sequence so that warnings 488 are produced for conversion to logical. 489 * invoke.texi: Add option to list of options. 490 * invoke.texi: Add Character conversion subsection to Extensions 491 section. 492 * lang.opt: Add new option. 493 * options.c (set_dec_flags): Add SET_BITFLAG for 494 flag_dec_char_conversions. 495 * resolve.c (resolve_ordindary_assign): Issue error if the left hand 496 side is numeric or logical and the right hand side is a character 497 variable. 498 * simplify.c (gfc_convert_constant): Assign the conversion function 499 depending on destination type. 500 * trans-const.c (gfc_constant_to_tree): Use OPT_Wsurprising in 501 gfc_warning allowing the warning to be switched off only if 502 flag_dec_char_conversions is enabled. 503 5042019-11-08 Tobias Burnus <tobias@codesourcery.com 505 506 PR fortran/91253 507 * scanner.c (skip_fixed_comments): Move comment 508 lines to next if block. 509 (gfc_next_char_literal): Fix continue_line setting. 510 (get_file): Remove bogus ATTRIBUTE_UNUSED. 511 5122019-11-06 Jerry DeLisle <jvdelisle@gcc.ngu.org> 513 514 PR fortran/90374 515 * io.c (check_format): Allow zero width for D, E, EN, and ES 516 specifiers as default and when -std=F2018 is given. Retain 517 existing errors when using the -fdec family of flags. 518 5192019-11-03 Thomas Koenig <tkoenig@gcc.gnu.org> 520 521 PR fortran/92113 522 * trans-decl.c (gfc_get_symbol_decl): If __def_init actually 523 contains a value, put it into the read-only section. 524 5252019-11-01 Steven G. Kargl <kargl@gcc.gnu.org> 526 527 * decl.c (match_byte_typespec): New function. Match BYTE type-spec. 528 (gfc_match_decl_type_spec): Use it. 529 5302019-11-01 Steven G. Kargl <kargl@gcc.gnu.org> 531 532 PR fortran/90988 533 * decl.c (gfc_match_private, gfc_match_public): Fixed-form source code 534 does not require whitespace between PRIVATE (or PUBLIC) and an entity. 535 5362019-11-01 Tobias Burnus <tobias@codesourcery.com> 537 538 * f95-lang.c (LANG_HOOKS_OMP_ARRAY_DATA): Set to gfc_omp_array_data. 539 * trans-array.c (gfc_conv_descriptor_data_get): Handle also 540 REFERENCE_TYPE. 541 * trans-openmp.c (gfc_omp_array_data): New. 542 * trans.h (gfc_omp_array_data): New prototype. 543 5442019-10-31 Tobias Burnus <tobias@codesourcery.com> 545 546 PR fortran/92284. 547 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Free CFI descriptor 548 at the end; partial revised revert of Rev. 277502. 549 5502019-10-31 Tobias Burnus <tobias@codesourcery.com> 551 552 PR fortran/92277 553 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Fix DECL_ARTIFICIAL 554 checking. 555 5562019-10-30 Tobias Burnus <tobias@codesourcery.com> 557 558 PR fortran/92208 559 * trans-array.c (gfc_conv_array_parameter): Only copy 560 string-length backend_decl if expression is not a function. 561 5622019-10-30 Mark Eggleston <mark.eggleston@codethink.com> 563 564 * invoke.texi: Add -Wno-overwrite-recursive to list of options. Add 565 description of -Wno-overwrite-recursive. Fix typo in description 566 of -Winteger-division. 567 * lang.opt: Add option -Woverwrite-recursive initialised as on. 568 * option.c (gfc_post_options): Output warning only if it is enabled. 569 5702019-10-28 Tobias Burnus <tobias@codesourcery.com> 571 572 PR fortran/91863 573 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Don't free data 574 memory as that's done on the Fortran side. 575 (gfc_conv_procedure_call): Handle void* pointers from 576 gfc_conv_gfc_desc_to_cfi_desc. 577 5782019-10-27 Paul Thomas <pault@gcc.gnu.org> 579 580 PR fortran/86248 581 * resolve.c (flag_fn_result_spec): Correct a typo before the 582 function declaration. 583 * trans-decl.c (gfc_sym_identifier): Boost the length of 'name' 584 to allow for all variants. Simplify the code by using a pointer 585 to the symbol's proc_name and taking the return out of each of 586 the conditional branches. Allow symbols with fn_result_spec set 587 that do not come from a procedure namespace and have a module 588 name to go through the non-fn_result_spec branch. 589 5902019-10-25 Cesar Philippidis <cesar@codesourcery.com> 591 Tobias Burnus <tobias@codesourcery.com> 592 593 * openmp.c (gfc_match_omp_map_clause): Add and pass allow_commons 594 argument. 595 (gfc_match_omp_clauses): Update calls to permit common blocks for 596 OpenACC's copy/copyin/copyout, create/delete, host, 597 pcopy/pcopy_in/pcopy_out, present_or_copy, present_or_copy_in, 598 present_or_copy_out, present_or_create and self. 599 6002019-10-24 Martin Liska <mliska@suse.cz> 601 602 PR fortran/92174 603 * array.c (gfc_resolve_array_spec): Break the loop 604 for out of bounds index. 605 * resolve.c (is_non_constant_shape_array): Likewise. 606 6072019-10-23 Steven G. Kargl <kargl@gcc.gnu.org> 608 609 dump-parse-tree.c (show_expr): Add dumping of BT_BOZ constants. 610 6112019-10-22 Steven G. Kargl <kargl@gcc.gnu.org> 612 613 PR fortran/92174 614 * decl.c (attr_decl1): Move check for F2018:C822 from here ... 615 * array.c (gfc_set_array_spec): ... to here. 616 6172019-10-18 Steven G. Kargl <kargl@gcc.gnu.org> 618 619 PR fortran/69455 620 * trans-decl.c (generate_local_decl): Avoid misconstructed 621 intrinsic modules in a BLOCK construct. 622 6232019-10-18 Tobias Burnus <tobias@codesourcery.com> 624 625 PR fortran/91586 626 * class.c (gfc_find_derived_vtab): Return NULL 627 instead of deref'ing NULL pointer. 628 6292019-10-15 James Norris <jnorris@codesourcery.com> 630 Tobias Burnus <tobias@codesourcery.com> 631 632 PR fortran/65438 633 * openmp.c (check_array_not_assumed): Remove pointer check. 634 6352019-10-14 Steven G. Kargl <kargl@gcc.gnu.org> 636 637 PR fortran/89943 638 decl.c (gfc_match_function_decl): Ignore duplicate BIND(C) for function 639 declaration in submodule. Implement at check for F2018 C1550. 640 (gfc_match_entry): Use temporary for locus, which allows removal of 641 one gfc_error_now(). 642 (gfc_match_subroutine): Ignore duplicate BIND(C) for subroutine 643 declaration in submodule. Implement at check for F2018 C1550. 644 6452019-10-14 Thomas Koenig <tkoenig@gcc.gnu.org> 646 647 PR fortran/92004 648 * array.c (expand_constructor): Set from_constructor on 649 expression. 650 * gfortran.h (gfc_symbol): Add maybe_array. 651 (gfc_expr): Add from_constructor. 652 * interface.c (maybe_dummy_array_arg): New function. 653 (compare_parameter): If the formal argument is generated from a 654 call, check the conditions where an array element could be 655 passed to an array. Adjust error message for assumed-shape 656 or pointer array. Use correct language for assumed shaped arrays. 657 (gfc_get_formal_from_actual_arglist): Set maybe_array on the 658 symbol if the actual argument is an array element fulfilling 659 the conditions of 15.5.2.4. 660 6612019-10-14 Tobias Burnus <tobias@codesourcery.com> 662 663 * error.c: Remove debug pragma added in previous commit. 664 6652019-10-14 Tobias Burnus <tobias@codesourcery.com> 666 667 PR fortran/92072 668 * error.c (error_print, gfc_format_decoder): Fix %C column- 669 offset handling. 670 6712019-10-13 Damian Rouson <damain@sourceryinstitue.org> 672 673 PR fortran/91513 674 * resolve.c (resolve_ordinary_assign): Improved error message. 675 6762019-10-13 Steven G. Kargl <kargl@gcc.gnu.org> 677 678 PR fortran/90297 679 * resolve.c (resolve_typebound_function): Remove code with no 680 functional effect. 681 6822019-10-13 Thomas Koenig <tkoenig@gcc.gnu.org> 683 684 PR fortran/92017 685 * expr.c (simplify_parameter_variable): Set the character length 686 of the result expression from the original expression if 687 necessary. 688 6892019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> 690 691 PR fortran/91649 692 check.c (gfc_check_findloc): Additional checking for valid arguments 693 6942019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> 695 696 PR fortran/91715 697 * decl.c (gfc_match_prefix): If matching a type-spec returns an error, 698 it's an error so re-act correctly. 699 7002019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> 701 702 PR fortran/92018 703 * check.c (reset_boz): New function. 704 (illegal_boz_arg, boz_args_check, gfc_check_complex, gfc_check_float, 705 gfc_check_transfer): Use it. 706 (gfc_check_dshift): Use reset_boz, and re-arrange the checking to 707 help suppress possible run-on errors. 708 (gfc_check_and): Restore checks for valid argument types. Use 709 reset_boz, and re-arrange the checking to help suppress possible 710 run-on errors. 711 * resolve.c (resolve_function): Actual arguments cannot be BOZ in 712 a function reference. 713 7142019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> 715 716 PR fortran/92019 717 * array.c (match_subscript): BOZ cannot be an array subscript. 718 7192019-10-11 Tobias Burnus <tobias@codesourcery.com> 720 721 PR fortran/92050 722 * trans-expr.c (gfc_conv_procedure_call): Handle code generated 723 by -fcheck=all. 724 7252019-10-11 Tobias Burnus <tobias@codesourcery.com> 726 727 * f95-lang.c (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Re-define to 728 gfc_omp_is_allocatable_or_ptr. 729 * trans-decl.c (create_function_arglist): Set GFC_DECL_OPTIONAL_ARGUMENT 730 only if not passed by value. 731 * trans-openmp.c (gfc_omp_is_allocatable_or_ptr): New. 732 (gfc_trans_omp_clauses): For MAP, handle (present) optional arguments; 733 for target update, handle allocatable/pointer scalars. 734 * trans.h (gfc_omp_is_allocatable_or_ptr): Declare. 735 7362019-10-10 Tobias Burnus <tobias@codesourcery.com> 737 738 * trans-openmp.c (gfc_trans_omp_clauses): Actually pass use_device_addr 739 on to the middle end. 740 7412019-10-08 Steven G. Kargl <kargl@gcc.gnu.org> 742 743 PR fortran/91801 744 * simplify.c (gfc_simplify_reshape): Convert a gcc_assert into a 745 gfc_error as a user can easily hit the condition. 746 7472019-10-08 Tobias Burnus <tobias@codesourcery.com> 748 749 * parse.c (parse_executable): Add missing ST_OMP_TARGET_SIMD. 750 7512019-10-08 Tobias Burnus <tobias@codesourcery.com> 752 753 * match.h (gfc_match_omp_eos_error): Renamed from gfc_match_omp_eos. 754 * openmp.c (gfc_match_omp_eos): Make static. 755 (gfc_match_omp_eos_error): New. 756 * parse.c (matchs, matchdo, matchds): Do as done for 'matcho' - 757 if error occurred after OpenMP/OpenACC directive matched, do not 758 try other directives. 759 (decode_oacc_directive, decode_omp_directive): Call new function 760 instead. 761 7622019-10-05 Steven G. Kargl <kargl@gcc.gnu.org> 763 764 PR fortran/47045 765 * decl.c (variable_decl): Do not search parent namespace for symbol. 766 7672019-10-05 Paul Thomas <pault@gcc.gnu.org> 768 769 PR fortran/91926 770 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Correct the 771 assignment of the attribute field to account correctly for an 772 assumed shape dummy. Assign separately to the gfc and cfi 773 descriptors since the atribute can be different. Add btanch to 774 correctly handle missing optional dummies. 775 7762019-10-04 Steven G. Kargl <kargl@gcc.gnu.org> 777 778 PR fortran.91959 779 * fortran/decl.c (variable_decl): Re-arrange code for matching %FILL. 780 7812019-10-04 Tobias Burnus <tobias@codesourcery.com> 782 783 * error.c (error_print, gfc_format_decoder): Fix off-by one issue 784 with %C. 785 7862019-10-03 Steven G. Kargl <kargl@gcc.gnu.org> 787 788 PR fortran/91497 789 * simplify.c (gfc_simplify_dble, simplify_intconv, gfc_simplify_real, 790 gfc_simplify_sngl): Disable -Wconversion and -Wconversion-extra 791 warnings for explicit conversion of literal constants. 792 7932019-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de> 794 795 * primary.c (match_real_constant): Remove shadowing local vars. 796 Rename local vars. Fix undefined behavior in loop termination. 797 (gfc_convert_to_structure_constructor): Rename local var. 798 7992019-10-03 Thomas Koenig <tkoenig@gcc.gnu.org> 800 801 PR fortran/84487 802 * trans-decl.c (gfc_get_symbol_decl): For __def_init, set 803 DECL_ARTIFICAL and do not set TREE_READONLY. 804 8052019-10-03 Mark Eggleston <mark.eggleston@codethink.com> 806 807 * array.c (check_element_type): Call gfc_typename with the gfc_expr 808 "expr" instead of its gfc_typespec "ts". 809 * check.c (gfc_check_co_reduce): Call gfc_typename with the gfc_expr 810 "a" instead of its gfc_typespec "ts". 811 (gfc_check_co_reduce): Call gfc_typename with the gfc_expr "a" instead 812 of its gfc_typespec "ts". 813 (gfc_check_eoshift): Call gfc_typename with the gfc_expr "array" 814 instead of its gfc_typespec ts. 815 (gfc_check_same_type_as): In two calls to gfc_typename use "a" and "b" 816 of type gfc_expr instead of the "ts" fields of "a" and "b" 817 * decl.c (variable_decl): Call gfc_typename with the gfc_expr 818 "initializer" instead of its gfc_typespec "ts". 819 * expr.c (gfc_check_assign): Use "rvalue" and "lvalue" of type gfc_expr 820 in calls to gfc_typename instead of their "ts" fields of type 821 gfc_typespec. 822 (gfc_check_pointer_assign): Use "rvalue" and "lvalue" of type gfc_expr 823 in calls to gfc_typename instead of their "ts" fields of type 824 gfc_typespec. 825 * gfortran.h: Add prototypes for gfc_dummy_typename and a new function 826 gfc_typename for gfc_expr *. 827 *interface.c (gfc_check_dummy_characteristics): Use gfc_dummy_typename 828 for the dummy variable. 829 (compare_parameter): Use gfc_dummy_typename for the formal argument. 830 Use "actual" of type gfc_expr in call to gfc_typename for the actual 831 argument. 832 * intrinsic.c (check_arglist): Use gfc_dummy_typename for the formal 833 argument. Use expressions of type gfc_expr from the argument list to 834 call gfc_typename. 835 (gfc_convert_type_warn): New local variable "is_char_constant" set if 836 the expression type is a character constant. At the "bad" label 837 determine source type name by calling gfc_typename with either "expr" 838 for character constants or "from_ts" and use that in the warning 839 messages instead of the original call to gfc_typename. 840 * misc.c (gfc_typename): New function for gfc_expr *, use for where 841 character types are possible it can get the character length from 842 gfc_expr for character literals. 843 (gfc_dummy_typename): New functionfor gfc_typespec *, if no character 844 length is present the character type is assumed and the appropriate 845 string is return otherwise it calls gfc_typename for gfc_typespec *. 846 (gfc_typespec): for character types construct the type name with length 847 and kind (if it is not default kind). 848 8492019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> 850 851 PR fortran/91784 852 * simplify.c (gfc_convert_constant): Simplify expression if the 853 expression type is EXPR_OP. 854 8552019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> 856 857 PR fortran/91785 858 * primary.c (gfc_match_varspec): Ensure an inquiry parameter has 859 it locus set. 860 8612019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> 862 863 PR fortran/91942 864 * io.c (match_vtag): Check for non-NULL result->symtree. 865 (match_out_tag): Check for invalid constant due to inquiry parameter. 866 (match_filepos): Instead of a syntax error, go to cleanup to get better 867 error messages. 868 8692019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> 870 871 PR fortran/91943 872 * match.c (gfc_match_call): BOZ cannot be an actual argument in 873 a subroutine reference. 874 * resolve.c (resolve_function): BOZ cannot be an actual argument in 875 a function reference. 876 8772019-10-01 Jan Hubicka <jh@suse.cz> 878 879 * module.c (load_commons): Initialize flags to 0 to silence 880 -Wmaybe-uninitialized warning. 881 (read_module): Likewise for n and comp_name. 882 8832019-10-02 Tobias Burnus <tobias@codesourcery.com> 884 885 * dump-parse-tree.c (show_omp_clauses): Handle OMP_LIST_USE_DEVICE_ADDR. 886 * gfortran.h (enum): Add OMP_LIST_USE_DEVICE_ADDR. 887 * openmp.c (omp_mask1): Likewise. 888 (gfc_match_omp_clauses): Match 'use_device_addr'. 889 (OMP_TARGET_DATA_CLAUSES): Add OMP_LIST_USE_DEVICE_ADDR. 890 (resolve_omp_clauses): Add it; add is_device_ptr checks. 891 8922019-10-02 Tobias Burnus <tobias@codesourcery.com> 893 894 * openmp.c (gfc_match_omp_clauses): Show a clause-parsing 895 error if none was rised before. 896 * parse.c (matcha, matcho): If error occurred after 897 OpenMP/OpenACC directive matched, do not try other directives. 898 8992019-10-02 Tobias Burnus <tobias@codesourcery.com> 900 901 * trans-openmp.c (gfc_omp_is_optional_argument): Fix coding 902 style. 903 9042019-10-02 Kwok Cheung Yeung <kcy@codesourcery.com> 905 906 * f95-lang.c (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Define to 907 gfc_omp_is_optional_argument. 908 * trans-decl.c (create_function_arglist): Set 909 GFC_DECL_OPTIONAL_ARGUMENT in the generated decl if the parameter is 910 optional. 911 * trans-openmp.c (gfc_omp_is_optional_argument): New. 912 (gfc_omp_privatize_by_reference): Return true if the decl is an 913 optional pass-by-reference argument. 914 * trans.h (gfc_omp_is_optional_argument): New declaration. 915 (lang_decl): Add new optional_arg field. 916 (GFC_DECL_OPTIONAL_ARGUMENT): New macro. 917 9182019-10-01 David Malcolm <dmalcolm@redhat.com> 919 920 * error.c (gfc_diagnostic_starter): Clear the prefix before 921 calling diagnostic_show_locus. 922 9232019-09-29 Steven G. Kargl <kargl@gcc.gnu.org> 924 925 PR fortran/91641 926 * check.c (gfc_check_is_contiguous): null() cannot be an actual 927 argument to is_contiguous(). 928 9292019-09-29 Steven G. Kargl <kargl@gcc.gnu.org> 930 931 PR fortran/91714 932 * decl.c (gfc_match_decl_type_spec): Issue errors for a few 933 mangled types. 934 9352019-09-29 Paul Thomas <pault@gcc.gnu.org> 936 937 PR fortran/91726 938 * resolve.c (gfc_expr_to_initialize): Bail out with a copy of 939 the original expression if the array ref is a scalar and the 940 array_spec has corank. 941 * trans-array.c (gfc_conv_array_ref): Such expressions are OK 942 even if the array ref codimen is zero. 943 * trans-expr.c (gfc_get_class_from_expr): New function taken 944 from gfc_get_vptr_from_expr. 945 (gfc_get_vptr_from_expr): Call new function. 946 * trans-stmt.c (trans_associate_var): If one of these is a 947 target expression, extract the class expression from the target 948 and copy its fields to a new target variable. 949 * trans.h : Add prototype for gfc_get_class_from_expr. 950 9512019-09-28 Jerry DeLisle <jvdelisle@gcc.ngu.org> 952 953 PR fortran/91802 954 * decl.c (attr_decl1): Return MATCH_ERROR without free to avoid 955 bad expression type in free_expr0() ICE in rank+corank check. 956 9572019-09-28 Steven G. Kargl <kargl@gcc.ngu.org> 958 959 PR fortran/91802 960 * decl.c (attr_decl1): Check if rank+corank > 15. 961 9622019-09-28 Steven G. Kargl <kargl@gcc.gnu.org> 963 964 PR fortran/91864 965 * gcc/fortran/io.c (match_io_element): An inquiry parameter cannot be 966 read into. 967 * gcc/fortran/match.c (gfc_match_allocate): An inquiry parameter 968 can be neither an allocate-object nor stat variable. 969 (gfc_match_deallocate): An inquiry parameter cannot be deallocated. 970 9712019-09-26 Alessandro Fanfarillo <afanfa@gcc.gnu.org> 972 973 * trans-array.c (structure_alloc_comps): 974 Add new enum item for BCAST_ALLOC_COMP. 975 New argument for structure_alloc_comp, and new case to handle 976 recursive components in derived types. 977 * trans-array.c (gfc_bcast_alloc_comp): New function 978 used to handleco_broadcast for allocatable components 979 of derived types. 980 * trans-array.h: Add gfc_bcast_alloc_comp 981 * trans-intrinsics.c (conv_co_collective): Add check for 982 derived type variable and invocation of co_bcast_alloc_comp. 983 * trans.h: New data structure gfc_co_subroutines_args. 984 9852019-09-25 David Malcolm <dmalcolm@redhat.com> 986 987 PR fortran/91426 988 * error.c (curr_diagnostic): New static variable. 989 (gfc_report_diagnostic): New static function. 990 (gfc_warning): Replace call to diagnostic_report_diagnostic with 991 call to gfc_report_diagnostic. 992 (gfc_format_decoder): Colorize the text of %L and %C to match the 993 colorization used by diagnostic_show_locus. 994 (gfc_warning_now_at): Replace call to diagnostic_report_diagnostic with 995 call to gfc_report_diagnostic. 996 (gfc_warning_now): Likewise. 997 (gfc_warning_internal): Likewise. 998 (gfc_error_now): Likewise. 999 (gfc_fatal_error): Likewise. 1000 (gfc_error_opt): Likewise. 1001 (gfc_internal_error): Likewise. 1002 10032019-09-23 Paul Thomas <pault@gcc.gnu.org> 1004 1005 PR fortran/91729 1006 * match.c (gfc_match_select_rank): Initialise 'as' to NULL. 1007 Check for a symtree in the selector expression before trying to 1008 assign a value to 'as'. Revert to gfc_error and go to cleanup 1009 after setting a MATCH_ERROR. 1010 10112019-09-20 Tobias Burnus <tobias@codesourcery.com> 1012 1013 PR fortran/78260 1014 * openmp.c (gfc_resolve_oacc_declare): Reject all 1015 non variables but accept function result variables. 1016 * trans-openmp.c (gfc_trans_omp_clauses): Handle 1017 function-result variables for remaing cases. 1018 10192019-09-17 Paul Thomas <pault@gcc.gnu.org> 1020 1021 PR fortran/91588 1022 * expr.c (check_inquiry): Remove extended component refs by 1023 using symbol pointers. If a function argument is an associate 1024 variable with a constant target, copy the target expression in 1025 place of the argument expression. Check that the charlen is not 1026 NULL before using the string length. 1027 (gfc_check_assign): Remove extraneous space. 1028 10292019-09-15 Steven G. Kargl <kargl@gcc.gnu.org> 1030 1031 PR fortran/91727 1032 * resolve.c (conformable_arrays): If array-spec is NULL, then 1033 allocate-object is a scalar. a conformability check only occurs 1034 for an array source-expr. 1035 10362019-09-15 Thomas Koenig <tkoenig@gcc.gnu.org> 1037 1038 PR fortran/91550 1039 * frontend-passes.c (do_subscript): If step equals 1040 zero, a previuos error has been reported; do nothing 1041 in this case. 1042 * resolve.c (gfc_resolve_iterator): Move error checking 1043 after type conversion. 1044 10452019-09-14 Thomas Koenig <tkoenig@gcc.gnu.org> 1046 1047 PR fortran/91557 1048 PR fortran/91556 1049 * frontend-passes.c (check_externals_procedure): Reformat argument 1050 list. Use gfc_compare_actual_formal instead of gfc_procedure_use. 1051 * gfortran.h (gfc_symbol): Add flag error. 1052 * interface.c (gfc_compare_interfaces): Reformat. 1053 (argument_rank_mismatch): Add where_formal argument. If it is 1054 present, note that the error is between different calls. 1055 (compare_parameter): Change warnings that previously dependended 1056 on -Wargument-mismatch to unconditional. Issue an error / warning 1057 on type mismatch only once. Pass where_formal to 1058 argument_rank_mismatch for artificial variables. 1059 (compare_actual_formal): Change warnings that previously 1060 dependeded on -Wargument-mismatch to unconditional. 1061 (gfc_check_typebound_override): Likewise. 1062 (gfc_get_formal_from_actual_arglist): Set declared_at for 1063 artificial symbol. 1064 * invoke.texi: Extend description of -fallow-argument-mismatch. 1065 Delete -Wargument-mismatch. 1066 * lang.opt: Change -Wargument-mismatch to do-nothing option. 1067 * resolve.c (resolve_structure_cons): Change warnings that 1068 previously depended on -Wargument-mismatch to unconditional. 1069 * trans-decl.c (generate_local_decl): Do not warn if the symbol is 1070 artificial. 1071 10722019-09-13 Steven G. Kargl <kargl@gcc.gnu.org> 1073 1074 PR fortran/91566 1075 * simplify.c (gfc_simplify_merge): Need to simplify expression 1076 after insertation of parenthesis. 1077 10782019-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de> 1079 1080 PR fortran/91716 1081 * trans-array.c (gfc_conv_array_initializer): Always assign the 1082 array type of the field to the string constant. 1083 10842019-09-13 Paul Thomas <pault@gcc.gnu.org> 1085 1086 PR fortran/91717 1087 * dependency.c (gfc_dep_resolver): Flag identical components 1088 and exit with return value 1 if set and no array refs. 1089 10902019-09-11 Steven G. Kargl <kargl@gcc.gnu.org> 1091 1092 PR fortran/91553 1093 * simplify.c (gfc_convert_constant): During conversion check if the 1094 constant is enclosed in parenthesis, and simplify expression. 1095 10962019-09-11 Steven G. Kargl <kargl@gcc.gnu.org> 1097 1098 PR fortran/91642 1099 * io.c (gfc_match_inquire): null() cannot be in an iolength inquire 1100 list. 1101 11022019-09-05 Harald Anlauf <anlauf@gmx.de> 1103 1104 PR fortran/91496 1105 * parse.c (parse_executable): Improve error messages for 1106 improperly placed pragmas not preceeding a loop. 1107 11082019-09-05 Steven G. Kargl <kargl@gcc.gnu.org> 1109 1110 PR fortran/91660 1111 * decl.c (gfc_match_decl_type_spec): Improve and restore error 1112 message for malformed types-spec. 1113 11142019-09-04 Steven G. Kargl <kargl@gcvc.gnu.org> 1115 1116 PR fortran/91650 1117 * io.c (match_io_element): An output IO list item cannot be a BOZ. 1118 11192019-09-03 Steven G. Kargl <kargl@gcc.gnu.org> 1120 1121 * gfortran.texi: Update documentation to catch up with BOZ changes. 1122 * invoke.texi: Fix English from previous BOZ changes commit. 1123 11242019-09-02 Paul Thomas <pault@gcc.gnu.org> 1125 1126 PR fortran/91589 1127 * primary.c (gfc_match_varspec): Return MATCH_NO on an apparent 1128 component ref, when the primary type is intrinsic. 1129 11302019-09-02 Steven G. Kargl <kargl@gc.gnu.org> 1131 1132 PR fortran/91552 1133 * array.c (walk_array_constructor): New function. 1134 (gfc_match_array_constructor): Use it. 1135 11362019-09-01 Paul Thomas <pault@gcc.gnu.org> 1137 1138 * array.c (spec_dimen_size): Check for the presence of 1139 expressions for the bounds. 1140 * decl.c (gfc_match_end): Add case COMP_SELECT_RANK. 1141 * dump-parse-tree.c(show_symbol): Show the arrayspec of class 1142 entities. 1143 (show_code_node): Show the code for SELECT_RANK. 1144 * expr.c (gfc_check_vardef_context): Omit the context of 1145 variable definition for select rank associate names since the 1146 ASSUMED RANK throws. 1147 * gfortran.h : Add ST_SELECT_RANK and ST_RANK to enum 1148 gfc_statement. Add select_rank_temporary to symbol attribute 1149 structure. Add EXEC_SELECT_RANK to enum gfc_exec_op. 1150 * match.c (match_exit_cycle): Add COMP_SELECT_RANK. 1151 (copy_ts_from_selector_to_associate): Add as special case for 1152 assumed rank class variables. 1153 (select_intrinsic_set_tmp): Clean up the code by using symbols 1154 for references to the temporary and the selector. 1155 (select_type_set_tmp): Ditto. 1156 (select_rank_set_tmp): New function. 1157 (gfc_match_select_rank): New function. 1158 (gfc_match_rank_is): New function. 1159 * match.h : Add prototypes for gfc_match_select_rank and 1160 gfc_match_rank_is. 1161 * parse.c (decode_statement): Attempt to match select_rank and 1162 rank statements. 1163 (next_statement, gfc_ascii_statement): Add ST_SELECT_RANK. 1164 (parse_select_rank_block): New function. 1165 (parse_executable): Parse select rank block for ST_SELECT_RANK. 1166 * parse.h : Add COMP_SELECT_RANK to enum gfc_compile_state. 1167 * resolve.c (resolve_variable): Exclude select_rank_temporaries 1168 from the check on use of ASSUMED RANK. 1169 (gfc_resolve_expr): Make sure that unlimited polymorphic select 1170 rank temporaries expressions are not resolved again after being 1171 successfully resolved. 1172 (resolve_assoc_var): Do not do the rank check for select rank 1173 temporaries. 1174 (resolve_select_rank): New function. 1175 (gfc_resolve_blocks): Deal with case EXEC_SELECT_RANK. 1176 (resolve_symbol): Exclude select rank temporaries for check on 1177 use of ASSUMED RANK. 1178 * st.c (gfc_free_statement): Include EXEC_SELECT_RANK. 1179 * trans-array.c (gfc_conv_array_ref): Select rank temporaries 1180 may have dimen == 0. 1181 (gfc_conv_expr_descriptor): Zero the offset of select rank 1182 temporaries. 1183 * trans-stmt.c (copy_descriptor): New function. 1184 (trans_associate_var): Add code to associate select rank temps. 1185 (gfc_trans_select_rank_cases): New function. 1186 (gfc_trans_select_rank): New function. 1187 * trans-stmt.h : Add prototype for gfc_trans_select_rank. 1188 trans.c (trans_code): Add select rank case. 1189 11902019-08-30 Steven G. Kargl <kargl@gcc.gnu.org> 1191 1192 PR fortran/91587 1193 * io.c (match_filepos): MATCH_ERROR should branch to a syntax error. 1194 11952019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> 1196 1197 PR fortran/91551 1198 * intrinsic.c (sort_actual): ALLOCATED has one argument. Check for 1199 no argument case. 1200 12012019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> 1202 1203 PR fortran/91565 1204 * simplify.c (gfc_simplify_reshape): Add additional checks of the 1205 ORDER dummy argument. 1206 12072019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> 1208 1209 PR fortran/91564 1210 * check.c (gfc_check_kill_sub): Additional checks on status dummy 1211 argument. 1212 12132019-08-28 Mark Eggleston <mark.eggleston@codethink.com> 1214 1215 * intrinsics.text: Corrected stated standard for intrinsics 1216 and specific intrinsics where necessary. Also in C_SIZEOF the 1217 printed value is T not .TRUE.. In IPARITY example wrap BOZ 1218 constants in calls to INT. 1219 12202019-08-27 Harald Anlauf <anlauf@gmx.de> 1221 1222 PR fortran/91496 1223 * gfortran.h: Extend struct gfc_iterator for loop annotations. 1224 * array.c (gfc_copy_iterator): Copy loop annotations by IVDEP, 1225 VECTOR, and NOVECTOR pragmas. 1226 * decl.c (gfc_match_gcc_ivdep, gfc_match_gcc_vector) 1227 (gfc_match_gcc_novector): New matcher functions handling IVDEP, 1228 VECTOR, and NOVECTOR pragmas. 1229 * match.h: Declare prototypes of matcher functions handling IVDEP, 1230 VECTOR, and NOVECTOR pragmas. 1231 * parse.c (decode_gcc_attribute, parse_do_block) 1232 (parse_executable): Decode IVDEP, VECTOR, and NOVECTOR pragmas; 1233 emit warning for unrecognized pragmas instead of error. 1234 * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do): Add code to 1235 emit annotations for IVDEP, VECTOR, and NOVECTOR pragmas. 1236 * gfortran.texi: Document IVDEP, VECTOR, and NOVECTOR pragmas. 1237 12382019-08-27 Mark Eggleston <mark.eggleston@codethink.com> 1239 1240 * invoke.texi: Ensure that the option lists fit within the 1241 margins of a PDF page. Re-worded description of 1242 '-ffrontend-loop-interchange' so that it fits with the margins 1243 of a PDF page. Add '-fdec-include', '-fdec-blank-format-item' 1244 and '-fdec-format-defaults' to list of options that are enabled 1245 by '-fdec'. 1246 12472019-08-26 Thomas Koenig <tkoenig@gcc.gnu.org> 1248 1249 PR fortran/91390 1250 PR fortran/91473 1251 * frontend-passes.c (gfc_check_externals): Make 1252 gfc_errors_to_warnings conditional on -fallow-argument-mismatch. 1253 * invoke.texi: Document -fallow-argument-mismatch. 1254 * lang.opt: Add -fallow-argument-mismatch. 1255 12562019-08-24 Thomas Koenig <tkoenig@gcc.gnu.org> 1257 1258 PR fortran/91390 1259 PR fortran/91519 1260 * frontend-passes.c (check_externals_procedure): New 1261 function. If a procedure is not in the translation unit, create 1262 an "interface" for it, including its formal arguments. 1263 (check_externals_code): Use check_externals_procedure for common 1264 code with check_externals_expr. 1265 (check_externals_expr): Vice versa. 1266 * gfortran.h (gfc_get_formal_from_actual-arglist): New prototype. 1267 (gfc_compare_actual_formal): New prototype. 1268 * interface.c (compare_actual_formal): Rename to 1269 (gfc_compare_actual_formal): New function, make global. 1270 (gfc_get_formal_from_actual_arglist): Make global, and move here from 1271 * trans-types.c (get_formal_from_actual_arglist): Remove here. 1272 (gfc_get_function_type): Use gfc_get_formal_from_actual_arglist. 1273 12742019-08-23 Mark Eggleston <mark.eggleston@codethink.com> 1275 1276 * intrinsics.text: References in 'See also:' are now on 1277 separate lines to ensure that they always fit in the margins of 1278 a PDF page. The column widths of tables have been adjusted 1279 where necessary to prevent overlapping text. All program 1280 examples now fit within the margins of a PDF page. 1281 12822019-08-23 Jakub Jelinek <jakub@redhat.com> 1283 1284 PR middle-end/91283 1285 * options.c (gfc_post_options): Set flag_excess_precision instead of 1286 flag_excess_precision_cmdline. Remove comment. 1287 12882019-08-23 Mark Eggleston <mark.eggleston@codethink.com> 1289 1290 * intrinsics.text: Removed empty sections. The order of 1291 sections for each intrinsic is now consistent throughout. 1292 Stray words removed. Text in the wrong section moved. 1293 Missing standard statement inserted. 1294 12952019-08-23 Mark Eggleston <mark.eggleston@codethink.com> 1296 1297 * intrinsics.text: Correct the return types for ZABS and CDABS. 1298 12992019-08-22 Steven G. Kargl <kargl@gcc.gnu.org> 1300 1301 * intrinsic.c (add_subroutines): ERRMSG is INTENT(INOUT) in 1302 co_broadcast, co_max, co_min, co_reduce, and co_sum. 1303 13042019-08-20 Mark Eggleston <mark.eggleston@codethink.com> 1305 1306 PR fortran/89236 1307 * intrinsic.texi: Add GNU extension notes to DIM, MOD, MODULO. 1308 13092019-08-19 Mark Eggleston <mark.eggleston@codethink.com> 1310 1311 * gfortran.texi: Delete paragraph about integer overload errors 1312 when initialising integer variables with BOZ constants as these 1313 no longer occur. 1314 13152019-08-18 Steven G. Kargl <kargl@gcc.gnu.org> 1316 1317 PR fortran/91485 1318 module.c (gfc_match_use): User defined operator cannot conflict with 1319 a rename symbol. 1320 13212019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> 1322 1323 PR fortran/82992 1324 * module.c (gfc_match_use): When renaming a module entity, search 1325 current namespace for conflicting symbol. 1326 13272019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> 1328 1329 PR fortran/78739 1330 * match.c (gfc_match_st_function): When matching a statement function, 1331 need to check if the statement function name shadows the function 1332 name. 1333 13342019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> 1335 1336 PR fortran/78719 1337 * decl.c (get_proc_name): Check for a CLASS entity when trying to 1338 add attributes to an entity that already has an explicit interface. 1339 13402019-08-17 Steven G. Kargl <kargl@gcc.gnu.org> 1341 1342 PR fortran/91471 1343 * primary.c (gfc_variable_attr): Remove a gfc_internal_error(), 1344 which cannot be reached by conforming Fortran code, but seems to 1345 be reachable from nonconforming Fortran code. Treat the AR_UNKNOWN 1346 case as a no-op. 1347 13482019-08-17 Janne Blomqvist <jb@gcc.gnu.org> 1349 1350 PR fortran/68401 1351 * trans-decl.c (gfc_build_builtin_function_decls): Replace 1352 os_error with os_error_at decl. 1353 * trans.c (trans_runtime_error_vararg): Modify so the error 1354 function decl is passed directly. 1355 (gfc_trans_runtime_error): Pass correct error function decl. 1356 (gfc_trans_runtime_check): Likewise. 1357 (trans_os_error_at): New function. 1358 (gfc_call_malloc): Use trans_os_error_at. 1359 (gfc_allocate_using_malloc): Likewise. 1360 (gfc_call_realloc): Likewise. 1361 * trans.h (gfor_fndecl_os_error): Replace with gfor_fndecl_os_error_at. 1362 13632019-08-16 Jeff Law <law@redhat.com> 1364 Mark Eggleston <mark.eggleston@codethink.com> 1365 1366 * gfortran.h: Add gfc_check_conflict declaration. 1367 * symbol.c (check_conflict): Rename cfg_check_conflict and remove 1368 static. 1369 * symbol.c (cfg_check_conflict): Remove automatic in equivalence 1370 conflict check. 1371 * symbol.c (save_symbol): Add check for in equivalence to stop the 1372 the save attribute being added. 1373 * trans-common.c (build_equiv_decl): Add is_auto parameter and 1374 add !is_auto to condition where TREE_STATIC (decl) is set. 1375 * trans-common.c (build_equiv_decl): Add local variable is_auto, 1376 set it true if an atomatic attribute is encountered in the variable 1377 list. Call build_equiv_decl with is_auto as an additional parameter. 1378 flag_dec_format_defaults is enabled. 1379 * trans-common.c (accumulate_equivalence_attributes) : New subroutine. 1380 * trans-common.c (find_equivalence) : New local variable dummy_symbol, 1381 accumulated equivalence attributes from each symbol then check for 1382 conflicts. 1383 13842019-08-16 Richard Biener <rguenther@suse.de> 1385 1386 * trans-intrinsic.c (gfc_conv_intrinsic_findloc): Initialize 1387 forward_branch to avoid bogus uninitialized warning. 1388 13892019-08-15 Thomas Koenig <tkoenig@gcc.gnu.org> 1390 1391 PR fortran/91443 1392 * frontend-passes.c (check_externals_expr): New function. 1393 (check_externals_code): New function. 1394 (gfc_check_externals): New function. 1395 * gfortran.h (debug): Add prototypes for gfc_symbol * and 1396 gfc_expr *. 1397 (gfc_check_externals): Add prototype. 1398 * interface.c (compare_actual_formal): Do not complain about 1399 alternate returns if the formal argument is optional. 1400 (gfc_procedure_use): Handle cases when an error has been issued 1401 previously. Break long line. 1402 * parse.c (gfc_parse_file): Call gfc_check_externals for all 1403 external procedures. 1404 * resolve.c (resolve_global_procedure): Remove checking of 1405 argument list. 1406 14072019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> 1408 1409 PR fortran/87991 1410 * resolve.c (check_data_variable): data-stmt-object with pointer 1411 attribute requires a data-stmt-value with the target attribute. 1412 14132019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> 1414 1415 PR fortran/88072 1416 * misc.c (gfc_typename): Do not point to something that ought not to 1417 be pointed at. 1418 14192013-08-13 Thomas Koenig <tkoenig@gcc.gnu.org> 1420 1421 PR fortran/90563 1422 * frontend-passes.c (insert_index): Suppress errors while 1423 simplifying the resulting expression. 1424 14252019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> 1426 1427 PR fortran/89647 1428 resolve.c (resolve_typebound_procedure): Allow host associated 1429 procedure to be a binding target. While here, wrap long line. 1430 14312019-08-13 Steven G. Kargl <kargl@gcc.gnu.org> 1432 1433 PR fortran/87993 1434 * expr.c (gfc_simplify_expr): Simplifcation of an array with a kind 1435 type inquiry suffix yields a constant expression. 1436 14372019-08-13 Janne Blomqvist <jb@gcc.gnu.org> 1438 1439 PR fortran/91414 1440 * check.c (gfc_check_random_seed): Reduce seed_size. 1441 * intrinsic.texi (RANDOM_NUMBER): Update to match new PRNG. 1442 14432019-08-12 Thomas Koenig <tkoenig@gcc.gnu.org> 1444 1445 PR fortran/91424 1446 * frontend-passes.c (do_subscript): Do not warn for an 1447 expression a second time. Do not warn about a zero-trip loop. 1448 (doloop_warn): Also look at contained namespaces. 1449 14502019-08-11 Janne Blomqvist <jb@gcc.gnu.org> 1451 1452 PR fortran/91413 1453 * invoke.texi (-fmax-stack-var-size): Document increased default. 1454 * options.c (gfc_post_options): Increase default stack var size to 1455 65536 bytes. 1456 * trans-decl.c (gfc_finish_var_decl): Generate warning when local 1457 array moved to static storage. 1458 14592019-08-10 Steven G. Kargl <kargl@gcc.gnu.org> 1460 1461 * decl.c (match_old_style_init): Use a clearer error message. 1462 * expr.c (gfc_check_assign): Update BOZ checking to provide a stricter 1463 adherence to the Fortran standard. Use gfc_invalid_boz () to 1464 relax errors into warnings. 1465 * gfortran.h (gfc_isym_id): Add new ids GFC_ISYM_DFLOAT, 1466 GFC_ISYM_FLOAT, GFC_ISYM_REALPART, and GFC_ISYM_SNGL 1467 * intrinsic.c (add_functions): Use new ids to split REAL generic into 1468 REAL, FLOAT, DFLOAT, SNGL, and REALPART generics. 1469 (gfc_intrinsic_func_interface): Allow new intrinsics in an 1470 initialization expression 1471 * resolve.c (resolve_operator): Deal with BOZ as operands. 1472 Use gfc_invalid_boz to allow for errors or warnings via the 1473 -fallow-invalid-boz option. A BOZ cannot be an operand to an 1474 unary operator. Both operands of a binary operator cannot be BOZ. 1475 For binary operators, convert a BOZ operand into the type and 1476 kind of the other operand for REAL or INTEGER operand. 1477 * trans-intrinsic.c: Use new ids to cause conversions to happen. 1478 14792019-08-06 Steven G. Kargl <kargl@gcc.gnu.org> 1480 1481 PR fortran/91359 1482 * trans-decl.c (gfc_generate_return): Ensure something is returned 1483 from a function. 1484 14852019-08-06 Steven G. Kargl <kargl@gcc.gnu.org> 1486 1487 PR fortran/42546 1488 * check.c(gfc_check_allocated): Add comment pointing to ... 1489 * intrinsic.c(sort_actual): ... the checking done here. 1490 14912019-08-05 Steven g. Kargl <kargl@gcc.gnu.org> 1492 1493 PR fortran/91372 1494 * decl.c (gfc_match_data): Allow an implied do-loop to nestle against 1495 DATA. 1496 14972019-08-04 Steven G. Kargl <kargl@gcc.gnu.org> 1498 1499 PR fortran/88227 1500 * check.c (oct2bin): New function. Convert octal string to binary. 1501 (hex2bin): New function. Convert hexidecimal string to binary. 1502 (bin2real): New function. Convert binary string to REAL. Use 1503 oct2bin and hex2bin. 1504 (gfc_boz2real): Use fallback conversion bin2real. 1505 15062019-08-02 Steven G. Kargl <kargl@gcc.gnu.org> 1507 1508 PR fortran/90985 1509 * decl.c (gfc_match_data): In free-form code, DATA be followed by 1510 whitespace. 1511 15122019-08-02 Steven G. Kargl <kargl@gcc.gnu.org> 1513 1514 PR fortran/90986 1515 * match.c (gfc_match_equivalence): Check that EQUIVALENCE is followed 1516 by '('. 1517 15182019-07-30 Steven G. Kargl <kargl@gcc.gnu.org> 1519 1520 PR fortran/91296 1521 * interface.c (compare_actual_expr): When checking for aliasing, add 1522 a case to handle REF_INQUIRY (e.g., foo(x%re, x%im) do not alias). 1523 15242019-07-29 Thomas Koenig <tkoenig@gcc.gnu.org> 1525 1526 PR fortran/90813 1527 * dump-parse-tree.c (show_global_symbol): New function. 1528 (gfc_dump_global_symbols): New function. 1529 * gfortran.h (gfc_traverse_gsymbol): Add prototype. 1530 (gfc_dump_global_symbols): Likewise. 1531 * invoke.texi: Document -fdump-fortran-global. 1532 * lang.opt: Add -fdump-fortran-global. 1533 * parse.c (gfc_parse_file): Handle flag_dump_fortran_global. 1534 * symbol.c (gfc_traverse_gsymbol): New function. 1535 * trans-decl.c (sym_identifier): New function. 1536 (mangled_identifier): New function, doing most of the work 1537 of gfc_sym_mangled_identifier. 1538 (gfc_sym_mangled_identifier): Use mangled_identifier. Add mangled 1539 identifier to global symbol table. 1540 (get_proc_pointer_decl): Use backend decl from global identifier 1541 if present. 1542 15432019-07-25 Thomas Koenig <tkoenig@gcc.gnu.org> 1544 1545 PR fortran/65819 1546 * dependency.h (gfc_dep_resovler): Add optional argument identical. 1547 * dependency.c (gfc_check_dependency): Do not alway return 1 if 1548 the symbol is the same. Pass on identical to gfc_dep_resolver. 1549 (gfc_check_element_vs_element): Whitespace fix. 1550 (gfc_dep_resolver): Adjust comment for function. If identical is 1551 true, return 1 if any overlap has been found. 1552 15532019-07-23 Steven G. Kargl <kargl@gcc.gnu.org> 1554 1555 PR fortran/54072 1556 * check.c (gfc_invalid_boz): Fix comment. 1557 (illegal_boz_arg): New function. 1558 (gfc_check_transfer): Use to arguments. 1559 (gfc_check_storage_size): Ditto. 1560 (gfc_check_complex): Remove leftover comment from BOZ patch. 1561 * primary.c (match_boz_constant): Remove leftover comment. 1562 15632019-07-23 Steven G. Kargl <kargl@gcc.gnu.org> 1564 1565 * arith.c (gfc_convert_integer, gfc_convert_real, gfc_convert_complex): 1566 Move to ... 1567 * primary.c (convert_integer, convert_real, convert_complex): ... here. 1568 Rename and make static functions. 1569 (match_integer_constant): Use convert_integer 1570 (match_real_constant): Use convert_real. 1571 (match_complex_constant: Use convert_complex. 1572 * arith.h (gfc_convert_integer, gfc_convert_real, gfc_convert_complex): 1573 Remove prototypes. 1574 * array.c (match_array_cons_element): A BOZ cannot be a data 1575 statement value. Jump to a common exit point. 1576 * check.c (gfc_invalid_boz): New function. Emit error or warning 1577 for a BOZ in an invalid context. 1578 (boz_args_check): Move to top of file to prevent need of forward 1579 declaration. 1580 (is_boz_constant): New function. Check that BOZ expr is constant. 1581 (gfc_boz2real): New function. In-place conversion of BOZ literal 1582 constant to REAL in accordance to F2018. 1583 (gfc_boz2int): New function. In-place conversion of BOZ literal 1584 constant to INTEGER in accordance to F2018. 1585 (gfc_check_achar, gfc_check_char, gfc_check_float): Use gfc_invalid_boz. Convert BOZ 1586 as needed. 1587 (gfc_check_bge_bgt_ble_blt): Enforce F2018 requirements on BGE, 1588 BGT, BLE, and BLT intrinsic functions. 1589 (gfc_check_cmplx): Re-organize to check kind, if present, first. 1590 Convert BOZ real and/or imaginary parts as needed in accordance to 1591 F2018. 1592 (gfc_check_complex): Use gfc_invalid_boz. Convert BOZ as needed. 1593 (gfc_check_dcmplx, gfc_check_dble ): Convert BOZ as needed. 1594 (gfc_check_dshift): Make dshift[lr] conform to F2018 standard. 1595 gfc_check_float (gfc_expr *a) 1596 (gfc_check_iand_ieor_ior): Make IAND, IEOR, and IOR conform to 1597 F2018 standard. 1598 (gfc_check_int): Conform to F2018 standard. 1599 (gfc_check_intconv): Deprecate SHORT and LONG aliases for INT2 and 1600 INT. Simply return for a BOZ argument. See gfc_simplify_intconv. 1601 (gfc_check_merge_bits): Make MERGE_BITS conform to Fortran 2018 1602 standard. 1603 (gfc_check_real): Remove incorrect comment. Check kind, if present, 1604 first. Simply return for a BOZ argument. See gfc_simplify_real. 1605 (gfc_check_and): Re-do error handling for BOZ arguments. Remove 1606 special casing ts.type != BT_INTEGER or BT_LOGICAL. 1607 * decl.c (match_old_style_init): Check for BOZ in old-style 1608 initialization. Issue error or warning depending on 1609 -fallow-invalid-boz option. Issue error if variable is not an 1610 INTEGER or REAL and the value is BOZ. 1611 * expr.c (gfc_copy_expr): Copy a BT_BOZ gfc_expr. 1612 (gfc_check_assign): Re-do error handling for a BOZ in an assignment 1613 statement. Do in-place conversion of RHS based on LHS type of 1614 INTEGER or REAL. 1615 * gfortran.h (gfc_expr): Add a boz component. Remove is_boz component. 1616 (gfc_boz2int, gfc_boz2real, gfc_invalid_boz): New prototypes. 1617 * interface.c (gfc_extend_assign): Guard against replacing an 1618 intrinsic involving a BOZ literal constant on RHS. 1619 * invoke.texi: Doument -fallow-invalid-boz. 1620 * lang.opt: New option. -fallow-invalid-boz. 1621 * libgfortran.h (bt): Elevate BOZ to a basic type. 1622 * misc.c (gfc_basic_typename, gfc_typename): Translate BT_BOZ to BOZ. 1623 * primary.c (convert_integer, convert_real, convert_complex): to here. 1624 Rename and make static functions. 1625 * primary.c(match_boz_constant): Rewrite parsing of a BOZ. Re-do 1626 error handling. Deprecate 'X' for hexidecimal and postfix notation. 1627 Use -fallow-invalid-boz and gfc_invalid_boz to accept deprecated code. 1628 * resolve.c (resolve_ordinary_assign): Rework a RHS that is a 1629 BOZ literal constant. Use gfc_invalid_boz to allow previous 1630 nonstandard behavior. Remove range checking of BOZ conversion. 1631 * simplify.c (convert_boz): Remove function. 1632 (simplify_cmplx): Remove conversion of BOZ constants, because 1633 conversion is done in gfc_check_cmplx. 1634 (gfc_simplify_float): Remove conversion of BOZ constant, because 1635 conversion is done in gfc_check_float. 1636 (simplify_intconv): Use gfc_boz2int to convert BOZ to INTEGER. 1637 Remove range checking for BOZ conversion. 1638 (gfc_simplify_real): Use k, if present, to determine kind. Convert 1639 BOZ to REAL. Remove range checking for BOZ conversion. 1640 target-memory.c (gfc_convert_boz): Rewrite to deal with convert of 1641 a BOZ to a REAL value. 1642 16432019-07-21 Thomas König <tkoenig@gcc.gnu.org> 1644 1645 PR libfortran/91030 1646 * gfortran.texi (GFORTRAN_FORMATTED_BUFFER_SIZE): Document 1647 (GFORTRAN_UNFORMATTED_BUFFER_SIZE): Likewise. 1648 16492019-07-16 Harald Anlauf <anlauf@gmx.de> 1650 1651 PR fortran/90903 1652 * libgfortran.h: Add mask for -fcheck=bits option. 1653 * options.c (gfc_handle_runtime_check_option): Add option "bits" 1654 to run-time checks selectable via -fcheck. 1655 * trans-intrinsic.c (gfc_conv_intrinsic_btest) 1656 (gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits) 1657 (gfc_conv_intrinsic_shift, gfc_conv_intrinsic_ishft) 1658 (gfc_conv_intrinsic_ishftc): Implement run-time checks for the 1659 POS, LEN, SHIFT, and SIZE arguments. 1660 * gfortran.texi: Document run-time checks for bit manipulation 1661 intrinsics. 1662 * invoke.texi: Document new -fcheck=bits option. 1663 16642019-07-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1665 1666 PR fortran/87233 1667 * expr.c (check_restricted): Relax constraint C1279 which was 1668 removed from F2008 and above. 1669 16702019-07-07 Paul Thomas <pault@gcc.gnu.org> 1671 1672 PR fortran/91077 1673 * trans-array.c (gfc_conv_scalarized_array_ref) Delete code 1674 that gave symbol backend decl for subref arrays and deferred 1675 length variables. 1676 16772019-07-05 Andrew Stubbs <ams@codesourcery.com> 1678 1679 * openmp.c (resolve_omp_clauses): Add custom error messages for 1680 parameters in map clauses. 1681 16822019-07-03 Martin Liska <mliska@suse.cz> 1683 1684 * check.c (gfc_check_c_funloc): Remove 1685 dead assignemts. 1686 * decl.c (variable_decl): Likewise. 1687 * resolve.c (resolve_typebound_function): Likewise. 1688 * simplify.c (gfc_simplify_matmul): Likewise. 1689 (gfc_simplify_scan): Likewise. 1690 * trans-array.c (gfc_could_be_alias): Likewise. 1691 * trans-common.c (add_equivalences): Likewise. 1692 * trans-expr.c (trans_class_vptr_len_assignment): Likewise. 1693 (gfc_trans_array_constructor_copy): Likewise. 1694 (gfc_trans_assignment_1): Likewise. 1695 * trans-intrinsic.c (conv_intrinsic_atomic_op): Likewise. 1696 * trans-openmp.c (gfc_omp_finish_clause): Likewise. 1697 * trans-types.c (gfc_get_array_descriptor_base): Likewise. 1698 * trans.c (gfc_build_final_call): Likewise. 1699 17002019-06-27 Steven G. Kargl <kargl@gcc.gnu.org> 1701 1702 PR fortran/90987 1703 * gfortran.dg/common_1.f: new test. 1704 * gfortran.dg/common_26.f90: Ditto. 1705 17062019-06-26 Steven G. Kargl <kargl@gcc.gnu.org> 1707 1708 PR Fortran/90988 1709 ChangeLog forgotten with revision 272667 1710 * decl.c (access_attr_decl): Use temporary variable to reduce 1711 unreadability of code. Normalize jumping to return. 1712 (gfc_match_protected): Fix parsing error. Add comments to 1713 explain code. Remove dead code. 1714 (gfc_match_private): Use temporary variable to reduce unreadability 1715 of code. Fix parsing error. Move code to test for blank PRIVATE. 1716 Remove dead code. 1717 (gfc_match_public): Move code to test for blank PUBLIC. Fix 1718 parsing error. Remove dead code. 1719 17202019-06-24 Jan Hubicka <jh@suse.cz> 1721 1722 * trans-expr.c (gfc_conv_substring): Check that 1723 type is array or integer prior checking string flag. 1724 (gfc_conv_string_parameter): Likewise. 1725 * trans-openmp.c (gfc_omp_scalar_p): Likewise. 1726 * trans.c (gfc_build_array_ref): Likewise. 1727 17282019-06-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1729 1730 PR fortran/89782 1731 * io.c (gfc_resolve_dt): Check that internal units are not 1732 character PARAMETER. 1733 17342019-06-21 Steven G. Kargl <kargl@gcc.gnu.org> 1735 1736 PR fortran/67884 1737 * resolve.c (deferred_requirements) : Check only the result variable. 1738 (resolve_fl_procedure): Check deferred requirements on functions. 1739 17402019-06-21 Steven G. Kargl <kargl@gcc.gnu.org> 1741 1742 PR fortran/51991 1743 * decl.c (gfc_match_save): If SAVE was not seen, return MATCH_NO 1744 instead issuing an error message and returning MATCH_ERROR. 1745 17462019-06-20 Steven G. Kargl <kargl@gcc.gnu.org> 1747 1748 PR fortran/77632 1749 * /decl.c (variable_decl): Mark a variable that is a target in pointer 1750 initialization when in PROGRAM, MODULE, or SUBMODULE scope with an 1751 implicit save. 1752 17532019-06-20 Steven G. Kargl <kargl@gcc.gnu.org> 1754 1755 PR fortran/86587 1756 * symbol.c (verify_bind_c_derived_type): Remove erroneous error 1757 checking for BIND(C) and PRIVATE attributes. 1758 17592019-06-20 Thomas Koenig <tkoenig@gcc.gnu.org> 1760 1761 PR fortran/90937 1762 * trans-types.c (get_formal_from_actual_arglist): Get symbol from 1763 current namespace so it will be freed later. If symbol is of type 1764 character, get an empty character length. 1765 17662019-06-19 Steven G. Kargl <kargl@gcc.gnu.org> 1767 1768 PR fortran/69499 1769 * match.c (gfc_match_select_type): SELECT TYPE is an executable 1770 statement, and cannot appear in MODULE or SUBMODULE scope. 1771 17722019-06-19 Steven G. Kargl <kargl@gcc.gnu.org> 1773 1774 PR fortran/69398 1775 * decl.c (attr_decl): Check for duplicate DIMENSION attribute for a 1776 CLASS entity. 1777 17782019-06-19 Steven G. Kargl <kargl@gcc.gnu.org> 1779 1780 PR fortran/87907 1781 * resolve.c (resolve_contained_fntype): Do not dereference a NULL 1782 pointer. 1783 17842019-06-19 Jim MacArthur <jim.macarthur@codethink.co.uk> 1785 Mark Eggleston <mark.eggleston@codethink.com> 1786 1787 PR fortran/89103 1788 * gfortran.texi: Add -fdec-blank-format-item 1789 * invoke.texi: Add option to list of options. 1790 * invoke.texi: Add to section on Commas in FORMAT specifications. 1791 * io.c (check_format): At FMT_RPAREN goto finished if 1792 -fdec-blank-format-item otherwise set error string. 1793 * lang.opt: Add new option. 1794 * options.c (set_dec_flags): Add SET_BITFLAG for 1795 flag_dec_format_defaults. 1796 17972019-06-18 Julian Brown <julian@codesourcery.com> 1798 1799 PR fortran/90921 1800 * trans-decl.c (finish_oacc_declare): Reset module_oacc_clauses 1801 before scanning each namespace. 1802 18032019-06-18 Thomas Schwinge <thomas@codesourcery.com> 1804 1805 PR fortran/85221 1806 * trans-decl.c (add_attributes_to_decl): Handle OpenACC 'declare' 1807 directive. 1808 18092019-06-16 Thomas Koenig <tkoenig@gcc.gnu.org> 1810 1811 * dump_parse_tree (debug): Add verison for formal arglist. 1812 Do not crash when a gfc_expr is NULL. 1813 18142019-06-15 Steven G. Kargl <kargl@gcc.gnu.org> 1815 1816 * decl.c (gfc_match_derived_decl): Dummy argument cannot be a derived 1817 type. 1818 18192019-06-14 Steven G. Kargl <kargl@gcc.gnu.org> 1820 1821 * arith.c (arith_power): Rework overflow of an integer to an integer 1822 exponent. 1823 18242019-06-14 Harald Anlauf <anlauf@gmx.de> 1825 1826 PR fortran/90577 1827 PR fortran/90578 1828 * trans-intrinsic.c (gfc_conv_intrinsic_shift): Properly 1829 distinguish logical/arithmetic shifts. 1830 * intrinsic.texi: Update documentation for SHIFTR/SHIFTL/SHIFTA 1831 (Fortran 2008) and LSHIFT/RSHIFT (GNU extensions). 1832 18332019-06-14 Steven G. Kargl <kargl@gcc.gnu.org> 1834 1835 PR fortran/89646 1836 * dependency.c (gfc_check_argument_var_dependency): Suppress spurious 1837 warnings by comparing variable names. 1838 18392019-06-13 Steven G. Kargl <kargl@gcc.gnu.org> 1840 1841 PR fortran/68544 1842 * resolve.c (is_dt_name): New function to compare symbol name against 1843 list of derived types. 1844 (resolve_actual_arglist): Use it to find wrong code. 1845 18462019-06-13 Steven G. Kargl <kargl@gcc.gnu.org> 1847 1848 PR fortran/89344 1849 * expr.c (gfc_check_vardef_context): Check for INTENT(IN) variable 1850 in SELECT TYPE construct. 1851 18522019-06-13 Steven G. Kargl <kargl@gcc.gnu.org> 1853 1854 PR fortran/88810 1855 * dependency.c (gfc_dep_resolver): Re-arrange code to make the logic 1856 a bit more transparent. Fix 2 nearby formatting issues. 1857 18582019-06-13 Jakub Jelinek <jakub@redhat.com> 1859 1860 * io.c (check_format): Use G_(...) instead of _(...) for error values, 1861 append " in format string at %L" to all strings but unexpected_element, 1862 use error as gfc_error formating string instead of 1863 "%s in format string at %L". Formatting fixes. 1864 18652019-06-12 Steven G. Kargl <kargl@gcc.gnu.org> 1866 1867 * gfortran.h (gfc_free_dt_list): Remove prototype. 1868 18692019-06-12 Steven G. Kargl <kargl@gcc.gnu.org> 1870 1871 PR fortran/90002 1872 * array.c (gfc_free_array_spec): When freeing an array-spec, avoid 1873 an ICE for assumed-shape coarrays. 1874 18752019-06-08 Paul Thomas <pault@gcc.gnu.org> 1876 1877 PR fortran/90786 1878 * trans-expr.c (pointer_assignment_is_proc_pointer) Remove as 1879 it is very simple and only called from one place. 1880 (gfc_trans_pointer_assignment): Rename non_proc_pointer_assign 1881 as non_proc_ptr_assign. Assign to it directly, rather than call 1882 to above, deleted function and use gfc_expr_attr instead of 1883 only checking the reference chain. 1884 18852019-06-08 Thomas Koenig <tkoenig@gcc.gnu.org> 1886 Tomáš Trnka <trnka@scm.com> 1887 1888 PR fortran/90744 1889 * trans-types.c (get_formal_from_actual_arglist): Unset typespec 1890 flags which make no sense for procedures without explicit 1891 interface. 1892 18932019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org> 1894 1895 PR fortran/90539 1896 * trans-expr.c (gfc_conv_subref_array_arg): If the size of the 1897 expression can be determined to be one, treat it as contiguous. 1898 Set likelyhood of presence of an actual argument according to 1899 PRED_FORTRAN_ABSENT_DUMMY and likelyhood of being contiguous 1900 according to PRED_FORTRAN_CONTIGUOUS. 1901 19022019-05-30 Thomas Koenig <tkoenig@gcc.gnu.org> 1903 1904 * gfc-internals.texi (Translating to GENERIC): New chapter. 1905 19062019-05-30 Marek Polacek <polacek@redhat.com> 1907 1908 * lang.opt (ftail-call-workaround): Fix a typo. 1909 19102019-05-30 Jakub Jelinek <jakub@redhat.com> 1911 1912 * lang.opt (ftail-call-workaround=): Fix a typo - lenghts to lengths. 1913 19142019-05-29 Thomas Koenig <tkoenig@gcc.gnu.org> 1915 1916 PR fortran/90539 1917 * gfortran.h (gfc_has_dimen_vector_ref): Add prototype. 1918 * trans.h (gfc_conv_subref_array_arg): Add argument check_contiguous. 1919 (gfc_conv_is_contiguous_expr): Add prototype. 1920 * frontend-passes.c (has_dimen_vector_ref): Remove prototype, 1921 rename to 1922 (gfc_has_dimen_vector_ref): New function name. 1923 (matmul_temp_args): Use gfc_has_dimen_vector_ref. 1924 (inline_matmul_assign): Likewise. 1925 * trans-array.c (gfc_conv_array_parameter): Also check for absence 1926 of a vector subscript before calling gfc_conv_subref_array_arg. 1927 Pass additional argument to gfc_conv_subref_array_arg. 1928 * trans-expr.c (gfc_conv_subref_array_arg): Add argument 1929 check_contiguous. If that is true, check if the argument 1930 is contiguous and do not repack in that case. 1931 * trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): Split 1932 away most of the work into, and call 1933 (gfc_conv_intrinsic_is_coniguous_expr): New function. 1934 19352019-05-29 Jakub Jelinek <jakub@redhat.com> 1936 1937 PR fortran/90329 1938 * lang.opt (fbroken-callers): Remove. 1939 (ftail-call-workaround, ftail-call-workaround=): New options. 1940 * gfortran.h (struct gfc_namespace): Add implicit_interface_calls. 1941 * interface.c (gfc_procedure_use): Set implicit_interface_calls 1942 for calls to implicit interface procedures. 1943 * trans-decl.c (create_function_arglist): Use flag_tail_call_workaround 1944 instead of flag_broken_callers. If it is not 2, also require 1945 sym->ns->implicit_interface_calls. 1946 * invoke.texi (fbroken-callers): Remove documentation. 1947 (ftail-call-workaround, ftail-call-workaround=): Document. 1948 19492019-05-26 Thomas Koenig <tkoenig@gcc.gnu.org> 1950 1951 PR fortran/90539 1952 * trans-types.c (get_formal_from_actual_arglist): Set rank 1953 and lower bound for assumed size arguments. 1954 19552019-05-22 Andrew Stubbs <ams@codesourcery.com> 1956 1957 * trans-stmt.c (gfc_trans_critical): Use size_type_node for 1958 gfor_fndecl_caf_lock and gfor_fndecl_caf_unlock calls. 1959 (gfc_trans_allocate): Use size_type_node for gfor_fndecl_caf_sync_all 1960 call. 1961 19622019-05-22 Jeff Law <law@redhat.com> 1963 Mark Eggleston <mark.eggleston@codethink.com> 1964 1965 PR fortran/89100 1966 * gfortran.texi: Add Default widths for F, G and I format 1967 descriptors to Extensions section. 1968 * invoke.texi: Add -fdec-format-defaults 1969 * io.c (check_format): Use default widths for i, f and g when 1970 flag_dec_format_defaults is enabled. 1971 * lang.opt: Add new option. 1972 * options.c (set_dec_flags): Add SET_BITFLAG for 1973 flag_dec_format_defaults. 1974 19752019-05-21 Janne Blomqvist <jb@gcc.gnu.org> 1976 1977 PR libfortran/90038 1978 * intrinsic.texi (EXECUTE_COMMAND_LINE): Explain new 1979 wait=.false. implementation. 1980 19812019-05-20 Mark Eggleston <markeggleston@codethink.com> 1982 1983 * gfortran.texi: Remove reference to the ASSIGN statement, capitalise 1984 complex, state that padding is with spaces and modify the Hollerith 1985 constant examples. 1986 19872019-05-19 Paul Thomas <pault@gcc.gnu.org> 1988 1989 PR fortran/90498 1990 * trans-stmt.c (trans_associate_var) Do not use the saved 1991 descriptor if the expression is a COMPONENT_REF. 1992 19932019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org> 1994 1995 PR fortran/90329 1996 * invoke.texi: Document -fbroken-callers. 1997 * lang.opt: Add -fbroken-callers. 1998 * trans-decl.c (create_function_arglist): Only set 1999 DECL_HIDDEN_STRING_LENGTH if flag_broken_callers is set. 2000 20012019-05-17 Thomas Schwinge <thomas@codesourcery.com> 2002 2003 PR fortran/89433 2004 * f95-lang.c (gfc_attribute_table): Set min_len to -1 for "omp 2005 declare target". 2006 * trans-decl.c (add_attributes_to_decl): Refer to OpenACC 2007 'routine' clauses from "omp declare target" attribute. 2008 20092019-05-16 Martin Sebor <msebor@redhat.com> 2010 2011 * gfortranspec.c (append_arg): Spell out the word "argument." 2012 20132019-05-16 Jakub Jelinek <jakub@redhat.com> 2014 2015 PR fortran/90329 2016 * trans-decl.c (create_function_arglist): Set 2017 DECL_HIDDEN_STRING_LENGTH on hidden string length PARM_DECLs if 2018 len is constant. 2019 20202019-05-15 Janne Blomqvist <jb@gcc.gnu.org> 2021 2022 * parse.c (gfc_parse_file): Remove translation string markers. 2023 20242019-05-12 Janne Blomqvist <jb@gcc.gnu.org> 2025 2026 * dump-parse-tree.c (get_c_type_name): Use macros for complex type 2027 names. 2028 * parse.c (gfc_parse_file): Define complex macros, add CPP support 2029 when printing C prototypes. 2030 20312019-05-10 Thomas Koenig <tkoenig@gcc.gnu.org> 2032 2033 PR fortran/61968 2034 * interface.c (compare_actual_formal): Do not create a vtab if 2035 the actual argument is assumed type. 2036 20372019-05-10 Paul Thomas <pault@gcc.gnu.org> 2038 2039 PR fortran/90093 2040 * trans-decl.c (convert_CFI_desc): Test that the dummy is 2041 present before doing any of the conversions. 2042 2043 PR fortran/90352 2044 * decl.c (gfc_verify_c_interop_param): Restore the error for 2045 charlen > 1 actual arguments passed to bind(C) procs. 2046 Clean up trailing white space. 2047 2048 PR fortran/90355 2049 * trans-array.c (gfc_trans_create_temp_array): Set the 'span' 2050 field to the element length for all types. 2051 (gfc_conv_expr_descriptor): The force_no_tmp flag is used to 2052 prevent temporary creation, especially for substrings. 2053 * trans-decl.c (gfc_trans_deferred_vars): Rather than assert 2054 that the backend decl for the string length is non-null, use it 2055 as a condition before calling gfc_trans_vla_type_sizes. 2056 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): 'force_no_tmp' 2057 is set before calling gfc_conv_expr_descriptor. 2058 * trans.c (get_array_span): Move the code for extracting 'span' 2059 from gfc_build_array_ref to this function. This is specific to 2060 descriptors that are component and indirect references. 2061 * trans.h : Add the force_no_tmp flag bitfield to gfc_se. 2062 20632019-05-08 Thomas Koenig <tkoenig@gcc.gnu.org> 2064 2065 PR fortran/90351 2066 PR fortran/90329 2067 * dump-parse-tree.c: Include version.h. 2068 (gfc_dump_external_c_prototypes): New function. 2069 (get_c_type_name): Select "char" as a name for a simple char. 2070 Adjust to handling external functions. Also handle complex. 2071 (write_decl): Add argument bind_c. Adjust for dumping of external 2072 procedures. 2073 (write_proc): Likewise. 2074 (write_interop_decl): Add bind_c argument to call of write_proc. 2075 * gfortran.h: Add prototype for gfc_dump_external_c_prototypes. 2076 * lang.opt: Add -fc-prototypes-external flag. 2077 * parse.c (gfc_parse_file): Move dumping of BIND(C) prototypes. 2078 Call gfc_dump_external_c_prototypes if option is set. 2079 * invoke.texi: Document -fc-prototypes-external. 2080 20812019-05-06 Steven G. Kargl <kargl@gcc.gnu.org> 2082 2083 PR fortran/90290 2084 * match.c (gfc_match_stopcode): Check F2008 condition on stop code. 2085 20862019-05-01 Andrew Benson <abensonca@gmail.com> 2087 2088 * module.c (write_module): Initialize module_column before writing 2089 module to ensure line break occurs at correct column. 2090 20912019-05-01 Dominique d'Humieres <dominiq@gcc.gnu.org> 2092 2093 PR fortran/60144 2094 * match.c (gfc_match_parens): Change the location for missing ')'. 2095 (gfc_match_if): Detect a missing '('. Remove the spurious named 2096 constant error. Change the wording of some errors. 2097 (gfc_match_else): Change the wording of an error. 2098 (gfc_match_elseif): Detect a missing '('. Improve the matching 2099 process to get a better syntax analysis. 2100 21012019-04-19 Steven G. Kargl <kargl@gcc.gnu.org> 2102 2103 PR fortran/90166 2104 * decl.c (in_module_or_interface): New function to check that the 2105 current state is in a module, submodule, or interface. 2106 (gfc_match_prefix): Use it. 2107 21082019-04-22 Paul Thomas <pault@gcc.gnu.org> 2109 2110 PR fortran/57284 2111 * resolve.c (find_array_spec): If this is a class expression 2112 and the symbol and component array specs are the same, this is 2113 not an error. 2114 *trans-intrinsic.c (gfc_conv_intrinsic_size): If a class symbol 2115 argument, has no namespace, it has come from the interface 2116 mapping and the _data component must be accessed directly. 2117 21182019-04-17 Thomas Schwinge <thomas@codesourcery.com> 2119 2120 PR fortran/90048 2121 * openmp.c (gfc_resolve_do_iterator): Handle sharing_clauses for 2122 OpenACC, too. 2123 (gfc_resolve_oacc_blocks): Populate sharing_clauses with private 2124 clauses. 2125 21262019-04-14 Paul Thomas <pault@gcc.gnu.org> 2127 2128 PR fortran/89843 2129 * trans-decl.c (gfc_get_symbol_decl): Assumed shape and assumed 2130 rank dummies of bind C procs require deferred initialization. 2131 (convert_CFI_desc): New procedure to convert incoming CFI 2132 descriptors to gfc types and back again. 2133 (gfc_trans_deferred_vars): Call it. 2134 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Null the CFI 2135 descriptor pointer. Free the descriptor in all cases. 2136 2137 PR fortran/89846 2138 * expr.c (is_CFI_desc): New function. 2139 (is_subref_array): Tidy up by referencing the symbol directly. 2140 * gfortran.h : Prototype for is_CFI_desc. 2141 * trans_array.c (get_CFI_desc): New function. 2142 (gfc_get_array_span, gfc_conv_scalarized_array_ref, 2143 gfc_conv_array_ref): Use it. 2144 * trans.c (get_array_span): Extract the span from descriptors 2145 that are indirect references. 2146 2147 PR fortran/90022 2148 * trans-decl.c (gfc_get_symbol_decl): Make sure that the se 2149 expression is a pointer type before converting it to the symbol 2150 backend_decl type. 2151 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Eliminate 2152 temporary creation for intent(in). 2153 21542019-04-13 Dominique d'Humieres <dominiq@gcc.gnu.org> 2155 2156 PR fortran/79842 2157 * module.c (gfc_use_module): use complete sentences. 2158 21592019-04-11 Thomas Koenig <tkoenig@gcc.gnu.org> 2160 2161 PR translation/89939 2162 * frontend-passes.c (B_ERROR): Delete macro. 2163 (C_ERROR): Delete macro. 2164 (B_ERROR_1): New macro. 2165 (C_ERROR_1): New macro. 2166 (C_ERROR_2): New macro. 2167 (inline_matmul_assign): Use new macros. 2168 (call_external_blas): Likewise. 2169 21702019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> 2171 2172 PR fortran/87352 2173 * gfortran.h (gfc_component): Add finalized field. 2174 * class.c (finalize_component): If the component is already 2175 finalized, return early. Set component->finalized on exit. 2176 21772019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> 2178 2179 PR fortran/89981 2180 * resolve.c (resolve_global_procedure): If the global symbol is an 2181 ENTRY, also look up its name among the entries. 2182 21832019-04-04 Harald Anlauf <anlauf@gmx.de> 2184 2185 PR fortran/89904 2186 * check.c (gfc_check_transfer): Reject procedures as actual 2187 arguments for SOURCE and MOLD of TRANSFER intrinsic. 2188 21892019-04-03 Steven G. Kargl <kargl@gcc.gnu.org> 2190 2191 PR fortran/68567 2192 * expr.c (gfc_reduce_init_expr): Add extra check to avoid 2193 dereferencing a null pointer. 2194 21952019-04-03 Dominique d'Humieres <dominiq@gcc.gnu.org> 2196 2197 PR fortran/89375 2198 * expr.c (comp_pointer): Remove redundant condition. 2199 22002019-03-31 Harald Anlauf <anlauf@gmx.de> 2201 2202 PR fortran/83515 2203 PR fortran/85797 2204 * trans-types.c (gfc_typenode_for_spec): Handle conversion for 2205 procedure pointers. 2206 * target-memory.c (gfc_element_size): Handle size determination 2207 for procedure pointers. 2208 22092019-03-31 Thomas Koenig <tkoenig@gcc.gnu.org> 2210 2211 * dump-parse-tree.c (debug): Add for symbol_attribute *, 2212 symbol_attribute and gfc_ref * arguments. 2213 22142019-03-30 Paul Thomas <pault@gcc.gnu.org> 2215 2216 PR fortran/89841 2217 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Use the formal 2218 argument attributes rather than those of the actual argument. 2219 2220 PR fortran/89842 2221 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Call 2222 'set_dtype_for_unallocated' for any type of arrayspec. 2223 22242019-03-27 Janus Weil <janus@gcc.gnu.org> 2225 2226 PR fortran/85537 2227 * expr.c (gfc_check_assign_symbol): Reject internal and dummy procedures 2228 in procedure pointer initialization. 2229 22302019-03-27 Paul Thomas <pault@gcc.gnu.org> 2231 2232 PR fortran/88247 2233 * expr.c (is_subref_array): Permit substrings to be detected 2234 as subref arrays. 2235 * trans-array.c (get_array_ctor_var_strlen): Obtain the length 2236 of deferred length strings. Handle substrings with a NULL end 2237 expression. 2238 (trans_array_constructor): Remove an unnecessary blank line. 2239 (gfc_conv_scalarized_array_ref): Skip to label 'done' if 'decl' 2240 is a pointer array. 2241 (get_array_charlen): If the expression is an array, convert the 2242 first element of the constructor and use its string length. Get 2243 a new charlen if necessary. 2244 (gfc_conv_expr_descriptor): Call 'get_array_charlen' for array 2245 constructor expressions. If the ss_info string length is 2246 available, use that to set the span of character arrays. 2247 * trans-expr.c (gfc_get_expr_charlen): Handle substrings 2248 * trans-stmt.c (trans_associate_var): Set the pointer array 2249 flag for variable targets and constant array constructors. Take 2250 care not to reset the string length or the span in the case of 2251 expressions that are not converted as direct by reference. 2252 22532019-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2254 2255 * intrinsic.texi (MINLOC): Fix typo in BACK argument documentation. 2256 (MAXLOC): Likewise. 2257 22582019-03-24 Thomas Koenig <tkoenig@gcc.gnu.org> 2259 2260 PR fortran/78865 2261 * interface.c (compare_actual_formal): Change errors about 2262 missing or extra to gfc_error_now to make sure they are issued. 2263 Change "spec" to "specifier" in message. 2264 * resolve.c (resolve_global_procedure): Also check for mismatching 2265 interface with global symbols if the namespace has already been 2266 resolved. 2267 22682019-03-21 Thomas Schwinge <thomas@codesourcery.com> 2269 2270 PR fortran/72741 2271 * openmp.c (gfc_match_oacc_routine): Set the level of parallelism 2272 for all variants. 2273 (gfc_resolve_oacc_routines): Call gfc_add_omp_declare_target. 2274 2275 PR fortran/89773 2276 * gfortran.h (gfc_oacc_routine_name): Add loc member. 2277 (gfc_resolve_oacc_routines): Declare. 2278 * openmp.c (gfc_match_oacc_routine): Move some error checking 2279 into... 2280 (gfc_resolve_oacc_routines): ... this new function. 2281 * resolve.c (resolve_codes): Call it. 2282 2283 PR fortran/72741 2284 * openmp.c (gfc_match_oacc_routine): Clarify. 2285 2286 PR fortran/72741 2287 * module.c (verify_OACC_ROUTINE_LOP_NONE): New function. 2288 (enum ab_attribute): Add AB_OACC_ROUTINE_LOP_GANG, 2289 AB_OACC_ROUTINE_LOP_WORKER, AB_OACC_ROUTINE_LOP_VECTOR, 2290 AB_OACC_ROUTINE_LOP_SEQ. 2291 (attr_bits): Add these. 2292 (mio_symbol_attribute): Handle these. 2293 22942019-03-20 Janus Weil <janus@gcc.gnu.org> 2295 2296 PR fortran/71861 2297 * symbol.c (check_conflict): ABSTRACT attribute conflicts with 2298 INTRINSIC attribute. 2299 23002019-03-18 Thomas Koenig <tkoeng@gcc.gnu.org> 2301 2302 PR fortran/68009 2303 * iresolve.c: Include trans.h. 2304 (gfc_resolve_fe_runtine_error): Set backend_decl on 2305 resolved_sym. 2306 23072019-03-17 Thomas Koenig <tkoenig@gcc.gnu.org> 2308 2309 PR fortran/88008 2310 * gfortran.h (expr_t): Add EXPR_UNKNOWN. 2311 * expr.c (gfc_copy_expr): Add EXPR_UNKNOWN to switch statement. 2312 (gfc_simplify_expr): Likewise. 2313 * module.c (mio_expr): Likewise. 2314 * resovle.c (extract_compcall_passed_object): Issue error on 2315 unknown type. 2316 (check_typebound_baseobject): Issue error on wrong type. 2317 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Add 2318 EXPR_UNKNOWN to switch statement. 2319 23202019-03-16 Jakub Jelinek <jakub@redhat.com> 2321 2322 PR fortran/89724 2323 * scanner.c (load_line): Remove linenum and current_line static 2324 variables, add warned_tabs automatic variable. Use current_file->line 2325 instead of current_line and warned_tabs boolean to avoid diagnosing 2326 tabs multiple times on the same line. 2327 23282019-03-16 Thomas Koenig <tkoenig@gcc.gnu.org> 2329 2330 PR fortran/84394 2331 * symbol.c (gfc_add_subroutine): If we are encountering a 2332 subrtoutine within a BLOCK DATA and the name starts with an 2333 underscore, do not check. 2334 23352019-03-15 Harald Anlauf <anlauf@gmx.de> 2336 2337 PR fortran/60091 2338 * expr.c (gfc_check_pointer_assign): Correct and improve error 2339 messages for invalid pointer assignments. 2340 23412019-03-14 Thomas Koenig <tkoenig@gcc.gnu.org> 2342 2343 * gfortran.texi: Document Q edit descriptor under 2344 "Extensions not implemented in GNU Fortran". 2345 23462019-03-13 Harald Anlauf <anlauf@gmx.de> 2347 2348 PR fortran/87045 2349 * trans-expr.c (gfc_trans_pointer_assignment): Move check for same 2350 string length so that we do not get false errors for deferred 2351 length. 2352 23532019-03-13 Janus Weil <janus@gcc.gnu.org> 2354 2355 PR fortran/89601 2356 * decl.c (gfc_match_formal_arglist): Reject empty type parameter lists. 2357 (gfc_match_derived_decl): Mark as PDT only if type parameter list was 2358 matched successfully. 2359 23602019-03-13 Thomas Koenig <tkoenig@gcc.gnu.org> 2361 2362 PR fortran/66695 2363 PR fortran/77746 2364 PR fortran/79485 2365 * gfortran.h (gfc_symbol): Add bind_c component. 2366 (gfc_get_gsymbol): Add argument bind_c. 2367 * decl.c (add_global_entry): Add bind_c argument to 2368 gfc_get_symbol. 2369 * parse.c (parse_block_data): Likewise. 2370 (parse_module): Likewise. 2371 (add_global_procedure): Likewise. 2372 (add_global_program): Likewise. 2373 * resolve.c (resolve_common_blocks): Likewise. 2374 (resolve_global_procedure): Likewise. 2375 (gfc_verify_binding_labels): Likewise. 2376 * symbol.c (gfc_get_gsymbol): Add argument bind_c. Set bind_c 2377 in gsym. 2378 * trans-decl.c (gfc_get_module_backend_decl): Add bind_c argument 2379 to gfc_get_symbol. 2380 (gfc_get_extern_function_decl): If the sym has a binding label 2381 and it cannot be found in the global symbol tabel, it is the wrong 2382 one and vice versa. 2383 23842019-03-12 Thomas Koenig <tkoenig@gcc.gnu.org> 2385 2386 PR fortran/87673 2387 * match.c (gfc_match_type_spec): Remove call to 2388 gfc_resolve_expr for character length. 2389 23902019-03-12 Martin Liska <mliska@suse.cz> 2391 2392 * decl.c (add_init_expr_to_sym): Replace usage of 'can't' 2393 with 'cannot'. 2394 (variable_decl): Likewise. 2395 (cray_pointer_decl): Likewise. 2396 (match_binding_attributes): Likewise. 2397 * f95-lang.c (gfc_init): Likewise. 2398 * interface.c (gfc_check_typebound_override): Likewise. 2399 * intrinsic.c (make_generic): Likewise. 2400 * module.c (dump_module): Likewise. 2401 (gfc_use_module): Likewise. 2402 * primary.c (gfc_convert_to_structure_constructor): Likewise. 2403 * resolve.c (resolve_entries): Likewise. 2404 (check_generic_tbp_ambiguity): Likewise. 2405 (get_checked_tb_operator_target): Likewise. 2406 * scanner.c (load_file): Likewise. 2407 * trans-expr.c (gfc_conv_intrinsic_to_class): Likewise. 2408 24092019-03-12 Paul Thomas <pault@gcc.gnu.org> 2410 2411 PR fortran/89363 2412 PR fortran/89364 2413 * trans-expr.c (set_dtype_for_unallocated): New function. 2414 (gfc_conv_gfc_desc_to_cfi_desc): Call it for allocatable and 2415 pointer arguments. 2416 (gfc_conv_procedure_call): Likewise. Also, set the ubound of 2417 the final dimension to -1 for assumed rank formal args that are 2418 associated with assumed size arrays. 2419 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Return -1 for 2420 the final dimension of assumed rank entities that are argument 2421 associated with assumed size arrays. 2422 (gfc_conv_intrinsic_shape): Likewise return -1 for the final 2423 dimension of the shape intrinsic. 2424 24252019-03-11 Jakub Jelinek <jakub@redhat.com> 2426 2427 PR fortran/89651 2428 * trans-openmp.c (gfc_omp_clause_default_ctor): Set TREE_NO_WARNING 2429 on decl if adding COND_EXPR for allocatable. 2430 (gfc_omp_clause_copy_ctor): Set TREE_NO_WARNING on dest. 2431 24322019-03-11 Martin Liska <mliska@suse.cz> 2433 2434 * decl.c (match_record_decl): Wrap an option name 2435 in a string format message and fix GNU coding style. 2436 (gfc_match_pointer): Likewise. 2437 * expr.c (find_array_section): Likewise. 2438 * intrinsic.c (gfc_is_intrinsic): Likewise. 2439 * options.c (gfc_post_options): Likewise. 2440 * primary.c (match_integer_constant): Likewise. 2441 * trans-common.c (translate_common): Likewise. 2442 24432019-03-10 Thomas Koenig <tkoenig@gcc.gnu.org> 2444 2445 PR fortran/66089 2446 * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference): 2447 Return false if a scalar tempoary is needed. 2448 (gfc_walk_variable_expr): Fix up class refs. 2449 24502019-03-10 Thomas Koenig <tkoenig@gcc.gnu.org> 2451 2452 PR fortran/87734 2453 * symbol.c (gfc_add_procedure): Only throw an error if the 2454 procedure has not been declared either PUBLIC or PRIVATE. 2455 24562019-03-09 Thomas Koenig <tkoenig@gcc.gnu.org> 2457 2458 PR fortran/71544 2459 * trans-types.c (gfc_typenode_for_spec) Set ts->is_c_interop of 2460 C_PTR and C_FUNPTR. 2461 (create_fn_spec): Mark argument as escaping if ts->is_c_interop is set. 2462 24632019-03-09 Janus Weil <janus@gcc.gnu.org> 2464 2465 PR fortran/84504 2466 * expr.c (gfc_check_assign_symbol): Deal with procedure pointers to 2467 pointer-valued functions. 2468 24692019-03-09 Thomas König <tkoenig@gcc.gnu.org> 2470 2471 PR fortran/71203 2472 * decl.c (add_init_expr_to_sym): Add shape if init has none. Add 2473 asserts that it has to be an EXPR_ARRAY in this case. 2474 24752019-03-08 Jakub Jelinek <jakub@redhat.com> 2476 2477 PR other/80058 2478 * arith.c (gfc_complex2complex): Avoid two spaces in the middle of 2479 diagnostics. 2480 * resolve.c (resolve_allocate_expr): Likewise. 2481 24822019-03-06 Harald Anlauf <anlauf@gmx.de> 2483 2484 PR fortran/71203 2485 * expr.c (simplify_const_ref): Avoid null pointer dereference. 2486 24872019-03-03 Harald Anlauf <anlauf@gmx.de> 2488 Steven G. Kargl <kargl@gcc.gnu.org> 2489 2490 PR fortran/77583 2491 * symbol.c (check_conflict): Check for valid procedure name 2492 passed to error reporting routine. 2493 24942019-03-03 Thomas Koenig <tkoenig@gcc.gnu.org> 2495 2496 PR fortran/72714 2497 * resolve.c (resolve_allocate_expr): Add some tests for coarrays. 2498 24992019-03-02 Harald Anlauf <anlauf@gmx.de> 2500 2501 PR fortran/89516 2502 * check.c (gfc_calculate_transfer_sizes): Correct checks for cases 2503 where storage size of elements of MOLD is 0. 2504 25052019-02-28 Thomas Schwinge <thomas@codesourcery.com> 2506 Cesar Philippidis <cesar@codesourcery.com> 2507 2508 PR fortran/72741 2509 PR fortran/89433 2510 * openmp.c (gfc_match_oacc_routine): Handle repeated use of the 2511 Fortran OpenACC 'routine' directive. 2512 2513 PR fortran/72741 2514 * gfortran.h (enum oacc_routine_lop): Add OACC_ROUTINE_LOP_ERROR. 2515 * openmp.c (gfc_oacc_routine_lop, gfc_match_oacc_routine): Use it. 2516 * trans-decl.c (add_attributes_to_decl): Likewise. 2517 2518 PR fortran/72741 2519 PR fortran/89433 2520 * openmp.c (gfc_match_oacc_routine): Accept intrinsic symbols. 2521 25222019-02-26 Harald Anlauf <anlauf@gmx.de> 2523 2524 PR fortran/89492 2525 * check.c (gfc_calculate_transfer_sizes): Handle cases where 2526 storage size of elements of MOLD is 0. 2527 25282019-02-26 Thomas Koenig <tkoenig@gcc.gnu.org> 2529 2530 PR fortran/89496 2531 * trans-types.c (get_formal_from_actual_arglist): If 2532 the actual arglist has no expression, the corresponding 2533 formal arglist is an alternate return. 2534 25352019-02-26 Uroš Bizjak <ubizjak@gmail.com> 2536 2537 * invoke.texi (-ffpe-trap): Use @var for every item in the list. 2538 25392019-02-26 Jakub Jelinek <jakub@redhat.com> 2540 2541 PR fortran/43210 2542 * trans-array.c (gfc_conv_array_initializer): Use RANGE_EXPR instead 2543 of duplicating the initializer possibly many times. 2544 25452019-02-24 Thomas Koenig <tkoenig@gcc.gnu.org> 2546 2547 PR fortran/89174 2548 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Add is_mold 2549 to arguments. If we are dealing with a MOLD, call 2550 gfc_expr_to_initialize(). 2551 * trans-stmt.c (gfc_trans_allocate): For MOLD, pass is_mold=true 2552 to gfc_find_and_cut_at_last_class_ref. 2553 * trans.h (gfc_find_and_cut_at_last_class_ref): Add optional 2554 argument is_mold with default false. 2555 25562019-02-24 Harald Anlauf <anlauf@gmx.de> 2557 2558 PR fortran/89266 2559 PR fortran/88326 2560 * target-memory.c (gfc_element_size): Return false if element size 2561 cannot be determined; element size is returned separately. 2562 (gfc_target_expr_size): Return false if expression size cannot be 2563 determined; expression size is returned separately. 2564 * target-memory.h: Adjust prototypes. 2565 * check.c (gfc_calculate_transfer_sizes): Adjust references to 2566 gfc_target_expr_size, gfc_element_size. 2567 * arith.c (hollerith2representation): Likewise. 2568 * class.c (find_intrinsic_vtab): Likewise. 2569 * simplify.c (gfc_simplify_sizeof): Likewise. 2570 25712019-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2572 2573 PR fortran/84387 2574 * trans-io.c (transfer_expr): Do not return if there are no 2575 components to the derived type or class. 2576 25772019-02-23 Paul Thomas <pault@gcc.gnu.org> 2578 2579 PR fortran/88117 2580 * resolve.c (deferred_op_assign): Return if the lhs expression 2581 has the pointer attribute. 2582 * trans-expr.c (gfc_trans_assignment_1): Do not fix the string 2583 length if the lhs expression has the pointer attribute. 2584 25852019-02-23 Paul Thomas <pault@gcc.gnu.org> 2586 2587 PR fortran/89385 2588 PR fortran/89366 2589 * decl.c (gfc_verify_c_interop_param): Restriction on string 2590 length being one is lifted for F2018. 2591 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): For scalar 2592 characters with intent in, make a temporary and copy the result 2593 of the expression evaluation into it. 2594 (gfc_conv_procedure_call): Set a flag for character formal args 2595 having a character length that is not unity. If the procedure 2596 is bind C, call gfc_conv_gfc_desc_to_cfi_desc in this case. 2597 Also, extend bind C calls to unconditionally convert both 2598 pointers and allocatable expressions. 2599 26002019-02-23 David Malcolm <dmalcolm@redhat.com> 2601 Jakub Jelinek <jakub@redhat.com> 2602 2603 PR middle-end/88074 2604 * simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use 2605 mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p. 2606 (norm2_add_squared): Likewise. Use mp_exp_t rather than mpfr_exp_t. 2607 26082019-02-22 Harald Anlauf <anlauf@gmx.de> 2609 2610 PR fortran/83057 2611 * io.c (gfc_match_open): Fix logic in checks of OPEN statement 2612 when NEWUNIT= is specified. 2613 26142019-02-22 Steven G. Kargl <kargl@gcc.gnu.org> 2615 2616 PR fortran/89431 2617 * gfortran.texi: Fix documentation to match the implementation. 2618 26192019-02-22 Thomas Schwinge <thomas@codesourcery.com> 2620 Cesar Philippidis <cesar@codesourcery.com> 2621 2622 PR fortran/72741 2623 * gfortran.h (oacc_routine_lop): New enum. 2624 (symbol_attribute): Use it. 2625 * openmp.c (gfc_oacc_routine_dims): Replace with... 2626 (gfc_oacc_routine_lop): ... this new function. 2627 (gfc_match_oacc_routine): Adjust. 2628 * trans-decl.c (add_attributes_to_decl): Likewise. 2629 26302019-02-22 Thomas Schwinge <thomas@codesourcery.com> 2631 2632 * openmp.c (gfc_match_oacc_declare): Revert earlier changes. 2633 26342019-02-21 Thomas Koenig <tkoenig@gcc.gnu.org> 2635 2636 * dump-parse-tree.c (debug): Implement for gfc_expr *, 2637 gfc_typespec *, gfc_typespec and gfc_symbol *. 2638 26392019-02-21 Thomas Koenig <tkoenig@gcc.gnu.org> 2640 2641 PR fortran/86119 2642 * class.c (gfc_get_len_component): Add argument k for kind. 2643 If the kind of the resulting expression is not equal to k, 2644 convert it. 2645 * gfortran.h (gfc_len_component): Adjust prototype. 2646 * simplify.c (gfc_simplify_len): Pass kind to 2647 gfc_get_len_component. 2648 26492019-02-20 Martin Liska <mliska@suse.cz> 2650 2651 * gfortran.texi: Change singular to plural. 2652 26532019-02-20 Martin Liska <mliska@suse.cz> 2654 2655 * gfortran.texi: Document Fortran header directive. 2656 26572019-02-19 Thomas Koenig <tkoenig@gcc.gnu.org> 2658 2659 PR fortran/89384 2660 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): If the dummy 2661 argument is contiguous and the actual argument may not be, 2662 use gfc_conv_subref_array_arg. 2663 26642019-02-19 Thomas Schwinge <thomas@codesourcery.com> 2665 2666 PR c/87924 2667 * openmp.c (gfc_match_omp_clauses): Add representation of wait clause 2668 without argument as 'wait (GOMP_ASYNC_NOVAL)'. 2669 26702019-02-18 Thomas Koenig <tkoenig@gcc.gnu.org> 2671 2672 PR fortran/87689 2673 * trans-decl.c (gfc_get_extern_function_decl): Add argument 2674 actual_args and pass it through to gfc_get_function_type. 2675 * trans-expr.c (conv_function_val): Add argument actual_args 2676 and pass it on to gfc_get_extern_function_decl. 2677 (conv_procedure_call): Pass actual arguments to conv_function_val. 2678 * trans-types.c (get_formal_from_actual_arglist): New function. 2679 (gfc_get_function_type): Add argument actual_args. Generate 2680 formal args from actual args if necessary. 2681 * trans-types.h (gfc_get_function_type): Add optional argument. 2682 * trans.h (gfc_get_extern_function_decl): Add optional argument. 2683 26842019-02-18 Martin Liska <mliska@suse.cz> 2685 2686 * decl.c (gfc_match_gcc_builtin): Add support for filtering 2687 of builtin directive based on multilib ABI name. 2688 26892019-02-17 Harald Anlauf <anlauf@gmx.de> 2690 2691 PR fortran/88299 2692 * resolve.c (resolve_common_blocks,resolve_common_vars): Move 2693 check for obsolent COMMON feature in F2018 to better place. 2694 26952019-02-17 Harald Anlauf <anlauf@gmx.de> 2696 2697 PR fortran/89077 2698 * decl.c (gfc_set_constant_character_len): Clear original string 2699 representation after padding has been performed to target length. 2700 27012019-02-16 Jakub Jelinek <jakub@redhat.com> 2702 2703 PR middle-end/88074 2704 * simplify.c (simplify_transformation_to_array): Run post_op 2705 immediately after processing corresponding row, rather than at the 2706 end. 2707 (norm2_scale): New variable. 2708 (add_squared): Rename to ... 2709 (norm2_add_squared): ... this. Scale down operand and/or result 2710 if needed. 2711 (do_sqrt): Rename to ... 2712 (norm2_do_sqrt): ... this. Handle the result == e case. Scale up 2713 result and clear norm2_scale. 2714 (gfc_simplify_norm2): Clear norm2_scale. Change add_squared to 2715 norm2_add_squared and &do_sqrt to norm2_do_sqrt. Scale up result 2716 and clear norm2_scale again. 2717 27182019-02-17 Thomas Koenig <tkoenig@gcc.gnu.org> 2719 2720 PR fortran/71066 2721 * trans-decl.c (generate_coarray_sym_init): For an array 2722 constructor in a DATA statement of a coarray variable, set the 2723 rank to 1 to avoid confusion later on. If the constructor 2724 contains only one value, use that for initiailizig. 2725 27262019-02-14 Janne Blomqvist <jb@gcc.gnu.org> 2727 2728 PR fortran/81552 2729 * gfortran.h (gfc_option_t): Make flag_init_integer_value a long. 2730 * options.c (gfc_handle_option): Use strtol instead of atoi. 2731 * invoke.texi: Document -finit-integer behavior in more detail. 2732 27332019-02-14 Harald Anlauf <anlauf@gmx.de> 2734 2735 PR fortran/88248 2736 * symbol.c: Move check for labeled DO statement from 2737 gfc_define_st_label to gfc_reference_st_label. 2738 27392019-02-14 Cesar Philippidis <cesar@codesourcery.com> 2740 2741 PR fortran/72715 2742 * openmp.c (resolve_oacc_nested_loops): Error on do concurrent 2743 loops. 2744 27452019-02-13 Martin Liska <mliska@suse.cz> 2746 2747 PR fortran/88649 2748 * resolve.c (resolve_operator): Initialize 't' right 2749 after function entry. Skip switch (e->value.op.op) 2750 for -fdec operands that become function calls. 2751 27522019-02-10 Thomas Koenig <tkoenig@gcc.gnu.org> 2753 2754 PR fortran/71723 2755 * expr.c (gfc_check_assign): Add argument is_init_expr. If we are 2756 looking at an init expression, issue error if the target is not a 2757 TARGET and we are not looking at a procedure pointer. 2758 * gfortran.h (gfc_check_assign): Add optional argument 2759 is_init_expr. 2760 27612019-02-09 Harald Anlauf <anlauf@gmx.de> 2762 2763 PR fortran/89077 2764 * resolve.c (gfc_resolve_substring_charlen): Check substring 2765 length for constantness prior to general calculation of length. 2766 27672019-02-09 Paul Thomas <pault@gcc.gnu.org> 2768 2769 PR fortran/89200 2770 * trans-array.c (gfc_trans_create_temp_array): Set the 'span' 2771 field for derived types. 2772 27732019-02-04 Harald Anlauf <anlauf@gmx.de> 2774 2775 PR fortran/89077 2776 * decl.c (add_init_expr_to_sym): Copy length of string initializer 2777 to declared symbol. 2778 27792019-02-04 Martin Liska <mliska@suse.cz> 2780 2781 PR fortran/89185 2782 * resolve.c (resolve_ref): Remove breakout variable as 2783 we need to prevent prev = &(*prev)->next to happen 2784 with *prev == NULL. 2785 27862019-02-04 Martin Liska <mliska@suse.cz> 2787 2788 PR fortran/88912 2789 * scanner.c (load_file): Report error for -fpre-include 2790 file and do not ICE. 2791 27922019-02-02 Dominique d'Humieres <dominiq@gcc.gnu.org> 2793 2794 PR fortran/81344 2795 * invoke.texi: Document the behavior of repeated -ffpe-trap 2796 and -ffpe-summary. 2797 27982019-02-02 Thomas Koenig <tkoenig@gcc.gnu.org> 2799 2800 PR fortran/88298 2801 * arith.c (gfc_int2int): Do not warn if src->do_not_warn is set. 2802 * gfortran.h (gfc_expr): Add flag do_not_warn. 2803 * intrinsic.c (gfc_convert_type_warn): Set expr->do_not_warn if 2804 no warning is desired. 2805 28062019-02-02 Paul Thomas <pault@gcc.gnu.org> 2807 2808 PR fortran/88393 2809 * trans-expr.c (gfc_conv_procedure_call): For derived entities, 2810 passed in parentheses to class formals, invert the order of 2811 copying allocatable components to taking the _data of the 2812 class expression. 2813 28142019-02-02 Paul Thomas <pault@gcc.gnu.org> 2815 2816 PR fortran/88980 2817 * trans-array.c (gfc_array_init_size): Add element_size to the 2818 arguments. 2819 (gfc_array_allocate): Remove the recalculation of the size of 2820 the element and use element_size from the call to the above. 2821 Unconditionally set the span field of the descriptor. 2822 28232019-02-02 Paul Thomas <pault@gcc.gnu.org> 2824 2825 PR fortran/88685 2826 * expr.c (is_subref_array): Move the check for class pointer 2827 dummy arrays to after the reference check. If we haven't seen 2828 an array reference other than an element and a component is not 2829 class or derived, return false. 2830 28312019-02-01 Jakub Jelinek <jakub@redhat.com> 2832 2833 PR fortran/83246 2834 PR fortran/89084 2835 * trans-decl.c (generate_local_decl): Add referenced FL_PARAMETERs 2836 if sym->ns->construct_entities rather than if 2837 sym->ns->parent->code->op == EXEC_BLOCK. 2838 28392019-01-31 Thomas Koenig <tkoenig@gcc.gnu.org> 2840 2841 PR fortran/88669 2842 * resolve.c (resolve_component): If the reference is a BT_CLASS, 2843 copy the contiguous attribute from the reference and use the 2844 correct attributes. 2845 28462019-01-30 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2847 2848 PR fortran/52564 2849 * io.c (match_io): Add check for comma after '*' without subsequent 2850 IO list. 2851 28522019-01-30 Dominique d'Humieres <dominiq@gcc.gnu.org> 2853 2854 PR fortran/52884 2855 * invoke.texi: Document the promotion of double precision 2856 constants. 2857 28582019-01-29 Thomas Koenig <tkoenig@gcc.gnu.org> 2859 2860 PR fortran/57048 2861 * interface.c (gfc_compare_types): If a derived type and an 2862 integer both have a derived type, and they are identical, 2863 this is a C binding type and compares equal. 2864 28652019-01-26 Harald Anlauf <anlauf@gmx.de> 2866 2867 PR fortran/57553 2868 * expr.c (check_inquiry): Add list of inquiry functions allowed in 2869 constant expressions for F2008+. 2870 28712019-01-25 Steven G. Kargl <kargl@gcc.gnu.org> 2872 2873 PR fortran/85780 2874 * decl.c (gfc_match_subroutine): Check for conflict between BIND(C) 2875 and alternative return. 2876 28772019-01-24 Paul Thomas <pault@gcc.gnu.org> 2878 2879 PR fortran/88929 2880 * trans-array.c (gfc_conv_descriptor_elem_len): New function. 2881 * trans-array.h : Add prototype for above. 2882 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Take account of 2883 assumed rank arrays being flagged by rank = -1 in expressions. 2884 Intent in arrays need a pointer to a copy of the data to be 2885 assigned to the descriptor passed for conversion. This should 2886 then be freed, together with the CFI descriptor on return from 2887 the C call. 2888 28892019-01-22 Harald Anlauf <anlauf@gmx.de> 2890 2891 PR fortran/88579 2892 * trans-expr.c (gfc_conv_power_op): Handle cases of (2**e) ** integer 2893 and (- 2**e) ** integer. 2894 28952019-01-19 Dominique d'Humieres <dominiq@gcc.gnu.org> 2896 2897 PR fortran/37835 2898 * resolve.c (resolve_types): Add !flag_automatic. 2899 * symbol.c (gfc_add_save): Silence warnings. 2900 29012019-01-19 Steven G. Kargl <kargl@gcc.gnu.org> 2902 2903 PR fortran/77960 2904 * io.c (match_io_element): input-item cannot be an external function. 2905 29062018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org> 2907 Paul Thomas <pault@gcc.gnu.org> 2908 2909 PR fortran/56789 2910 * trans-expr.c (gfc_conv_procedure_call): Call 2911 gfc_conv_subref_array_arg if the formal arg is contiguous 2912 and the actual arg may not be. 2913 29142019-01-17 Thomas Koenig <tkoenig@gcc.gnu.org> 2915 2916 PR fortran/88871 2917 * resolve.c (resolve_ref): Fix logic for removal of 2918 reference. 2919 29202019-01-19 Jakub Jelinek <jakub@redhat.com> 2921 2922 PR fortran/88902 2923 * trans-decl.c (gfc_get_symbol_decl): Don't add length to function 2924 or parent function if it has been added there already. 2925 29262019-01-15 Thomas Koenig <tkoenig@gcc.gnu.org> 2927 2928 PR fortran/43136 2929 * resolve.c (resolve_array_ref): Add equal_length argument; set it 2930 if the length of the substring equals that of the orignal 2931 variable. 2932 (resolve_ref): Remove the substring if it is equal in length to 2933 the original variable, unless it is an EXPR_SUBSTRING). 2934 29352019-01-15 Steven G. Kargl <kargl@gcc.gnu.org> 2936 2937 PR fortran/81849 2938 * resolve.c (resolve_symbol): Host associated varaibles can appear 2939 in the specification statement of a RESULT array. 2940 29412019-01-15 Paul Thomas <pault@gcc.gnu.org> 2942 2943 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Deal with exprs 2944 that are indirect references; ie. dummy arguments. 2945 29462019-01-13 Dominique d'Humieres <dominiq@gcc.gnu.org> 2947 2948 PR fortran/88803 2949 * gfortran.texi: Replace @xref with @ref and adjust the sentence. 2950 29512019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> 2952 2953 PR fortran/57992 2954 * trans-array.c (gfc_conv_array_parameter): Do not pack/unpack 2955 functions with contiguous results. 2956 29572019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> 2958 2959 PR fortran/59345 2960 * trans-array.c (gfc_conv_array_parameter): Remove TODO. Do not 2961 pack/unpack results of functions which return an explicit-shaped 2962 or allocatable array. 2963 29642019-01-12 Steven G. Kargl <kargl@gcc.gnu.org> 2965 2966 PR fortran/61765 2967 * resolve.c (gfc_verify_binding_labels): Break if-elseif-elseif 2968 structure into independent if's with a return to simplify logic. 2969 Avoid a check for ENTRY name with bind(c). 2970 29712019-01-12 Paul Thomas <pault@gcc.gnu.org> 2972 2973 * gfortran.texi: Add description in sections on TS 29113 and 2974 further interoperability with C. 2975 * trans-array.c (gfc_conv_descriptor_attribute): New function. 2976 (gfc_get_dataptr_offset): Remove static function attribute. 2977 * trans-array.h: Add prototypes for above functions. 2978 * trans-decl.c: Add declarations for the library functions 2979 cfi_desc_to_gfc_desc and gfc_desc_to_cfi_desc. 2980 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): New function. 2981 (gfc_conv_procedure_call): Call it for scalar and array actual 2982 arguments, when the formal arguments are bind_c with assumed 2983 shape or assumed rank. 2984 * trans.h: External declarations for gfor_fndecl_cfi_to_gfc 2985 and gfor_fndecl_gfc_to_cfi. 2986 29872019-01-11 Steven G. Kargl <kargl@gcc.gnu.org> 2988 2989 PR fortran/35031 2990 * decl.c (gfc_match_entry): Check for F2018:C1546. Fix nearby 2991 mis-indentation. 2992 29932019-01-11 Jakub Jelinek <jakub@redhat.com> 2994 2995 PR middle-end/85956 2996 PR lto/88733 2997 * trans-openmp.c: Include attribs.h. 2998 (gfc_walk_alloc_comps, gfc_omp_clause_linear_ctor): Handle 2999 VAR_DECL max bound with "omp dummy var" attribute like NULL or 3000 error_mark_node - recompute number of elts independently. 3001 30022019-01-11 Thomas Koenig <tkoenig@gcc.gnu.org> 3003 3004 PR fortran/59345 3005 * trans-array.c (gfc_conv_parameter_array): Temporary 3006 arrays generated for expressions do not need to be repacked. 3007 30082019-01-10 Steven G. Kargl <kargl@gcc.gnu.org> 3009 3010 PR fortran/86322 3011 * decl.c (top_var_list): Set locus of expr. 3012 (gfc_match_data): Detect pointer on non-rightmost part-refs. 3013 30142019-01-09 Steven G. Kargl <kargl@gcc.gnu.org> 3015 3016 PR fortran/88376 3017 * resolve.c (is_illegal_recursion): Remove an assert(). 3018 30192019-01-09 Sandra Loosemore <sandra@codesourcery.com> 3020 3021 PR other/16615 3022 * expr.c: Change "can not" to "cannot". 3023 30242019-01-09 Sandra Loosemore <sandra@codesourcery.com> 3025 3026 PR other/16615 3027 * class.c: Mechanically replace "can not" with "cannot". 3028 * decl.c: Likewise. 3029 * expr.c: Likewise. 3030 * gfc-internals.texi: Likewise. 3031 * intrinsic.texi: Likewise. 3032 * invoke.texi: Likewise. 3033 * io.c: Likewise. 3034 * match.c: Likewise. 3035 * parse.c: Likewise. 3036 * primary.c: Likewise. 3037 * resolve.c: Likewise. 3038 * symbol.c: Likewise. 3039 * trans-array.c: Likewise. 3040 * trans-decl.c: Likewise. 3041 * trans-intrinsic.c: Likewise. 3042 * trans-stmt.c: Likewise. 3043 30442019-01-09 Thomas Koenig <tkoenig@gcc.gnu.org> 3045 3046 PR fortran/68426 3047 * simplify.c (gfc_simplify_spread): Also simplify if the 3048 type of source is an EXPR_STRUCTURE. 3049 30502019-01-08 Janus Weil <janus@gcc.gnu.org> 3051 3052 PR fortran/88047 3053 * class.c (gfc_find_vtab): For polymorphic typespecs, the components of 3054 the class container may not be available (in case of invalid code). 3055 30562019-01-08 Richard Biener <rguenther@suse.de> 3057 3058 PR fortran/88611 3059 * trans-expr.c (gfc_conv_initializer): For ISOCBINDING_NULL_* 3060 directly build the expected GENERIC tree. 3061 30622019-01-07 Thomas Koenig <tkoenig@gcc.gnu.org> 3063 Harald Anlauf <anlauf@gmx.de> 3064 Tobias Burnus <burnus@gcc.gnu.org> 3065 3066 PR fortran/45424 3067 * check.c (gfc_check_is_contiguous): New function. 3068 * expr.c (gfc_is_not_contiguous): New function. 3069 * gfortran.h (gfc_isym_id): Add GFC_ISYM_IS_CONTIGUOUS. 3070 Add prototype for gfc_is_not_contiguous. 3071 * intrinsic.c (do_ts29113_check): Add GFC_ISYM_IS_CONTIGUOUS. 3072 (add_function): Add is_contiguous. 3073 * intrinsic.h: Add prototypes for gfc_check_is_contiguous, 3074 gfc_simplify_is_contiguous and gfc_resolve_is_contiguous. 3075 * intrinsic.texi: Add IS_CONTIGUOUS. 3076 * iresolve.c (gfc_resolve_is_contiguous): New function. 3077 * simplify.c (gfc_simplify_is_contiguous): New function. 3078 * trans-decl.c (gfor_fncecl_is_contiguous0): New variable. 3079 (gfc_build_intrinsic_function_decl): Add it. 3080 * trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): New 3081 function. 3082 (gfc_conv_intrinsic_function): Handle GFC_ISYM_IS_CONTIGUOUS. 3083 30842019-01-06 Thomas Koenig <tkoenig@gcc.gnu.org> 3085 3086 PR fortran/88658 3087 * gfortran.h: Add macro gfc_real_4_kind 3088 * simplify.c (simplify_min_max): Special case for the types of 3089 AMAX0, AMIN0, MAX1 and MIN1, which actually change the types of 3090 their arguments. 3091 30922019-01-05 Janus Weil <janus@gcc.gnu.org> 3093 3094 PR fortran/88009 3095 * class.c (gfc_find_derived_vtab): Mark the _final component as 3096 artificial. 3097 (find_intrinsic_vtab): Ditto. Also add an extra check to avoid 3098 dereferencing a null pointer and adjust indentation. 3099 * resolve.c (resolve_fl_variable): Add extra check to avoid 3100 dereferencing a null pointer. Move variable declarations to local scope. 3101 (resolve_fl_procedure): Add extra check to avoid dereferencing a null 3102 pointer. 3103 * symbol.c (check_conflict): Suppress errors for artificial symbols. 3104 31052019-01-01 Steven G. Kargl <kargl@gcc.gnu.org> 3106 3107 * parse.c (decode_statement): Suppress "Unclassifiable statement" 3108 error if previous error messages were emittes. 3109 31102019-01-01 Thomas Koenig <tkoenig@gcc.gnu.org> 3111 3112 PR fortran/82743 3113 * primary.c (gfc_convert_to_structure_constructor): If a character 3114 in a constructor is too long, add a warning with 3115 -Wcharacter-truncation. 3116 31172019-01-01 Jakub Jelinek <jakub@redhat.com> 3118 3119 Update copyright years. 3120 3121 * gfortranspec.c (lang_specific_driver): Update copyright notice 3122 dates. 3123 * gfc-internals.texi: Bump @copying's copyright year. 3124 * gfortran.texi: Ditto. 3125 * intrinsic.texi: Ditto. 3126 * invoke.texi: Ditto. 3127 3128Copyright (C) 2019 Free Software Foundation, Inc. 3129 3130Copying and distribution of this file, with or without modification, 3131are permitted in any medium without royalty provided the copyright 3132notice and this notice are preserved. 3133