12014-12-31 Tobias Burnus <burnus@net-b.de> 2 3 * match.c (gfc_match_stopcode): Permit error stop in pure 4 procedures with F2015. 5 62014-12-31 Uros Bizjak <ubizjak@gmail.com> 7 8 * trans-array.c (trans_array_bound_check): Use xasprintf instead 9 of unchecked asprintf. 10 (gfc_conv_array_ref): Ditto. 11 (gfc_conv_ss_startstride): Ditto. 12 (gfc_trans_dummy_array_bias): Ditto. 13 (gfc_conv_array_parameter): Ditto. 14 * trans-decl.c (gfc_generate_function_code): Ditto. 15 * trans-expr.c (gfc_conv_substring): Ditto. 16 (gfc_conv_procedure_call): Ditto. 17 * trans-io.c (gfc_trans_io_runtime_check): Ditto. 18 (set_string): Ditto. 19 * trans.c (trans-runtime_error_vararg): Ditto. 20 212014-12-29 Janus Weil <janus@gcc.gnu.org> 22 23 PR fortran/60357 24 * array.c (check_constructor): Ignore empty expressions. 25 * expr.c (check_alloc_comp_init): Check if constructor expression 26 exists. 27 * primary.c (build_actual_constructor): Warn for absent alloc-comp 28 initializers in pre-2008 standards. 29 302014-12-28 Thomas Koenig <tkoenig@gcc.gnu.org> 31 32 PR fortran/56867 33 * trans-array.c (gfc_conv_resolve_dependencies): Also check 34 dependencies when there may be substrings of character arrays. 35 362014-12-27 Janus Weil <janus@gcc.gnu.org> 37 38 PR fortran/54756 39 * resolve.c (resolve_formal_arglist): Reject polymorphic INTENT(OUT) 40 arguments of pure procedures. 41 422014-12-22 Tobias Burnus <burnus@net-b.de> 43 44 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get, conv_caf_send): 45 Fix vector handling. 46 472014-12-22 Janus Weil <janus@gcc.gnu.org> 48 49 PR fortran/63363 50 * check.c (gfc_check_kind): Reject polymorphic and non-data arguments. 51 522014-12-19 Janus Weil <janus@gcc.gnu.org> 53 54 PR fortran/64209 55 * trans-expr.c (gfc_trans_class_array_init_assign): Check if _def_init 56 component is non-NULL. 57 (gfc_trans_class_init_assign): Ditto. 58 592014-12-17 Janus Weil <janus@gcc.gnu.org> 60 61 PR fortran/64173 62 * trans-array.c (structure_alloc_comps): Do not nullify procedure 63 pointer components. 64 652014-12-17 Pierre-Marie de Rodat <derodat@adacore.com> 66 67 * trans-types.c (gfc_get_array_descr_info): Describe all Fortran arrays 68 with column major ordering. 69 702014-12-17 Tobias Burnus <burnus@net-b.de> 71 72 PR fortran/54687 73 * gfortran.h (gfc_option_t): Remove flags which now 74 have a Var(). 75 (init_local_real, gfc_fcoarray): Moved to ../flag-types.h. 76 * libgfortran.h (unit_convert): Add comment. 77 * lang.opt (flag-convert, flag-init_real, flag-coarray): 78 Add Var() and Enum(). 79 * options.c (gfc_handle_coarray_option): Remove. 80 (gfc_init_options, gfc_post_options, gfc_handle_option): 81 Update for *.opt changes. 82 * array.c: Update for flag-variable name changes. 83 * check.c: Ditto. 84 * match.c: Ditto. 85 * resolve.c: Ditto. 86 * simplify.c: Ditto. 87 * trans-array.c: Ditto. 88 * trans-decl.c: Ditto. 89 * trans-expr.c: Ditto. 90 * trans-intrinsic.c: Ditto. 91 * trans-stmt.c: Ditto. 92 * trans-types.c: Ditto. 93 * trans.c: Ditto. 94 952014-12-16 Tobias Burnus <burnus@net-b.de> 96 97 PR fortran/54687 98 * gfortran.h (gfc_option_t): Remove flags which now 99 have a Var(). 100 * lang.opt (flag-aggressive_function_elimination, 101 flag-align_commons, flag-all_intrinsics, 102 flag-allow_leading_underscore, flag-automatic, flag-backslash, 103 flag-backtrace, flag-blas_matmul_limit, flag-cray_pointer, 104 flag-dollar_ok, flag-dump_fortran_original, 105 flag-dump_fortran_optimized, flag-external_blas, flag-f2c, 106 flag-implicit_none, flag-max_array_constructor, 107 flag-module_private, flag-pack_derived, flag-range_check, 108 flag-recursive, flag-repack_arrays, flag-sign_zero, 109 flag-underscoring): Add Var() and, where applicable, Enum(). 110 * options.c (gfc_init_options, gfc_post_options, 111 gfc_handle_option): Update for *.opt changes. 112 * arith.c: Update for flag-variable name changes. 113 * array.c: Ditto. 114 * cpp.c: Ditto. 115 * decl.c: Ditto. 116 * expr.c: Ditto. 117 * f95-lang.c: Ditto. 118 * frontend-passes.c: Ditto. 119 * intrinsic.c: Ditto. 120 * io.c: Ditto. 121 * match.c: Ditto. 122 * module.c: Ditto. 123 * parse.c: Ditto. 124 * primary.c: Ditto. 125 * resolve.c: Ditto. 126 * scanner.c: Ditto. 127 * simplify.c: Ditto. 128 * symbol.c: Ditto. 129 * trans-array.c: Ditto. 130 * trans-common.c: Ditto. 131 * trans-decl.c: Ditto. 132 * trans-expr.c: Ditto. 133 * trans-intrinsic.c: Ditto. 134 * trans-openmp.c: Ditto. 135 * trans-types.c: Ditto. 136 1372014-12-16 Tobias Burnus <burnus@net-b.de> 138 139 PR fortran/54687 140 * lang.opt (fsecond-underscore, frecord-marker=8, frecord-marker=4, 141 frealloc-lhs, freal-8-real-16, freal-8-real-10, freal-8-real-4, 142 freal-4-real-16, freal-4-real-10, freal-4-real-8, fprotect-parens, 143 fstack-arrays, fmax-stack-var-size=, fmax-subrecord-length=, 144 ffrontend-optimize, ffree-line-length-, ffixed-line-length-, 145 finteger-4-integer-8, fdefault-real-8, fdefault-integer-8, 146 fdefault-double-8): Add Var() and Init(). 147 * gfortran.h (gfc_option_t): Remove moved flags. 148 * options.c (gfc_init_options, gfc_handle_option): Ditto. 149 (gfc_post_options): Update for name change. 150 * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Handle 151 flag-name change. 152 * frontend-passes.c (gfc_run_passes): Ditto. 153 * module.c (use_iso_fortran_env_module): Ditto. 154 * primary.c (match_integer_constant, match_real_constant): Ditto. 155 * resolve.c (resolve_ordinary_assign): Ditto. 156 * scanner.c (gfc_next_char_literal, load_line): Ditto. 157 * trans-array.c (gfc_trans_allocate_array_storage, 158 gfc_conv_resolve_dependencies, gfc_trans_auto_array_allocation, 159 gfc_conv_ss_startstride): Ditto. 160 * trans-common.c (gfc_sym_mangled_common_id): Ditto. 161 * trans-decl.c (gfc_sym_mangled_function_id, 162 create_main_function): Ditto. 163 * trans-expr.c (gfc_conv_expr_op, gfc_conv_procedure_call, 164 arrayfunc_assign_needs_temporary, gfc_trans_arrayfunc_assign, 165 gfc_trans_assignment_1): Ditto. 166 * trans-stmt.c (gfc_trans_allocate): Ditto. 167 * trans-types.c (gfc_init_kinds): Ditto. 168 1692014-12-16 Janus Weil <janus@gcc.gnu.org> 170 171 PR fortran/64244 172 * resolve.c (resolve_typebound_call): New argument to pass out the 173 non-overridable attribute of the specific procedure. 174 (resolve_typebound_subroutine): Get overridable flag from 175 resolve_typebound_call. 176 1772014-12-15 Steven Bosscher <steven@gcc.gnu.org> 178 179 PR fortran/61669 180 * gfortran.h (struct gfc_namespace): Add OLD_DATA field. 181 * decl.c (gfc_reject_data): New function. 182 * parse.c *use_modules): Record roll-back point. 183 (next_statement): Likewise. 184 (reject_statement): Roll back to last accepted DATA. 185 1862014-12-15 Janus Weil <janus@gcc.gnu.org> 187 188 PR fortran/63727 189 * resolve.c (resolve_actual_arglist): Check for elemental procedure 190 pointer components. 191 1922014-12-15 Janus Weil <janus@gcc.gnu.org> 193 194 PR fortran/63674 195 * resolve.c (check_pure_function): Rewording in error message. 196 1972014-12-14 Janus Weil <janus@gcc.gnu.org> 198 199 PR fortran/63674 200 * resolve.c (pure_function): Treat procedure-pointer components. 201 (check_pure_function): New function. 202 (resolve_function): Use it. 203 (pure_subroutine): Return a bool to indicate success and modify 204 arguments. 205 (resolve_generic_s0,resolve_specific_s0,resolve_unknown_s): Use return 206 value of 'pure_subroutine'. 207 (resolve_ppc_call): Call 'pure_subroutine'. 208 (resolve_expr_ppc): Call 'check_pure_function'. 209 2102014-12-13 Tobias Burnus <burnus@net-b.de> 211 Manuel López-Ibáñez <manu@gcc.gnu.org> 212 213 * error.c (gfc_error): Add variant which takes a va_list. 214 (gfc_notify_std): Convert to common diagnostic. 215 * array.c: Use %qs, %<...%> in more gfc_error calls and 216 for gfc_notify_std. 217 * check.c: Ditto. 218 * data.c: Ditto. 219 * decl.c: Ditto. 220 * expr.c: Ditto. 221 * interface.c: Ditto. 222 * intrinsic.c: Ditto. 223 * io.c: Ditto. 224 * match.c: Ditto. 225 * matchexp.c: Ditto. 226 * module.c: Ditto. 227 * openmp.c: Ditto. 228 * parse.c: Ditto. 229 * primary.c: Ditto. 230 * resolve.c: Ditto. 231 * simplify.c: Ditto. 232 * symbol.c: Ditto. 233 * trans-common.c: Ditto. 234 * trans-intrinsic.c: Ditto. 235 2362014-12-11 Richard Biener <rguenther@suse.de> 237 238 PR tree-optimization/42108 239 * trans-stmt.c (gfc_trans_do): Execute the division computing 240 countm1 before the loop entry check. 241 2422014-12-11 Manuel López-Ibáñez <manu@gcc.gnu.org> 243 244 PR fortran/44054 245 * error.c (pp_error_buffer): New static variable. 246 (pp_warning_buffer): Make it a pointer. 247 (gfc_output_buffer_empty_p): New. 248 (gfc_error_init_1): Call gfc_buffer_error. 249 (gfc_buffer_error): Do not use pp_warning_buffer.flush_p as the 250 buffered_p flag. 251 (gfc_clear_warning): Likewise. 252 (gfc_warning_check): Call gfc_clear_warning. Only check the new 253 pp_warning_buffer if the old warning_buffer was empty. Call 254 diagnostic_action_after_output. 255 (gfc_error_1): Renamed from gfc_error. 256 (gfc_error): New. 257 (gfc_clear_error): Clear also pp_error_buffer. 258 (gfc_error_flag_test): Check also pp_error_buffer. 259 (gfc_error_check): Likewise. Only check the new pp_error_buffer 260 if the old error_buffer was empty. 261 (gfc_move_output_buffer_from_to): New. 262 (gfc_push_error): Use it here. Take also an output_buffer as argument. 263 (gfc_pop_error): Likewise. 264 (gfc_free_error): Likewise. 265 (gfc_diagnostics_init): Use XNEW and placement-new to init 266 pp_error_buffer and pp_warning_buffer. Set flush_p to false for 267 both pp_warning_buffer and pp_error_buffer. 268 269 * Update gfc_push_error, gfc_pop_error and gfc_free_error calls 270 according to the above changes. 271 * Use gfc_error_1 for all gfc_error calls that use multiple 272 locations. 273 * Use %qs instead of '%s' for many gfc_error calls. 274 2752014-12-11 Tobias Burnus <burnus@net-b.de> 276 Manuel López-Ibáñez <manu@gcc.gnu.org> 277 278 * diagnostic.c (get_terminal_width): Renamed from getenv_columns, 279 removed static, and additionally use ioctl to get width. 280 (diagnostic_set_caret_max_width): Update call. 281 * diagnostic.h (get_terminal_width): Add prototype. 282 * opts.c (print_specific_help): Use it for x_help_columns. 283 * doc/invoke.texi (fdiagnostics-show-caret): Document how the 284 width is set. 285 2862014-12-10 Bernd Edlinger <bernd.edlinger@hotmail.de> 287 288 PR fortran/60718 289 * trans-expr.c (gfc_conv_procedure_call): Fix a strict aliasing 290 violation when passing a class object to a formal parameter which has 291 different pointer or allocatable attributes. 292 2932014-12-06 Tobias Burnus <burnus@net-b.de> 294 295 * error.c (gfc_error_check): Use bool not int. 296 * gfortran.h (gfc_error_check): Update prototype. 297 * match.c (gfc_match_if): Update call. 298 * parse.c (decode_statement, decode_omp_directive, 299 decode_gcc_attribute): Ditto. 300 3012014-12-06 Tobias Burnus <burnus@net-b.de> 302 Manuel López-Ibáñez <manu@gcc.gnu.org> 303 304 * error.c (gfc_buffer_error, gfc_error_flag_test): Use bool not int. 305 (buffer_flag): Remove static variable. 306 (buffered_p): Add static variable. 307 (gfc_error_init_1): Call gfc_buffer_error. 308 (gfc_warning_1, gfc_warning, gfc_warning_now_1, gfc_error, 309 gfc_error_now_1): Update for static variable change. 310 * gfortran.h (gfc_buffer_error, gfc_error_flag_test): Update 311 prototype. 312 * parse.c (use_modules, decode_specification_statement, 313 next_fixed, next_statement, match_deferred_characteristics): 314 Update calls. 315 * decl.c (gfc_match_data_decl): Ditto. 316 * match.c (gfc_match_name): Ditto. 317 3182014-12-05 Andre Vehreschild <vehre@gmx.de> 319 320 PR fortran/60414 321 * interface.c (compare_parameter): Remove class argument rank 322 check short circuit. 323 3242014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org> 325 326 * error.c (gfc_diagnostic_build_locus_prefix): Use 327 diagnostic_expand_location. 328 3292014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org> 330 331 * scanner.c (gfc_next_char_literal): Use gfc_warning_now. 332 (load_file): Use the line length as the column hint for 333 linemap_line_start. Reserve a location for the highest column of 334 the line. 335 3362014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org> 337 338 PR fortran/44054 339 * gfortran.h (gfc_warning): Now returns bool. Add overload that 340 accepts opt. 341 (gfc_warning_1): Declare. 342 * error.c 343 (pp_warning_buffer,warningcount_buffered,werrorcount_buffered): New. 344 (gfc_buffer_error): Set pp_warning_buffer.flush_p. 345 (gfc_clear_pp_buffer): New. 346 (gfc_warning_1): Renamed from gfc_warning. 347 (gfc_warning): Add three new overloads. One that takes just a 348 format string and ellipsis, another that takes also a warning 349 option, and another that takes also va_list instead of ellipsis. 350 (gfc_clear_warning): Clear pp_warning_buffer. 351 (gfc_warning_check): Flush pp_warning_buffer and update warning 352 and werror counters. 353 (gfc_diagnostics_init): Init pp_warning_buffer. 354 355 * Update all gfc_warning calls that do not use multiple 356 locations to use %qs and OPT_W*, otherwise use gfc_warning_1. 357 3582014-12-02 Tobias Burnus <burnus@net-b.de> 359 Manuel López-Ibáñez <manu@gcc.gnu.org> 360 361 * error.c (warnings_not_errors): Use bool. 362 (gfc_clear_error): Update. 363 (gfc_get_errors): Ditto. Use bool argument. 364 * gfortran.h (gfc_get_errors): Update prototype. 365 * resolve.c (resolve_global_procedure): Update call. 366 3672014-12-02 Richard Biener <rguenther@suse.de> 368 369 PR fortran/64137 370 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Check 371 proper expressions type, use proper type for computing 372 -Huge - 1. 373 3742014-11-29 Jakub Jelinek <jakub@redhat.com> 375 376 * trans-openmp.c (gfc_omp_finish_clause, 377 gfc_trans_omp_array_reduction_or_udr, gfc_trans_omp_atomic): Remove 378 NULL last argument from create_tmp_var_raw and create_tmp_var calls. 379 3802014-11-29 Tobias Burnus <burnus@net-b.de> 381 382 * scanner.c (skip_free_comments, gfc_gobble_whitespace): Use 383 gfc_warning_now instead of ..._now_1. 384 3852014-11-29 Tobias Burnus <burnus@net-b.de> 386 Manuel López-Ibáñez <manu@gcc.gnu.org> 387 388 * lang.opt (Wtabs): Combine duplicated item into a single 389 one using || for LangEnabledBy. 390 3912014-11-25 Tobias Burnus <burnus@net-b.de> 392 393 * error.c (gfc_internal_error): Convert to common diagnostics. 394 * interface.c (gfc_find_sym_in_symtree): Use %qs. 395 * intrinsic.c (make_generic, gfc_check_intrinsic_standard, 396 gfc_convert_type_warn): Ditto. 397 * module.c (write_symbol): Ditto. 398 * symbol.c (gfc_get_default_type): Ditto; use fatal instead 399 of internal error. 400 * trans-array.c (gfc_walk_subexpr): Replace internal_error by 401 gfc_internal_error. 402 * trans-decl.c (gfc_get_symbol_decl, 403 (gfc_create_module_variable): Ditto. Use %qs. 404 * trans-intrinsic.c (gfc_conv_intrinsic_lib_function): Ditto. 405 * trans-io.c (transfer_expr): Ditto. 406 * trans-openmp.c (gfc_trans_omp_workshare): Ditto. 407 * trans.c (trans_code): Ditto. 408 4092014-11-25 Tobias Burnus <burnus@net-b.de> 410 411 * gfortran.h (gfc_option_t): Remove flags moved as Var to .opt. 412 (gfc_error_now_1): Renamed from gfc_error_now. 413 (gfc_error_now): Renamed from gfc_error_now_2. 414 (gfc_warning_now_1): Renamed from gfc_warning_now. 415 (gfc_warning_now): Renamed from gfc_warning_now_2. 416 * error.c (gfc_error_now_1): Renamed from gfc_error_now. 417 (gfc_error_now): Renamed from gfc_error_now_2. 418 (gfc_warning_now_1): Renamed from gfc_warning_now. 419 (gfc_warning_now): Renamed from gfc_warning_now_2. 420 (gfc_get_errors): Include common diagnostic in count. 421 * lang.opt (Wc-binding-type, Wconversion, Wconversion-extra, 422 Wintrinsics-std): Create a Var for those warnings. 423 * check.c (gfc_check_cmplx): Pass warning flag to 424 diagnostic function. 425 * decl.c (get_proc_name, gfc_verify_c_interop_param, build_sym 426 gfc_set_constant_character_len, verify_bind_c_sym): Ditto; use 427 _1 for old diagnostic, remove _2 for new diagnostic. 428 * expr.c (gfc_check_assign, gfc_check_vardef_context): Ditto. 429 * frontend-passes.c (doloop_code, do_function): Ditto. 430 * intrinsic.c (gfc_is_intrinsic, gfc_convert_type_warn): Ditto. 431 * match.c (gfc_match_common): Ditto. 432 * module.c (use_iso_fortran_env_module, gfc_use_module): Ditto. 433 * parse.c (decode_statement, decode_gcc_attribute, next_free, 434 next_fixed, gfc_check_do_variable): Ditto. 435 * resolve.c (resolve_common_vars, resolve_ordinary_assign): 436 Ditto. 437 * scanner.c (add_path_to_list, skip_free_comments, 438 gfc_next_char_literal, gfc_gobble_whitespace, load_line, 439 preprocessor_line, load_file): Ditto. 440 * symbol.c (gfc_set_default_type, verify_bind_c_derived_type): 441 Ditto. 442 * options.c (gfc_post_options): Ditto. 443 (gfc_init_options, set_Wall, gfc_handle_option): Ditto; remove 444 flags which now have a Var. 445 * invoke.texi (Wconversion-extra): Make clear that the flag 446 does not imply -Wconversion. 447 4482014-11-24 Jakub Jelinek <jakub@redhat.com> 449 450 PR fortran/63938 451 * trans-openmp.c (gfc_trans_omp_atomic): Make sure lhsaddr is 452 simple enough for goa_lhs_expr_p. 453 4542014-11-24 Tobias Burnus <burnus@net-b.de> 455 456 * error.c (gfc_fatal_error_1): Remove. 457 * gfortran.h (gfc_fatal_error_1): Remove. 458 * check.c (check_co_collective): Change gfc_fatal_error_1 to 459 gfc_fatal_error. 460 * match.c (gfc_match_name): Ditto. 461 * trans-array.c (gfc_conv_array_initializer): Ditto. 462 * trans-stmt.c (gfc_trans_sync): Ditto. 463 4642014-11-23 Manuel López-Ibáñez <manu@gcc.gnu.org> 465 466 PR fortran/44054 467 * decl.c (gfc_verify_c_interop_param): Use gfc_error_now_2. 468 (gfc_set_constant_character_len): Use gfc_warning_now_2. 469 * resolve.c (resolve_ordinary_assign): Likewise. 470 * gfortran.h (warn_character_truncation): Do not declare here. 471 * error.c (gfc_format_decoder): Handle %L. 472 * lang.opt (Wcharacter-truncation): Add Var and LangEnabledBy. 473 * options.c (gfc_init_options): Do not handle 474 warn_character_truncation explicitly. 475 (set_Wall): Likewise. 476 (gfc_handle_option): Likewise. 477 4782014-11-23 Tobias Burnus <burnus@net-b.de> 479 480 * invoke.texi (-Wtabs): Swap -Wtabs/-Wno-tabs now that 481 -Wtabs enables the warning. 482 4832014-11-23 Tobias Burnus <burnus@net-b.de> 484 485 * error.c (gfc_diagnostic_build_prefix): Correct coloring 486 of the colon of the prefix. 487 4882014-11-23 Tobias Burnus <burnus@net-b.de> 489 Manuel López-Ibáñez <manu@gcc.gnu.org> 490 491 * gfortran.h (gfc_option_t): Remove warn_tabs. 492 * lang.opt (Wpedantic): Add. 493 (Wtabs): Use Var and LangEnabledBy. 494 * options.c (gfc_init_options, gfc_post_options, 495 set_Wall): Remove -Wtabs handling. 496 (gfc_handle_option): Update -std=, remove OPT_Wtabs. 497 * scanner.c (gfc_gobble_whitespace): Update for 498 flag-variable renaming. 499 (load_line): Ditto. Pass warn flag to diagnostic. 500 5012014-11-22 Tobias Burnus <burnus@net-b.de> 502 503 * trans-expr.c (gfc_caf_get_image_index): Fix image calculation. 504 5052014-11-15 Tobias Burnus <burnus@net-b.de> 506 507 * error.c (gfc_fatal_error_1): Renamed from gfc_fatal_error. 508 (gfc_fatal_error): Add; uses common diagnostics. 509 * array.c (gfc_match_array_ref, gfc_match_array_spec): Use 510 %< %>. 511 * check.c (check_co_collective, gfc_check_lcobound, 512 gfc_check_image_index, gfc_check_num_images, 513 gfc_check_this_image, gfc_check_ucobound): Ditto. 514 * cpp.c (gfc_cpp_post_options): Ditto. 515 (gfc_cpp_init_0, gfc_cpp_done): Change %s to %qs. 516 * gfc-diagnostic.def (DK_FATAL): Capitalize first letter. 517 * gfortran.h (gfc_fatal_error_1): Add. 518 * match.c (gfc_match_name, gfc_match_critical, 519 lock_unlock_statement, sync_statement): Add %< %>. 520 * module.c (bad_module, gfc_dump_module, gfc_use_module): Change 521 %s to %qs. 522 * options.c (gfc_handle_module_path_options, gfc_handle_fpe_option, 523 gfc_handle_coarray_option, gfc_handle_runtime_check_option, 524 gfc_handle_option): Add %< %>. 525 * simplify.c (gfc_simplify_num_images): Ditto. 526 * trans-stmt.c (gfc_trans_sync): Use gfc_fatal_error_1. 527 * trans-array.c (gfc_conv_array_initializer): Ditto. 528 * trans-types.c (gfc_init_kinds): Use gfc_fatal_error instead 529 of fatal_error; add %< %> quotations. 530 5312014-11-13 Bernd Schmidt <bernds@codesourcery.com> 532 Thomas Schwinge <thomas@codesourcery.com> 533 Ilya Verbin <ilya.verbin@intel.com> 534 Andrey Turetskiy <andrey.turetskiy@intel.com> 535 536 * Make-lang.in (fortran.install-common): Do not install for the offload 537 compiler. 538 5392014-11-11 Manuel López-Ibáñez <manu@gcc.gnu.org> 540 541 PR fortran/44054 542 * gfortran.h (warn_use_without_only): Remove. 543 (gfc_diagnostics_finish): Declare. 544 * error.c: Include tree-diagnostics.h 545 (gfc_format_decoder): New. 546 (gfc_diagnostics_init): Use gfc_format_decoder. Set default caret 547 char. 548 (gfc_diagnostics_finish): Restore tree diagnostics defaults, but 549 keep gfc_diagnostics_starter and finalizer. Restore default caret. 550 * options.c: Remove all uses of warn_use_without_only. 551 * lang.opt (Wuse-without-only): Add Var. 552 * f95-lang.c (gfc_be_parse_file): Call gfc_diagnostics_finish. 553 * module.c (gfc_use_module): Use gfc_warning_now_2. 554 * parse.c (decode_statement): Likewise. 555 (decode_gcc_attribute): Likewise. 556 (next_free): Likewise. 557 (next_fixed): Likewise. 558 5592014-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 560 561 PR fortran/63701 562 * trans-expr.c (gfc_get_tree_for_caf_expr): Initialise found to false. 563 5642014-11-10 Janne Blomqvist <jb@gcc.gnu.org> 565 566 PR libfortran/47007 567 PR libfortran/61847 568 * gfortran.texi: Add note about locale issues to thread-safety 569 section. 570 5712014-11-04 Bernd Schmidt <bernds@codesourcery.com> 572 573 * f95-lang.c (gfc_init_builtin_functions): Use type index 2 for 574 scalbn, scalbnl and scalbnf. 575 * mathbuiltins.def (JN, YN): Use type index 5. 576 5772014-10-29 Richard Sandiford <richard.sandiford@arm.com> 578 579 * trans-types.c, trans-types.h: Remove redundant enum from 580 machine_mode. 581 5822014-10-28 Manuel López-Ibáñez <manu@gcc.gnu.org> 583 584 PR fortran/44054 585 * gfortran.h (gfc_warning_cmdline): Rename as gfc_warning_now_2. 586 (gfc_error_cmdline): Rename as gfc_error_now_2. 587 * error.c (gfc_diagnostic_build_locus_prefix): Remove trailing space. 588 (gfc_diagnostic_starter): Add space between locus and prefix. 589 (gfc_warning_now_2): Renamed from gfc_warning_cmdline. 590 (gfc_error_now_2): Renamed from gfc_error_cmdline. 591 * scanner.c (add_path_to_list): Use gfc_warning_now_2. 592 (load_line): Likewise. 593 (load_file): Likewise. 594 * options.c (gfc_post_options): Update all renamed functions. 595 5962014-10-28 Andrew MacLeod <amacleod@redhat.com> 597 598 * f95-lang.c: Adjust include files. 599 * trans-decl.c: Ditto. 600 6012014-10-24 Tobias Burnus <burnus@net-b.de> 602 603 * check.c (check_co_collective): Reject coindexed A args. 604 (gfc_check_co_reduce): Add OPERATOR checks. 605 * gfortran.texi (_gfortran_caf_co_broadcast, _gfortran_caf_co_max, 606 _gfortran_caf_co_min, _gfortran_caf_co_sum, 607 _gfortran_caf_co_reduce): Add ABI documentation. 608 * intrinsic.texi (CO_REDUCE): Document intrinsic. 609 (DPROD): Returns double not single precision. 610 * trans-decl.c (gfor_fndecl_co_reduce): New global var. 611 (gfc_build_builtin_function_decls): Init it. 612 * trans.h (gfor_fndecl_co_reduce): Declare it. 613 * trans-intrinsic.c (conv_co_collective, 614 gfc_conv_intrinsic_subroutine): Handle CO_REDUCE. 615 6162014-10-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 617 618 PR fortran/48979 619 * trans-const.c (gfc_build_nan): New function. 620 * trans-const.h (gfc_build_nan): New prototype. 621 * trans-intrinsic.c (gfc_conv_intrinsic_exponent): Handle special 622 values. 623 (gfc_conv_intrinsic_minmaxval): Use gfc_build_nan. 624 (gfc_conv_intrinsic_fraction): Handle special values. 625 (gfc_conv_intrinsic_spacing): Likewise. 626 (gfc_conv_intrinsic_rrspacing): Likewise. 627 (gfc_conv_intrinsic_set_exponent): Likewise. 628 6292014-10-18 Paul Thomas <pault@gcc.gnu.org> 630 631 PR fortran/63553 632 * resolve.c (resolve_ordinary_assign): Add data component to 633 rvalue expression for class to type assignment. 634 6352014-10-16 Andrew MacLeod <amacleod@redhat.com> 636 637 * f95-lang.c: Adjust include files. 638 * trans-decl.c: Likewise. 639 6402014-10-12 Trevor Saunders <tsaunders@mozilla.com> 641 642 * trans-decl.c, trans.c, trans.h: Use hash_table instead of hashtab. 643 6442014-10-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 645 646 PR fortran/48979 647 * simplify.c (gfc_simplify_atan): Use mpfr_zero_p to check for zeros. 648 (gfc_simplify_log): Likewise. 649 (gfc_simplify_scale): Likewise. 650 (gfc_simplify_exponent): Handle infinities and NaNs. 651 (gfc_simplify_fraction): Handle infinities. 652 (gfc_simplify_rrspacing): Handle signed zeros and NaNs. 653 (gfc_simplify_set_exponent): Handle infinities and NaNs. 654 (gfc_simplify_spacing): Handle zeros, infinities and NaNs. 655 6562014-10-10 Jakub Jelinek <jakub@redhat.com> 657 658 PR fortran/59488 659 * trans-openmp.c (gfc_omp_predetermined_sharing): Return 660 OMP_CLAUSE_DEFAULT_SHARED for parameters or vtables. 661 6622014-10-10 Tobias Burnus <burnus@net-b.de> 663 664 * gfortran.h (gfc_set_implicit_none): Update prototype. 665 * symbol.c (gfc_set_implicit_none): Take and 666 use error location. Move diagnostic from here to ... 667 * decl.c (gfc_match_implicit_none): ... here. And 668 update call. Handle empty implicit-none-spec. 669 (gfc_match_implicit): Handle statement-separator ";". 670 6712014-10-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 672 673 * f95-lang.c (gfc_init_builtin_functions): Add more floating-point 674 built-ins. 675 * mathbuiltins.def (OTHER_BUILTIN): Define built-ins for logb, 676 remainder, rint and signbit. 677 * trans-decl.c (save_fp_state, restore_fp_state): Move to 678 trans-intrinsic.c 679 (gfc_generate_function_code): Use new names for these two functions. 680 * trans-expr.c (gfc_conv_function_expr): Catch IEEE functions to 681 emit code from the front-end. 682 * trans-intrinsic.c (gfc_save_fp_state, gfc_restore_fp_state, 683 conv_ieee_function_args, conv_intrinsic_ieee_builtin, 684 conv_intrinsic_ieee_is_normal, conv_intrinsic_ieee_is_negative, 685 conv_intrinsic_ieee_logb_rint, conv_intrinsic_ieee_rem, 686 conv_intrinsic_ieee_next_after, conv_intrinsic_ieee_scalb, 687 conv_intrinsic_ieee_copy_sign, gfc_conv_ieee_arithmetic_function): 688 New functions. 689 * trans.h (gfc_conv_ieee_arithmetic_function, 690 gfc_save_fp_state, gfc_restore_fp_state): New prototypes. 691 6922014-10-06 Manuel López-Ibáñez <manu@gcc.gnu.org> 693 694 PR fortran/44054 695 PR fortran/54687 696 * gfortran.h (gfc_warning_cmdline): Add overload that takes an 697 option. 698 (gfc_error_cmdline): Declare. 699 * error.c (gfc_warning_cmdline): New overload that takes an option. 700 (gfc_error_cmdline): New. 701 * lang.opt (Wmissing-include-dirs): New. 702 * scanner.c (add_path_to_list): Use the new functions. 703 (load_file): Likewise. 704 * options.c (gfc_init_options): Wmissing-include-dirs is enabled 705 by default in Fortran. 706 (gfc_handle_option): Accept automatically handled options. 707 7082014-10-06 Tobias Burnus <burnus@net-b.de> 709 710 * libgfortran.h (GFC_STD_F2015): Add. 711 * decl.c (gfc_match_implicit_none): Handle spec list. 712 (gfc_match_implicit): Move double intrinsic warning here. 713 * gfortran.h (gfc_namespace): Add has_implicit_none_export:1. 714 (gfc_set_implicit_none): Update interface. 715 * interface.c (gfc_procedure_use): Add implicit-none external 716 error check. 717 * parse.c (accept_statement): Remove call. 718 (verify_st_order): Permit that external-implict-none follows 719 implicit statement. 720 * symbol.c (gfc_set_implicit_none): Handle external/type 721 implicit none. 722 7232014-10-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 724 725 PR fortran/36534 726 * resolve.c (resolve_fl_procedure): Clean up obsolescence warning. 727 7282014-09-25 Tobias Burnus <burnus@net-b.de> 729 730 * check.c (check_co_collective): Renamed from check_co_minmaxsum, 731 handle co_reduce. 732 (gfc_check_co_minmax, gfc_check_co_sum): Update call. 733 (gfc_check_co_broadcast, gfc_check_co_reduce): New. 734 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_BROADCAST and 735 GFC_ISYM_CO_REDUCE. 736 * intrinsic.c (add_subroutines): Add co_reduce and co_broadcast. 737 * intrinsic.h (gfc_check_co_broadcast, gfc_check_co_reduce): Add 738 proto types. 739 * intrinsic.texi (CO_BROADCAST): Add. 740 * trans.h (gfor_fndecl_co_broadcast): New. 741 * trans-decl.c (gfor_fndecl_co_broadcast): Ditto. 742 (gfc_build_builtin_function_decls): Add decl for it, 743 * trans-intrinsic.c (conv_co_collective): Renamed from 744 conv_co_minmaxsum. Handle co_reduce. 745 (gfc_conv_intrinsic_subroutine): Handle co_reduce. 746 7472014-09-23 Jakub Jelinek <jakub@redhat.com> 748 749 PR fortran/63331 750 * trans-types.c (gfc_get_array_descr_info): Build DEBUG_EXPR_DECL 751 instead of VAR_DECL for base_decl. 752 7532014-09-21 Jan Hubicka <hubicka@ucw.cz> 754 755 * openmp.c (omp_context): Rename to ... 756 (fortran_omp_context): ... this one. 757 7582014-09-21 Dominique d'Humieres <dominiq@lps.ens.fr> 759 760 * resolve.c (resolve_fl_procedure): Remove duplicated lines. 761 7622014-09-20 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> 763 Tobias Burnus <burnus@net-b.de> 764 765 * trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with 766 generating temporary for value argument. 767 7682014-09-20 Joost VandeVondele <vondele@gcc.gnu.org> 769 770 * trans-expr.c (gfc_reset_vptr): Fix comment whitespace. 771 (gfc_conv_class_to_class): Likewise. 772 (gfc_conv_procedure_call): Likewise. 773 (arrayfunc_assign_needs_temporary): Likewise. 774 (realloc_lhs_loop_for_fcn_call): Likewise. 775 (gfc_trans_assignment_1): Likewise. 776 * trans-array.c (gfc_conv_array_ref): Likewise. 777 (gfc_array_allocate): Likewise. 778 (gfc_alloc_allocatable_for_assignment): Likewise. 779 * symbol.c (generate_isocbinding_symbol): Likewise. 780 * class.c (finalization_scalarizer): Likewise. 781 (finalizer_insert_packed_call): Likewise. 782 (generate_finalization_wrapper): Likewise. 783 (find_intrinsic_vtab): Likewise. 784 * decl.c (gfc_match_import): Likewise. 785 (match_procedure_decl): Likewise. 786 (gfc_match_subroutine): Likewise. 787 (gfc_match_bind_c): Likewise. 788 (gfc_match_volatile): Likewise. 789 * trans-common.c (create_common): Likewise. 790 * error.c (gfc_diagnostic_starter): Likewise. 791 * trans-stmt.c (gfc_trans_sync): Likewise. 792 (gfc_trans_critical): Likewise. 793 (gfc_trans_simple_do): Likewise. 794 (gfc_trans_do): Likewise. 795 (gfc_trans_where_assign): Likewise. 796 * expr.c (gfc_is_simply_contiguous): Likewise. 797 * module.c (unquote_string): Likewise. 798 * trans.c (gfc_add_finalizer_call): Likewise. 799 * trans-types.c (gfc_init_kinds): Likewise. 800 * scanner.c (preprocessor_line): Likewise. 801 * gfortranspec.c (lang_specific_driver): Likewise. 802 * frontend-passes.c (create_var): Likewise. 803 (cfe_expr_0): Likewise. 804 * resolve.c (check_host_association): Likewise. 805 (gfc_resolve_code): Likewise. 806 (resolve_fl_derived0): Likewise. 807 (resolve_symbol): Likewise. 808 * f95-lang.c (poplevel): Likewise. 809 * trans-decl.c (create_main_function): Likewise. 810 * trans-io.c (transfer_expr): Likewise. 811 * arith.c (gfc_arith_divide): Likewise. 812 * parse.c (resolve_all_program_units): Likewise. 813 * check.c (gfc_check_rank): Likewise. 814 (gfc_check_sizeof): Likewise. 815 (is_c_interoperable): Likewise. 816 * dependency.c (gfc_dep_difference): Likewise. 817 * primary.c (gfc_match_rvalue): Likewise. 818 * trans-intrinsic.c (conv_intrinsic_system_clock): Likewise. 819 (conv_isocbinding_subroutine): Likewise. 820 * options.c (gfc_post_options): Likewise. 821 (gfc_handle_fpe_option): Likewise. 822 (gfc_get_option_string): Likewise. 823 * simplify.c (simplify_transformation_to_scalar): Likewise. 824 (gfc_simplify_spread): Likewise. 825 8262014-09-19 Joost VandeVondele <vondele@gcc.gnu.org> 827 828 PR fortran/63152 829 * trans-array.c (gfc_trans_deferred_array): Only nullify allocatables. 830 8312014-09-15 Jakub Jelinek <jakub@redhat.com> 832 833 * Make-lang.in (check_gfortran_parallelize): Change to just an upper 834 bound number. 835 8362014-09-13 Tobias Burnus <burnus@net-b.de> 837 838 PR fortran/63252 839 * trans-decl.c (gfc_build_builtin_function_decls): Fix 840 caf_unlock declaration. 841 8422014-09-12 Joseph Myers <joseph@codesourcery.com> 843 844 * trans-types.c (gfc_init_kinds): Check 845 targetm.libgcc_floating_mode_supported_p for floating-point 846 modes. Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE. 847 8482014-09-05 Joost VandeVondele <vondele@gcc.gnu.org> 849 850 PR fortran/62245 851 * intrinsic.texi (INT): clarify result. 852 8532014-09-03 Fritz Reese <Reese-Fritz@zai.com> 854 855 PR fortran/62174 856 * decl.c (variable_decl): Don't overwrite typespecs of Cray pointees 857 when matching a component declaration. 858 8592014-09-02 Marek Polacek <polacek@redhat.com> 860 861 PR fortran/62270 862 * interface.c (compare_parameter): Fix condition. 863 * trans-expr.c (gfc_conv_procedure_call): Likewise. 864 8652014-08-31 Fritz Reese <Reese-Fritz@zai.com> 866 867 PR fortran/62309 868 * resolve.c (apply_default_init_local): Don't treat variables 869 in RECURSIVE procedures as saved. 870 8712014-08-31 Tobias Burnus <burnus@net-b.de> 872 873 * trans-decl.c (gfc_build_builtin_function_decls): Add 874 may_require_tmp dummy argument. 875 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get, 876 conv_caf_send): Handle may_require_tmp argument. 877 (gfc_conv_intrinsic_function): Update call. 878 * gfortran.texi (_gfortran_caf_send, _gfortran_caf_get, 879 _gfortran_caf_sendget): Update interface description. 880 8812014-08-30 Tobias Burnus <burnus@net-b.de> 882 883 * trans.h (gfc_caf_get_image_index, 884 gfc_get_caf_token_offset): New prototypes. 885 * trans-expr.c (gfc_caf_get_image_index): Moved from 886 trans-intrinsic.c and renamed. 887 (gfc_get_caf_token_offset) Ditto; support offset = NULL 888 with early return. 889 * trans-intrinsic.c (get_caf_token_offset, caf_get_image_index): 890 Moved to trans-expr. 891 (gfc_conv_intrinsic_caf_get, conv_caf_send, 892 conv_intrinsic_atomic_op, conv_intrinsic_atomic_ref, 893 conv_intrinsic_atomic_cas): Update callers. 894 8952014-08-30 Tobias Burnus <burnus@net-b.de> 896 897 PR fortran/62278 898 PR fortran/44735 899 PR fortran/60593 900 * dependency.c (gfc_check_dependency): Allow for optimizations 901 in the pointer-alias check. 902 9032014-08-30 Janne Blomqvist <jb@gcc.gnu.org> 904 905 * module.c (gfc_dump_module): Use ISO C remove() instead of POSIX 906 unlink(). 907 9082014-08-29 Jeffrey Armstrong <jeffrey.armstrong@approximatrix.com> 909 910 PR fortran/62215 911 * module.c (gfc_dump_module): Unlink old module file before 912 renaming new one. 913 9142014-08-26 Thomas Koenig <tkoenig@gcc.gnu.org> 915 916 * frontend_passes (expr_array): Replace by vec template. 917 (expr_size): Remove. 918 (expr_count): Remove. 919 (doloop_list): Replace by vec template. 920 (doloop_size): Remove. 921 (gfc_run_passes): Adjust to use of vec template. 922 (cfe_register_funcs): Likewise. 923 (cfe_expr_0): Likewise. 924 (doloop_code): Likewise. 925 9262014-08-22 Steven Bosscher <steven@gcc.gnu.org> 927 928 PR fortran/62135 929 * resolve.c (resolve_select): Fix list traversal in case the 930 last element of the CASE list was dropped as unreachable code. 931 9322014-08-22 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch> 933 934 PR fortran/61234 935 * lang.opt (Wuse-without-only): New flag. 936 * gfortran.h (gfc_option_t): Add it. 937 * invoke.texi: Document it. 938 * module.c (gfc_use_module): Warn if needed. 939 * options.c (gfc_init_options,gfc_handle_option): Init accordingly. 940 9412014-08-21 Thomas Koenig <tkoenig@gcc.gnu.org> 942 943 PR fortran/62214 944 * frontend-passes.c (optimize_binop_array_assignment): 945 Do not try to optimize the array assignment for string 946 concatenation. 947 9482014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org> 949 950 PR fortran/44054 951 * error.c (gfc_diagnostic_build_locus_prefix): New function. 952 (gfc_diagnostic_starter): Follow Fortran FE diagnostics. 953 (gfc_diagnostic_finalizer): Do not call default finalizer. 954 9552014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org> 956 957 PR fortran/44054 958 * error.c (gfc_diagnostic_finalizer): Call default finalizer. 959 9602014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch> 961 962 * options.c (gfc_init_options_struct): assert that the frontend sets 963 flag_errno_math and flag_associative_math. 964 9652014-08-17 Tobias Burnus <burnus@net-b.de> 966 967 * resolve.c (gfc_resolve_finalizers): Ensure that parents are 968 resolved first. 969 9702014-08-17 Tobias Burnus <burnus@net-b.de> 971 972 * trans-io.c (gfc_build_io_library_fndecls): Fix decl of 973 IOCALL_SET_NML_VAL. 974 (transfer_namelist_element): Use proper int type as argument. 975 9762014-08-15 Thomas Koenig <tkoenig@gcc.gnu.org> 977 978 PR fortran/62142 979 * trans-expr.c (is_runtime_conformable): Add NULL pointer checks. 980 9812014-08-15 Tobias Burnus <burnus@net-b.de> 982 983 * resolve.c (resolve_critical): Fix name mangling. 984 * trans-stmt.c (gfc_trans_critical): Fix lock call. 985 9862014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org> 987 988 PR fortran/44054 989 * gfortran.h: Define GCC_DIAG_STYLE. 990 (gfc_diagnostics_init,gfc_warning_cmdline): Declare. 991 * trans-array.c: Include gfortran.h before diagnostic-core.h. 992 * trans-expr.c: Likewise. 993 * trans-openmp.c: Likewise. 994 * trans-const.c: Likewise. 995 * trans.c: Likewise. 996 * trans-types.c: Likewise. 997 * f95-lang.c: Likewise. 998 * trans-decl.c: Likewise. 999 * trans-io.c: Likewise. 1000 * trans-intrinsic.c: Likewise. 1001 * error.c: Include diagnostic.h and diagnostic-color.h. 1002 (gfc_diagnostic_build_prefix): New. 1003 (gfc_diagnostic_starter): New. 1004 (gfc_diagnostic_finalizer): New. 1005 (gfc_warning_cmdline): New. 1006 (gfc_diagnostics_init): New. 1007 * gfc-diagnostic.def: New. 1008 * options.c (gfc_init_options): Call gfc_diagnostics_init. 1009 (gfc_post_options): Use gfc_warning_cmdline. 1010 10112014-08-15 Jakub Jelinek <jakub@redhat.com> 1012 Tobias Burnus <burnus@net-b.de> 1013 1014 PR fortran/62131 1015 * openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr 1016 is allocatable, rather than whenever var->attr.allocatable. 1017 10182014-08-15 Jakub Jelinek <jakub@redhat.com> 1019 1020 PR fortran/62107 1021 * trans-openmp.c (gfc_omp_finish_clause): Handle scalar pointer 1022 or allocatable passed by reference. 1023 (gfc_trans_omp_clauses) <case OMP_LIST_MAP>: Likewise. 1024 10252014-08-14 Thomas Koenig <tkoenig@gcc.gnu.org> 1026 1027 PR fortran/62106 1028 * gfortran.h (symbol_attribute): Add fe_temp flag. 1029 * frontend-passes.c (is_fe_temp): New function. 1030 (create_var): Don't add a temporary for an already 1031 created variable or for a constant. 1032 (combine_ARRAY_constructor): Remove special handling 1033 for constants. 1034 10352014-08-14 Tobias Burnus <burnus@net-b.de> 1036 1037 * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL. 1038 (_gfortran_caf_register): Update for locking/critical. 1039 (_gfortran_caf_lock, _gfortran_caf_unlock): Add. 1040 * resolve.c (resolve_critical): New. 1041 (gfc_resolve_code): Call it. 1042 * trans-decl.c (gfor_fndecl_caf_critical, 1043 gfor_fndecl_caf_end_critical): Remove. 1044 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add. 1045 (gfc_build_builtin_function_decls): Remove critical, 1046 assign locking declarations. 1047 (generate_coarray_sym_init): Handle locking and 1048 critical variables. 1049 * trans-stmt.c (gfc_trans_critical): Add calls to 1050 lock/unlock libcaf functions. 1051 * trans.h (gfc_coarray_type): Update locking, add 1052 critical enum values. 1053 (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove. 1054 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add. 1055 10562014-08-14 Tobias Burnus <burnus@net-b.de> 1057 1058 * gfortran.texi (Coarray Programming): Add first ABI 1059 documentation. 1060 10612014-08-14 Jakub Jelinek <jakub@redhat.com> 1062 1063 PR fortran/62076 1064 * openmp.c (gfc_match_omp_clauses): When failed to match 1065 operator name, defined op name or name, set buffer to 1066 empty string. Don't call gfc_find_omp_udr if buffer is empty 1067 string. 1068 (gfc_match_omp_declare_reduction): Call gfc_undo_symbols () 1069 before calling gfc_free_omp_udr. 1070 10712014-08-11 Richard Biener <rguenther@suse.de> 1072 1073 PR fortran/61950 1074 * trans-expr.c (gfc_conv_structure): Initialize _size with 1075 a value of proper type. 1076 10772014-08-10 Thomas Koenig <tkoenig@gcc.gnu.org> 1078 1079 PR fortran/61999 1080 * simplify.c (gfc_simplify_dot_product): Convert types of 1081 vectors before calculating the result. 1082 10832014-08-02 Trevor Saunders <tsaunders@mozilla.com> 1084 1085 * openmp.c, trans-decl.c: Use hash_set instead of pointer_set. 1086 10872014-07-26 Tobias Burnus <burnus@net-b.de> 1088 1089 PR fortran/61881 1090 PR fortran/61888 1091 PR fortran/57305 1092 * intrinsic.texi (SIZEOF): Document changed behavior 1093 for polymorphic arrays. 1094 10952014-07-26 Tobias Burnus <burnus@net-b.de> 1096 1097 PR fortran/61881 1098 PR fortran/61888 1099 PR fortran/57305 1100 * check.c (gfc_check_sizeof): Permit for assumed type if and 1101 only if it has an array descriptor. 1102 * intrinsic.c (do_ts29113_check): Permit SIZEOF. 1103 (add_functions): SIZEOF is an Inquiry function. 1104 * intrinsic.texi (SIZEOF): Add note that only contiguous 1105 arrays are permitted. 1106 * trans-expr.c (gfc_conv_intrinsic_to_class): Handle assumed 1107 rank. 1108 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle 1109 assumed type + array descriptor, CLASS and assumed rank. 1110 (gfc_conv_intrinsic_storage_size): Handle class arrays. 1111 11122014-07-25 Tobias Burnus <burnus@net-b.de> 1113 1114 * simplify.c (gfc_simplify_storage_size): Use proper 1115 integer kind for the returned value. 1116 11172014-07-24 Uros Bizjak <ubizjak@gmail.com> 1118 1119 * intrinsic.texi (Intrinsic Procedures) <ATOMIC_DEFINE>: Move to 1120 correct menu position to match sectioning. 1121 11222014-06-15 Tobias Burnus <burnus@net-b.de> 1123 1124 * symbol.c (check_conflict): Add codimension conflict with 1125 pointer; fix cray-pointee check. 1126 11272014-06-14 Tobias Burnus <burnus@net-b.de> 1128 1129 * trans-intrinsic.c (conv_intrinsic_atomic_ref): Fix handling 1130 for kind mismatch with -fcoarray=lib. 1131 11322014-07-12 Paul Thomas <pault@gcc.gnu.org> 1133 1134 PR fortran/61780 1135 * dependency.c (gfc_dep_resolver): Index the 'reverse' array so 1136 that elements are skipped. This then correctly aligns 'reverse' 1137 with the scalarizer loops. 1138 11392014-07-12 Tobias Burnus <burnus@net-b.de> 1140 1141 PR fortran/61628 1142 * trans-types.c (gfc_init_types): Fix data-type bug 1143 with gfc_max_array_element_size. 1144 11452014-07-12 Tobias Burnus <burnus@net-b.de> 1146 1147 * libgfortran.h (libcaf_atomic_codes): Add. 1148 * trans-decl.c (gfor_fndecl_caf_atomic_def, 1149 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas, 1150 gfor_fndecl_caf_atomic_op): New variables. 1151 (gfc_build_builtin_function_decls): Initialize them. 1152 * trans.h (gfor_fndecl_caf_atomic_def, 1153 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas, 1154 gfor_fndecl_caf_atomic_op): New variables. 1155 * trans-intrinsic.c (conv_intrinsic_atomic_op, 1156 conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas): 1157 Add library calls with -fcoarray=lib. 1158 11592014-07-12 Tobias Burnus <burnus@net-b.de> 1160 1161 * check.c (gfc_check_atomic): Update for STAT=. 1162 (gfc_check_atomic_def, gfc_check_atomic_ref): Update call. 1163 (gfc_check_atomic_op, gfc_check_atomic_cas, 1164 gfc_check_atomic_fetch_op): New. 1165 * gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, GFC_ISYM_ATOMIC_ADD, 1166 GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR, 1167 GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND, 1168 GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR. 1169 * intrinsic.c (add_subroutines): Handle them. 1170 * intrinsic.texi: Add documentation for them. 1171 (ATOMIC_REF, ATOMIC_DEFINE): Add STAT=. 1172 (ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE. 1173 * intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas, 1174 gfc_check_atomic_fetch_op): New 1175 prototypes. 1176 * libgfortran.h (libgfortran_stat_codes): Add GFC_STAT_FAILED_IMAGE. 1177 * iso-fortran-env.def: Add it. 1178 * trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from 1179 conv_intrinsic_atomic_ref; handle more atomics. 1180 (conv_intrinsic_atomic_def): Handle STAT=. 1181 (conv_intrinsic_atomic_cas): New. 1182 (gfc_conv_intrinsic_subroutine): Handle new atomics. 1183 11842014-07-09 Bernd Schmidt <bernds@codesourcery.com> 1185 1186 * trans-array.c (gfc_build_constant_array_constructor): Build a 1187 static decl manually. 1188 * trans-decl.c (create_main_function): Likewise. 1189 11902014-07-07 Paul Thomas <pault@gcc.gnu.org> 1191 1192 PR fortran/61459 1193 PR fortran/58883 1194 * trans-expr.c (fcncall_realloc_result): Use the natural type 1195 for the address expression of 'res_desc'. 1196 11972014-07-07 Gerald Pfeifer <gerald@pfeifer.com> 1198 1199 * gfortran.texi (Fortran 2003 status): Fix grammar. 1200 12012014-07-04 Tobias Burnus <burnus@net-b.de> 1202 1203 * resolve.c (resolve_assoc_var): Fix corank setting. 1204 * trans-array.c (gfc_conv_descriptor_token): Change assert. 1205 for select-type temporaries. 1206 * trans-decl.c (generate_coarray_sym_init): Skip for 1207 attr.select_type_temporary. 1208 * trans-expr.c (gfc_conv_procedure_call): Fix for 1209 select-type temporaries. 1210 * trans-intrinsic.c (get_caf_token_offset): Ditto. 1211 (gfc_conv_intrinsic_caf_get, gfc_conv_intrinsic_caf_send): Set 1212 the correct dtype. 1213 * trans-types.h (gfc_get_dtype_rank_type): New. 1214 * trans-types.c (gfc_get_dtype_rank_type): Ditto. 1215 12162014-07-03 Tobias Burnus <burnus@net-b.de> 1217 1218 * scanner.c (skip_free_comments): Fix indentation. 1219 12202014-07-02 Jakub Jelinek <jakub@redhat.com> 1221 Fritz Reese <Reese-Fritz@zai.com> 1222 1223 * decl.c (variable_decl): Reject old style initialization 1224 for derived type components. 1225 12262014-06-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1227 1228 PR fortran/36275 1229 PR fortran/38839 1230 * decl.c (check_bind_name_identifier): New function. 1231 (gfc_match_bind_c): Match any constant expression as binding 1232 label. 1233 * match.c (gfc_match_name_C): Remove. 1234 12352014-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1236 1237 PR fortran/29383 1238 * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype. 1239 * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in 1240 both C and Fortran. 1241 * expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND. 1242 * simplify.c (gfc_simplify_ieee_selected_real_kind): New function. 1243 * module.c (mio_symbol): Keep track of symbols which came from 1244 intrinsic modules. 1245 (gfc_use_module): Keep track of the IEEE modules. 1246 * trans-decl.c (gfc_get_symbol_decl): Adjust code since 1247 we have new intrinsic modules. 1248 (gfc_build_builtin_function_decls): Build decls for 1249 ieee_procedure_entry and ieee_procedure_exit. 1250 (is_from_ieee_module, is_ieee_module_used, save_fp_state, 1251 restore_fp_state): New functions. 1252 (gfc_generate_function_code): Save and restore floating-point 1253 state on procedure entry/exit, when IEEE modules are used. 1254 * intrinsic.texi: Document the IEEE modules. 1255 12562014-06-25 Tobias Burnus <burnus@net-b.de> 1257 1258 * interface.c (check_intents): Fix diagnostic with 1259 coindexed coarrays. 1260 12612014-06-25 Tobias Burnus <burnus@net-b.de> 1262 1263 * resolve.c (resolve_ordinary_assign): Don't invoke caf_send 1264 when assigning a coindexed RHS scalar to a noncoindexed LHS 1265 array. 1266 * trans-intrinsic.c (conv_caf_send): Do numeric type conversion 1267 for a noncoindexed scalar RHS. 1268 12692014-06-25 Tobias Burnus <burnus@net-b.de> 1270 1271 * check.c (check_co_minmaxsum): Add definable check. 1272 * expr.c (gfc_check_vardef_context): Fix context == NULL case. 1273 * trans-expr.c (get_scalar_to_descriptor_type): Handle pointer 1274 arguments. 1275 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of 1276 temporary strings. 1277 12782014-06-25 Jakub Jelinek <jakub@redhat.com> 1279 1280 * trans.h (gfc_omp_clause_linear_ctor): New prototype. 1281 * trans-openmp.c (gfc_omp_linear_clause_add_loop, 1282 gfc_omp_clause_linear_ctor): New functions. 1283 (gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has 1284 correct type. Set OMP_CLAUSE_LINEAR_ARRAY flag if needed. 1285 * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine. 1286 12872014-06-24 Jakub Jelinek <jakub@redhat.com> 1288 1289 * dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead 1290 of n->udr. 1291 * f95-lang.c (gfc_init_builtin_functions): Initialize 1292 BUILT_IN_ASSUME_ALIGNED. 1293 * gfortran.h (gfc_omp_namelist): Change udr field type to 1294 struct gfc_omp_namelist_udr. 1295 (gfc_omp_namelist_udr): New type. 1296 (gfc_get_omp_namelist_udr): Define. 1297 (gfc_resolve_code): New prototype. 1298 * match.c (gfc_free_omp_namelist): Free name->udr. 1299 * module.c (intrinsics): Add INTRINSIC_USER. 1300 (fix_mio_expr): Likewise. 1301 (mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION. 1302 * openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr. 1303 (gfc_match_omp_declare_reduction): Treat len=: the same as len=*. 1304 Set attr.flavor on omp_{out,in,priv,orig} artificial variables. 1305 (struct resolve_omp_udr_callback_data): New type. 1306 (resolve_omp_udr_callback, resolve_omp_udr_callback2, 1307 resolve_omp_udr_clause): New functions. 1308 (resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses 1309 here. 1310 (omp_udr_callback): Don't check for implicitly declared functions 1311 here. 1312 (gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for 1313 implicitly declared subroutines here. 1314 * resolve.c (resolve_function): If value.function.isym is non-NULL, 1315 consider it already resolved. 1316 (resolve_code): Renamed to ... 1317 (gfc_resolve_code): ... this. No longer static. 1318 (gfc_resolve_blocks, generate_component_assignments, resolve_codes): 1319 Adjust callers. 1320 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize 1321 by reference type (C_PTR) variables. 1322 (gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL. 1323 (gfc_trans_omp_udr_expr): Remove. 1324 (gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes. 1325 Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension 1326 expand it as assignment or subroutine call. Don't initialize 1327 value.function.isym. 1328 13292014-06-23 Tobias Burnus <burnus@net-b.de> 1330 1331 * trans-decl.c (gfc_trans_deferred_vars): Fix handling of 1332 explicit-size arrays with -fcoarray=lib. 1333 13342014-06-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1335 1336 PR fortran/33363 1337 * invoke.texi: Don't mention nonexisting -fcase-lower option. 1338 13392014-06-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1340 1341 PR fortran/61454 1342 * expr.c (scalarize_intrinsic_call): Take care of optional 1343 arguments. 1344 13452014-06-19 Tobias Burnus <burnus@net-b.de> 1346 1347 * trans-intrinsic.c (conv_co_minmaxsum): Fix argument 1348 passing. 1349 13502014-06-18 Tobias Burnus <burnus@net-b.de> 1351 1352 * gfortran.texi (OpenMP): Update refs to OpenMP 4.0. 1353 * intrinsic.texi (OpenMP Modules): Ditto. 1354 13552014-06-18 Jakub Jelinek <jakub@redhat.com> 1356 1357 * cpp.c (cpp_define_builtins): Change _OPENMP macro to 1358 201307. 1359 * dump-parse-tree.c (show_omp_namelist): Add list_type 1360 argument. Adjust for rop being u.reduction_op now, 1361 handle depend_op or map_op. 1362 (show_omp_node): Adjust callers. Print some new 1363 OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT} 1364 becoming a single OMP_LIST_DEPEND. 1365 * f95-lang.c (gfc_handle_omp_declare_target_attribute): New 1366 function. 1367 (gfc_attribute_table): New variable. 1368 (LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine. 1369 * frontend-passes.c (gfc_code_walker): Handle new OpenMP target 1370 EXEC_OMP_* codes and new clauses. 1371 * gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET, 1372 ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE, 1373 ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS, 1374 ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD, 1375 ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO, 1376 ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD, 1377 ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS, 1378 ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE, 1379 ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD, 1380 ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE, 1381 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE, 1382 ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD, 1383 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD, 1384 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO, 1385 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO, 1386 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO, 1387 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO, 1388 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, 1389 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, 1390 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and 1391 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD. 1392 (symbol_attribute): Add omp_declare_target field. 1393 (gfc_omp_depend_op, gfc_omp_map_op): New enums. 1394 (gfc_omp_namelist): Replace rop field with union 1395 containing reduction_op, depend_op and map_op. 1396 (OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove. 1397 (OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New. 1398 (gfc_omp_clauses): Add num_teams, device, thread_limit, 1399 dist_sched_kind, dist_chunk_size fields. 1400 (gfc_common_head): Add omp_declare_target field. 1401 (gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA, 1402 EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD, 1403 EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD, 1404 EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE, 1405 EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE, 1406 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD, 1407 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO, 1408 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO, 1409 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, 1410 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and 1411 EXEC_OMP_TARGET_UPDATE. 1412 (gfc_add_omp_declare_target): New prototype. 1413 * match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute, 1414 gfc_match_omp_distribute_parallel_do, 1415 gfc_match_omp_distribute_parallel_do_simd, 1416 gfc_match_omp_distribute_simd, gfc_match_omp_target, 1417 gfc_match_omp_target_data, gfc_match_omp_target_teams, 1418 gfc_match_omp_target_teams_distribute, 1419 gfc_match_omp_target_teams_distribute_parallel_do, 1420 gfc_match_omp_target_teams_distribute_parallel_do_simd, 1421 gfc_match_omp_target_teams_distribute_simd, 1422 gfc_match_omp_target_update, gfc_match_omp_teams, 1423 gfc_match_omp_teams_distribute, 1424 gfc_match_omp_teams_distribute_parallel_do, 1425 gfc_match_omp_teams_distribute_parallel_do_simd, 1426 gfc_match_omp_teams_distribute_simd): New prototypes. 1427 * module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET. 1428 (attr_bits): Likewise. 1429 (mio_symbol_attribute): Handle omp_declare_target attribute. 1430 (gfc_free_omp_clauses): Free num_teams, device, thread_limit 1431 and dist_chunk_size expressions. 1432 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE, 1433 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, 1434 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, 1435 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, 1436 OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, 1437 OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, 1438 OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, 1439 OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, 1440 OMP_CLAUSE_UNIFORM): Use 1U instead of 1. 1441 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM, 1442 OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT, 1443 OMP_CLAUSE_DIST_SCHEDULE): Define. 1444 (gfc_match_omp_clauses): Change mask parameter to unsigned int. 1445 Adjust for rop becoming u.reduction_op. Disallow inbranch with 1446 notinbranch. For depend clause, always create OMP_LIST_DEPEND 1447 and fill in u.depend_op. Handle num_teams, device, map, 1448 to, from, thread_limit and dist_schedule clauses. 1449 (OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and 1450 OMP_CLAUSE_NOTINBRANCH. 1451 (OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES, 1452 OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES, 1453 OMP_DISTRIBUTE_CLAUSES): Define. 1454 (match_omp): New function. 1455 (gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel, 1456 gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd, 1457 gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare, 1458 gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single, 1459 gfc_match_omp_task): Rewritten using match_omp. 1460 (gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction): 1461 Diagnose if the directives are followed by unexpected junk. 1462 (gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do, 1463 gfc_match_omp_distribute_parallel_do_simd, 1464 gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target, 1465 gfc_match_omp_target, gfc_match_omp_target_data, 1466 gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute, 1467 gfc_match_omp_target_teams_distribute_parallel_do, 1468 gfc_match_omp_target_teams_distribute_parallel_do_simd, 1469 gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update, 1470 gfc_match_omp_teams, gfc_match_omp_teams_distribute, 1471 gfc_match_omp_teams_distribute_parallel_do, 1472 gfc_match_omp_teams_distribute_parallel_do_simd, 1473 gfc_match_omp_teams_distrbute_simd): New functions. 1474 * openmp.c (resolve_omp_clauses): Adjust for 1475 OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle 1476 OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device, 1477 dist_chunk_size and thread_limit. 1478 (gfc_resolve_omp_parallel_blocks): Only put sharing clauses into 1479 ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various 1480 new EXEC_OMP_* codes. 1481 (resolve_omp_do): Handle various new EXEC_OMP_* codes. 1482 (gfc_resolve_omp_directive): Likewise. 1483 (gfc_resolve_omp_declare_simd): Add missing space to diagnostics. 1484 * parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0 1485 offloading related directives. 1486 (case_executable): Add ST_OMP_TARGET_UPDATE. 1487 (case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*, 1488 ST_OMP_DISTRIBUTE*. 1489 (case_decl): Add ST_OMP_DECLARE_TARGET. 1490 (gfc_ascii_statement): Handle new ST_OMP_* codes. 1491 (parse_omp_do): Handle various new ST_OMP_* codes. 1492 (parse_executable): Likewise. 1493 * resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_* 1494 codes. 1495 (resolve_code): Likewise. 1496 (resolve_symbol): Change that !$OMP DECLARE TARGET variables 1497 are saved. 1498 * st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes. 1499 * symbol.c (check_conflict): Check omp_declare_target conflicts. 1500 (gfc_add_omp_declare_target): New function. 1501 (gfc_copy_attr): Copy omp_declare_target. 1502 * trans.c (trans_code): Handle various new EXEC_OMP_* codes. 1503 * trans-common.c (build_common_decl): Add "omp declare target" 1504 attribute if needed. 1505 * trans-decl.c (add_attributes_to_decl): Likewise. 1506 * trans.h (gfc_omp_finish_clause): New prototype. 1507 * trans-openmp.c (gfc_omp_finish_clause): New function. 1508 (gfc_trans_omp_reduction_list): Adjust for rop being renamed 1509 to u.reduction_op. 1510 (gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT} 1511 change to OMP_LIST_DEPEND and fix up depend handling. 1512 Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams, 1513 thread_limit, device, dist_chunk_size and dist_sched_kind. 1514 (gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE. 1515 (GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS, 1516 GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE, 1517 GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New. 1518 (gfc_split_omp_clauses): Handle splitting of clauses for new 1519 EXEC_OMP_* codes. 1520 (gfc_trans_omp_do_simd): Add pblock argument, adjust for being 1521 callable for combined constructs. 1522 (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise. 1523 (gfc_trans_omp_distribute, gfc_trans_omp_teams, 1524 gfc_trans_omp_target, gfc_trans_omp_target_data, 1525 gfc_trans_omp_target_update): New functions. 1526 (gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle 1527 new EXEC_OMP_* codes. 1528 15292014-06-18 Tobias Burnus <burnus@net-b.de> 1530 1531 PR fortran/61126 1532 * invoke.texi (-Wunused-parameter): Make clearer when 1533 -Wextra implies this option. 1534 15352014-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org> 1536 1537 PR fortran/61126 1538 * options.c (gfc_handle_option): Remove call to 1539 handle_generated_option. 1540 15412014-06-17 Tobias Burnus <burnus@net-b.de> 1542 1543 * check.c (gfc_check_atomic, gfc_check_atomic_def): 1544 Use argument for GFC_ISYM_CAF_GET. 1545 * resolve.c (resolve_variable): Enable CAF_GET insertion. 1546 (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET. 1547 (resolve_ordinary_assign): Enable CAF_SEND insertion. 1548 * trans-const.c (gfc_build_string_const, 1549 gfc_build_wide_string_const): Set TYPE_STRING_FLAG. 1550 * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send, 1551 gfor_fndecl_caf_sendget): New global variables. 1552 (gfc_build_builtin_function_decls): Initialize them; 1553 update co_min/max/sum initialization. 1554 * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from 1555 get_tree_for_caf_expr and removed static. 1556 (gfc_conv_procedure_call): Update call. 1557 * trans-intrinsic.c (caf_get_image_index, 1558 conv_caf_vector_subscript_elem, conv_caf_vector_subscript, 1559 get_caf_token_offset, gfc_conv_intrinsic_caf_get, 1560 conv_caf_send): New. 1561 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine, 1562 gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND. 1563 (conv_co_minmaxsum): Update call for remove unused vector 1564 subscript. 1565 (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref): 1566 Skip a CAF_GET of the argument. 1567 * trans-types.c (gfc_get_caf_vector_type): New. 1568 * trans-types.h (gfc_get_caf_vector_type): New. 1569 * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send, 1570 gfor_fndecl_caf_sendget): New global variables. 1571 (gfc_get_tree_for_caf_expr): New prototypes. 1572 15732014-06-15 Jan Hubicka <hubicka@ucw.cz> 1574 1575 * trans-common.c (build_common_decl): Use 1576 set_decl_tls_model. 1577 * trans-decl.c (gfc_finish_var_decl): Likewise. 1578 (get_proc_pointer_decl): Likewise. 1579 15802014-06-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1581 1582 PR fortran/28484 1583 PR fortran/61429 1584 * check.c (gfc_check_system_clock): Improve checking of arguments. 1585 * intrinsic.texi: Update doc of SYSTEM_CLOCK. 1586 * iresolve.c (gfc_resolve_system_clock): Choose library function 1587 used depending on argument kinds. 1588 * trans-decl.c (gfc_build_intrinsic_function_decls): Build 1589 decls for system_clock_4 and system_clock_8. 1590 * trans-intrinsic.c (conv_intrinsic_system_clock): New function. 1591 (gfc_conv_intrinsic_subroutine): Call conv_intrinsic_system_clock. 1592 * trans.h (gfor_fndecl_system_clock4, gfor_fndecl_system_clock8): 1593 New variables. 1594 15952014-06-12 Tobias Burnus <burnus@net-b.de> 1596 1597 * gfortran.h (gfc_copy_formal_args_intr): Update prototype. 1598 * symbol.c (gfc_copy_formal_args_intr): Handle the case 1599 that absent optional arguments should be ignored. 1600 * trans-intrinsic.c (gfc_get_symbol_for_expr): Ditto. 1601 (gfc_conv_intrinsic_funcall, 1602 conv_generic_with_optional_char_arg): Update call. 1603 * resolve.c (gfc_resolve_intrinsic): Ditto. 1604 16052014-06-10 Dominique d'Humieres <dominiq@lps.ens.fr> 1606 Mikael Morin <mikael@gcc.gnu.org> 1607 1608 PR fortran/41936 1609 * trans-expr.c (gfc_conv_expr_reference): Deallocate array 1610 components. 1611 16122014-06-10 Jakub Jelinek <jakub@redhat.com> 1613 1614 PR fortran/60928 1615 * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd 1616 like -fopenmp. 1617 * openmp.c (resolve_omp_clauses): Remove allocatable components 1618 diagnostics. Add associate-name and intent(in) pointer 1619 diagnostics for various clauses, diagnose procedure pointers in 1620 reduction clause. 1621 * parse.c (match_word_omp_simd): New function. 1622 (matchs, matcho): New macros. 1623 (decode_omp_directive): Change match macros to either matchs 1624 or matcho. Handle -fopenmp-simd. 1625 (next_free, next_fixed): Handle -fopenmp-simd like -fopenmp. 1626 * scanner.c (skip_free_comments, skip_fixed_comments, include_line): 1627 Likewise. 1628 * trans-array.c (get_full_array_size): Rename to... 1629 (gfc_full_array_size): ... this. No longer static. 1630 (duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument 1631 and handle it. 1632 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust 1633 duplicate_allocatable callers. 1634 (gfc_duplicate_allocatable_nocopy): New function. 1635 (structure_alloc_comps): Adjust g*_full_array_size and 1636 duplicate_allocatable caller. 1637 * trans-array.h (gfc_full_array_size, 1638 gfc_duplicate_allocatable_nocopy): New prototypes. 1639 * trans-common.c (create_common): Call gfc_finish_decl_attrs. 1640 * trans-decl.c (gfc_finish_decl_attrs): New function. 1641 (gfc_finish_var_decl, create_function_arglist, 1642 gfc_get_fake_result_decl): Call it. 1643 (gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated, 1644 don't allocate it again. 1645 (gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on 1646 associate-names. 1647 * trans.h (gfc_finish_decl_attrs): New prototype. 1648 (struct lang_decl): Add scalar_allocatable and scalar_pointer 1649 bitfields. 1650 (GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER, 1651 GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER, 1652 GFC_DECL_ASSOCIATE_VAR_P): Define. 1653 (GFC_POINTER_TYPE_P): Remove. 1654 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't check 1655 GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE, 1656 GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl. 1657 (gfc_omp_predetermined_sharing): Associate-names are predetermined. 1658 (enum walk_alloc_comps): New. 1659 (gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr, 1660 gfc_walk_alloc_comps): New functions. 1661 (gfc_omp_private_outer_ref): Return true for scalar allocatables or 1662 decls with allocatable components. 1663 (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor, 1664 gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of 1665 allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar 1666 allocatables and decls with allocatable components. 1667 (gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable 1668 arrays here. 1669 (gfc_trans_omp_reduction_list): Call 1670 gfc_trans_omp_array_reduction_or_udr even for allocatable scalars. 1671 (gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD. 1672 (gfc_trans_omp_parallel_do_simd): Likewise. 1673 * trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P. 1674 (gfc_get_derived_type): Call gfc_finish_decl_attrs. 1675 16762014-06-09 Paul Thomas <pault@gcc.gnu.org> 1677 1678 PR fortran/61406 1679 * trans-stmt.c (trans_associate_var): Check that array 1680 constructors are constant for direct reference. 1681 16822014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1683 1684 PR fortran/36096 1685 * intrinsic.texi: Fix documentation of BESSEL_J0, BESSEL_J1, 1686 BESSEL_Y0, and BESSEL_Y1. 1687 16882014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1689 1690 PR fortran/45187 1691 * trans-decl.c (gfc_create_module_variable): Don't create 1692 Cray-pointee decls twice. 1693 16942014-06-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1695 1696 * io.c (resolve_tag): Warn on non-default kind for NUMBER, 1697 NEXTREC, RECL, NAMED, OPENED and PENDING I/O specifiers. 1698 16992014-06-06 Jakub Jelinek <jakub@redhat.com> 1700 1701 * dump-parse-tree.c (show_omp_namelist): Dump reduction 1702 id in each list item. 1703 (show_omp_node): Only handle OMP_LIST_REDUCTION, not 1704 OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST. Don't 1705 dump reduction id here. 1706 * frontend-passes.c (dummy_code_callback): Renamed to... 1707 (gfc_dummy_code_callback): ... this. No longer static. 1708 (optimize_reduction): Use gfc_dummy_code_callback instead of 1709 dummy_code_callback. 1710 * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION. 1711 (symbol_attribute): Add omp_udr_artificial_var bitfield. 1712 (gfc_omp_reduction_op): New enum. 1713 (gfc_omp_namelist): Add rop and udr fields. 1714 (OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT, 1715 OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV, 1716 OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND, 1717 OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed. 1718 (OMP_LIST_REDUCTION): New. 1719 (gfc_omp_udr): New type. 1720 (gfc_get_omp_udr): Define. 1721 (gfc_symtree): Add n.omp_udr field. 1722 (gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield. 1723 (gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs, 1724 gfc_dummy_code_callback): New prototypes. 1725 * match.h (gfc_match_omp_declare_reduction): New prototype. 1726 * module.c (MOD_VERSION): Increase to 13. 1727 (omp_declare_reduction_stmt): New array. 1728 (mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs): 1729 New functions. 1730 (read_module): Read OpenMP user defined reductions. 1731 (write_module): Write OpenMP user defined reductions. 1732 * openmp.c: Include arith.h. 1733 (gfc_free_omp_udr, gfc_find_omp_udr): New functions. 1734 (gfc_match_omp_clauses): Handle user defined reductions. 1735 Store reduction kind into gfc_omp_namelist instead of using 1736 several OMP_LIST_* entries. 1737 (match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find, 1738 gfc_match_omp_declare_reduction): New functions. 1739 (resolve_omp_clauses): Adjust for reduction clauses being only 1740 in OMP_LIST_REDUCTION list. Diagnose missing UDRs. 1741 (struct omp_udr_callback_data): New type. 1742 (omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New 1743 functions. 1744 * parse.c (decode_omp_directive): Handle !$omp declare reduction. 1745 (case_decl): Add ST_OMP_DECLARE_REDUCTION. 1746 (gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION. 1747 * resolve.c (resolve_fl_variable): Allow len=: or len=* on 1748 sym->attr.omp_udr_artificial_var symbols. 1749 (resolve_types): Call gfc_resolve_omp_udrs. 1750 * symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns, 1751 use parent ns instead of gfc_current_ns. 1752 (gfc_get_sym_tree): Don't insert symbols into 1753 namespaces with omp_udr_ns set. 1754 (free_omp_udr_tree): New function. 1755 (gfc_free_namespace): Call it. 1756 * trans-openmp.c (struct omp_udr_find_orig_data): New type. 1757 (omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions. 1758 (gfc_trans_omp_array_reduction): Renamed to... 1759 (gfc_trans_omp_array_reduction_or_udr): ... this. Remove SYM 1760 argument, instead pass gfc_omp_namelist pointer N. Handle 1761 user defined reductions. 1762 (gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument. 1763 Handle user defined reductions and reduction ops in gfc_omp_namelist. 1764 (gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION 1765 list. 1766 (gfc_split_omp_clauses): Likewise. 1767 17682014-06-05 Richard Biener <rguenther@suse.de> 1769 1770 PR fortran/61418 1771 * gfortranspec.c (spec_file): Remove. 1772 (find_spec_file): Likewise. 1773 (lang_specific_driver): Do not look for specs file in -L 1774 or append -specs command line argument. 1775 (lang_specific_pre_link): Always %:include libgfortran.spec. 1776 17772014-06-02 Andrew MacLeod <amacleod@redhat.com> 1778 1779 * fortran/trans.c (trans_runtime_error_vararg): Call 1780 fold_build_call_array_loc instead of fold_builtin_call_array. 1781 17822014-06-02 Bernd Schmidt <bernds@codesourcery.com> 1783 1784 * trans-decl.c (gfc_build_builtin_function_decls): Correct number of 1785 arguments to caf_init. 1786 17872014-05-26 Tobias Burnus <burnus@net-b.de> 1788 1789 * gfortran.texi (Project Status): Fix broken link. 1790 17912014-05-26 Janne Blomqvist <jb@gcc.gnu.org> 1792 1793 PR libfortran/61310 1794 * intrinsics.texi (CTIME): Remove mention of locale-dependent 1795 behavior. 1796 17972014-05-26 Tobias Burnus <burnus@net-b.de> 1798 1799 PR fortran/55117 1800 * trans-io.c (nml_full_name, transfer_namelist_element): Insert 1801 a '+' rather then '%' to differentiate namelist variable names 1802 that are based on extended derived types. 1803 18042014-05-25 Tobias Burnus <burnus@net-b.de> 1805 1806 * check.c (gfc_check_num_images): New. 1807 (gfc_check_this_image): Handle distance argument. 1808 * intrinsic.c (add_functions): Update this_image and num_images 1809 for new distance and failed arguments. 1810 * intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new 1811 arguments. 1812 * intrinsic.h (gfc_check_num_images): New. 1813 (gfc_check_this_image, gfc_simplify_num_images, 1814 gfc_simplify_this_image, gfc_resolve_this_image): Update prototype. 1815 * iresolve.c (gfc_resolve_this_image): Handle distance argument. 1816 * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image): 1817 Handle new arguments. 1818 * trans-intrinsic.c (trans_this_image, trans_num_images): Ditto. 1819 (gfc_conv_intrinsic_function): Update trans_num_images call. 1820 18212014-05-23 Tobias Burnus <burnus@net-b.de> 1822 1823 * gfc-internals.texi: Change URLs to HTTPS; fix broken links. 1824 * gfortran.texi: Ditto. 1825 18262014-05-22 Thomas Schwinge <thomas@codesourcery.com> 1827 1828 * f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6) 1829 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8) 1830 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes. 1831 * types.def: Simplify examples for DEF_FUNCTION_TYPE_*. 1832 18332014-05-17 Trevor Saunders <tsaunders@mozilla.com> 1834 1835 * f95-lang.c (pushlevel): Adjust. 1836 * trans-decl.c (gfc_allocate_lang_decl): Adjust. 1837 (gfc_find_module): Likewise. 1838 * trans-types.c (gfc_get_nodesc_array_type): Likewise. 1839 (gfc_get_array_type_bounds): Likewise. 1840 (gfc_nonrestricted_type): Likewise. 1841 * trans.h: Don't use variable_size gty attribute. 1842 18432014-05-17 Dominique d'Humieres <dominiq@lps.ens.fr> 1844 1845 * check.c (gfc_check_fn_rc2008): move "argument" to the right 1846 place. 1847 18482014-05-12 Tobias Burnus <burnus@net-b.de> 1849 1850 PR fortran/60127 1851 * openmp.c (resolve_omp_do): Reject do concurrent loops. 1852 18532014-05-12 Thomas Koenig <tkoenig@gcc.gnu.org> 1854 1855 PR fortran/60834 1856 * frontend-passes.c (in_assoc_list): New variable. 1857 (optimize_namespace): Initialize in_assoc_list 1858 (combine_array_constructor): Don't try to combine 1859 assoc lists. 1860 (gfc_code_walker): Keep track of in_assoc_list. 1861 18622014-05-11 Jakub Jelinek <jakub@redhat.com> 1863 1864 * gfortran.h (gfc_statement): Add ST_OMP_CANCEL, 1865 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP, 1866 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD, 1867 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and 1868 ST_OMP_DECLARE_SIMD. 1869 (gfc_omp_namelist): New typedef. 1870 (gfc_get_omp_namelist): Define. 1871 (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR, 1872 OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds. 1873 (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums. 1874 (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *. 1875 Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and 1876 simdlen_expr fields. 1877 (gfc_omp_declare_simd): New typedef. 1878 (gfc_get_omp_declare_simd): Define. 1879 (gfc_namespace): Add omp_declare_simd field. 1880 (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT, 1881 EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and 1882 EXEC_OMP_PARALLEL_DO_SIMD. 1883 (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST 1884 and GFC_OMP_ATOMIC_SWAP. 1885 (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *. 1886 (gfc_free_omp_namelist, gfc_free_omp_declare_simd, 1887 gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New 1888 prototypes. 1889 * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype. 1890 * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd. 1891 * openmp.c (gfc_free_omp_clauses): Free safelen_expr and 1892 simdlen_expr. Use gfc_free_omp_namelist instead of 1893 gfc_free_namelist. 1894 (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New 1895 functions. 1896 (gfc_match_omp_variable_list): Add end_colon, headp and 1897 allow_sections arguments. Handle parsing of array sections. 1898 Use *omp_namelist* instead of *namelist* data structure and 1899 functions/macros. Allow termination at : character. 1900 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH, 1901 OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND, 1902 OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define. 1903 (gfc_match_omp_clauses): Change first and needs_space variables 1904 into arguments with default values. Parse inbranch, notinbranch, 1905 proc_bind, safelen, simdlen, uniform, linear, aligned and 1906 depend clauses. 1907 (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND. 1908 (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define. 1909 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND. 1910 (gfc_match_omp_do_simd): New function. 1911 (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist* 1912 data structure and functions/macros. 1913 (gfc_match_omp_simd, gfc_match_omp_declare_simd, 1914 gfc_match_omp_parallel_do_simd): New functions. 1915 (gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap. 1916 (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind, 1917 gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New 1918 functions. 1919 (resolve_omp_clauses): Add where, omp_clauses and ns arguments. 1920 Use *omp_namelist* instead of *namelist* data structure and 1921 functions/macros. Resolve uniform, aligned, linear, depend, 1922 safelen and simdlen clauses. 1923 (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP} 1924 addition, recognize atomic swap. 1925 (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead 1926 of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as 1927 EXEC_OMP_PARALLEL_DO. 1928 (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist* 1929 data structure and functions/macros. 1930 (resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD, 1931 EXEC_OMP_PARALLEL_DO_SIMD. 1932 (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD, 1933 EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust 1934 resolve_omp_clauses caller. 1935 (gfc_resolve_omp_declare_simd): New function. 1936 * parse.c (decode_omp_directive): Parse cancellation point, cancel, 1937 declare simd, end do simd, end simd, end parallel do simd, 1938 end taskgroup, parallel do simd, simd and taskgroup directives. 1939 (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT. 1940 (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD, 1941 ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD. 1942 (case_decl): Add ST_OMP_DECLARE_SIMD. 1943 (gfc_ascii_statement): Handle ST_OMP_CANCEL, 1944 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP, 1945 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD, 1946 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and 1947 ST_OMP_DECLARE_SIMD. 1948 (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and 1949 ST_OMP_PARALLEL_DO_SIMD. 1950 (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions. 1951 (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and 1952 ST_OMP_PARALLEL_DO_SIMD. 1953 (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD, 1954 ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP. 1955 * trans-decl.c (gfc_get_extern_function_decl, 1956 gfc_create_function_decl): Call gfc_trans_omp_declare_simd if 1957 needed. 1958 * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD, 1959 EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk 1960 safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist 1961 of depend, aligned and linear clauses. 1962 * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD 1963 and EXEC_OMP_PARALLEL_DO_SIMD. 1964 (gfc_free_omp_namelist): New function. 1965 * dump-parse-tree.c (show_namelist): Removed. 1966 (show_omp_namelist): New function. 1967 (show_omp_node): Handle OpenMP 4.0 additions. 1968 (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT, 1969 EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and 1970 EXEC_OMP_TASKGROUP. 1971 * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point, 1972 gfc_match_omp_declare_simd, gfc_match_omp_do_simd, 1973 gfc_match_omp_parallel_do_simd, gfc_match_omp_simd, 1974 gfc_match_omp_taskgroup): New prototypes. 1975 * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd 1976 argument, handle it. Allow current_function_decl to be NULL. 1977 (gfc_trans_omp_variable_list): Add declare_simd argument, pass 1978 it through to gfc_trans_omp_variable and disregard whether 1979 sym is referenced if declare_simd is true. Work on gfc_omp_namelist 1980 instead of gfc_namelist. 1981 (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of 1982 gfc_namelist. Adjust gfc_trans_omp_variable caller. 1983 (gfc_trans_omp_clauses): Add declare_simd argument, pass it through 1984 to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist 1985 instead of gfc_namelist. Handle inbranch, notinbranch, safelen, 1986 simdlen, depend, uniform, linear, proc_bind and aligned clauses. 1987 Handle cancel kind. 1988 (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap, 1989 adjust for GFC_OMP_ATOMIC_* changes. 1990 (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New 1991 functions. 1992 (gfc_trans_omp_do): Add op argument, handle simd translation into 1993 generic. 1994 (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL, 1995 GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO, 1996 GFC_OMP_MASK_PARALLEL): New. 1997 (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions. 1998 (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses. 1999 (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New 2000 functions. 2001 (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL, 2002 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, 2003 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. 2004 Adjust gfc_trans_omp_do caller. 2005 (gfc_trans_omp_declare_simd): New function. 2006 * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL, 2007 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, 2008 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. 2009 For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of 2010 gfc_free_namelist. 2011 * module.c (omp_declare_simd_clauses): New variable. 2012 (mio_omp_declare_simd): New function. 2013 (mio_symbol): Call it. 2014 * trans.c (trans_code): Handle EXEC_OMP_CANCEL, 2015 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, 2016 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. 2017 * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD, 2018 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. 2019 (resolve_code): Handle EXEC_OMP_CANCEL, 2020 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, 2021 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. 2022 (resolve_types): Call gfc_resolve_omp_declare_simd. 2023 20242014-05-11 Tobias Burnus <burnus@net-b.de> 2025 2026 * trans-intrinsic.c (gfc_build_builtin_function_decls): 2027 Change type of second argument to int. 2028 20292014-05-09 Mike Stump <mikestump@comcast.net> 2030 2031 PR fortran/61109 2032 * trans-array.c (gfc_conv_array_initializer): Fix wide-int 2033 conversion bug. 2034 20352014-05-08 Tobias Burnus <burnus@net-b.de> 2036 2037 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET 2038 and GFC_ISYM_CAF_SEND. 2039 * intrinsic.c (add_functions): Add only internally 2040 accessible caf_get and caf_send functions. 2041 * resolve.c (add_caf_get_intrinsic, 2042 remove_caf_get_intrinsic): New functions. 2043 (resolve_variable): Resolve expression rank and 2044 prepare for add_caf_get_intrinsic call. 2045 (gfc_resolve_expr): For variables, remove rank 2046 resolution. 2047 (resolve_ordinary_assign): Prepare call to 2048 GFC_ISYM_CAF_SEND. 2049 (resolve_code): Avoid call to GFC_ISYM_CAF_GET for 2050 the LHS of an assignment. 2051 20522014-05-08 Tobias Burnus <burnus@net-b.de> 2053 2054 * trans-intrinsic.c (conv_co_minmaxsum): Change condition style. 2055 20562014-05-08 Tobias Burnus <burnus@net-b.de> 2057 2058 * check.c (check_co_minmaxsum, gfc_check_co_minmax, 2059 gfc_check_co_sum): New. 2060 * error.c (gfc_notify_std): Update -std=f2008ts. 2061 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX, 2062 GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM. 2063 * intrinsic.h (gfc_check_co_minmax, 2064 gfc_check_co_sum): Declare. 2065 * intrinsic.c (add_subroutines): Add co_min, co_max 2066 and co_sum. 2067 (gfc_check_intrinsic_standard): Update text for 2068 -std=f2008ts. 2069 * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document 2070 them. 2071 * invoke.texi (-std=f2008ts): Update wording. 2072 * trans.h (gfor_fndecl_co_max, 2073 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define. 2074 * trans-decl.c (gfor_fndecl_co_max, 2075 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define. 2076 (gfc_build_builtin_function_decls): Assign to it. 2077 * trans-intrinsic.c (conv_co_minmaxsum): New. 2078 (gfc_conv_intrinsic_subroutine): Call it. 2079 20802014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com> 2081 Mike Stump <mikestump@comcast.net> 2082 Richard Sandiford <rdsandiford@googlemail.com> 2083 2084 * target-memory.c: Include wide-int.h. 2085 (gfc_interpret_logical): Use wide-int interfaces. 2086 * trans-array.c: Include wide-int.h. 2087 (gfc_conv_array_initializer): Use wide-int interfaces. 2088 * trans-const.c: Include wide-int.h. 2089 (gfc_conv_string_init): Use wide-int interfaces. 2090 (gfc_conv_mpz_to_tree): Likewise. 2091 (gfc_conv_tree_to_mpz): Likewise. 2092 * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p. 2093 * trans-expr.c: Include wide-int.h. 2094 (gfc_conv_cst_int_power): Use wide-int interfaces. 2095 (gfc_string_to_single_character): Likewise. 2096 (gfc_optimize_len_trim): Likewise. 2097 * trans-intrinsic.c: Include wide-int.h. 2098 (trans_this_image): Use wide-int interfaces. 2099 (gfc_conv_intrinsic_bound): Likewise. 2100 (conv_intrinsic_cobound): Likewise. 2101 * trans-types.c (gfc_init_types): Likewise. 2102 (gfc_get_array_type_bounds): Pass an integer of the correct type 2103 instead of using integer_one_node. 2104 21052014-04-30 Tobias Burnus <burnus@net-b.de> 2106 2107 * trans-decl.c (create_function_arglist): Add hidden coarray arguments 2108 also for polymorphic coarrays. 2109 * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments 2110 also for polymorphic coarrays. 2111 21122014-04-30 Tobias Burnus <burnus@net-b.de> 2113 2114 * resolve.c (resolve_function): Don't do 2115 assumed-size check for lcobound/ucobound. 2116 * trans-types.c (gfc_build_array_type): Only build an array 2117 descriptor with codimensions for allocatable coarrays. 2118 21192014-04-30 Tobias Burnus <burnus@net-b.de> 2120 2121 * gfortran.h (gfc_init_coarray_decl): Remove. 2122 * parse.c (translate_all_program_units): Remove call to it. 2123 (gfc_parse_file): Update call. 2124 * trans.h (gfor_fndecl_caf_this_image, 2125 gfor_fndecl_caf_num_images): Add. 2126 (gfort_gvar_caf_num_images, 2127 gfort_gvar_caf_this_image): Remove. 2128 * trans-decl.c (gfor_fndecl_caf_this_image, 2129 gfor_fndecl_caf_num_images): Add. 2130 (gfort_gvar_caf_num_images, 2131 gfort_gvar_caf_this_image): Remove. 2132 (gfc_build_builtin_function_decls): Init new decl. 2133 (gfc_init_coarray_dec): Remove. 2134 (create_main_function): Change calls. 2135 * trans-intrinsic.c (trans_this_image, trans_image_index, 2136 conv_intrinsic_cobound): Generate call to new library function 2137 instead of to a static variable. 2138 * trans-stmt.c (gfc_trans_sync): Ditto. 2139 21402014-04-30 Tobias Burnus <burnus@net-b.de> 2141 2142 * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic 2143 and derived-type coarrays. 2144 21452014-04-27 Thomas Koenig <tkoenig@gcc.gnu.org> 2146 2147 PR fortran/59604 2148 PR fortran/58003 2149 * gfortran.h (gfc_convert_mpz_to_signed): Add prototype. 2150 * arith.c (gfc_int2int): Convert number to signed if 2151 arithmetic overflow is not checked. 2152 * simplify.c (convert_mpz_to_unsigned): Only trigger assert for 2153 size if range checking is in force. 2154 (convert_mpz_to_signed): Make non-static, rename to 2155 (gfc_convert_mpz_to_signed). 2156 (simplify_dshift): Use gfc_convert_mpz_to_signed. 2157 (gfc_simplify_ibclr): Likewise. 2158 (gfc_simplify_ibits): Likewise. 2159 (gfc_simplify_ibset): Likewise. 2160 (simplify_shift): Likewise. 2161 (gfc_simplify_ishiftc): Likewise. 2162 (gfc_simplify_maskr): Likewise. 2163 (gfc_simplify_maskl): Likewise. 2164 21652014-04-22 Tobias Burnus <burnus@net-b.de> 2166 2167 PR fortran/60881 2168 * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling 2169 of scalar coarrays. 2170 21712014-04-17 Jakub Jelinek <jakub@redhat.com> 2172 2173 * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE 2174 argument is enum machine_mode. 2175 21762014-04-13 Paul Thomas <pault@gcc.gnu.org> 2177 2178 PR fortran/58085 2179 PR fortran/60717 2180 * trans.h: Add 'use_offset' bitfield to gfc_se. 2181 * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset' 2182 as a trigger to unconditionally recalculate the offset for 2183 array slices and constant arrays. 2184 trans-expr.c (gfc_conv_intrinsic_to_class): Use it. 2185 trans-stmt.c (trans_associate_var): Ditto. 2186 (gfc_conv_procedure_call): Ditto. 2187 21882014-04-11 Tobias Burnus <burnus@net-b.de> 2189 2190 PR fortran/58880 2191 PR fortran/60495 2192 * resolve.c (gfc_resolve_finalizers): Ensure that vtables 2193 and finalization wrappers are generated. 2194 21952014-04-11 Janne Blomqvist <jb@gcc.gnu.org> 2196 2197 * intrinsic.texi (RANDOM_SEED): Improve example. 2198 21992014-04-10 Bernd Edlinger <bernd.edlinger@hotmail.de> 2200 2201 * class.c (gfc_build_class_symbol): Append "_t" to target class 2202 names to make the generated type names unique. 2203 22042014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 2205 2206 PR fortran/60191 2207 * trans-types.c (gfc_get_function_type): In case of recursion 2208 build a variadic function type with empty argument list instead of a 2209 stdarg-like function type with incomplete argument list. 2210 22112014-04-04 Tobias Burnus <burnus@net-b.de> 2212 2213 * check.c (gfc_check_cmplx): Fix typo. 2214 22152014-03-28 Mikael Morin <mikael@gcc.gnu.org> 2216 Tobias Burnus <burnus@net-b.de> 2217 2218 PR fortran/60576 2219 * trans-expr.c (gfc_conv_derived_to_class): Avoid 2220 generation of out-of-bounds range expr. 2221 22222014-03-28 Mikael Morin <mikael@gcc.gnu.org> 2223 2224 PR fortran/60677 2225 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument 2226 list buffer. 2227 22282014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org> 2229 2230 PR fortran/60522 2231 * frontend-passes.c (cfe_code): Do not walk subtrees 2232 for WHERE. 2233 22342014-03-27 Tobias Burnus <burnus@net-b.de> 2235 2236 PR fortran/58880 2237 * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling 2238 of nonpointers. 2239 22402014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr> 2241 2242 PR fortran/34928 2243 * fortran.texi: Document Volatile COMMON as not supported. 2244 22452014-03-22 Jakub Jelinek <jakub@redhat.com> 2246 2247 PR debug/60603 2248 * cpp.c (gfc_cpp_init): Restore cb_change_file call to 2249 <built-in>. 2250 22512014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2252 2253 PR fortran/60148 2254 * gfortran.texi: Add description of namelist DELIM= behavior. 2255 22562014-03-19 Tobias Burnus <burnus@net-b.> 2257 2258 PR fortran/60543 2259 * io.c (check_io_constraints): Use gfc_unset_implicit_pure. 2260 * resolve.c (resolve_ordinary_assign): Ditto. 2261 22622014-03-19 Tobias Burnus <burnus@net-b.de> 2263 2264 PR fortran/60543 2265 PR fortran/60283 2266 * gfortran.h (gfc_unset_implicit_pure): New prototype. 2267 * resolve.c (gfc_unset_implicit_pure): New. 2268 (resolve_structure_cons, resolve_function, 2269 pure_subroutine): Use it. 2270 * decl.c (match_old_style_init, gfc_match_data, 2271 match_pointer_init, variable_decl): Ditto. 2272 * expr.c (gfc_check_pointer_assign): Ditto. 2273 * intrinsic.c (gfc_intrinsic_sub_interface): Ditto. 2274 * io.c (match_vtag, gfc_match_open, gfc_match_close, 2275 match_filepos, gfc_match_inquire, gfc_match_print, 2276 gfc_match_wait): Ditto. 2277 * match.c (gfc_match_critical, gfc_match_stopcode, 2278 lock_unlock_statement, sync_statement, gfc_match_allocate, 2279 gfc_match_deallocate): Ditto. 2280 * parse.c (decode_omp_directive): Ditto. 2281 * symbol.c (gfc_add_save): Ditto. 2282 22832014-03-18 Janus Weil <janus@gcc.gnu.org> 2284 2285 PR fortran/55207 2286 PR fortran/60549 2287 * decl.c (match_attr_spec): Revert r208590. 2288 22892014-03-18 Jakub Jelinek <jakub@redhat.com> 2290 2291 PR ipa/58721 2292 * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect 2293 if !optimize. 2294 22952014-03-18 Tobias Burnus <burnus@net-b.de> 2296 2297 PR ipa/58721 2298 * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument. 2299 (gfc_trans_io_runtime_check): Remove. 2300 * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat 2301 as argument, add predictor to block. 2302 (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos, 2303 gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls. 2304 * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument. 2305 (gfc_trans_runtime_check, gfc_allocate_using_malloc, 2306 gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly 2307 branch predictor. 2308 * trans-expr.c (gfc_conv_procedure_call): Ditto. 2309 * trans-stmt.c (gfc_trans_allocate): Ditto. 2310 * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto. 2311 23122014-03-15 Janus Weil <janus@gcc.gnu.org> 2313 2314 PR fortran/55207 2315 * decl.c (match_attr_spec): Variables in the main program implicitly 2316 get the SAVE attribute in Fortran 2008. 2317 23182014-03-14 Mikael Morin <mikael@gcc.gnu.org> 2319 2320 PR fortran/60392 2321 * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor 2322 if it has transposed dimensions. 2323 23242014-03-08 Tobias Burnus <burnus@net-b.de> 2325 2326 PR fortran/60447 2327 * f95-lang.c (gfc_init): Return false when only 2328 preprocessing. 2329 * options.c (gfc_post_options): Ditto. 2330 23312014-03-08 Tobias Burnus <burnus@net-b.de> 2332 2333 * gfortran.texi (Fortran 2003 Status): Mention finalization, 2334 deferred-length character support and input rounding. 2335 (Fortran 2008 Status): Mention that at termination 2336 signalling exceptions are shown. 2337 23382014-03-06 Paul Thomas <pault@gcc.gnu.org> 2339 Janus Weil <janus@gcc.gnu.org> 2340 2341 PR fortran/51976 2342 * gfortran.h (symbol_attribute): Add deferred_parameter attribute. 2343 * primary.c (build_actual_constructor): It is not an error if 2344 a missing component has the deferred_parameter attribute; 2345 equally, if one is given a value, it is an error. 2346 * resolve.c (resolve_fl_derived0): Remove error for deferred 2347 character length components. Add the hidden string length 2348 field to the structure. Give it the deferred_parameter 2349 attribute. 2350 * trans-array.c (duplicate_allocatable): Add a strlen field 2351 which is used as the element size if it is non-null. 2352 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a 2353 NULL to the new argument in duplicate_allocatable. 2354 (structure_alloc_comps): Set the hidden string length as 2355 appropriate. Use it in calls to duplicate_allocatable. 2356 (gfc_alloc_allocatable_for_assignment): When a deferred length 2357 backend declaration is variable, use that; otherwise use the 2358 string length from the expression evaluation. 2359 * trans-expr.c (gfc_conv_component_ref): If this is a deferred 2360 character length component, the string length should have the 2361 value of the hidden string length field. 2362 (gfc_trans_subcomponent_assign): Set the hidden string length 2363 field for deferred character length components. Allocate the 2364 necessary memory for the string. 2365 (alloc_scalar_allocatable_for_assignment): Same change as in 2366 gfc_alloc_allocatable_for_assignment above. 2367 * trans-stmt.c (gfc_trans_allocate): Likewise. 2368 * trans-intrinsic (size_of_string_in_bytes): Make non-static. 2369 * trans-types.c (gfc_get_derived_type): Set the tree type for 2370 a deferred character length component. 2371 * trans.c (gfc_deferred_strlen): New function. 2372 * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes. 2373 23742014-03-01 Mikael Morin <mikael@gcc.gnu.org> 2375 2376 PR fortran/60341 2377 * frontend-passes.c (optimize_comparison): Guard two union accesses 2378 with the corresponding tag checks. 2379 23802014-02-28 Janus Weil <janus@gcc.gnu.org> 2381 2382 PR fortran/60359 2383 * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy 2384 procedure for characters. 2385 23862014-02-21 Janus Weil <janus@gcc.gnu.org> 2387 2388 PR fortran/60302 2389 * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size' 2390 is successful. 2391 23922014-02-21 Janus Weil <janus@gcc.gnu.org> 2393 2394 PR fortran/60234 2395 * gfortran.h (gfc_build_class_symbol): Removed argument. 2396 * class.c (gfc_add_component_ref): Fix up missing vtype if necessary. 2397 (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always 2398 delayed now, except for unlimited polymorphics. 2399 (comp_is_finalizable): Procedure pointer components are not finalizable. 2400 * decl. (build_sym, build_struct, attr_decl1): Removed argument of 2401 'gfc_build_class_symbol'. 2402 * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp): 2403 Ditto. 2404 * symbol.c (gfc_set_default_type): Ditto. 2405 24062014-02-19 Janus Weil <janus@gcc.gnu.org> 2407 2408 PR fortran/60232 2409 * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful 2410 functions, which are used as procedure pointer target. 2411 24122014-02-18 Tobias Burnus <burnus@net-b.de> 2413 2414 PR fortran/49397 2415 * expr.c (gfc_check_pointer_assign): Add check for 2416 F2008Cor2, C729. 2417 * trans-decl.c (gfc_get_symbol_decl): Correctly generate external 2418 decl in a corner case. 2419 24202014-02-18 Janus Weil <janus@gcc.gnu.org> 2421 2422 PR fortran/60231 2423 * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy 2424 arguments to prevent ICE. 2425 24262014-02-17 Janus Weil <janus@gcc.gnu.org> 2427 2428 PR fortran/55907 2429 * resolve.c (build_default_init_expr): Don't initialize character 2430 variable if -fno-automatic is given. 2431 24322014-02-15 Mikael Morin <mikael@gcc.gnu.org> 2433 2434 PR fortran/59599 2435 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the 2436 number of arguments. 2437 24382014-02-11 Jakub Jelinek <jakub@redhat.com> 2439 2440 PR fortran/52370 2441 * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING 2442 on decl if sym->attr.optional. 2443 24442014-02-09 Paul Thomas <pault@gcc.gnu.org> 2445 2446 PR fortran/57522 2447 * resolve.c (resolve_assoc_var): Set the subref_array_pointer 2448 attribute for the 'associate-name' if necessary. 2449 * trans-stmt.c (trans_associate_var): If the 'associate-name' 2450 is a subref_array_pointer, assign the element size of the 2451 associate variable to 'span'. 2452 24532014-02-09 Paul Thomas <pault@gcc.gnu.org> 2454 2455 PR fortran/59026 2456 * trans-expr.c (gfc_conv_procedure_call): Pass the value of the 2457 actual argument to a formal argument with the value attribute 2458 in an elemental procedure. 2459 24602014-02-08 Janus Weil <janus@gcc.gnu.org> 2461 Mikael Morin <mikael.morin@gcc.gnu.org> 2462 2463 PR fortran/58470 2464 * class.c (generate_finalization_wrapper): Assert that proc_tree has 2465 been set in gfc_resolve_finalizers. 2466 * resolve.c (resolve_fl_derived0): Remove unnecessary call to 2467 gfc_is_finalizable. 2468 24692014-02-07 Benno Schulenberg <bensberg@justemail.net> 2470 2471 PR translation/52289 2472 * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word 2473 in an error message. 2474 24752014-02-02 Mikael Morin <mikael@gcc.gnu.org> 2476 2477 PR fortran/57033 2478 * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer 2479 dereference. 2480 24812014-02-01 Paul Thomas <pault@gcc.gnu.org> 2482 2483 PR fortran/59906 2484 * trans-stmt.c (gfc_add_loop_ss_code): In the case of character 2485 SS_REFERENCE, use gfc_conv_string_parameter to ensure that a 2486 pointer to the string is stored. 2487 * trans-expr.c (gfc_conv_expr_reference): Likewise, use 2488 gfc_conv_string_parameter to ensure that a pointer to is passed 2489 to the elemental function. 2490 24912014-01-28 Paul Thomas <pault@gcc.gnu.org> 2492 2493 PR fortran/59414 2494 * trans-stmt.c (gfc_trans_allocate): Before the pointer 2495 assignment to transfer the source _vptr to a class allocate 2496 expression, the final class reference should be exposed. The 2497 tail that includes the _data and array references is stored. 2498 This reduced expression is transferred to 'lhs' and the _vptr 2499 added. Then the tail is restored to the allocate expression. 2500 25012014-01-26 Mikael Morin <mikael@gcc.gnu.org> 2502 2503 PR fortran/58007 2504 * module.c (read_module): Assert for component name correctness. 2505 25062014-01-18 Mikael Morin <mikael@gcc.gnu.org> 2507 2508 PR fortran/58007 2509 * module.c (MOD_VERSION): Bump. 2510 (fp2, find_pointer2): Remove. 2511 (mio_component_ref): Don't forcedfully set the containing derived type 2512 symbol for loading. Remove unused argument. 2513 (mio_ref): Update caller 2514 (mio_symbol): Dump component list earlier. 2515 (skip_list): New argument nest_level. Initialize level with the new 2516 argument. 2517 (read_module): Add forced pointer components association for derived 2518 type symbols. 2519 25202014-01-12 Janus Weil <janus@gcc.gnu.org> 2521 2522 PR fortran/58026 2523 * decl.c (gfc_match_data_decl): Improve error recovery. 2524 25252014-01-09 Tobias Burnus <burnus@net-b.de> 2526 2527 * cpp.c (gfc_cpp_handle_option): Add missing break. 2528 * trans-io.c (transfer_expr): Silence unused value warning. 2529 25302014-01-08 Janus Weil <janus@gcc.gnu.org> 2531 2532 PR fortran/58182 2533 * resolve.c (gfc_verify_binding_labels): Modify order of checks. 2534 25352014-01-06 Janus Weil <janus@gcc.gnu.org> 2536 2537 PR fortran/59589 2538 * class.c (comp_is_finalizable): New function to dermine if a given 2539 component is finalizable. 2540 (finalize_component, generate_finalization_wrapper): Use it. 2541 25422014-01-06 Janus Weil <janus@gcc.gnu.org> 2543 2544 PR fortran/59023 2545 PR fortran/59662 2546 * resolve.c (resolve_global_procedure): Don't apply to c-binding 2547 procedures. 2548 (gfc_verify_binding_labels): Remove duplicate line. 2549 25502014-01-04 Janus Weil <janus@gcc.gnu.org> 2551 2552 PR fortran/59547 2553 * class.c (add_proc_comp): Copy pure attribute. 2554 25552014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 2556 2557 Update copyright years 2558 25592014-01-02 Tobias Burnus <burnus@net-b.de> 2560 2561 * gfortranspec.c (lang_specific_driver): Update copyright notice 2562 dates. 2563 * gfc-internals.texi: Bump @copying's copyright year. 2564 * gfortran.texi: Ditto. 2565 * intrinsic.texi: Ditto. 2566 * invoke.texi: Ditto. 2567 25682014-01-02 Janus Weil <janus@gcc.gnu.org> 2569 2570 PR fortran/59654 2571 * resolve.c (resolve_typebound_procedures): No need to create the vtab 2572 here. 2573 2574Copyright (C) 2014 Free Software Foundation, Inc. 2575 2576Copying and distribution of this file, with or without modification, 2577are permitted in any medium without royalty provided the copyright 2578notice and this notice are preserved. 2579