12008-12-31 Daniel Franke <franke.daniel@gmail.com> 2 3 * check.c (dim_rank_check): Fixed checking of dimension argument 4 if array is of type EXPR_ARRAY. 5 62008-12-22 Paul Thomas <pault@gcc.gnu.org> 7 8 PR fortran/38602 9 * trans-decl.c (init_intent_out_dt): Allow for optional args. 10 112008-12-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> 12 13 PR fortran/38398 14 * io.c: Add error checks for g0 formatting and provide adjustment of 15 error loci for improved error messages. 16 172008-12-21 Arjen Markus <arjen.markus@wldelft.nl> 18 Daniel Kraft <d@domob.eu> 19 20 PR fortran/37605 21 * gfortran.texi: Fixed some typos and some minor style improvements. 22 * intrinsic.texi: Some clarifications and typo-fixes. 23 * invoke.texi: Better documenation of the behaviour of the 24 -fdefault-*-8 options and some other fixes. 25 262008-12-18 Daniel Kraft <d@domob.eu> 27 28 PR fortran/31822 29 * gfortran.h (gfc_check_same_strlen): Made public. 30 * trans.h (gfc_trans_same_strlen_check): Made public. 31 * check.c (gfc_check_same_strlen): Made public and adapted error 32 message output to be useful not only for intrinsics. 33 (gfc_check_merge): Adapt to gfc_check_same_strlen change. 34 * expr.c (gfc_check_pointer_assign): Use gfc_check_same_strlen for 35 string length compile-time check. 36 * trans-expr.c (gfc_trans_pointer_assignment): Add runtime-check for 37 equal string lengths using gfc_trans_same_strlen_check. 38 * trans-intrinsic.c (gfc_trans_same_strlen_check): Renamed and made 39 public from conv_same_strlen_check. 40 (gfc_conv_intrinsic_merge): Adapted accordingly. 41 422008-12-17 Daniel Kraft <d@domob.eu> 43 44 PR fortran/38137 45 * trans-intrinsic.c (conv_same_strlen_check): New method. 46 (gfc_conv_intrinsic_merge): Call it here to actually do the check. 47 482008-12-15 Mikael Morin <mikael@gcc.gnu.org> 49 50 PR fortran/38487 51 * dependency.c (gfc_is_data_pointer): New function. 52 (gfc_check_argument_var_dependency): Disable the warning 53 in the pointer case. 54 (gfc_check_dependency): Use gfc_is_data_pointer. 55 562008-12-15 Mikael Morin <mikael@gcc.gnu.org> 57 58 PR fortran/38113 59 * error.c (show_locus): Start counting columns at 0. 60 * primary.c (match_actual_arg): Eat spaces 61 before copying the current locus. 62 (match_variable): Copy the locus before matching. 63 642008-12-14 Paul Thomas <pault@gcc.gnu.org> 65 66 PR fortran/35937 67 * trans-expr.c (gfc_finish_interface_mapping): Fold convert the 68 character length to gfc_charlen_type_node. 69 702008-12-12 Daniel Franke <franke.daniel@gmail.com> 71 72 PR fortran/36355 73 * check.c (gfc_check_matmul): Fixed error message for invalid 74 types to correctly identify the offending argument, added check 75 for mismatching types. 76 772008-12-11 Richard Guenther <rguenther@suse.de> 78 79 * Make-lang.in (install-finclude-dir): Use correct mode argument 80 for mkinstalldirs. 81 822008-12-09 Daniel Franke <franke.daniel@gmail.com> 83 84 PR fortran/36376 85 PR fortran/37468 86 * lang-specs.h: Pass on -i* options to f951 to (probably) report 87 them as unknown. Duplicate gcc.c (cpp_options), but omit 88 -fpch-preprocess on -save-temps. 89 902008-12-09 Daniel Franke <franke.daniel@gmail.com> 91 92 PR fortran/36457 93 * lang.opt: Added option idirafter. 94 * cpp.h (gfc_cpp_add_include_path_after): New prototype. 95 * cpp.c (gfc_cpp_handle_option): Recognize and handle OPT_dirafter. 96 (gfc_cpp_add_include_path_after): New, adds user-defined search path 97 after any other paths. 98 * invoke.texi (idirafter): New. 99 (no-range-check): Fixed entry in option-index. 100 1012008-12-09 Mikael Morin <mikael@gcc.gnu.org> 102 103 PR fortran/37469 104 * expr.c (find_array_element): Simplify array bounds. 105 Assert that both bounds are constant expressions. 106 1072008-12-09 Mikael Morin <mikael@gcc.gnu.org> 108 109 PR fortran/35983 110 * trans-expr.c (gfc_trans_subcomponent_assign): 111 Add se's pre and post blocks to current block. 112 (gfc_trans_structure_assign): Remove specific handling 113 of C_NULL_PTR and C_NULL_FUNPTR. 114 1152008-12-06 Jerry DeLisle <jvdelisle@gcc.gnu.org> 116 117 PR fortran/38425 118 * io.c (check_io_constraints): Check constraints on REC=, POS=, and 119 internal unit with POS=. Fix punctuation on a few error messages. 120 1212008-12-06 Janus Weil <janus@gcc.gnu.org> 122 123 PR fortran/38415 124 * expr.c (gfc_check_pointer_assign): Added a check for abstract 125 interfaces in procedure pointer assignments, removed check involving 126 gfc_compare_interfaces until PR38290 is fixed completely. 127 1282008-12-05 Jerry DeLisle <jvdelisle@gcc.gnu.org> 129 130 PR fortran/38291 131 * io.c (match_dt_element): Use dt->pos in matcher. 132 (gfc_free_dt): Free dt->pos after use. 133 (gfc_resolve_dt): Use dt->pos in resolution of stream position tag. 134 1352008-12-05 Sebastian Pop <sebastian.pop@amd.com> 136 137 PR bootstrap/38262 138 * Make-lang.in (f951): Add BACKENDLIBS, remove GMPLIBS. 139 1402008-12-02 Jakub Jelinek <jakub@redhat.com> 141 Diego Novillo <dnovillo@google.com> 142 143 * Make-lang.in (install-finclude-dir): Use mkinstalldirs 144 and don't remove the finclude directory beforehand. 145 1462008-12-02 Janus Weil <janus@gcc.gnu.org> 147 148 PR fortran/36704 149 PR fortran/38290 150 * decl.c (match_result): Result may be a standard variable or a 151 procedure pointer. 152 * expr.c (gfc_check_pointer_assign): Additional checks for procedure 153 pointer assignments. 154 * primary.c (gfc_match_rvalue): Bugfix for procedure pointer 155 assignments. 156 * resolve.c (resolve_function): Check for attr.subroutine. 157 * symbol.c (check_conflict): Addtional checks for RESULT statements. 158 * trans-types.c (gfc_sym_type,gfc_get_function_type): Support procedure 159 pointers as function result. 160 1612008-12-01 Mikael Morin <mikael@gcc.gnu.org> 162 163 PR fortran/38252 164 * parse.c (parse_spec): Skip statement order check in case 165 of a CONTAINS statement. 166 1672008-11-30 Daniel Kraft <d@domob.eu> 168 169 PR fortran/37779 170 * gfortran.h (struct gfc_entry_list): Fixed typo in comment. 171 * resolve.c (is_illegal_recursion): New method. 172 (resolve_procedure_expression): Use new is_illegal_recursion instead of 173 direct check and handle function symbols correctly. 174 (resolve_actual_arglist): Removed useless recursion check. 175 (resolve_function): Use is_illegal_recursion instead of direct check. 176 (resolve_call): Ditto. 177 1782008-11-29 Eric Botcazou <ebotcazou@adacore.com> 179 180 * trans-array.c (gfc_conv_array_parameter): Guard union access. 181 1822008-11-29 Janus Weil <janus@gcc.gnu.org> 183 Mikael Morin <mikael@gcc.gnu.org> 184 185 PR fortran/38289 186 PR fortran/38290 187 * decl.c (match_procedure_decl): Handle whitespaces. 188 * resolve.c (resolve_specific_s0): Bugfix in check for intrinsic 189 interface. 190 1912008-11-25 H.J. Lu <hongjiu.lu@intel.com> 192 193 * module.c (gfc_dump_module): Report error on unlink only if 194 errno != ENOENT. 195 1962008-11-25 Mikael Morin <mikael@gcc.gnu.org> 197 198 PR fortran/36463 199 * expr.c (replace_symbol): Don't replace the symtree 200 if the expresion is an intrinsic function. Don't create 201 non-existent symtrees. Use symbol's name instead of symtree's, 202 different in case of module procedure dummy arguments. 203 2042008-11-25 Jan Kratochvil <jan.kratochvil@redhat.com> 205 206 PR fortran/38248 207 * module.c (gfc_dump_module): Check rename/unlink syscalls errors. 208 2092008-11-25 Eric Botcazou <ebotcazou@adacore.com> 210 211 PR fortran/37319 212 * parse.c (match_deferred_characteristics): Make sure 'name' is 213 initialized before reading it. 214 2152008-11-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> 216 217 PR fortran/37803 218 * arith.c (gfc_check_real_range): Add mpfr_check_range. 219 * simplify.c (gfc_simplify_nearest): Add mpfr_check_range. 220 2212008-11-24 Mikael Morin <mikael@gcc.gnu.org> 222 223 PR fortran/38184 224 * simplify.c (is_constant_array_expr): Return true instead of false 225 if the array constructor is empty. 226 2272008-11-24 Daniel Kraft <d@domob.eu> 228 229 PR fortran/37779 230 * resolve.c (resolve_procedure_expression): New method. 231 (resolve_variable): Call it. 232 (resolve_actual_arglist): Call gfc_resolve_expr for procedure arguments. 233 2342008-11-24 Paul Thomas <pault@gcc.gnu.org> 235 236 PR fortran/34820 237 * trans-expr.c (gfc_conv_function_call): Remove all code to 238 deallocate intent out derived types with allocatable 239 components. 240 (gfc_trans_assignment_1): An assignment from a scalar to an 241 array of derived types with allocatable components, requires 242 a deep copy to each array element and deallocation of the 243 converted rhs expression afterwards. 244 * trans-array.c : Minor whitespace. 245 * trans-decl.c (init_intent_out_dt): Add code to deallocate 246 allocatable components of derived types with intent out. 247 (generate_local_decl): If these types are unused, set them 248 referenced anyway but allow the uninitialized warning. 249 250 PR fortran/34143 251 * trans-expr.c (gfc_trans_subcomponent_assign): If a conversion 252 expression has a null data pointer argument, nullify the 253 allocatable component. 254 255 PR fortran/32795 256 * trans-expr.c (gfc_trans_subcomponent_assign): Only nullify 257 the data pointer if the source is not a variable. 258 2592008-11-23 Paul Thomas <pault@gcc.gnu.org> 260 261 PR fortran/37735 262 * trans-array.c (structure_alloc_comps): Do not duplicate the 263 descriptor if this is a descriptorless array! 264 2652008-11-12 Tobias Burnus <burnus@net-b.de> 266 267 PR fortran/38160 268 * trans-types.c (gfc_validate_c_kind): Remove function. 269 * decl.c (gfc_match_kind_spec): Add C kind parameter check. 270 (verify_bind_c_derived_type): Remove gfc_validate_c_kind call. 271 (verify_c_interop_param): Update call. 272 * gfortran.h (verify_bind_c_derived_type): Update prototype. 273 (gfc_validate_c_kind): Remove. 274 * symbol.c (verify_bind_c_derived_type): Update verify_c_interop call. 275 * resolve.c (gfc_iso_c_func_interface): Ditto. 276 2772008-11-22 Jakub Jelinek <jakub@redhat.com> 278 279 PR libfortran/37839 280 * trans-io.c (gfc_build_io_library_fndecls): Decrease pad size back 281 to 16 pointers plus 32 integers. Don't use max integer kind 282 alignment, only gfc_intio_kind's alignment. 283 (gfc_trans_inquire): Only set flags2 if mask2 is non-zero. 284 * ioparm.def: Fix order, bitmasks and types of inquire round, sign 285 and pending fields. Move u in dt before id. 286 * io.c (gfc_free_inquire): Free decimal and size exprs. 287 (match_inquire_element): Match size instead of matching blank twice. 288 (gfc_resolve_inquire): Resolve size. 289 2902008-11-20 Jakub Jelinek <jakub@redhat.com> 291 292 PR middle-end/29215 293 * trans-array.c (trans_array_constructor_value, 294 gfc_build_constant_array_constructor): Fill in TREE_PURPOSE. 295 296 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use 297 gfc_index_one_node. 298 (gfc_conv_intrinsic_size): Use gfc_index_{zero,one}_node. 299 300 PR fortran/38181 301 * trans-intrinsic.c (gfc_conv_intrinsic_size): Inline 2 argument 302 size if the second argument is not optional and one argument size 303 for rank 1 arrays. 304 3052008-11-19 Paul Thomas <pault@gcc.gnu.org> 306 307 PR fortran/38171 308 * module.c (load_equiv): Regression fix; check that equivalence 309 members come from the same module only. 310 3112008-11-16 Mikael Morin <mikael@gcc.gnu.org> 312 313 PR fortran/35681 314 * dependency.c (gfc_check_argument_var_dependency): Add 315 elemental check flag. Issue a warning if we find a dependency 316 but don't generate a temporary. Add the case of an elemental 317 function call as actual argument to an elemental procedure. 318 Add the case of an operator expression as actual argument 319 to an elemental procedure. 320 (gfc_check_argument_dependency): Add elemental check flag. 321 Update calls to gfc_check_argument_var_dependency. 322 (gfc_check_fncall_dependency): Add elemental check flag. 323 Update call to gfc_check_argument_dependency. 324 * trans-stmt.c (gfc_trans_call): Make call to 325 gfc_conv_elemental_dependencies unconditional, but with a flag 326 whether we should check dependencies between variables. 327 (gfc_conv_elemental_dependencies): Add elemental check flag. 328 Update call to gfc_check_fncall_dependency. 329 * trans-expr.c (gfc_trans_arrayfunc_assign): Update call to 330 gfc_check_fncall_dependency. 331 * resolve.c (find_noncopying_intrinsics): Update call to 332 gfc_check_fncall_dependency. 333 * dependency.h (enum gfc_dep_check): New enum. 334 (gfc_check_fncall_dependency): Update prototype. 335 3362008-11-16 Mikael Morin <mikael@gcc.gnu.org> 337 338 PR fortran/37992 339 * gfortran.h (gfc_namespace): Added member old_cl_list, 340 backup of cl_list. 341 (gfc_free_charlen): Added prototype. 342 * symbol.c (gfc_free_charlen): New function. 343 (gfc_free_namespace): Use gfc_free_charlen. 344 * parse.c (next_statement): Backup gfc_current_ns->cl_list. 345 (reject_statement): Restore gfc_current_ns->cl_list. 346 Free cl_list's elements before dropping them. 347 3482008-11-16 Tobias Burnus <burnus@net-b.de> 349 350 PR fortran/38095 351 * trans-expr.c (gfc_map_intrinsic_function): Fix pointer access. 352 3532008-11-16 Paul Thomas <pault@gcc.gnu.org> 354 355 PR fortran/38119 356 * trans-array.c (gfc_trans_create_temp_array): Set the 357 loop->from to zero and the renormalisation of loop->to for all 358 dimensions. 359 3602008-11-16 Paul Thomas <pault@gcc.gnu.org> 361 362 PR fortran/37926 363 * trans-expr.c (gfc_free_interface_mapping): Null sym->formal 364 (gfc_add_interface_mapping): Copy the pointer to the formal 365 arglist, rather than using copy_formal_args - fixes regression. 366 3672008-11-15 Paul Thomas <pault@gcc.gnu.org> 368 369 PR fortran/37926 370 * trans-expr.c (gfc_add_interface_mapping): Transfer the formal 371 arglist and the always_explicit attribute if the dummy arg is a 372 procedure. 373 3742008-11-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> 375 376 PR fortran/37988 377 * io.c (enum format_token): For readability replace FMT_POS with FMT_T, 378 FMT_TL, and FMT_TR. (format_lex): Use new enumerators. (check_format): 379 Add check for missing positive integer. 380 3812008-10-14 Paul Thomas <pault@gcc.gnu.org> 382 383 PR fortran/38033 384 * trans-array.c (gfc_trans_create_temp_array): Stabilize the 385 'to' expression. 386 (gfc_conv_loop_setup): Use the end expression for the loop 'to' 387 if it is available. 388 3892008-11-12 Jakub Jelinek <jakub@redhat.com> 390 391 PR target/35366 392 PR fortran/33759 393 * trans-const.c (gfc_conv_constant_to_tree): Warn when 394 converting an integer outside of LOGICAL's range to 395 LOGICAL. 396 * trans-intrinsic.c (gfc_conv_intrinsic_function, 397 gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer): 398 Use INTEGER_TYPE instead of BOOLEAN_TYPE for TRANSFER as 399 argument of another TRANSFER. 400 4012008-11-12 Tobias Burnus <burnus@net-b.de> 402 403 PR fortran/38065 404 * resolve.c (resolve_fntype): Fix private derived type checking. 405 4062008-11-09 Paul Thomas <pault@gcc.gnu.org> 407 408 PR fortran/37836 409 * intrinsic.c (add_functions): Reference gfc_simplify._minval 410 and gfc_simplify_maxval. 411 * intrinsic.h : Add prototypes for gfc_simplify._minval and 412 gfc_simplify_maxval. 413 * simplify.c (min_max_choose): New function extracted from 414 simplify_min_max. 415 (simplify_min_max): Call it. 416 (simplify_minval_maxval, gfc_simplify_minval, 417 gfc_simplify_maxval): New functions. 418 4192008-11-04 Paul Thomas <pault@gcc.gnu.org> 420 421 PR fortran/37597 422 * parse.c (gfc_fixup_sibling_symbols ): Fixup contained, even 423 when symbol not found. 424 4252008-11-03 Tobias Burnus <burnus@net-b.de> 426 427 PR fortran/37821 428 * cpp.c (gfc_cpp_add_include_path): Use BRACKET. 429 * scanner.c (add_path_to_list): Argument to add at head. 430 (gfc_add_include_path): Add new argument. 431 (gfc_add_intrinsic_modules_path) Update call. 432 (load_file): Print filename/line in the error message. 433 * gfortran.h (gfc_add_include_path): Update prototype. 434 * options.c (gfc_post_options,gfc_handle_module_path_options, 435 gfc_handle_option): Update call. 436 * lang-spec.h (F951_OPTIONS): Don't insert include path twice. 437 438 * arith.c (arith_error): Add -fno-range-error to the message. 439 4402008-11-03 Paul Thomas <pault@gcc.gnu.org> 441 442 PR fortran/37445 443 * resolve.c (resolve_actual_arglist ): Correct comparison of 444 FL_VARIABLE with e->expr_type. 445 (resolve_call): Check that host association is correct. 446 (resolve_actual_arglist ): Remove return is old_sym is use 447 associated. Only reparse expression if old and new symbols 448 have different types. 449 450 PR fortran/PR35769 451 * resolve.c (gfc_resolve_assign_in_forall): Change error to a 452 warning. 453 4542008-11-01 Janus Weil <janus@gcc.gnu.org> 455 456 PR fortran/36426 457 * expr.c (replace_symbol): Replace all symbols which lie in the 458 formal namespace of the interface and copy their attributes. 459 * resolve.c (resolve_symbol): Add charlen to namespace. 460 4612008-11-01 Steven G. Kargl <kargls@comcast.net> 462 463 PR fortran/19925 464 * trans-array.c (gfc_trans_array_constructor_value): Fix comment. 465 (gfc_conv_array_initializer): Convert internal_error() to gfc_error_now. 466 * array.c: Remove GFC_MAX_AC_EXPAND macro. 467 (gfc_expand_constructor): Use gfc_option.flag_max_array_constructor. 468 * gfortran.h (gfc_option): Add flag_max_array_constructor member. 469 * lang.opt: Add -fmax-array-constructor option. 470 * expr.c (gfc_match_init_expr): Fix error message to mention new option. 471 * invoke.texi: Document new option. 472 * options.c (gfc_init_options): Set default value for new option. 473 (gfc_handle_option): Deal with commandline. 474 4752008-11-01 Daniel Kraft <d@domob.eu> 476 477 PR fortran/35681 478 * gfortran.h (struct gfc_code): New field `resolved_isym'. 479 * trans.h (gfc_build_memcpy_call): Made public. 480 * trans-array.h (gfc_trans_create_temp_array): New argument `initial'. 481 * intrinsic.c (gfc_intrinsic_sub_interface): Set resolved_isym. 482 * iresolve.c (create_formal_for_intents): New helper method. 483 (gfc_resolve_mvbits): Put dummy formal arglist on resolved_sym. 484 * resolve.c (resolve_call): Initialize resolved_isym to NULL. 485 * trans-array.c (gfc_trans_allocate_array_storage): New argument 486 `initial' to allow initializing the allocated storage to some initial 487 value copied from another array. 488 (gfc_trans_create_temp_array): Allow initialization of the temporary 489 with a copy of some other array by using the new extension. 490 (gfc_trans_array_constructor): Pass NULL_TREE for initial argument. 491 (gfc_conv_loop_setup): Ditto. 492 * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Ditto. 493 * trans-expr.c (gfc_conv_function_call): Ditto. 494 (gfc_build_memcpy_call): Made public. 495 * trans-stmt.c (gfc_conv_elemental_dependencies): Initialize created 496 temporary for INTENT(INOUT) arguments to the value of the mirrored 497 array and clean up the temporary as very last intructions in the created 498 block. 499 * trans.c (gfc_trans_code): For EXEC_CALL, see if we have a MVBITS call 500 and enable elemental dependency checking if we have. 501 5022008-11-01 Janus Weil <janus@gcc.gnu.org> 503 504 PR fortran/36322 505 PR fortran/36463 506 * gfortran.h: New function gfc_expr_replace_symbols. 507 * decl.c (match_procedure_decl): Increase reference count for interface. 508 * expr.c: New functions replace_symbol and gfc_expr_replace_symbols. 509 * resolve.c (resolve_symbol): Correctly copy array spec and char len 510 of PROCEDURE declarations from their interface. 511 * symbol.c (gfc_get_default_type): Enhanced error message. 512 (copy_formal_args): Call copy_formal_args recursively for arguments. 513 * trans-expr.c (gfc_conv_function_call): Bugfix. 514 5152008-11-01 Dennis Wassel <dennis.wassel@gmail.com> 516 517 PR fortran/37159 518 * fortran/check.c (gfc_check_random_seed): Check PUT size 519 at compile time. 520 5212008-10-31 Mikael Morin <mikael@gcc.gnu.org> 522 523 PR fortran/35840 524 * expr.c (gfc_reduce_init_expr): New function, containing checking code 525 from gfc_match_init_expr, so that checking can be deferred. 526 (gfc_match_init_expr): Use gfc_reduce_init_expr. 527 * io.c (check_io_constraints): Use gfc_reduce_init_expr instead of 528 checking that the expression is a constant. 529 * match.h (gfc_reduce_init_expr): Prototype added. 530 5312008-10-31 Mikael Morin <mikael@gcc.gnu.org> 532 533 PR fortran/35820 534 * resolve.c (gfc_count_forall_iterators): New function. 535 (gfc_resolve_forall): Use gfc_count_forall_iterators to evaluate 536 the needed memory amount to allocate. Don't forget to free allocated 537 memory. Add an assertion to check for memory leaks. 538 5392008-10-30 Steven G. Kargl <kargls@comcast.net> 540 541 PR fortran/37930 542 * fortran/arith.c (gfc_mpfr_to_mpz): Test for NaN and Inf values. 543 Remove stale comment and kludge code for MPFR 2.0.1 and older. 544 (gfc_real2int): Error on conversion of NaN or Inf. 545 (gfc_complex2int): Ditto. 546 * fortran/arith.h: Update mpfr_to_mpz prototype. 547 * fortran/simplify.c (gfc_simplify_ceiling, gfc_simplify_floor, 548 gfc_simplify_ifix, gfc_simplify_idint, simplify_nint): Update function 549 calls to include locus. 550 5512008-10-30 Mikael Morin <mikael@gcc.gnu.org> 552 553 PR fortran/37903 554 * trans-array.c (gfc_trans_create_temp_array): If n is less 555 than the temporary dimension, assert that loop->from is 556 zero (reverts to earlier versions). If there is at least one 557 null loop->to[n], it is a callee allocated array so set the 558 size to NULL and break. 559 (gfc_trans_constant_array_constructor): Set the offset to zero. 560 (gfc_trans_array_constructor): Remove loop shifting around the 561 temporary creation. 562 (gfc_conv_loop_setup): Prefer zero-based descriptors if 563 possible. Calculate the translation from loop variables to 564 array indices if an array constructor. 565 5662008-10-30 Mikael Morin <mikael@gcc.gnu.org> 567 568 PR fortran/37749 569 * trans-array.c (gfc_trans_create_temp_array): If size is NULL 570 use the array bounds for loop->to. 571 5722008-10-28 Tobias Burnus <burnus@net-b.de> 573 574 * intrinsic.texi: Update OpenMP section for OMPv3. 575 5762008-10-24 Jakub Jelinek <jakub@redhat.com> 577 578 * Make-lang.in (check-f95-subtargets, check-fortran-subtargets): New 579 aliases for check-gfortran-subtargets. 580 (lang_checks_parallelized): Add check-gfortran. 581 (check_gfortran_parallelize): New variable. 582 5832008-10-19 Paul Thomas <pault@gcc.gnu.org> 584 585 PR fortran/37723 586 * dependency.c (gfc_dep_resolver ): If we find equal array 587 element references, go on to the next reference. 588 5892008-10-16 Daniel Kraft <d@domob.eu> 590 591 * resolve.c (resolve_elemental_actual): Handle calls to intrinsic 592 subroutines correctly. 593 5942008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 595 596 * simplify.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals. 597 5982008-10-12 Daniel Kraft <d@domob.eu> 599 600 PR fortran/37688 601 * expr.c (gfc_expr_check_typed): Extend permission of untyped 602 expressions to both top-level variable and basic arithmetic expressions. 603 6042008-10-12 Paul Thomas <pault@gcc.gnu.org> 605 606 PR fortran/37787 607 * dependency.c (gfc_are_equivalenced_arrays): Look in symbol 608 namespace rather than current namespace, if it is available. 609 6102008-10-12 Steven G. Kargl <kargls@comcast.net> 611 612 PR fortran/37792 613 * fortran/resolve.c (resolve_fl_variable): Simplify the 614 initializer if there is one. 615 6162008-10-11 Paul Thomas <pault@gcc.gnu.org> 617 618 PR fortran/37794 619 * module.c (check_for_ambiguous): Remove redundant code. 620 6212008-10-09 Daniel Kraft <d@domob.eu> 622 623 PR fortran/35723 624 * gfortran.h (gfc_suppress_error): Removed from header. 625 (gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods. 626 * array.c (gfc_array_size): Use new gfc_push/pop_suppress_errors 627 instead of directly changing gfc_suppress_error. 628 * intrinsic.c (gfc_intrinsic_func_interface): Ditto. 629 (gfc_intrinsic_sub_interface): Ditto. 630 * error.c (suppress_errors): Made static from `gfc_suppress_error'. 631 (gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods. 632 (gfc_notify_std), (gfc_error): Use new static name of global. 633 * expr.c (check_arglist), (check_references): New methods. 634 (check_restricted): Check arglists and references of EXPR_FUNCTIONs 635 and EXPR_VARAIBALEs, respectively. Allow PARAMETER symbols. 636 6372008-10-07 Jakub Jelinek <jakub@redhat.com> 638 639 * f95-lang.c (poplevel): Don't clear BLOCK_VARS if functionbody. 640 * trans-decl.c (gfc_build_qualified_array): Build accurate debug type 641 even if nest. 642 (build_entry_thunks, gfc_generate_function_code, 643 gfc_generate_constructors): Ensure DECL_SAVED_TREE is a BIND_EXPR 644 with DECL_INITIAL as its BLOCK. 645 6462008-10-05 Paul Thomas <pault@gcc.gnu.org> 647 648 PR fortran/35680 649 * gfortran.h : Add 'error' bit field to gfc_expr structure. 650 * expr.c (check_inquiry): When checking a restricted expression 651 check that arguments are either variables or restricted. 652 (check_restricted): Do not emit error if the expression has 653 'error' set. Clean up detection of host-associated variable. 654 6552008-10-05 Daniel Kraft <d@domob.eu> 656 657 PR fortran/37638 658 * gfortran.h (struct gfc_typebound_proc): New flag `error'. 659 * resolve.c (update_arglist_pass): Added assertion. 660 (update_compcall_arglist): Fail early for erraneous procedures to avoid 661 confusion later. 662 (resolve_typebound_generic_call): Ignore erraneous specific targets 663 and added assertions. 664 (resolve_typebound_procedure): Set new `error' flag. 665 6662008-10-04 Paul Thomas <pault@gcc.gnu.org> 667 668 PR fortran/37706 669 * module.c (load_equiv): Check the module before negating the 670 unused flag. 671 6722008-10-02 Steven Bosscher <steven@gcc.gnu.org> 673 674 PR fortran/37635 675 * intrinsic.c (add_functions): Add LEADZ and TRAILZ as generics. 676 * intrinsic.h (gfc_simplify_leadz, gfc_simplify_trailz): New protos. 677 * gfortran.h <enum gfc_isym_id>: (GFC_ISYM_LEADZ, GFC_ISYM_TRAILZ): New. 678 * f95-lang (gfc_init_builtin_functions): Add BUILT_IN_CLZ, 679 BUILT_IN_CLZL, BUILT_IN_CLZLL, BUILT_IN_CTZ, BUILT_IN_CTZL, and 680 BUILT_IN_CTZLL. 681 * trans-intrinsic.c (gfc_conv_intrinsic_leadz, 682 gfc_conv_intrinsic_trails): New code-generation functions for LEADZ 683 and TRAILZ intrinsics. 684 (gfc_conv_intrinsic_function): Use them 685 * intrinsic.texi: Add documentation for LEADZ and TRAILZ. 686 * simplify.c (gfc_simplify_leadz, gfc_simplify_trailz): New functions. 687 6882008-09-30 Janus Weil <janus@gcc.gnu.org> 689 690 PR fortran/36592 691 * symbol.c (check_conflict): If a symbol in a COMMON block is a 692 procedure, it must be a procedure pointer. 693 (gfc_add_in_common): Symbols in COMMON blocks may be variables or 694 procedure pointers. 695 * trans-types.c (gfc_sym_type): Make procedure pointers in COMMON 696 blocks work. 697 6982008-09-25 Jerry DeLisle <jvdelisle@gcc.gnu.org 699 700 PR fortran/37498 701 * trans-io.c (build_dt): Revert previous patch.. 702 * ioparm.def: Delete IOPARM_dt_f2003. 703 7042008-09-25 Tobias Burnus <burnus@net-b.de> 705 706 PR fortran/37504 707 * expr.c (gfc_check_pointer_assign): Allow assignment of 708 protected pointers. 709 * match.c (gfc_match_assignment,gfc_match_pointer_assignment): 710 Remove unreachable code. 711 7122008-09-24 Tobias Burnus <burnus@net-b.de> 713 714 * options.c (set_default_std_flags,gfc_init_options): 715 Add comment: keep in sync with libgfortran. 716 7172008-09-24 Tobias Burnus <burnus@net-b.de> 718 719 PR fortran/37626 720 * trans-array.c (gfc_trans_deferred_array): Don't auto-deallocate 721 result variables. 722 7232008-09-23 Daniel Kraft <d@domob.eu> 724 725 PR fortran/37588 726 * gfortran.h (gfc_compare_actual_formal): Removed, made private. 727 (gfc_arglist_matches_symbol): New method. 728 * interface.c (compare_actual_formal): Made static. 729 (gfc_procedure_use): Use new name of compare_actual_formal. 730 (gfc_arglist_matches_symbol): New method. 731 (gfc_search_interface): Moved code partially to new 732 gfc_arglist_matches_symbol. 733 * resolve.c (resolve_typebound_generic_call): Resolve actual arglist 734 before checking against formal and use new gfc_arglist_matches_symbol 735 for checking. 736 (resolve_compcall): Set type-spec of generated expression. 737 7382008-09-23 Tobias Burnus <burnus@net-b.de> 739 740 PR fortran/37580 741 * expr.c (gfc_check_pointer_assign): Add checks for pointer 742 remapping. 743 7442008-09-22 Jerry DeLisle <jvdelisle@gcc.gnu.org 745 746 PR fortran/37498 747 * trans-io.c (gfc_build_io_library_fndecls): Bump pad size. 748 (build_dt): Set mask bit for IOPARM_dt_f2003. 749 * ioparm.def: Add IOPARM_dt_f2003. 750 7512008-09-22 Janus Weil <janus@gcc.gnu.org> 752 753 PR fortran/37486 754 * gfortran.h (gfc_option_t): New members flag_align_commons and 755 warn_align_commons. 756 * lang.opt: New options falign-commons and Walign-commons. 757 * invoke.texi: Documentation for new options. 758 * options.c (gfc_init_options): Initialize new options. 759 (gfc_handle_options): Handle new options. 760 * trans-common.c (translate_common): Implement new options. 761 (gfc_trans_common): Set correct locus. 762 7632008-09-21 Paul Thomas <pault@gcc.gnu.org> 764 765 PR fortran/37583 766 * decl.c (scalarize_intrinsic_call): Both subroutines and 767 functions can give a true for get_proc_mame's last argument so 768 remove the &&gfc_current_ns->proc_name->attr.function. 769 resolve.c (resolve_actual_arglist): Add check for recursion by 770 reference to procedure as actual argument. 771 7722008-09-21 Daniel Kraft <d@domob.eu> 773 774 PR fortran/35846 775 * trans.h (gfc_conv_string_length): New argument `expr'. 776 * trans-expr.c (flatten_array_ctors_without_strlen): New method. 777 (gfc_conv_string_length): New argument `expr' that is used in a new 778 special case handling if cl->length is NULL. 779 (gfc_conv_subref_array_arg): Pass expr to gfc_conv_string_length. 780 * trans-array.c (gfc_conv_expr_descriptor): Ditto. 781 (gfc_trans_auto_array_allocation): Pass NULL as new expr. 782 (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto. 783 (gfc_trans_deferred_array): Ditto. 784 (gfc_trans_array_constructor): Save and restore old values of globals 785 used for bounds checking. 786 * trans-decl.c (gfc_trans_dummy_character): Ditto. 787 (gfc_trans_auto_character_variable): Ditto. 788 7892008-09-21 Daniel Kraft <d@domob.eu> 790 791 * decl.c (match_procedure_in_type): Changed misleading error message 792 for not yet implemented PROCEDURE(interface) syntax. 793 7942008-09-18 Paul Thomas <pault@gcc.gnu.org> 795 796 PR fortran/35945 797 * resolve.c (resolve_fl_variable_derived): Remove derived type 798 comparison for use associated derived types. Host association 799 of a derived type will not arise if there is a local derived type 800 whose use name is the same. 801 802 PR fortran/36700 803 * match.c (gfc_match_call): Use the existing symbol even if 804 it is a function. 805 8062008-09-18 Daniel Kraft <d@domob.eu> 807 808 PR fortran/37507 809 * trans.h (gfc_trans_runtime_error): New method. 810 (gfc_trans_runtime_error_vararg): New method. 811 (gfc_allocate_array_with_status): New argument `expr' for locus/varname. 812 (gfc_deallocate_array_with_status): Ditto. 813 * trans-array.h (gfc_array_deallocate): Ditto. 814 * trans.c (gfc_trans_runtime_error): New method. 815 (gfc_trans_runtime_error_vararg): New method, moved parts of the code 816 from gfc_trans_runtime_check here. 817 (gfc_trans_runtime_error_check): Moved code partly to new method. 818 (gfc_call_malloc): Fix tab-indentation. 819 (gfc_allocate_array_with_status): New argument `expr' and call 820 gfc_trans_runtime_error for error reporting to include locus. 821 (gfc_deallocate_with_status): Ditto. 822 * trans-stmt.c (gfc_trans_deallocate): Pass expr as new argument. 823 * trans-array.c (gfc_array_allocate): Ditto. 824 (gfc_array_deallocate): New argument `expr', passed on. 825 (gfc_trans_dealloc_allocated): Pass NULL for expr. 826 * trans-openmp.c (gfc_omp_clause_default): Ditto. 827 8282008-09-18 Paul Thomas <pault@gcc.gnu.org> 829 830 PR fortran/37274 831 PR fortran/36374 832 * module.c (check_for_ambiguous): New function to test loaded 833 symbol for ambiguity with fixup symbol. 834 (read_module): Call check_for_ambiguous. 835 (write_symtree): Do not write the symtree for symbols coming 836 from an interface body. 837 838 PR fortran/36374 839 * resolve.c (count_specific_procs ): New function to count the 840 number of specific procedures with the same name as the generic 841 and emit appropriate errors for and actual argument reference. 842 (resolve_assumed_size_actual): Add new argument no_formal_args. 843 Correct logic around passing generic procedures as arguments. 844 Call count_specific_procs from two locations. 845 (resolve_function): Evaluate and pass no_formal_args. 846 (resolve call): The same and clean up a bit by using csym more 847 widely. 848 849 PR fortran/36454 850 * symbol.c (gfc_add_access): Access can be updated if use 851 associated and not private. 852 8532008-09-17 Jakub Jelinek <jakub@redhat.com> 854 855 PR fortran/37536 856 * trans-stmt.c (gfc_trans_do): Optimize integer type non-simple 857 do loop initialization. 858 8592008-09-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> 860 Tobias Burnus <burnus@net.b.de> 861 862 PR fortran/35840 863 * io.c (match_vtag): Add tag name to error message. 864 (match_out_tag): Cleanup whitespace. 865 (gfc_resolve_dt): Resolve id and async tags. 866 8672008-09-13 Daniel Kraft <d@domob.eu> 868 869 PR fortran/35770 870 * primary.c (gfc_match_varspec): Added missing type-spec clearing 871 after wrong implicit character typing. 872 8732008-09-12 Richard Guenther <rguenther@suse.de> 874 875 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Use 876 build_fold_addr_expr to properly mark the argument 877 addressable. 878 8792008-09-11 Daniel Kraft <d@domob.eu> 880 881 PR fortran/36214 882 * simplify.c (simplify_cmplx): Added linebreak to long line. 883 * target-memory.c (gfc_convert_boz): Fix indentation. 884 (gfc_interpret_float): Set mpfr precision to right value before 885 calling mpfr_init. 886 8872008-09-10 H.J. Lu <hongjiu.lu@intel.com> 888 889 * expr.c (find_array_element): Reformat comment. 890 8912008-09-10 H.J. Lu <hongjiu.lu@intel.com> 892 893 * expr.c (find_array_element): Reformat. 894 8952008-09-10 Tobias Burnus <burnus@net-b.de> 896 897 PR fortran/37420 898 * trans-decl.c (get_proc_pointer_decl): Fix -Wunused-variable. 899 9002008-09-09 Daniel Kraft <d@domob.eu> 901 902 PR fortran/37429 903 * resolve.c (expression_rank): Added assertion to guard against 904 EXPR_COMPCALL expressions. 905 (resolve_compcall): Set expression's rank from the target procedure's. 906 9072008-09-09 Daniel Kraft <d@domob.eu> 908 909 PR fortran/37411 910 * trans-array.c (gfc_conv_array_parameter): Added assertion that the 911 symbol has an array spec. 912 9132008-09-08 Daniel Kraft <d@domob.eu> 914 915 PR fortran/37199 916 * trans-expr.c (gfc_add_interface_mapping): Set new_sym->as. 917 (gfc_map_intrinsic_function): Added checks against NULL bounds in 918 array specs. 919 9202008-09-08 Tobias Burnus <burnus@net.b.de> 921 922 PR fortran/37400 923 * symbol.c (gfc_set_default_type): Copy char len. 924 9252008-09-06 Steven G. Kargl <kargls@comcast.net> 926 927 PR fortran/36153 928 * fortran/resolve.c (resolve_function): Shortcircuit for SIZE and 929 UBOUND if 2nd argument is KIND. 930 9312008-09-06 Steven G. Kargl <kargls@comcast.net> 932 933 PR fortran/33229 934 * resolve.c (resolve_function): An intrinsic subroutine should not be 935 called as a function. 936 9372008-09-05 Daniel Kraft <d@domob.eu> 938 939 PR fortran/35837 940 * resolve.c (resolve_types): Restore gfc_current_ns on exit. 941 * symbol.c (gfc_save_all): Removed blank line. 942 9432008-09-05 Daniel Kraft <d@domob.eu> 944 945 PR fortran/36746 946 * primary.c (gfc_match_rvalue): Removed logic to handle implicit 947 typing to a derived-type if a component reference is found. 948 (gfc_match_varspec): Moved it here. 949 9502008-09-04 Richard Guenther <rguenther@suse.de> 951 952 * trans-array.c (gfc_conv_array_parameter): Use correct types 953 in building COND_EXPRs. 954 * trans-expr.c (gfc_conv_missing_dummy): Likewise. 955 * trans-intrinsics.c (gfc_conv_intrinsic_merge): Likewise. 956 9572008-09-04 Daniel Kraft <d@domob.eu> 958 959 * PR fortran/37099 960 * expr.c (simplify_const_ref): Update expression's character length 961 when pulling out a substring reference. 962 9632008-09-04 Ian Lance Taylor <iant@google.com> 964 965 * symbol.c (generate_isocbinding_symbol): Compare 966 gfc_notification_std with ERROR rather than FAILURE. 967 * resolve.c (check_assumed_size_reference): Compare array type 968 with AR_FULL rather than DIMEN_ELEMENT. 969 (resolve_actual_arglist): Compare with EXPR_VARIABLE rather than 970 FL_VARIABLE. 971 9722008-09-01 Jerry DeLisle <jvdelisle@gcc.gnu.org> 973 974 PR fortran/37228 975 * io.c (check_format): Allow specifying precision with g0 format. 976 9772008-09-02 Daniel Kraft <d@domob.eu> 978 979 * gfortran.h (struct gfc_namespace): New member `implicit_loc'. 980 (gfc_add_abstract): New method. 981 * decl.c (gfc_get_type_attr_spec): Match ABSTRACT attribute. 982 (gfc_match_derived_decl): Copy abstract attribute in derived symbol. 983 * dump-parse-tree.c (show_attr): Show ABSTRACT attribute as `ABSTRACT' 984 only to allow for ABSTRACT types. 985 * parse.c (parse_interface): Use new gfc_add_abstract. 986 * primary.c (gfc_match_structure_constructor): Check that no ABSTRACT 987 type is constructed. 988 * resolve.c (resolve_typespec_used): New method. 989 (resolve_fl_derived): Check type in respect to ABSTRACT attribute and 990 check that no component is of an ABSTRACT type. 991 (resolve_symbol): Check that no symbol is of an ABSTRACT type. 992 (resolve_types): Check IMPLICIT declarations for ABSTRACT types. 993 * symbol.c (gfc_merge_new_implicit): Remember loci of IMPLICIT's. 994 (gfc_add_abstract): New method. 995 9962008-09-01 Daniel Kraft <d@domob.eu> 997 998 PR fortran/37193 999 * module.c (read_module): Initialize use_only flag on used symbols. 1000 10012008-09-01 Daniel Kraft <d@domob.eu> 1002 1003 * gfc-internals.texi (F2003 OOP), (Type-bound Procedures): New chapter 1004 and section to document the internals of type-bound procedures. 1005 (gfc_expr): Document EXPR_COMPCALL. 1006 * gfortran.h (struct gfc_expr): Remove unused `derived' from compcall. 1007 * dump-parse-tree.c (show_compcall): New method. 1008 (show_expr): Call it for EXPR_COMPCALL. 1009 (show_typebound), (show_f2k_derived): New methods. 1010 (show_symbol): Call show_f2k_derived. 1011 (show_code_node): Handle EXEC_COMPCALL. 1012 * primary.c (gfc_match_varspec): Don't initialize removed `derived' in 1013 primary->value.compcall. 1014 10152008-08-31 Richard Guenther <rguenther@suse.de> 1016 1017 * trans-expr.c (gfc_trans_string_copy): Use the correct types 1018 to compute slen and dlen. 1019 10202008-08-31 Daniel Kraft <d@domob.eu> 1021 1022 * gfortran.h (enum gfc_statement): New entry `ST_GENERIC'. 1023 (struct gfc_tbp_generic): New type. 1024 (struct gfc_typebound_proc): Removed `target' and added union with 1025 `specific' and `generic' members; new members `overridden', 1026 `subroutine', `function' and `is_generic'. 1027 (struct gfc_expr): New members `derived' and `name' in compcall union 1028 member and changed type of `tbp' to gfc_typebound_proc. 1029 (gfc_compare_interfaces), (gfc_compare_actual_formal): Made public. 1030 * match.h (gfc_typebound_default_access): New global. 1031 (gfc_match_generic): New method. 1032 * decl.c (gfc_match_generic): New method. 1033 (match_binding_attributes): New argument `generic' and handle it. 1034 (match_procedure_in_type): Mark matched binding as non-generic. 1035 * interface.c (gfc_compare_interfaces): Made public. 1036 (gfc_compare_actual_formal): Ditto. 1037 (check_interface_1), (compare_parameter): Use new public names. 1038 (gfc_procedure_use), (gfc_search_interface): Ditto. 1039 * match.c (match_typebound_call): Set base-symbol referenced. 1040 * module.c (binding_generic): New global array. 1041 (current_f2k_derived): New global. 1042 (mio_typebound_proc): Handle IO of GENERIC bindings. 1043 (mio_f2k_derived): Record current f2k-namespace in current_f2k_derived. 1044 * parse.c (decode_statement): Handle GENERIC statement. 1045 (gfc_ascii_statement): Ditto. 1046 (typebound_default_access), (set_typebound_default_access): Removed. 1047 (gfc_typebound_default_access): New global. 1048 (parse_derived_contains): New default-access implementation and handle 1049 GENERIC statements encountered. 1050 * primary.c (gfc_match_varspec): Adapted to new gfc_typebound_proc 1051 structure and removed check for SUBROUTINE/FUNCTION from here. 1052 * resolve.c (extract_compcall_passed_object): New method. 1053 (update_compcall_arglist): Use it. 1054 (resolve_typebound_static): Adapted to new gfc_typebound_proc structure. 1055 (resolve_typebound_generic_call): New method. 1056 (resolve_typebound_call): Check target is a SUBROUTINE and handle calls 1057 to GENERIC bindings. 1058 (resolve_compcall): Ditto (check for target being FUNCTION). 1059 (check_typebound_override): Handle GENERIC bindings. 1060 (check_generic_tbp_ambiguity), (resolve_typebound_generic): New methods. 1061 (resolve_typebound_procedure): Handle GENERIC bindings and set new 1062 attributes subroutine, function and overridden in gfc_typebound_proc. 1063 (resolve_fl_derived): Ensure extended type is resolved before the 1064 extending one is. 1065 * st.c (gfc_free_statement): Fix bug with free'ing EXEC_COMPCALL's. 1066 * symbol.c (gfc_find_typebound_proc): Adapt for GENERIC changes. 1067 10682008-08-29 Jan Hubicka <jh@suse.cz> 1069 1070 * parse.c (parse_interface): Silence uninitialized var warning. 1071 10722008-08-29 Jakub Jelinek <jakub@redhat.com> 1073 1074 * trans.h (struct lang_type): Add span. 1075 (GFC_TYPE_ARRAY_SPAN): Define. 1076 * trans-decl.c (gfc_get_symbol_decl): For subref array pointers, 1077 copy TREE_STATIC from decl to span instead of setting it 1078 unconditionally, set DECL_ARTIFICIAL, fix type of initializer 1079 and set GFC_TYPE_ARRAY_SPAN on decl's type. 1080 * trans-types.c (gfc_get_array_descr_info): If 1081 GFC_TYPE_ARRAY_SPAN is non-NULL, use it as element size. 1082 1083 * trans-decl.c (check_constant_initializer, 1084 gfc_emit_parameter_debug_info): New functions. 1085 (gfc_generate_module_vars, gfc_generate_function_code): Emit 1086 PARAMETERs and unreferenced variables with initializers into 1087 debug info. 1088 1089 * gfortran.h (gfc_use_list): Add where field. 1090 * module.c (use_locus): New static variable. 1091 (gfc_match_use): Set it. 1092 (gfc_use_module): Copy it to gfc_use_list's where field. 1093 * trans-decl.c (gfc_generate_module_vars): Call gfc_trans_use_stmts. 1094 (gfc_trans_use_stmts): Set backend locus before calling the debug 1095 hook. Allow non-VAR_DECLs to be created even for non-external 1096 module. Don't emit anything so far for renames from different 1097 modules. 1098 1099 PR fortran/24790 1100 * trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on 1101 PARM_DECLs with pointer or reference type. 1102 1103 * trans-decl.c (gfc_build_qualified_array): Build non-flat 1104 array type for debug info purposes. 1105 1106 PR fortran/29635 1107 PR fortran/23057 1108 * f95-lang.c (gfc_init_ts): New function. 1109 (LANG_HOOKS_INIT_TS): Define. 1110 * gfortran.h (gfc_use_rename): New type, moved from module.c. 1111 (gfc_get_use_rename): New macro, moved from module.c. 1112 (gfc_use_list): New type. 1113 (gfc_get_use_list): New macro. 1114 (gfc_namespace): Add use_stmts field. 1115 (gfc_free_use_stmts): New prototype. 1116 * Make-lang.in (fortran/trans-decl.o): Depend on debug.h. 1117 * module.c (gfc_use_rename, gfc_get_use_rename): Moved to 1118 gfortran.h. 1119 (gfc_use_module): Chain the USE statement info to 1120 ns->use_stmts. 1121 (gfc_free_use_stmts): New function. 1122 * symbol.c (gfc_free_namespace): Call gfc_free_use_stmts. 1123 * trans.h (struct module_htab_entry): New type. 1124 (gfc_find_module, gfc_module_add_decl): New functions. 1125 * trans.c (gfc_generate_module_code): Create NAMESPACE_DECL for 1126 the module, adjust DECL_CONTEXTs of module procedures and 1127 call gfc_module_add_decl for them. 1128 * trans-common.c (build_common_decl): Set DECL_IGNORED_P 1129 on the common variable. 1130 (create_common): Set DECL_IGNORED_P for use associated vars. 1131 * trans-decl.c: Include debug.h. 1132 (gfc_get_symbol_decl): Set DECL_IGNORED_P on use_assoc vars from 1133 modules. 1134 (build_function_decl): Allow current_function_decl's context 1135 to be a NAMESPACE_DECL. 1136 (module_htab, cur_module): New variables. 1137 (module_htab_do_hash, module_htab_eq, module_htab_decls_hash, 1138 module_htab_decls_eq, gfc_find_module, gfc_module_add_decl): New 1139 functions. 1140 (gfc_create_module_variable): Adjust DECL_CONTEXTs of module 1141 variables and types and call gfc_module_add_decl for them. 1142 (gfc_generate_module_vars): Temporarily set cur_module. 1143 (gfc_trans_use_stmts): New function. 1144 (gfc_generate_function_code): Call it. 1145 (gfc_generate_block_data): Set DECL_IGNORED_P on decl. 1146 * trans-types.c (gfc_get_derived_type): Adjust DECL_CONTEXT 1147 and TYPE_CONTEXT of module derived types. 1148 11492008-08-28 Daniel Kraft <d@domob.eu> 1150 1151 * gfortran.h (enum expr_t): New value `EXPR_COMPCALL'. 1152 (gfc_get_typebound_proc): New macro. 1153 (struct gfc_expr): New union-member `compcall' for EXPR_COMPCALL. 1154 (enum gfc_exec_op): New value `EXEC_COMPCALL'. 1155 (gfc_find_typebound_proc): New argument. 1156 (gfc_copy_ref), (gfc_match_varspec): Made public. 1157 * decl.c (match_procedure_in_type): Use gfc_get_typebound_proc. 1158 * expr.c (free_expr0), (gfc_copy_expr): Handle EXPR_COMPCALL. 1159 (gfc_copy_ref): Made public and use new name. 1160 (simplify_const_ref): Use new name of gfc_copy_ref. 1161 (simplify_parameter_variable): Ditto. 1162 (gfc_simplify_expr): gcc_unreachable for EXPR_COMPCALL. 1163 * match.c (match_typebound_call): New method. 1164 (gfc_match_call): Allow for CALL's to typebound procedures. 1165 * module.c (binding_passing), (binding_overriding): New variables. 1166 (expr_types): Add EXPR_COMPCALL. 1167 (mio_expr): gcc_unreachable for EXPR_COMPCALL. 1168 (mio_typebound_proc), (mio_typebound_symtree): New methods. 1169 (mio_f2k_derived): Handle type-bound procedures. 1170 * primary.c (gfc_match_varspec): Made public and parse trailing 1171 references to type-bound procedures; new argument `sub_flag'. 1172 (gfc_match_rvalue): New name and argument of gfc_match_varspec. 1173 (match_variable): Ditto. 1174 * resolve.c (update_arglist_pass): New method. 1175 (update_compcall_arglist), (resolve_typebound_static): New methods. 1176 (resolve_typebound_call), (resolve_compcall): New methods. 1177 (gfc_resolve_expr): Handle EXPR_COMPCALL. 1178 (resolve_code): Handle EXEC_COMPCALL. 1179 (resolve_fl_derived): New argument to gfc_find_typebound_proc. 1180 (resolve_typebound_procedure): Ditto and removed not-implemented error. 1181 * st.c (gfc_free_statement): Handle EXEC_COMPCALL. 1182 * symbol.c (gfc_find_typebound_proc): New argument `noaccess' and 1183 implement access-checking. 1184 * trans-expr.c (gfc_apply_interface_mapping_to_expr): gcc_unreachable 1185 on EXPR_COMPCALL. 1186 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Add missing break. 1187 * trans-openmp.c (gfc_trans_omp_array_reduction): Add missing 1188 intialization of ref->type. 1189 11902008-08-28 Janus Weil <janus@gcc.gnu.org> 1191 1192 PR fortran/37253 1193 * module.c (ab_attribute,attr_bits,mio_symbol_attribute): Take care of 1194 saving attr.procedure and attr.proc_ptr to the module file. 1195 11962008-08-25 Daniel Kraft <d@domob.eu> 1197 1198 * gfortran.h (gfc_find_component): Add new arguments. 1199 * parse.c (parse_derived_contains): Check if the derived-type containing 1200 the CONTAINS section is SEQUENCE/BIND(C). 1201 * resolve.c (resolve_typebound_procedure): Check for name collision with 1202 components. 1203 (resolve_fl_derived): Check for name collision with inherited 1204 type-bound procedures. 1205 * symbol.c (gfc_find_component): New arguments `noaccess' and `silent'. 1206 (gfc_add_component): Adapt for new arguments. 1207 * primary.c (match_varspec), (gfc_match_structure_constructor): Ditto. 1208 12092008-08-24 Tobias Burnus <burnus@net-b.de> 1210 1211 PR fortran/37201 1212 * decl.c (verify_bind_c_sym): Reject array/string returning 1213 functions. 1214 12152008-08-24 Tobias Burnus <burnus@net-b.de> 1216 1217 PR fortran/37201 1218 * trans-expr.c (gfc_conv_function_call): Add string_length 1219 for character-returning bind(C) functions. 1220 12212008-08-24 Daniel Kraft <d@domob.eu> 1222 1223 * gfortran.h (gfc_typebound_proc): New struct. 1224 (gfc_symtree): New member typebound. 1225 (gfc_find_typebound_proc): Prototype for new method. 1226 (gfc_get_derived_super_type): Prototype for new method. 1227 * parse.h (gfc_compile_state): New state COMP_DERIVED_CONTAINS. 1228 * decl.c (gfc_match_procedure): Handle PROCEDURE inside derived-type 1229 CONTAINS section. 1230 (gfc_match_end): Handle new context COMP_DERIVED_CONTAINS. 1231 (gfc_match_private): Ditto. 1232 (match_binding_attributes), (match_procedure_in_type): New methods. 1233 (gfc_match_final_decl): Rewrote to make use of new 1234 COMP_DERIVED_CONTAINS parser state. 1235 * parse.c (typebound_default_access): New global helper variable. 1236 (set_typebound_default_access): New callback method. 1237 (parse_derived_contains): New method. 1238 (parse_derived): Extracted handling of CONTAINS to new parser state 1239 and parse_derived_contains. 1240 * resolve.c (resolve_bindings_derived), (resolve_bindings_result): New. 1241 (check_typebound_override), (resolve_typebound_procedure): New methods. 1242 (resolve_typebound_procedures): New method. 1243 (resolve_fl_derived): Call new resolving method for typebound procs. 1244 * symbol.c (gfc_new_symtree): Initialize new member typebound to NULL. 1245 (gfc_find_typebound_proc): New method. 1246 (gfc_get_derived_super_type): New method. 1247 12482008-08-23 Janus Weil <janus@gcc.gnu.org> 1249 1250 * gfortran.h (gfc_component): Add field "symbol_attribute attr", remove 1251 fields "pointer", "allocatable", "dimension", "access". 1252 Remove functions "gfc_set_component_attr" and "gfc_get_component_attr". 1253 * interface.c (gfc_compare_derived_types): Ditto. 1254 * trans-array.c (gfc_array_allocate,structure_alloc_comps): Ditto. 1255 * trans-expr.c (gfc_conv_component_ref,gfc_trans_subcomponent_assign, 1256 gfc_conv_structure): Ditto. 1257 * symbol.c (gfc_find_component,free_components,gfc_set_component_attr, 1258 gfc_get_component_attr,verify_bind_c_derived_type, 1259 generate_isocbinding_symbol): Ditto. 1260 * decl.c (build_struct): Ditto. 1261 * dump-parse-tree.c (show_components): Ditto. 1262 * trans-stmt.c (gfc_trans_deallocate): Ditto. 1263 * expr.c (gfc_check_assign,gfc_check_pointer_assign, 1264 gfc_default_initializer): Ditto. 1265 * module.c (mio_component): Ditto. 1266 * trans-types.c (copy_dt_decls_ifequal,gfc_get_derived_type): Ditto. 1267 * resolve.c (has_default_initializer,resolve_structure_cons, 1268 gfc_iso_c_func_interface,find_array_spec,resolve_ref, 1269 resolve_deallocate_expr,resolve_allocate_expr,resolve_fl_derived, 1270 resolve_equivalence_derived): Ditto. 1271 * trans-io.c (transfer_expr): Ditto. 1272 * parse.c (parse_derived): Ditto. 1273 * dependency.c (gfc_check_dependency): Ditto. 1274 * primary.c (gfc_variable_attr): Ditto. 1275 12762008-08-23 Tobias Burnus <burnus@net-b.de> 1277 1278 PR fortran/37076 1279 * arith.c (gfc_arith_concat): Fix concat of kind=4 strings. 1280 12812008-08-23 Tobias Burnus <burnus@net-b.de> 1282 1283 PR fortran/37025 1284 * target-memory.c (gfc_interpret_character): Support 1285 kind=4 characters. 1286 12872008-08-22 Daniel Kraft <d@domob.eu> 1288 1289 PR fortran/30239 1290 * symbol.c (gfc_add_type): Warn on -Wsurprising if a function-result 1291 type is re-declared but neither -pedantic nor -std=f* is given and so 1292 this is no error. 1293 * invoke.texi (-Wsurprising): Document this new behaviour. 1294 12952008-08-22 Daniel Kraft <d@domob.eu> 1296 1297 * gfortran.h (in_prefix): Removed from this header. 1298 * match.h (gfc_matching_prefix): Moved and renamed from `in_prefix'. 1299 * decl.c (in_prefix): Removed from here. 1300 (gfc_match_prefix): Use new name of `gfc_matching_prefix'. 1301 * symbol.c (gfc_check_symbol_typed): Ditto. 1302 * expr.c (check_typed_ns): New helper variable. 1303 (expr_check_typed_help): New helper method. 1304 (gfc_expr_check_typed): Rewrote to use gfc_traverse_expr to do the 1305 work, fixing a minor problem. 1306 * match.c (gfc_matching_prefix): New variable. 1307 13082008-08-22 Daniel Kraft <d@domob.eu> 1309 1310 PR fortran/32095 1311 PR fortran/34228 1312 * gfortran.h (in_prefix): New global. 1313 (gfc_check_symbol_typed), (gfc_check_expr_typed): New methods. 1314 * array.c (match_array_element_spec): Check that bounds-expressions 1315 don't have symbols not-yet-typed in them. 1316 * decl.c (var_element): Check that variable used is already typed. 1317 (char_len_param_value): Check that expression does not contain 1318 not-yet-typed symbols. 1319 (in_prefix): New global. 1320 (gfc_match_prefix): Record using `in_prefix' if we're at the moment 1321 parsing a prefix or not. 1322 * expr.c (gfc_expr_check_typed): New method. 1323 * parse.c (verify_st_order): New argument to disable error output. 1324 (check_function_result_typed): New helper method. 1325 (parse_spec): Check that the function-result declaration, if given in 1326 a prefix, contains no not-yet-typed symbols when the IMPLICIT rules are 1327 parsed. 1328 * symbol.c (gfc_check_symbol_typed): Check that a symbol already has 1329 a type associated to it, otherwise use the IMPLICIT rules or signal 1330 an error. 1331 13322008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 1333 1334 * f95-lang.c: Update all calls to pedwarn. 1335 13362008-08-18 Daniel Franke <franke.daniel@gmail.com> 1337 1338 PR fortran/37032 1339 * gfortran.texi: Document decision on include file handling in 1340 preprocessed files. 1341 13422008-08-16 Tobias Burnus <burnus@net-b.de> 1343 1344 PR fortran/36825 1345 * libgfortran.h: Reduce GFC_MAX_DIMENSIONS to 7. 1346 13472008-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1348 1349 PR fortran/35863 1350 * io.c (gfc_match_open): Enable UTF-8 in checks. 1351 * simplify.c (gfc_simplify_selected_char_kind): Enable iso_10646. 1352 13532008-08-14 Janus Weil <janus@gcc.gnu.org> 1354 1355 PR fortran/36705 1356 * symbol.c (check_conflict): Move conflict checks for (procedure,save) 1357 and (procedure,intent) to resolve_fl_procedure. 1358 * resolve.c (resolve_fl_procedure): Ditto. 1359 13602008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 1361 1362 PR 36901 1363 * f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of 1364 'pedwarn0'. 1365 13662008-08-09 Paul Thomas <pault@gcc.gnu.org> 1367 1368 PR fortran/37011 1369 * symbol.c (gfc_add_extension): New function. 1370 * decl.c (gfc_get_type_attr_spec): Call it. 1371 (gfc_match_derived_decl): Set symbol extension attribute from 1372 attr.extension. 1373 * gfortran.h : Add prototype for gfc_add_extension. 1374 13752008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 1376 1377 PR 28875 1378 * options.c (set_Wall): Replace set_Wunused by warn_unused. 1379 13802008-08-08 Daniel Kraft <d@domob.eu> 1381 1382 * gfortran.h (gfc_finalizer): Replaced member `procedure' by two 1383 new members `proc_sym' and `proc_tree' to store the symtree after 1384 resolution. 1385 (gfc_find_sym_in_symtree): Made public. 1386 * decl.c (gfc_match_final_decl): Adapted for new member name. 1387 * interface.c (gfc_find_sym_in_symtree): Made public. 1388 (gfc_extend_expr), (gfc_extend_assign): Changed call accordingly. 1389 * module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived): 1390 New methods for module-file IO of f2k_derived. 1391 (mio_symbol): Do IO of f2k_derived namespace. 1392 * resolve.c (gfc_resolve_finalizers): Adapted for new member name and 1393 finding the symtree for the symbol here. 1394 * symbol.c (gfc_free_finalizer): Adapted for new members. 1395 13962008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1397 1398 * gfc-internals.texi: Update to GFDL 1.2. Do not list GPL as 1399 Invariant Section. 1400 * gfortran.texi: Likewise. 1401 * intrinsic.texi: Do not list GPL as Invariant Section. 1402 * invoke.texi: Likewise. Update copyright years. 1403 14042008-07-29 Paul Thomas <pault@gcc.gnu.org> 1405 1406 * trans-expr.c (conv_parent_component_references): New function 1407 to build missing parent references. 1408 (gfc_conv_variable): Call it 1409 * symbol.c (gfc_add_component): Check that component name in a 1410 derived type extension does not appear in parent. 1411 (gfc_find_component): For a derived type extension, check if 1412 the component appears in the parent derived type by calling 1413 self. Separate errors for private components and private types. 1414 * decl.c (match_data_constant): Add extra arg to call to 1415 gfc_match_structure_constructor. 1416 (check_extended_derived_type): New function to check that a 1417 parent derived type exists and that it is OK for exension. 1418 (gfc_get_type_attr_spec): Add extra argument 'name' and return 1419 it if extends is specified. 1420 (gfc_match_derived_decl): Match derived type extension and 1421 build a first component of the parent derived type if OK. Add 1422 the f2k namespace if not present. 1423 * gfortran.h : Add the extension attribute. 1424 * module.c : Handle attribute 'extension'. 1425 * match.h : Modify prototypes for gfc_get_type_attr_spec and 1426 gfc_match_structure_constructor. 1427 * primary.c (build_actual_constructor): New function extracted 1428 from gfc_match_structure_constructor and modified to call self 1429 iteratively to build derived type extensions, when f2k named 1430 components are used. 1431 (gfc_match_structure_constructor): Do not throw error for too 1432 many components if a parent type is being handled. Use 1433 gfc_find_component to generate errors for non-existent or 1434 private components. Iteratively call self for derived type 1435 extensions so that parent constructor is built. If extension 1436 and components left over, throw error. 1437 (gfc_match_rvalue): Add extra arg to call to 1438 gfc_match_structure_constructor. 1439 1440 * trans-array.c (gfc_conv_resolve_dependencies): If lhs and rhs 1441 are the same symbol, aliassing does not matter. 1442 14432008-07-29 Jan Hubicka <jh@suse.cz> 1444 1445 * options.c (gfc_post_options): Do not set flag_no_inline. 1446 14472008-07-29 Daniel Kraft <d@domob.eu> 1448 1449 PR fortran/36403 1450 * trans-intrinsic.c (conv_generic_with_optional_char_arg): New method 1451 to append a string-length even if the string argument is missing, e.g. 1452 for EOSHIFT. 1453 (gfc_conv_intrinsic_function): Call the new method for EOSHIFT, PACK 1454 and RESHAPE. 1455 14562008-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1457 1458 * gfortran.h (try): Remove macro. Replace try with gfc_try 1459 throughout. 1460 * array.c: Likewise. 1461 * check.c: Likewise. 1462 * cpp.c: Likewise. 1463 * cpp.h: Likewise. 1464 * data.c: Likewise. 1465 * data.h: Likewise. 1466 * decl.c: Likewise. 1467 * error.c: Likewise. 1468 * expr.c: Likewise. 1469 * interface.c: Likewise. 1470 * intrinsic.c: Likewise. 1471 * intrinsic.h: Likewise. 1472 * io.c: Likewise. 1473 * match.h: Likewise. 1474 * parse.c: Likewise. 1475 * parse.h: Likewise. 1476 * resolve.c: Likewise. 1477 * scanner.c: Likewise. 1478 * simplify.c: Likewise. 1479 * symbol.c: Likewise. 1480 * trans-openmp.c: Likewise. 1481 * trans-types.c: Likewise. 1482 14832008-07-28 Tobias Burnus <burnus@net-b.de> 1484 1485 * Make-lang.in: Remove -Wno-* from fortran-warn. 1486 14872008-07-28 Richard Guenther <rguenther@suse.de> 1488 1489 Merge from gimple-tuples-branch. 1490 1491 2008-07-18 Aldy Hernandez <aldyh@redhat.com> 1492 1493 * trans-expr.c: Include gimple.h instead of tree-gimple.h. 1494 * trans-array.c: Same. 1495 * trans-openmp.c: Same. 1496 * trans-stmt.c: Same. 1497 * f95-lang.c: Same. 1498 * trans-io.c: Same. 1499 * trans-decl.c: Same. 1500 * trans-intrinsic.c: Same. 1501 * trans.c: Same. Include tree-iterator.h. 1502 * Make-lang.in (trans.o): Depend on tree-iterator.h 1503 1504 2008-07-14 Aldy Hernandez <aldyh@redhat.com> 1505 1506 * trans-array.h (gfc_conv_descriptor_data_set_internal): 1507 Rename to gfc_conv_descriptor_data_set. 1508 (gfc_conv_descriptor_data_set_tuples): Remove. 1509 * trans-array.c (gfc_conv_descriptor_data_get): Rename 1510 from gfc_conv_descriptor_data_set_internal. 1511 Remove last argument to gfc_add_modify. 1512 (gfc_trans_allocate_array_storage): Rename gfc_add_modify_expr to 1513 gfc_add_modify. 1514 (gfc_trans_create_temp_array): Same. 1515 (gfc_conv_array_transpose): Same. 1516 (gfc_grow_array): Same. 1517 (gfc_put_offset_into_var): Same. 1518 (gfc_trans_array_ctor_element): Same. 1519 (gfc_trans_array_constructor_subarray): Same. 1520 (gfc_trans_array_constructor_value): Same. 1521 (gfc_trans_scalarized_loop_end): Same. 1522 (gfc_array_init_size): Same. 1523 (gfc_array_allocate): Same. 1524 (gfc_trans_array_bounds): Same. 1525 (gfc_trans_auto_array_allocation): Same. 1526 (gfc_trans_g77_array): Same. 1527 (gfc_trans_dummy_array_bias): Same. 1528 (gfc_conv_expr_descriptor): Same. 1529 (structure_alloc_comps): Same. 1530 * trans-expr.c: Same. 1531 * trans-openmp.c (gfc_omp_clause_default_ctor): Same. 1532 Rename gfc_conv_descriptor_data_set_tuples to 1533 gfc_conv_descriptor_data_set. 1534 (gfc_omp_clause_copy_ctor): Change build_gimple_modify_stmt to 1535 build2_v. 1536 (gfc_omp_clause_assign_op): Same. 1537 (gfc_trans_omp_array_reduction): Rename gfc_add_modify_expr to 1538 gfc_add_modify. 1539 (gfc_trans_omp_atomic): Same. 1540 (gfc_trans_omp_do): Same. Change GIMPLE_MODIFY_STMT to MODIFY_EXPR. 1541 Rename gfc_add_modify_stmt to gfc_add_modify. 1542 * trans-stmt.c: Rename gfc_add_modify_expr to 1543 gfc_add_modify. 1544 * trans.c: Rename gfc_add_modify_expr to 1545 gfc_add_modify. 1546 (gfc_add_modify): Remove last argument. 1547 Rename GIMPLE_MODIFY_STMT to MODIFY_EXPR. 1548 * trans.h: Remove gfc_add_modify_expr, gfc_add_modify_stmt. 1549 Add prototype for gfc_add_modify. 1550 * f95-lang.c (union lang_tree_node): Rename GENERIC_NEXT to TREE_CHAIN. 1551 * trans-decl.c: Rename gfc_add_modify_stmt to gfc_add_modify. 1552 * trans-io.c: Same. 1553 * trans-intrinsic.c: Same. 1554 1555 2008-02-25 Aldy Hernandez <aldyh@redhat.com> 1556 1557 * Make-lang.in (fortran-warn): Add -Wno-format. 1558 1559 2008-02-19 Diego Novillo <dnovillo@google.com> 1560 1561 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html 1562 1563 * fortran/Make-lang.in (fortran-warn): Remove. 1564 1565 2007-11-22 Aldy Hernandez <aldyh@redhat.com> 1566 1567 * trans-expr.c (gfc_trans_string_copy): Use "void *" when building a 1568 memset. 1569 1570 2007-11-10 Aldy Hernandez <aldyh@redhat.com> 1571 1572 * Make-lang.in (fortran-warn): Set to -Wno-format. 1573 * trans.c (gfc_trans_code): Update comment to say GENERIC. 1574 Call tree_annotate_all_with_locus instead of annotate_all_with_locus. 1575 15762008-07-27 Tobias Burnus <burnus@net-b.de> 1577 1578 PR fortran/36132 1579 PR fortran/29952 1580 PR fortran/36909 1581 * trans.c (gfc_trans_runtime_check): Allow run-time warning besides 1582 run-time error. 1583 * trans.h (gfc_trans_runtime_check): Update declaration. 1584 * trans-array.c (gfc_trans_array_ctor_element,gfc_trans_array_bound_check, 1585 gfc_conv_array_ref,gfc_conv_ss_startstride,gfc_trans_dummy_array_bias): 1586 Updated gfc_trans_runtime_check calls. 1587 (gfc_conv_array_parameter): Implement flag_check_array_temporaries, 1588 fix packing/unpacking for nonpresent optional actuals to optional 1589 formals. 1590 * trans-array.h (gfc_conv_array_parameter): Update declaration. 1591 * trans-expr.c (gfc_conv_substring,gfc_trans_arrayfunc_assign, 1592 gfc_conv_function_call): Updated gfc_trans_runtime_check calls. 1593 (gfc_conv_function_call): Update gfc_conv_array_parameter calls. 1594 * trans-expr.c (gfc_trans_goto): Updated gfc_trans_runtime_check 1595 calls. 1596 * trans-io.c (set_string,gfc_conv_intrinsic_repeat): Ditto. 1597 (gfc_conv_intrinsic_transfer,gfc_conv_intrinsic_loc): Same for 1598 gfc_conv_array_parameter. 1599 * trans-intrinsics.c (gfc_conv_intrinsic_bound): Ditto. 1600 * trans-decl.c (gfc_build_builtin_function_decls): Add 1601 gfor_fndecl_runtime_warning_at. 1602 * lang.opt: New option fcheck-array-temporaries. 1603 * gfortran.h (gfc_options): New flag_check_array_temporaries. 1604 * options.c (gfc_init_options, gfc_handle_option): Handle flag. 1605 * invoke.texi: New option fcheck-array-temporaries. 1606 16072008-07-24 Jan Hubicka <jh@suse.cz> 1608 1609 * fortran/options.c (gfc_post_options): Remove flag_unline_trees code. 1610 16112008-07-24 Daniel Kraft <d@domob.eu> 1612 1613 PR fortran/33141 1614 * lang.opt (Wnonstd-intrinsics): Removed option. 1615 (Wintrinsics-std), (Wintrinsic-shadow): New options. 1616 * invoke.texi (Option Summary): Removed -Wnonstd-intrinsics 1617 from the list and added -Wintrinsics-std and -Wintrinsic-shadow. 1618 (Error and Warning Options): Documented the new options and removed 1619 the documentation for -Wnonstd-intrinsics. 1620 * gfortran.h (gfc_option_t): New members warn_intrinsic_shadow and 1621 warn_intrinsics_std, removed warn_nonstd_intrinsics. 1622 (gfc_is_intrinsic): Renamed from gfc_intrinsic_name. 1623 (gfc_warn_intrinsic_shadow), (gfc_check_intrinsic_standard): New. 1624 * decl.c (match_procedure_decl): Replaced gfc_intrinsic_name by 1625 the new name gfc_is_intrinsic. 1626 (warn_intrinsic_shadow): New helper method. 1627 (gfc_match_function_decl), (gfc_match_subroutine): Call the new method 1628 warn_intrinsic_shadow to check the just-parsed procedure. 1629 * expr.c (check_init_expr): Call new gfc_is_intrinsic to check whether 1630 the function called is really an intrinsic in the selected standard. 1631 * intrinsic.c (gfc_is_intrinsic): Renamed from gfc_intrinsic_name and 1632 extended to take into account the selected standard settings when trying 1633 to find out whether a symbol is an intrinsic or not. 1634 (gfc_check_intrinsic_standard): Made public and extended. 1635 (gfc_intrinsic_func_interface), (gfc_intrinsic_sub_interface): Removed 1636 the calls to check_intrinsic_standard, this check now happens inside 1637 gfc_is_intrinsic. 1638 (gfc_warn_intrinsic_shadow): New method defined. 1639 * options.c (gfc_init_options): Initialize new warning flags to false 1640 and removed intialization of Wnonstd-intrinsics flag. 1641 (gfc_post_options): Removed logic for Wnonstd-intrinsics flag. 1642 (set_Wall): Set new warning flags and removed Wnonstd-intrinsics flag. 1643 (gfc_handle_option): Handle the new flags and removed handling of the 1644 old Wnonstd-intrinsics flag. 1645 * primary.c (gfc_match_rvalue): Replaced call to gfc_intrinsic_name by 1646 the new name gfc_is_intrinsic. 1647 * resolve.c (resolve_actual_arglist): Ditto. 1648 (resolve_generic_f), (resolve_unknown_f): Ditto. 1649 (is_external_proc): Ditto. 1650 (resolve_generic_s), (resolve_unknown_s): Ditto. 1651 (resolve_symbol): Ditto and ensure for symbols declared INTRINSIC that 1652 they are really available in the selected standard setting. 1653 16542008-07-24 Daniel Kraft <d@domob.eu> 1655 1656 * match.c (gfc_match): Add assertion to catch wrong calls trying to 1657 match upper-case characters. 1658 16592008-07-24 Thomas Koenig <tkoenig@gcc.gnu.org> 1660 1661 PR fortran/29952 1662 * gfortran.h: Add "warn_array_temp" to gfc_option_t. 1663 * lang.opt: Add -Warray-temporaries. 1664 * invoke.texi: Document -Warray-temporaries 1665 * trans-array.h (gfc_trans_create_temp_array): Add argument of 1666 type *locus. 1667 (gfc_conv_loop_setup): Likewise. 1668 * trans-array.c (gfc_trans_create_temp_array): If 1669 -Warray-temporaries is given and locus is present, warn about 1670 creation of array temporaries. 1671 (gfc_trans_array_constructor_subarray): Add locus to call 1672 of gfc_conv_loop_setup. 1673 (gfc_trans_array_constructor): Add where argument. Pass where 1674 argument to call of gfc_trans_create_temp_array. 1675 (gfc_add_loop_ss_code): Add where argument. Pass where argument 1676 to recursive call of gfc_add_loop_ss_code and to call of 1677 gfc_trans_array_constructor. 1678 (gfc_conv_loop_setup): Add where argument. Pass where argument 1679 to calls to gfc_add_loop_ss_code and to gfc_trans_create_temp_array. 1680 (gfc_conv_expr_descriptor): Pass location to call of 1681 gfc_conv_loop_setup. 1682 (gfc_conv_array_parameter): If -Warray-temporaries is given, 1683 warn about creation of temporary arrays. 1684 * trans-expr.c (gfc_conv_subref_array_arg): Add where argument 1685 to call to gfc_conv_loop_setup. 1686 (gfc_conv_function_call): Add where argument to call to 1687 gfc_trans_creat_temp_array. 1688 (gfc_trans_subarray_assign): Likewise. 1689 (gfc_trans_assignment_1): Add where argument to call to 1690 gfc_conv_loop_setup. 1691 * trans-stmt.c (gfc_conv_elemental_dependencies): Add where 1692 argument to call to gfc_trans_create_temp_array. 1693 (gfc_trans_call): Add where argument to call to gfc_conv_loop_setup. 1694 (generate_loop_for_temp_to_lhs): Likewise. 1695 (generate_loop_for_rhs_to_temp): Likewise. 1696 (compute_inner_temp_size): Likewise. 1697 (gfc_trans-pointer_assign_need_temp): Likewise. 1698 (gfc_evaluate_where_mask): Likewise. 1699 (gfc_trans_where_assign): Likewise. 1700 (gfc_trans_where_3): Likewise. 1701 * trans-io.c (transfer_srray_component): Add where argument 1702 to function. Add where argument to call to gfc_conv_loop_setup. 1703 (transfer_expr): Add where argument to call to 1704 transfer_array_component. 1705 (gfc_trans_transfer): Add where expression to call to 1706 gfc_conv_loop_setup. 1707 * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Add 1708 where argument to call to gfc_conv_loop_setup. 1709 (gfc_conv_intrinsic_count): Likewise. 1710 (gfc_conv_intrinsic_arith): Likewise. 1711 (gfc_conv_intrinsic_dot_product): Likewise. 1712 (gfc_conv_intrinsic_minmaxloc): Likewise. 1713 (gfc_conv_intrinsic_minmaxval): Likewise. 1714 (gfc_conv_intrinsic_array_transfer): Warn about 1715 creation of temporary array. 1716 Add where argument to call to gfc_trans_create_temp_array. 1717 * options.c (gfc_init_options): Initialize gfc_option.warn_array_temp. 1718 (gfc_handle_option): Set gfc_option.warn_array_temp. 1719 17202008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 1721 1722 PR 35058 1723 * f95-lang.c (gfc_mark_addressable): All calls to pedwarn changed. 1724 17252008-07-22 Daniel Kraft <d@domob.eu> 1726 1727 PR fortran/29835 1728 * io.c (error_element), (format_locus): New static globals. 1729 (unexpected_element): Spelled out this message fully. 1730 (next_char): Keep track of locus when not MODE_STRING. 1731 (next_char_not_space): Remember last parsed element in error_element. 1732 (format_lex): Fix two indentation errors. 1733 (check_format): Use format_locus and possibly error_element for a 1734 slightly better error message on invalid format. 1735 (check_format_string): Set format_locus to start of the string 1736 expression used as format. 1737 17382008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1739 1740 * expr.c (gfc_check_pointer_assign): Fix typo in string. 1741 * io.c (check_format): Fix typo in string. Fix comment typos. 1742 * parse.c (gfc_global_used): Likewise. 1743 * resolve.c (resolve_allocate_expr): Likewise. 1744 * symbol.c (gfc_set_default_type): Likewise. 1745 * arith.c: Fix typos in comments. 1746 * array.c: Likewise. 1747 * data.c: Likewise. 1748 * decl.c: Likewise. 1749 * dependency.c: Likewise. 1750 * f95-lang.c: Likewise. 1751 * gfortran.h: Likewise. 1752 * matchexp.c: Likewise. 1753 * module.c: Likewise. 1754 * primary.c: Likewise. 1755 * scanner.c: Likewise. 1756 * trans-array.c: Likewise. 1757 * trans-common.c: Likewise. 1758 * trans-decl.c: Likewise. 1759 * trans-expr.c: Likewise. 1760 * trans-intrinsic.c: Likewise. 1761 * trans-types.c: Likewise. 1762 * trans.c: Likewise. 1763 * trans.h: Likewise. 1764 17652008-07-19 Tobias Burnus <burnus@net-b.de> 1766 1767 PR fortran/36795 1768 * matchexp.c (gfc_get_parentheses): Remove obsolete workaround, 1769 which caused the generation of wrong code. 1770 17712008-07-19 Tobias Burnus <burnus@net-b.de> 1772 1773 PR fortran/36342 1774 * scanner.c (load_file): Add argument to destinguish between 1775 true filename and displayed filename. 1776 (include_line,gfc_new_file): Adapt accordingly. 1777 17782008-07-19 Tobias Burnus <burnus@net-b.de> 1779 1780 * check.c (gfc_check_cshift,gfc_check_eoshift,gfc_check_unpack): Add rank 1781 checks for cshift's shift and eoshift's shift and boundary args. 1782 (gfc_check_unpack): Add rank and shape tests for unpack. 1783 17842008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1785 1786 * gfortran.h (new): Remove macro. 1787 * array.c (gfc_append_constructor, match_array_list, 1788 gfc_match_array_constructor): Likewise. 1789 * bbt.c (insert, gfc_insert_bbt): Likewise. 1790 * decl.c (var_element, top_var_list, top_val_list, gfc_match_data, 1791 get_proc_name): Likewise. 1792 * expr.c (gfc_copy_actual_arglist): Likewise. 1793 * interface.c (compare_actual_formal, check_new_interface, 1794 gfc_add_interface): Likewise. 1795 * intrinsic.c gfc_convert_type_warn, gfc_convert_chartype): 1796 Likewise. 1797 * io.c (match_io_iterator, match_io_list): Likewise. 1798 * match.c (match_forall_header): Likewise. 1799 * matchexp.c (build_node): Likewise. 1800 * module.c (gfc_match_use): Likewise. 1801 * scanner.c (load_file): Likewise. 1802 * st.c (gfc_append_code): Likewise. 1803 * symbol.c (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols, 1804 gfc_commit_symbols): Likewise. 1805 * trans-common.c (build_field): Likewise. 1806 * trans-decl.c (gfc_finish_var_decl): Likewise. 1807 * trans-expr.c (gfc_free_interface_mapping, 1808 gfc_get_interface_mapping_charlen, gfc_add_interface_mapping, 1809 gfc_finish_interface_mapping, 1810 gfc_apply_interface_mapping_to_expr): Likewise. 1811 * trans.h (gfc_interface_sym_mapping): Likewise. 1812 18132008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1814 1815 * gfortran.h (operator): Remove macro. 1816 (gfc_namespace, gfc_expr): Avoid C++ keywords. 1817 * arith.c (eval_intrinsic, eval_intrinsic_f2, eval_intrinsic_f3): 1818 Likewise. 1819 * decl.c (access_attr_decl): Likewise. 1820 * dependency.c (gfc_dep_compare_expr): Likewise. 1821 * dump-parse-tree.c (show_expr, show_uop, show_namespace): 1822 Likewise. 1823 * expr.c (gfc_copy_expr, gfc_type_convert_binary, 1824 simplify_intrinsic_op, check_intrinsic_op): Likewise. 1825 * interface.c (fold_unary, gfc_match_generic_spec, 1826 gfc_match_interface, gfc_match_end_interface, 1827 check_operator_interface, check_uop_interfaces, 1828 gfc_check_interfaces, gfc_extend_expr, gfc_extend_assign, 1829 gfc_add_interface, gfc_current_interface_head, 1830 gfc_set_current_interface_head): Likewise. 1831 * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul): 1832 Likewise. 1833 * matchexp.c (gfc_get_parentheses, build_node): Likewise. 1834 * module.c (gfc_use_rename, gfc_match_use, find_use_name_n, 1835 number_use_names, mio_expr, load_operator_interfaces, read_module, 1836 write_operator, write_module): Likewise. 1837 * openmp.c (resolve_omp_atomic): Likewise. 1838 * resolve.c (resolve_operator, gfc_resolve_character_operator, 1839 gfc_resolve_uops): Likewise. 1840 * symbol.c (free_uop_tree, gfc_free_namespace): Likewise. 1841 * trans-expr.c (gfc_conv_expr_op): Likewise. 1842 * trans-openmp.c (gfc_trans_omp_atomic): Likewise. 1843 18442008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1845 1846 * gfortran.h (protected): Remove macro. 1847 * dump-parse-tree.c (show_attr): Avoid C++ keywords. 1848 * expr.c (gfc_check_pointer_assign): Likewise. 1849 * interface.c (compare_parameter_protected): Likewise. 1850 * intrinsic.c (enum class, add_sym, add_sym_0, add_sym_1, 1851 add_sym_1s, add_sym_1m, add_sym_2, add_sym_2s, add_sym_3, 1852 add_sym_3ml, add_sym_3red, add_sym_3s, add_sym_4, add_sym_4s, 1853 add_sym_5s): Likewise. 1854 * match.c (gfc_match_assignment, gfc_match_pointer_assignment): 1855 Likewise. 1856 * module.c (mio_symbol_attribute): Likewise. 1857 * primary.c (match_variable): Likewise. 1858 * resolve.c (resolve_equivalence): Likewise. 1859 * symbol.c (check_conflict, gfc_add_protected, gfc_copy_attr): 1860 Likewise. 1861 * trans-types.c (gfc_get_array_type_bounds): Likewise. 1862 18632008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1864 1865 * arith.c (eval_type_intrinsic0): Avoid C++ keywords. 1866 * gfortran.h (try, protected, operator, new): Likewise. 1867 18682008-07-17 Tobias Burnus <burnus@net-b.de> 1869 1870 PR fortran/36825 1871 PR fortran/36824 1872 * array.c (gfc_match_array_spec): Fix array-rank check. 1873 * resolve.c (resolve_fl_derived): Fix constentness check 1874 for the array dimensions. 1875 18762008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1877 1878 * Make-lang.in (gfortranspec.o): Fix dependencies. 1879 18802008-07-13 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1881 1882 PR fortran/36725 1883 * io.c: Add error check for g0 edit descriptor followed by '.'. 1884 18852008-07-12 Daniel Kraft <d@domob.eu> 1886 1887 * resolve.c (resolve_fl_derived): Allow pointer components to empty 1888 derived types fixing a missing part of PR fortran/33221. 1889 18902008-07-10 Daniel Kraft <d@domob.eu> 1891 1892 * gfc-internals.texi (section gfc_expr): Created documentation about 1893 the gfc_expr internal data structure. 1894 18952008-07-07 Thomas Koenig <tkoenig@gcc.gnu.org> 1896 1897 PR fortran/36670 1898 * iresolve.c (gfc_resolve_product): Set shape of return 1899 value from array. 1900 (gfc_resolve_sum): Likewise. 1901 19022008-07-07 Jakub Jelinek <jakub@redhat.com> 1903 1904 PR middle-end/36726 1905 * f95-lang.c (poplevel): Don't ever add subblocks to 1906 global_binding_level. 1907 19082008-07-02 Janus Weil <janus@gcc.gnu.org> 1909 Tobias Burnus <burnus@net-b.de> 1910 Paul Thomas <pault@gcc.gnu.org> 1911 1912 PR fortran/32580 1913 * gfortran.h (struct gfc_symbol): New member "proc_pointer". 1914 * check.c (gfc_check_associated,gfc_check_null): Implement 1915 procedure pointers. 1916 * decl.c (match_procedure_decl): Ditto. 1917 * expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol): Ditto. 1918 * interface.c (compare_actual_formal): Ditto. 1919 * match.h: Ditto. 1920 * match.c (gfc_match_pointer_assignment): Ditto. 1921 * parse.c (parse_interface): Ditto. 1922 * primary.c (gfc_match_rvalue,match_variable): Ditto. 1923 * resolve.c (resolve_fl_procedure): Ditto. 1924 * symbol.c (check_conflict,gfc_add_external,gfc_add_pointer, 1925 gfc_copy_attr,gen_fptr_param,build_formal_args): Ditto. 1926 * trans-decl.c (get_proc_pointer_decl,gfc_get_extern_function_decl, 1927 create_function_arglist): Ditto. 1928 * trans-expr.c (gfc_conv_variable,gfc_conv_function_val, 1929 gfc_conv_function_call,gfc_trans_pointer_assignment): Ditto. 1930 19312008-07-02 Thomas Koenig <tkoenig@gcc.gnu.org> 1932 1933 PR fortran/36590 1934 PR fortran/36681 1935 * iresolve.c (resolve_mask_arg): Don't convert mask to 1936 kind=1 logical if it is of that type already. 1937 19382008-06-29 Thomas Koenig <tkoenig@gcc.gnu.org> 1939 1940 PR fortran/36341 1941 * iresolve.c (gfc_resolve_matmul): Copy shapes 1942 from arguments. 1943 19442008-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1945 1946 * invoke.texi: Add documentation for runtime behavior of 1947 -fno-range-check. 1948 19492008-06-28 Daniel Kraft <d@domob.eu> 1950 1951 * gfc-internals.texi (section gfc_code): Extended documentation about 1952 gfc_code in the internal datastructures chapter including details about 1953 how IF, DO and SELECT blocks look like and an example for how the 1954 block-chaining works. 1955 19562008-06-25 Paul Thomas <pault@gcc.gnu.org> 1957 1958 PR fortran/36526 1959 * interface.c (check_intents): Correct error where the actual 1960 arg was checked for a pointer argument, rather than the formal. 1961 19622008-06-24 Paul Thomas <pault@gcc.gnu.org> 1963 1964 PR fortran/34371 1965 * expr.c (gfc_check_assign): Change message and locus for 1966 error when conform == 0. 1967 19682008-06-23 Jakub Jelinek <jakub@redhat.com> 1969 1970 PR fortran/36597 1971 * cpp.c (cpp_define_builtins): Change _OPENMP value to 200805. 1972 19732008-06-20 Laurynas Biveinis <laurynas.biveinis@gmail.com> 1974 Tobias Burnus <burnus@net-b.de> 1975 1976 PR fortran/34908 1977 PR fortran/36276 1978 * scanner.c (preprocessor_line): do not call gfc_free for 1979 current_file->filename if it differs from filename. 1980 19812008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1982 1983 * arith.c (hollerith2representation): Fix for -Wc++-compat. 1984 * array.c (gfc_get_constructor): Likewise. 1985 * decl.c (gfc_get_data_variable, gfc_get_data_value, gfc_get_data, 1986 create_enum_history, gfc_match_final_decl): Likewise. 1987 * error.c (error_char): Likewise. 1988 * expr.c (gfc_get_expr, gfc_copy_expr): Likewise. 1989 * gfortran.h (gfc_get_charlen, gfc_get_array_spec, 1990 gfc_get_component, gfc_get_formal_arglist, gfc_get_actual_arglist, 1991 gfc_get_namelist, gfc_get_omp_clauses, gfc_get_interface, 1992 gfc_get_common_head, gfc_get_dt_list, gfc_get_array_ref, 1993 gfc_get_ref, gfc_get_equiv, gfc_get_case, gfc_get_iterator, 1994 gfc_get_alloc, gfc_get_wide_string): Likewise. 1995 * interface.c (count_types_test): Likewise. 1996 * intrinsic.c (add_char_conversions, gfc_intrinsic_init_1): 1997 Likewise. 1998 * io.c (gfc_match_open, gfc_match_close, match_filepos, match_io, 1999 gfc_match_inquire, gfc_match_wait): Likewise. 2000 * match.c (gfc_match, match_forall_iterator): Likewise. 2001 * module.c (gfc_get_pointer_info, gfc_get_use_rename, add_fixup, 2002 add_true_name, parse_string, write_atom, quote_string, 2003 mio_symtree_ref, mio_gmp_real, write_common_0): Likewise. 2004 * options.c (gfc_post_options): Likewise. 2005 * primary.c (match_integer_constant, match_hollerith_constant, 2006 match_boz_constant, match_real_constant, 2007 gfc_get_structure_ctor_component, gfc_match_structure_constructor): Likewise. 2008 * scanner.c (gfc_widechar_to_char, add_path_to_list, 2009 add_file_change, load_line, get_file, preprocessor_line, 2010 load_file, unescape_filename, gfc_read_orig_filename): Likewise. 2011 * simplify.c (gfc_simplify_ibits, gfc_simplify_ishft, 2012 gfc_simplify_ishftc): Likewise. 2013 * symbol.c (gfc_get_st_label, gfc_get_namespace, gfc_new_symtree, 2014 gfc_get_uop, gfc_new_symbol, save_symbol_data, gfc_get_gsymbol): 2015 Likewise. 2016 * target-memory.c (gfc_target_interpret_expr): Likewise. 2017 * trans-const.c (gfc_build_wide_string_const): Likewise. 2018 * trans-expr.c (gfc_add_interface_mapping): Likewise. 2019 * trans-intrinsic.c (gfc_conv_intrinsic_conversion, 2020 gfc_conv_intrinsic_int, gfc_conv_intrinsic_lib_function, 2021 gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_ctime, 2022 gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam, 2023 gfc_conv_intrinsic_minmax, gfc_conv_intrinsic_minmax_char, 2024 gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_index_scan_verify, 2025 gfc_conv_intrinsic_merge, gfc_conv_intrinsic_trim): Likewise. 2026 * trans.c (gfc_get_backend_locus): Likewise. 2027 * trans.h (gfc_get_ss): Likewise. 2028 20292008-06-18 Daniel Kraft <d@domob.eu> 2030 2031 PR fortran/36517, fortran/36492 2032 * array.c (gfc_resolve_character_array_constructor): Call 2033 gfc_set_constant_character_len with changed length-chec argument. 2034 * decl.c (gfc_set_constant_character_len): Changed array argument to 2035 be a generic length-checking argument that can be used for correct 2036 checking with typespec and in special cases where the should-be length 2037 is different from the target length. 2038 (build_struct): Call gfc_set_constant_character_len with changed length 2039 checking argument and introduced additional checks for exceptional 2040 conditions on invalid code. 2041 (add_init_expr_to_sym), (do_parm): Call gfc_set_constant_character_len 2042 with changed argument. 2043 * match.h (gfc_set_constant_character_len): Changed third argument to 2044 int for the should-be length rather than bool. 2045 20462008-06-17 Daniel Kraft <d@domob.eu> 2047 2048 PR fortran/36112 2049 * array.c (gfc_resolve_character_array_constructor): Check that all 2050 elements with constant character length have the same one rather than 2051 fixing it if no typespec is given, emit an error if they don't. Changed 2052 return type to "try" and return FAILURE for the case above. 2053 (gfc_resolve_array_constructor): Removed unneeded call to 2054 gfc_resolve_character_array_constructor in this function. 2055 * gfortran.h (gfc_resolve_character_array_constructor): Returns try. 2056 * trans-array.c (get_array_ctor_strlen): Return length of first element 2057 rather than last element. 2058 * resolve.c (gfc_resolve_expr): Handle FAILURE return from 2059 gfc_resolve_character_array_constructor. 2060 20612008-06-17 Paul Thomas <pault@gcc.gnu.org> 2062 2063 PR fortran/34396 2064 * resolve.c (add_dt_to_dt_list): New function. 2065 (resolve_fl_derived): Call new function for pointer components 2066 and when derived type resolved. 2067 20682008-06-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2069 2070 PR fortran/36515 2071 * trans-decl.c (gfc_generate_function_code): Add range_check to options 2072 array. 2073 20742008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2075 2076 * gfc-internals.texi: Expand TABs, drop indentation outside examples. 2077 * gfortran.texi: Likewise. 2078 * intrinsic.texi: Likewise. 2079 * invoke.texi: Likewise. 2080 20812008-06-13 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2082 2083 PR fortran/35863 2084 * trans-io.c (gfc_build_io_library_fndecls): Build declaration for 2085 transfer_character_wide which includes passing in the character kind to 2086 support wide character IO. (transfer_expr): If the kind == 4, create the 2087 argument and build the call. 2088 * gfortran.texi: Fix typo. 2089 20902008-06-13 Tobias Burnus <burnus@net-b.de> 2091 2092 PR fortran/36476 2093 * decl.c (do_parm): Handle init expression for len=*. 2094 20952008-06-12 Tobias Burnus <burnus@net-b.de> 2096 2097 PR fortran/36462 2098 * trans-intrinsic.c (gfc_conv_intrinsic_index_scan_verify): 2099 Fix passing of the BACK= argument. 2100 21012008-06-10 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2102 2103 * cpp.c: Add copyright notice. 2104 * cpp.h: Add copyright notice. 2105 21062008-06-08 Janus Weil <janus@gcc.gnu.org> 2107 2108 PR fortran/36459 2109 * decl.c (match_procedure_decl): Correctly recognize if the interface 2110 is an intrinsic procedure. 2111 21122008-06-08 Tobias Burnus <burnus@net-b.de> 2113 2114 PR fortran/35830 2115 * resolve.c (resolve_symbol): Copy more attributes for 2116 PROCEDUREs with interfaces. 2117 21182008-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2119 2120 PR fortran/36420 2121 PR fortran/36422 2122 * io.c (check_format): Add new error message for zero width. 2123 Use new error message for FMT_A and with READ, FMT_G. Allow 2124 FMT_G with WRITE except when -std=F95 and -std=F2003. 2125 21262008-06-07 Tobias Burnus <burnus@net-b.de> 2127 2128 PR fortran/36437 2129 * intrinsic.c (add_functions): Implement c_sizeof. 2130 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Do not 2131 create unneeded variable in the scalar case. 2132 * intrinsic.texi: Add C_SIZEOF documentation. 2133 21342008-06-06 Tobias Burnus <burnus@net-b.de> 2135 2136 * intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo. 2137 21382008-06-06 Jakub Jelinek <jakub@redhat.com> 2139 2140 * scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs. 2141 * parse.c (next_free): Allow tab after !$omp. 2142 (decode_omp_directive): Handle !$omp task, !$omp taskwait 2143 and !$omp end task. 2144 (case_executable): Add ST_OMP_TASKWAIT. 2145 (case_exec_markers): Add ST_OMP_TASK. 2146 (gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and 2147 ST_OMP_TASKWAIT. 2148 (parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK. 2149 * gfortran.h (gfc_find_sym_in_expr): New prototype. 2150 (gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT. 2151 (gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind, 2152 OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and 2153 untied fields. 2154 (gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT. 2155 * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR, 2156 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR, 2157 LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define. 2158 * trans.h (gfc_omp_clause_default_ctor): Add another argument. 2159 (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op, 2160 gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes. 2161 * types.def (BT_ULONGLONG, BT_PTR_ULONGLONG, 2162 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, 2163 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR, 2164 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR, 2165 BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR, 2166 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New. 2167 (BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather 2168 than boolean_type_node. 2169 * dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK, 2170 EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE, 2171 untied and collapse clauses. 2172 (gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT. 2173 * trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and 2174 EXEC_OMP_TASKWAIT. 2175 * st.c (gfc_free_statement): Likewise. 2176 * resolve.c (gfc_resolve_blocks, resolve_code): Likewise. 2177 (find_sym_in_expr): Rename to... 2178 (gfc_find_sym_in_expr): ... this. No longer static. 2179 (resolve_allocate_expr, resolve_ordinary_assign): Adjust caller. 2180 * match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New 2181 prototypes. 2182 * openmp.c (resolve_omp_clauses): Allow allocatable arrays in 2183 firstprivate, lastprivate, reduction, copyprivate and copyin 2184 clauses. 2185 (omp_current_do_code): Made static. 2186 (omp_current_do_collapse): New variable. 2187 (gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse, 2188 clear omp_current_do_code and omp_current_do_collapse on return. 2189 (gfc_resolve_do_iterator): Handle collapsed do loops. 2190 (resolve_omp_do): Likewise, diagnose errorneous collapsed do loops. 2191 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define. 2192 (gfc_match_omp_clauses): Handle default (firstprivate), 2193 schedule (auto), untied and collapse (n) clauses. 2194 (OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE. 2195 (OMP_TASK_CLAUSES): Define. 2196 (gfc_match_omp_task, gfc_match_omp_taskwait): New functions. 2197 * trans-openmp.c (gfc_omp_private_outer_ref): New function. 2198 (gfc_omp_clause_default_ctor): Add outer argument. For allocatable 2199 arrays allocate them with the bounds of the outer var if outer 2200 var is allocated. 2201 (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op, 2202 gfc_omp_clause_dtor): New functions. 2203 (gfc_trans_omp_array_reduction): If decl is allocatable array, 2204 allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT 2205 and deallocate it in OMP_CLAUSE_REDUCTION_MERGE. 2206 (gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED 2207 for assumed-size arrays. 2208 (gfc_trans_omp_do): Add par_clauses argument. If dovar is 2209 present in lastprivate clause and do loop isn't simple, 2210 set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in 2211 parallel's lastprivate clause, change it to shared and add 2212 lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops. 2213 (gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers. 2214 (gfc_trans_omp_parallel_do): Likewise. Move collapse clause to 2215 OMP_FOR from OMP_PARALLEL. 2216 (gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO, 2217 OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses. 2218 (gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions. 2219 (gfc_trans_omp_directive): Handle EXEC_OMP_TASK and 2220 EXEC_OMP_TASKWAIT. 2221 22222008-06-04 Janus Weil <janus@gcc.gnu.org> 2223 2224 PR fortran/36322 2225 PR fortran/36275 2226 * resolve.c (resolve_symbol): Correctly copy the interface for a 2227 PROCEDURE declaration. 2228 22292008-06-02 Janus Weil <janus@gcc.gnu.org> 2230 2231 PR fortran/36361 2232 * symbol.c (gfc_add_allocatable,gfc_add_dimension, 2233 gfc_add_explicit_interface): Added checks. 2234 * decl.c (attr_decl1): Added missing "var_locus". 2235 * parse.c (parse_interface): Checking for errors. 2236 22372008-06-02 Daniel Kraft <d@domob.eu> 2238 2239 * gfortran.h: New statement-type ST_FINAL for FINAL declarations. 2240 (struct gfc_symbol): New member f2k_derived. 2241 (struct gfc_namespace): New member finalizers, for use in the above 2242 mentioned f2k_derived namespace. 2243 (struct gfc_finalizer): New type defined for finalizers linked list. 2244 * match.h (gfc_match_final_decl): New function header. 2245 * decl.c (gfc_match_derived_decl): Create f2k_derived namespace on 2246 constructed symbol node. 2247 (gfc_match_final_decl): New function to match a FINAL declaration line. 2248 * parse.c (decode_statement): match-call for keyword FINAL. 2249 (parse_derived): Parse CONTAINS section and accept FINAL statements. 2250 * resolve.c (gfc_resolve_finalizers): New function to resolve (that is 2251 in this case, check) a list of finalizer procedures. 2252 (resolve_fl_derived): Call gfc_resolve_finalizers here. 2253 * symbol.c (gfc_get_namespace): Initialize new finalizers to NULL. 2254 (gfc_free_namespace): Free finalizers list. 2255 (gfc_new_symbol): Initialize new f2k_derived to NULL. 2256 (gfc_free_symbol): Free f2k_derived namespace. 2257 (gfc_free_finalizer): New function to free a single gfc_finalizer node. 2258 (gfc_free_finalizer_list): New function to free a linked list of 2259 gfc_finalizer nodes. 2260 22612008-06-02 Daniel Franke <franke.daniel@gmail.com> 2262 2263 PR fortran/36375 2264 PR fortran/36377 2265 * cpp.c (gfc_cpp_init): Do not initialize builtins if 2266 processing already preprocessed input. 2267 (gfc_cpp_preprocess): Finalize output with newline. 2268 22692008-05-31 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2270 2271 * intrinsic.texi: Revert wrong commit. 2272 22732008-05-31 Steven G. Kargl <kargls@comcast.net> 2274 2275 * arith.c (gfc_arith_init_1): Remove now unused r and c variables. 2276 Cleanup numerical inquiry function initialization. 2277 (gfc_arith_done_1): Replace multiple mpfr_clear() invocations with 2278 a single mpfr_clears(). 2279 (gfc_check_real_range): Re-arrange logic to eliminate multiple 2280 unnecessary branching and assignments. 2281 (gfc_arith_times): Use mpfr_clears() in preference to multiple 2282 mpfr_clear(). 2283 (gfc_arith_divide): Ditto. 2284 (complex_reciprocal): Eliminate now unused variables a, re, im. 2285 Cleanup the mpfr abuse. Use mpfr_clears() in preference to 2286 multiple mpfr_clear(). 2287 (complex_pow): Fix comment whitespace. Use mpfr_clears() in 2288 preference to multiple mpfr_clear(). 2289 * simplify.c (gfc_simplify_and): Remove blank line. 2290 (gfc_simplify_atan2): Move error checking earlier to eliminate 2291 a now unnecessay gfc_free_expr(). 2292 (gfc_simplify_bessel_j0): Remove unnecessary gfc_set_model_kind(). 2293 (gfc_simplify_bessel_j1): Ditto. 2294 (gfc_simplify_bessel_jn): Ditto. 2295 (gfc_simplify_bessel_y0): Ditto. 2296 (gfc_simplify_bessel_y1): Ditto. 2297 (gfc_simplify_bessel_yn): Ditto. 2298 (only_convert_cmplx_boz): Eliminate unnecessary duplicate code, and 2299 combine nested if statement rational expressions. 2300 (gfc_simplify_cos): Use mpfr_clears() in preference to multiple 2301 mpfr_clear(). 2302 (gfc_simplify_exp): Ditto. 2303 (gfc_simplify_fraction): Move gfc_set_model_kind() to after the 2304 special case of 0. Use mpfr_clears() in preference to multiple 2305 mpfr_clear(). 2306 (gfc_simplify_gamma): Eliminate unnecessary gfc_set_model_kind(). 2307 (gfc_simplify_lgamma): Ditto. 2308 (gfc_simplify_log10): Ditto. 2309 (gfc_simplify_log): Move gfc_set_model_kind () inside switch 2310 statement. Use mpfr_clears() in preference to multiple mpfr_clear(). 2311 (gfc_simplify_mod): Eliminate now unused variables quot, iquot, 2312 and term. Simplify the mpfr magic. 2313 (gfc_simplify_modulo): Ditto. 2314 (gfc_simplify_nearest): Eliminate unnecessary gfc_set_model_kind(). 2315 (gfc_simplify_scale): Use mpfr_clears() in preference to multiple 2316 mpfr_clear(). 2317 (gfc_simplify_sin): Ditto 2318 (gfc_simplify_sqrt): Ditto 2319 (gfc_simplify_set_exponent): Move gfc_set_model_kind() to after the 2320 special case of 0. Use mpfr_clears() in preference to multiple 2321 mpfr_clear(). 2322 23232008-05-29 Daniel Franke <franke.daniel@gmail.com> 2324 2325 PR target/36348 2326 * Make-lang.in (F95_OBJS): Added dependency on FORTRAN_TARGET_OBJS. 2327 23282008-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2329 2330 * scanner.c (load_line): Add first_char argument. Don't call ungetc. 2331 (gfc_read_orig_filename): Adjust call to load_line. Don't call 2332 ungetc. 2333 (load_file): Adjust call to load_line. 2334 23352008-05-28 Janus Weil <janus@gcc.gnu.org> 2336 2337 PR fortran/36325 2338 PR fortran/35830 2339 * interface.c (gfc_procedure_use): Enable argument checking for 2340 external procedures with explicit interface. 2341 * symbol.c (check_conflict): Fix conflict checking for externals. 2342 (copy_formal_args): Fix handling of arrays. 2343 * resolve.c (resolve_specific_f0, resolve_specific_s0): Fix handling 2344 of intrinsics. 2345 * parse.c (parse_interface): Non-abstract INTERFACE statement implies 2346 EXTERNAL attribute. 2347 23482008-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2349 2350 PR fortran/36319 2351 * intrinsic.c (gfc_convert_chartype): Don't mark conversion 2352 function as pure. 2353 * trans-array.c (gfc_trans_array_ctor_element): Divide element 2354 size by the size of one character to obtain length. 2355 * iresolve.c (gfc_resolve_cshift): Call the _char4 variant when 2356 appropriate. 2357 (gfc_resolve_eoshift): Likewise. 2358 * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Minor beautification. 2359 (gfc_conv_intrinsic_fdate): Minor beautification. 2360 (gfc_conv_intrinsic_ttynam): Minor beautification. 2361 (gfc_conv_intrinsic_minmax_char): Allow all character kinds. 2362 (size_of_string_in_bytes): New function. 2363 (gfc_conv_intrinsic_size): Call size_of_string_in_bytes for 2364 character expressions. 2365 (gfc_conv_intrinsic_sizeof): Likewise. 2366 (gfc_conv_intrinsic_array_transfer): Likewise. 2367 (gfc_conv_intrinsic_trim): Allow all character kinds. Minor 2368 beautification. 2369 (gfc_conv_intrinsic_repeat): Fix comment typo. 2370 * simplify.c (gfc_convert_char_constant): Take care of conversion 2371 of array constructors. 2372 23732008-05-27 Tobias Burnus <burnus@net-b.de> 2374 2375 PR fortran/36316 2376 * trans-array.c (gfc_set_loop_bounds_from_array_spec): 2377 Add missing fold_convert. 2378 23792008-05-26 Daniel Franke <franke.daniel@gmail.com> 2380 2381 * fortran/cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros, 2382 added FIXME instead. 2383 23842008-05-26 Daniel Franke <franke.daniel@gmail.com> 2385 2386 PR fortran/18428 2387 * lang.opt (A, C, CC, D, E, H, P, U, cpp, d, fworking-directory, 2388 imultilib, iprefix, iquote, isysroot, isystem, nocpp, nostdinc, 2389 o, undef, v): New options. 2390 * options.c (gfc_init_options): Also initialize preprocessor 2391 options. 2392 (gfc_post_options): Also handle post-initialization of preprocessor 2393 options. 2394 (gfc_handle_option): Check if option is a preprocessor option. 2395 If yes, let gfc_cpp_handle_option() handle the option. 2396 * lang-specs.h: Reorganized to handle new options. 2397 * scanner.c (gfc_new_file): Read temporary file instead of 2398 input source if preprocessing is enabled. 2399 * f95-lang.c (gfc_init): Initialize preprocessor. 2400 (gfc_finish): Clean up preprocessor. 2401 * cpp.c: New. 2402 * cpp.h: New. 2403 * Make-lang.in: Added new objects and dependencies. 2404 * gfortran.texi: Updated section "Preprocessing and 2405 conditional compilation". 2406 * invoke.texi: Added new section "Preprocessing Options", 2407 listed and documented the preprocessing options handled 2408 by gfortran. 2409 24102008-05-25 Tobias Burnus <burnus@net-b.de> 2411 2412 PR fortran/32600 2413 * trans-expr.c (gfc_conv_function_call): Remove library 2414 call for c_f_pointer with scalar Fortran pointers and for 2415 c_f_procpointer. 2416 24172008-05-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2418 2419 PR fortran/36257 2420 * iresolve.c (check_charlen_present): Don't force the rank to 1. 2421 24222008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2423 2424 PR fortran/36265 2425 * trans-expr.c (gfc_conv_string_tmp): Pick the correct type for 2426 the temporary variable. 2427 24282008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2429 2430 * simplify.c (gfc_simplify_dble, gfc_simplify_real): Initialize 2431 result variable to avoid warnings. 2432 24332008-05-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2434 2435 * intrinsic.c (char_conversions, ncharconv): New static variables. 2436 (find_char_conv): New function. 2437 (add_functions): Add simplification functions for ADJUSTL and 2438 ADJUSTR. Don't check the kind of their argument. Add checking for 2439 LGE, LLE, LGT and LLT. 2440 (add_subroutines): Fix argument type for SLEEP. Fix argument name 2441 for SYSTEM. 2442 (add_char_conversions): New function. 2443 (gfc_intrinsic_init_1): Call add_char_conversions. 2444 (gfc_intrinsic_done_1): Free char_conversions. 2445 (check_arglist): Use kind == 0 as a signal that we don't want 2446 the kind value to be checked. 2447 (do_simplify): Also simplify character functions. 2448 (gfc_convert_chartype): New function 2449 * trans-array.c (gfc_trans_array_ctor_element): Don't force the 2450 use of default character type. 2451 (gfc_trans_array_constructor_value): Likewise. 2452 (get_array_ctor_var_strlen): Use integer kind to build an integer 2453 instead of a character kind! 2454 (gfc_build_constant_array_constructor): Don't force the use of 2455 default character type. 2456 (gfc_conv_loop_setup): Likewise. 2457 * trans-expr.c (gfc_conv_string_tmp): Don't force the use of 2458 default character type. Allocate enough memory for wide strings. 2459 (gfc_conv_concat_op): Make sure operand kind are the same. 2460 (string_to_single_character): Remove gfc_ prefix. Reindent. 2461 Don't force the use of default character type. 2462 (gfc_conv_scalar_char_value): Likewise. 2463 (gfc_build_compare_string): Call string_to_single_character. 2464 (fill_with_spaces): New function 2465 (gfc_trans_string_copy): Add kind arguments. Use them to deal 2466 with wide character kinds. 2467 (gfc_conv_statement_function): Whitespace fix. Call 2468 gfc_trans_string_copy with new kind arguments. 2469 (gfc_conv_substring_expr): Call gfc_build_wide_string_const 2470 instead of using gfc_widechar_to_char. 2471 (gfc_conv_string_parameter): Don't force the use of default 2472 character type. 2473 (gfc_trans_scalar_assign): Pass kind args to gfc_trans_string_copy. 2474 * intrinsic.h (gfc_check_lge_lgt_lle_llt, gfc_convert_char_constant, 2475 gfc_resolve_adjustl, gfc_resolve_adjustr): New prototypes. 2476 * decl.c (gfc_set_constant_character_len): Don't assert the 2477 existence of a single character kind. 2478 * trans-array.h (gfc_trans_string_copy): New prototype. 2479 * gfortran.h (gfc_check_character_range, gfc_convert_chartype): 2480 New prototypes. 2481 * error.c (print_wide_char_into_buffer): New function lifting 2482 code from gfc_print_wide_char. Fix order to output '\x??' instead 2483 of 'x\??'. 2484 (gfc_print_wide_char): Call print_wide_char_into_buffer. 2485 (show_locus): Call print_wide_char_into_buffer with buffer local 2486 to this function. 2487 * trans-const.c (gfc_build_wide_string_const): New function. 2488 (gfc_conv_string_init): Deal with wide characters strings 2489 constructors. 2490 (gfc_conv_constant_to_tree): Call gfc_build_wide_string_const. 2491 * trans-stmt.c (gfc_trans_label_assign): Likewise. 2492 (gfc_trans_character_select): Deal with wide strings. 2493 * expr.c (gfc_check_assign): Allow conversion between character 2494 kinds on assignment. 2495 * trans-const.h (gfc_build_wide_string_const): New prototype. 2496 * trans-types.c (gfc_get_character_type_len_for_eltype, 2497 gfc_get_character_type_len): Create too variants of the old 2498 gfc_get_character_type_len, one getting kind argument and the 2499 other one directly taking a type tree. 2500 * trans.h (gfor_fndecl_select_string_char4, 2501 gfor_fndecl_convert_char1_to_char4, 2502 gfor_fndecl_convert_char4_to_char1): New prototypes. 2503 * trans-types.h (gfc_get_character_type_len_for_eltype): New 2504 prototype. 2505 * resolve.c (resolve_operator): Exit early when kind mismatches 2506 are detected, because that makes us issue an error message later. 2507 (validate_case_label_expr): Fix wording of error message. 2508 * iresolve.c (gfc_resolve_adjustl, gfc_resolve_adjustr): New 2509 functions. 2510 (gfc_resolve_pack): Call _char4 variants of library function 2511 when dealing with wide characters. 2512 (gfc_resolve_reshape): Likewise. 2513 (gfc_resolve_spread): Likewise. 2514 (gfc_resolve_transpose): Likewise. 2515 (gfc_resolve_unpack): Likewise. 2516 * target-memory.c (size_character): Take character kind bit size 2517 correctly into account (not that it changes anything for now, but 2518 it's more generic). 2519 (gfc_encode_character): Added gfc_ prefix. Encoding each 2520 character of a string by calling native_encode_expr for the 2521 corresponding unsigned integer. 2522 (gfc_target_encode_expr): Add gfc_ prefix to encode_character. 2523 * trans-decl.c (gfc_build_intrinsic_function_decls): Build 2524 gfor_fndecl_select_string_char4, gfor_fndecl_convert_char1_to_char4 2525 and gfor_fndecl_convert_char4_to_char1. 2526 * target-memory.h (gfc_encode_character): New prototype. 2527 * arith.c (gfc_check_character_range): New function. 2528 (eval_intrinsic): Allow non-default character kinds. 2529 * check.c (gfc_check_access_func): Only allow default 2530 character kind arguments. 2531 (gfc_check_chdir): Likewise. 2532 (gfc_check_chdir_sub): Likewise. 2533 (gfc_check_chmod): Likewise. 2534 (gfc_check_chmod_sub): Likewise. 2535 (gfc_check_lge_lgt_lle_llt): New function. 2536 (gfc_check_link): Likewise. 2537 (gfc_check_link_sub): Likewise. 2538 (gfc_check_symlnk): Likewise. 2539 (gfc_check_symlnk_sub): Likewise. 2540 (gfc_check_rename): Likewise. 2541 (gfc_check_rename_sub): Likewise. 2542 (gfc_check_fgetputc_sub): Likewise. 2543 (gfc_check_fgetput_sub): Likewise. 2544 (gfc_check_stat): Likewise. 2545 (gfc_check_stat_sub): Likewise. 2546 (gfc_check_date_and_time): Likewise. 2547 (gfc_check_ctime_sub): Likewise. 2548 (gfc_check_fdate_sub): Likewise. 2549 (gfc_check_gerror): Likewise. 2550 (gfc_check_getcwd_sub): Likewise. 2551 (gfc_check_getarg): Likewise. 2552 (gfc_check_getlog): Likewise. 2553 (gfc_check_hostnm): Likewise. 2554 (gfc_check_hostnm_sub): Likewise. 2555 (gfc_check_ttynam_sub): Likewise. 2556 (gfc_check_perror): Likewise. 2557 (gfc_check_unlink): Likewise. 2558 (gfc_check_unlink_sub): Likewise. 2559 (gfc_check_system_sub): Likewise. 2560 * primary.c (got_delim): Perform correct character range checking 2561 for all kinds. 2562 * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Generate 2563 calls to library functions convert_char4_to_char1 and 2564 convert_char1_to_char4 for character conversions. 2565 (gfc_conv_intrinsic_char): Allow all character kings. 2566 (gfc_conv_intrinsic_strcmp): Fix whitespace. 2567 (gfc_conv_intrinsic_repeat): Take care of all character kinds. 2568 * intrinsic.texi: For all GNU intrinsics accepting character 2569 arguments, mention that they're restricted to the default kind. 2570 * simplify.c (simplify_achar_char): New function. 2571 (gfc_simplify_achar, gfc_simplify_char): Call simplify_achar_char. 2572 gfc_simplify_ichar): Don't error out for wide characters. 2573 (gfc_convert_char_constant): New function. 2574 25752008-05-18 Steven G. Kargl <kargls@comcast.net> 2576 2577 PR fortran/36251 2578 * symbol.c (check_conflict): Issue errors for abuse of PUBLIC, PRIVATE, 2579 and BIND(C). 2580 * resolve.c (gfc_verify_binding_labels): Fix NULL pointer dereference. 2581 25822008-05-17 Tobias Burnus <burnus@net-b.de> 2583 2584 * intrinsic.texi: Correct description of GET_COMMAND_ARGUMENT 2585 and GET_ENVIRONMENT_VARIABLE; fix keyword= name for GETENV, 2586 GETLOG, GMTIME, HOSTNM, IRAND, ITIME, KILL. 2587 Move LOG_GAMMA after LOG10. 2588 25892008-05-17 Tobias Burnus <burnus@net-b.de> 2590 2591 * intrinsic.c (add_functions): Change FLUSH(C) to FLUSH(UNIT). 2592 * intrinsic.texi: Change INTEGER(*) to INTEGER; fix keyword= name for 2593 ABS, ADJUSTL, AINT, ALLOCATED, ANINT, ASSOCIATED, C_ASSOCIATED, 2594 CEILING, DBLE, DFLOAT, DOT_PRODUCT, DREAL, FLOAT, FLOOR, GET_COMMAND. 2595 25962008-05-16 Paul Thomas <pault@gcc.gnu.org> 2597 2598 PR fortran/35756 2599 PR fortran/35759 2600 * trans-stmt.c (gfc_trans_where): Tighten up the dependency 2601 check for calling gfc_trans_where_3. 2602 2603 PR fortran/35743 2604 * trans-stmt.c (gfc_trans_where_2): Set the mask size to zero 2605 if it is calculated to be negative. 2606 2607 PR fortran/35745 2608 * trans-stmt.c (gfc_trans_where_3, gfc_trans_where_assign): Set 2609 ss->where for scalar right hand sides. 2610 * trans-array.c (gfc_add_loop_ss_code): If ss->where is set do 2611 not evaluate scalars outside the loop. Clean up whitespace. 2612 * trans.h : Add a bitfield 'where' to gfc_ss. 2613 26142008-05-16 Tobias Burnus <burnus@net-b.de> 2615 2616 * libgfortran.h: Increase GFC_MAX_DIMENSIONS to 15. 2617 * array.c (gfc_match_array_spec): Error with -std=f2003 if rank > 7. 2618 26192008-04-16 Daniel Kraft <d@domob.eu> 2620 2621 PR fortran/27997 2622 * gfortran.h: Added field "length_from_typespec" to gfc_charlength. 2623 * aray.c (gfc_match_array_constructor): Added code to parse typespec. 2624 (check_element_type, check_constructor_type, gfc_check_constructor_type): 2625 Extended to support explicit typespec on constructor. 2626 (gfc_resolve_character_array_constructor): Pad strings correctly for 2627 explicit, constant character length. 2628 * trans-array.c: New static global variable "typespec_chararray_ctor" 2629 (gfc_trans_array_constructor): New code to support explicit but dynamic 2630 character lengths. 2631 26322008-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2633 2634 PR fortran/34325 2635 * decl.c (match_attr_spec): Check for matching pairs of parenthesis. 2636 * expr.c (gfc_specification_expr): Supplement the error message with the 2637 type that was found. 2638 * resolve.c (gfc_resolve_index): Likewise. 2639 * match.c (gfc_match_parens): Clarify error message with "at or before". 2640 (gfc_match_do): Check for matching pairs of parenthesis. 2641 26422008-05-16 Tobias Burnus <burnus@net-b.de 2643 2644 * intrinsic.texi: Write Fortran 77/90/95 instead of F77/90/95; 2645 add missing KIND argument to ACHAR and NINT; and state that 2646 the KIND argument is a F2003 extension for ACHAR, COUNT, IACHAR, 2647 ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND, VERIFY. 2648 26492008-05-16 Daniel Kraft <d@domob.eu> 2650 2651 * primary.c: New private structure "gfc_structure_ctor_component". 2652 (gfc_free_structure_ctor_component): New helper function. 2653 (gfc_match_structure_constructor): Extended largely to support named 2654 arguments and default initialization for structure constructors. 2655 26562008-05-15 Steven G. Kargl <kargls@comcast.net> 2657 2658 * simplify.c (gfc_simplify_dble, gfc_simplify_float, 2659 simplify_bound, gfc_simplify_nearest, gfc_simplify_real): Plug 2660 possible memory leaks. 2661 (gfc_simplify_reshape): Plug possible memory leaks and dereferencing 2662 of NULL pointers. 2663 26642008-05-15 Steven G. Kargl <kargls@comcast.net> 2665 2666 PR fortran/36239 2667 * simplify.c (gfc_simplify_int, gfc_simplify_intconv): Replaced hand 2668 rolled integer conversion with gfc_int2int, gfc_real2int, and 2669 gfc_complex2int. 2670 (gfc_simplify_intconv): Renamed to simplify_intconv. 2671 26722008-05-15 Steven G. Kargl, <kargl@comcast.net> 2673 * gfortran.dg/and_or_xor.f90: New test 2674 2675 * fortran/simplify.c (gfc_simplify_and, gfc_simplify_or, 2676 gfc_simplify_xor): Don't range check logical results. 2677 26782008-05-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2679 2680 * trans-expr.c (gfc_conv_concat_op): Take care of nondefault 2681 character kinds. 2682 (gfc_build_compare_string): Add kind argument and use it. 2683 (gfc_conv_statement_function): Fix indentation. 2684 * gfortran.h (gfc_character_info): New structure. 2685 (gfc_character_kinds): New array. 2686 * trans-types.c (gfc_character_kinds, gfc_character_types, 2687 gfc_pcharacter_types): New array. 2688 (gfc_init_kinds): Fill character kinds array. 2689 (validate_character): Take care of nondefault character kinds. 2690 (gfc_build_uint_type): New function. 2691 (gfc_init_types): Take care of nondefault character kinds. 2692 (gfc_get_char_type, gfc_get_pchar_type): New functions. 2693 (gfc_get_character_type_len): Use gfc_get_char_type. 2694 * trans.h (gfc_build_compare_string): Adjust prototype. 2695 (gfor_fndecl_compare_string_char4, gfor_fndecl_concat_string_char4, 2696 gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4, 2697 gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4, 2698 gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4, 2699 gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4): New 2700 prototypes. 2701 * trans-types.h (gfc_get_char_type, gfc_get_pchar_type): New 2702 prototypes. 2703 * trans-decl.c (gfor_fndecl_compare_string_char4, 2704 gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4, 2705 gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4, 2706 gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4, 2707 gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4, 2708 gfor_fndecl_concat_string_char4): New function decls. 2709 (gfc_build_intrinsic_function_decls): Define new *_char4 function 2710 decls. 2711 * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char, 2712 gfc_conv_intrinsic_len_trim, gfc_conv_intrinsic_ichar, 2713 gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_trim, 2714 gfc_conv_intrinsic_function): Deal with nondefault character kinds. 2715 27162008-05-15 Sa Liu <saliu@de.ibm.com> 2717 2718 * iso-c-binding.def: Add standard parameter to macro NAMED_INTCST. 2719 All existing NAMED_INTCST definitions has standard GFC_STD_F2003, 2720 c_int128_t, c_int_least128_t and c_int_fast128_t are added as 2721 GNU extensions. 2722 * iso-fortran-evn.def: Add standard parameter GFC_STD_F2003 2723 to macro NAMED_INTCST. 2724 * symbol.c (std_for_isocbinding_symbol): New helper function to 2725 return the standard that supports this isocbinding symbol. 2726 (generate_isocbinding_symbol): Do not generate GNU extension symbols 2727 if std=f2003. Add new parameter to NAMED_INTCST. 2728 * module.c (use_iso_fortran_env_module): Add new parameter to 2729 NAMED_INTCST and new field standard to struct intmod_sym. 2730 * gfortran.h: Add new parameter to NAMED_INTCST. 2731 * trans-types.c (init_c_interop_kinds): Add new parameter to 2732 NAMED_INTCST. 2733 * intrinsic.texi: Documented new types C_INT128_T, C_INT_LEASE128_T 2734 and C_INT_FAST128_T. 2735 27362008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2737 2738 PR fortran/36059 2739 * trans-decl.c (gfc_build_dummy_array_decl): Don't repack 2740 arrays that have the TARGET attribute. 2741 27422008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2743 2744 PR fortran/36186 2745 * simplify.c (only_convert_cmplx_boz): New function. 2746 (gfc_simplify_cmplx, gfc_simplify_complex, gfc_simplify_dcmplx): 2747 Call only_convert_cmplx_boz. 2748 27492008-05-14 Paul Thomas <pault@gcc.gnu.org> 2750 2751 PR fortran/36233 2752 * interface.c (compare_actual_formal): Do not check sizes if the 2753 actual is BT_PROCEDURE. 2754 27552008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2756 2757 PR fortran/35682 2758 * trans-array.c (gfc_conv_ss_startstride): Any negative size is 2759 the same as zero size. 2760 (gfc_conv_loop_setup): Fix size calculation. 2761 27622008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2763 2764 PR fortran/35685 2765 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Correctly 2766 handle zero-size sections. 2767 27682008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2769 2770 PR fortran/36215 2771 * scanner.c (preprocessor_line): Allocate enough memory for a 2772 wide string. 2773 27742008-05-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2775 2776 PR fortran/36176 2777 * target-memory.c (gfc_target_expr_size): Correctly treat 2778 substrings. 2779 (gfc_target_encode_expr): Likewise. 2780 (gfc_interpret_complex): Whitespace change. 2781 27822008-05-11 Thomas Koenig <tkoenig@gcc.gnu.org> 2783 2784 PR fortran/35719 2785 * trans.c (gfc_call_malloc): If size equals zero, allocate one 2786 byte; don't return a null pointer. 2787 27882008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2789 2790 PR fortran/36197 2791 * module.c (quote_string): Fix sprintf format. 2792 27932008-05-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2794 2795 PR fortran/36162 2796 * module.c (quote_string, unquote_string, 2797 mio_allocated_wide_string): New functions. 2798 (mio_expr): Call mio_allocated_wide_string where needed. 2799 28002008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com> 2801 2802 * trans-decl.c (gfc_get_extern_function_decl, build_function_decl): 2803 Rename DECL_IS_PURE to DECL_PURE_P. 2804 28052008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2806 2807 * arith.c: (gfc_arith_concat, gfc_compare_string, 2808 gfc_compare_with_Cstring, hollerith2representation, 2809 gfc_hollerith2int, gfc_hollerith2real, gfc_hollerith2complex, 2810 gfc_hollerith2character, gfc_hollerith2logical): Use wide 2811 characters for character constants. 2812 * data.c (create_character_intializer): Likewise. 2813 * decl.c (gfc_set_constant_character_len): Likewise. 2814 * dump-parse-tree.c (show_char_const): Correctly dump wide 2815 character strings. 2816 error.c (print_wide_char): Rename into gfc_print_wide_char. 2817 (show_locus): Adapt to new prototype of gfc_print_wide_char. 2818 expr.c (free_expr0): Representation is now disjunct from 2819 character string value, so we always free it. 2820 (gfc_copy_expr, find_substring_ref, gfc_simplify_expr): Adapt 2821 to wide character strings. 2822 * gfortran.h (gfc_expr): Make value.character.string a wide string. 2823 (gfc_wide_toupper, gfc_wide_strncasecmp, gfc_wide_memset, 2824 gfc_widechar_to_char, gfc_char_to_widechar): New prototypes. 2825 (gfc_get_wide_string): New macro. 2826 (gfc_print_wide_char): New prototype. 2827 * io.c (format_string): Make a wide string. 2828 (next_char, gfc_match_format, compare_to_allowed_values, 2829 gfc_match_open): Deal with wide strings. 2830 * module.c (mio_expr): Convert between wide strings and ASCII ones. 2831 * primary.c (match_hollerith_constant, match_charkind_name): 2832 Handle wide strings. 2833 * resolve.c (build_default_init_expr): Likewise. 2834 * scanner.c (gfc_wide_toupper, gfc_wide_memset, 2835 gfc_char_to_widechar): New functions. 2836 (wide_strchr, gfc_widechar_to_char, gfc_wide_strncasecmp): 2837 Changes in prototypes. 2838 (gfc_define_undef_line, load_line, preprocessor_line, 2839 include_line, load_file, gfc_read_orig_filename): Handle wide 2840 strings. 2841 * simplify.c (gfc_simplify_achar, gfc_simplify_adjustl, 2842 gfc_simplify_adjustr, gfc_simplify_char, gfc_simplify_iachar, 2843 gfc_simplify_ichar, simplify_min_max, gfc_simplify_new_line, 2844 gfc_simplify_repeat): Handle wide strings. 2845 (wide_strspn, wide_strcspn): New helper functions. 2846 (gfc_simplify_scan, gfc_simplify_trim, gfc_simplify_verify): 2847 Handle wide strings. 2848 * symbol.c (generate_isocbinding_symbol): Likewise. 2849 * target-memory.c (size_character, gfc_target_expr_size, 2850 encode_character, gfc_target_encode_expr, gfc_interpret_character, 2851 gfc_target_interpret_expr): Handle wide strings. 2852 * trans-const.c (gfc_conv_string_init): Lower wide strings to 2853 narrow ones. 2854 (gfc_conv_constant_to_tree): Likewise. 2855 * trans-expr.c (gfc_conv_substring_expr): Handle wide strings. 2856 * trans-io.c (gfc_new_nml_name_expr): Likewise. 2857 * trans-stmt.c (gfc_trans_label_assign): Likewise. 2858 28592008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2860 2861 * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1, 2862 gfc_simplify_bessel_jn,gfc_simplify_bessel_y0, 2863 gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): Mark arguments 2864 with ATTRIBUTE_UNUSED. 2865 28662008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2867 2868 * check.c (gfc_check_sizeof): Switch to ATTRIBUTE_UNUSED. 2869 * simplify.c (gfc_simplify_lgamma): Likewise. 2870 28712008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2872 2873 * openmp.c (gfc_match_omp_eos): Use gfc_next_ascii_char and 2874 gfc_peek_ascii_char. 2875 * decl.c (gfc_match_kind_spec, gfc_match_type_spec, 2876 gfc_match_implicit_none, match_implicit_range, gfc_match_implicit, 2877 match_string_p, match_attr_spec, gfc_match_suffix, 2878 match_procedure_decl, gfc_match_entry, gfc_match_subroutine): 2879 Likewise. 2880 * gfortran.h (gfc_char_t): New type. 2881 (gfc_linebuf): Make line member a gfc_char_t. 2882 (locus): Make nextc member a gfc_char_t. 2883 (gfc_wide_is_printable, gfc_wide_is_digit, gfc_wide_fits_in_byte, 2884 gfc_wide_tolower, gfc_wide_strlen, gfc_next_ascii_char, 2885 gfc_peek_ascii_char, gfc_check_digit): New prototypes. 2886 * error.c (print_wide_char): New function. 2887 (show_locus): Use print_wide_char and gfc_wide_strlen. 2888 * io.c (next_char): Use gfc_char_t type. 2889 (match_io): Use gfc_peek_ascii_char and gfc_next_ascii_char. 2890 * match.c (gfc_match_parens, gfc_match_eos, 2891 gfc_match_small_literal_int, gfc_match_name, gfc_match_name_C, 2892 gfc_match_intrinsic_op, gfc_match_char, gfc_match_return, 2893 gfc_match_common): Likewise. 2894 * match.h (gfc_match_special_char): Change prototype. 2895 * parse.c (decode_specification_statement, decode_statement, 2896 decode_omp_directive, next_free, next_fixed): Use 2897 gfc_peek_ascii_char and gfc_next_ascii_char. 2898 * primary.c (gfc_check_digit): Change name. 2899 (match_digits, match_hollerith_constant, match_boz_constant, 2900 match_real_constant, next_string_char, match_charkind_name, 2901 match_string_constant, match_logical_constant_string, 2902 match_complex_constant, match_actual_arg, match_varspec, 2903 gfc_match_rvalue, match_variable): Use gfc_peek_ascii_char and 2904 gfc_next_ascii_char. 2905 * scanner.c (gfc_wide_fits_in_byte, wide_is_ascii, 2906 gfc_wide_is_printable, gfc_wide_tolower, gfc_wide_is_digit, 2907 gfc_wide_is_digit, wide_atoi, gfc_wide_strlen, wide_strcpy, 2908 wide_strchr, widechar_to_char, wide_strncmp, wide_strncasecmp, 2909 gfc_next_ascii_char, gfc_peek_ascii_char): 2910 New functions. 2911 (next_char, gfc_define_undef_line, skip_free_comments, 2912 gfc_next_char_literal, gfc_next_char, gfc_peek_char, 2913 gfc_error_recovery, load_line, preprocessor_line, include_line, 2914 load_file, gfc_read_orig_filename): Use gfc_char_t for source 2915 characters and the {gfc_,}wide_* functions to manipulate wide 2916 strings. 2917 29182008-05-06 Tobias Burnus <burnus@net-b.de> 2919 2920 PR fortran/36117 2921 * intrinsic.c (add_functions): Call gfc_simplify_bessel_*. 2922 * intrinsic.h: Add prototypes for gfc_simplify_bessel_*. 2923 * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1, 2924 gfc_simplify_bessel_jn,gfc_simplify_bessel_y0, 2925 gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): New. 2926 29272008-05-03 Janus Weil <jaydub66@gmail.com> 2928 2929 * misc.c (gfc_clear_ts): Set interface to NULL. 2930 29312008-05-03 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2932 2933 PR fortran/33268 2934 * gfortran.h: Add extra_comma pointer to gfc_dt structure. Add iokind to 2935 gfc_expr value union. Add io_kind enum to here from io.c. 2936 * io.c (gfc_free_dt): Free extra_comma. 2937 (gfc_resolve_dt): If an extra comma was encountered and io_unit is type 2938 BT_CHARACTER, resolve to format_expr and set default unit. Error if 2939 io_kind is M_WRITE. (match_io): Match the extra comma and set new 2940 pointer, extra_comma. 2941 29422008-05-01 Bud Davis <bdavis9659@sbcglobal.net> 2943 2944 PR35940/Fortran 2945 * simplify.c (gfc_simplify_index): Check for direction argument 2946 being a constant. 2947 29482008-05-01 Janus Weil <jaydub66@gmail.com> 2949 2950 * gfortran.h (struct gfc_symbol): Moving "interface" member to 2951 gfc_typespec (plus fixing a small docu error). 2952 * interface.c (gfc_procedure_use): Ditto. 2953 * decl.c (match_procedure_decl): Ditto. 2954 * resolve.c (resolve_specific_f0, 2955 resolve_specific_f0, resolve_symbol): Ditto. 2956 29572008-04-30 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2958 2959 * intrinsic.c (add_functions): Add SELECTED_CHAR_KIND intrinsic. 2960 * intrinsic.h (gfc_check_selected_char_kind, 2961 gfc_simplify_selected_char_kind): New prototypes. 2962 * gfortran.h (gfc_isym_id): Add GFC_ISYM_SC_KIND. 2963 * trans.h (gfor_fndecl_sc_kind): New function decl. 2964 * trans-decl.c (gfor_fndecl_sc_kind): Build new decl. 2965 * arith.c (gfc_compare_with_Cstring): New function. 2966 * arith.h (gfc_compare_with_Cstring): New prototype. 2967 * check.c (gfc_check_selected_char_kind): New function. 2968 * primary.c (match_string_constant, match_kind_param): Mark 2969 symbols used as literal constant kind param as referenced. 2970 * trans-intrinsic.c (gfc_conv_intrinsic_sc_kind): New function. 2971 (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_sc_kind. 2972 * intrinsic.texi (SELECTED_CHAR_KIND): Document new intrinsic. 2973 * simplify.c (gfc_simplify_selected_char_kind): New function. 2974 29752008-04-28 Paul Thomas <pault@gcc.gnu.org> 2976 2977 PR fortran/35997 2978 * module.c (find_symbol): Do not return a result for a symbol 2979 that has been renamed in another module. 2980 29812008-04-26 George Helffrich <george@gcc.gnu.org> 2982 2983 PR fortran/35892 2984 PR fortran/35154 2985 * trans-common.c (create_common): Add decl to function 2986 chain (if inside one) to preserve identifier scope in debug output. 2987 29882008-04-25 Jan Hubicka <jh@suse.cz> 2989 2990 * trans-decl.c (trans_function_start): Update. 2991 29922008-04-25 Tobias Burnus <burnus@net-b.de> 2993 Daniel Franke <franke.daniel@gmail.com> 2994 2995 PR fortran/35156 2996 * gfortranspec.c (lang_specific_driver): Deprecate 2997 -M option; fix ICE when "-M" is last argument and 2998 make "-M<dir>" work. 2999 * options.c (gfc_handle_module_path_options): 3000 Use -J instead of -M in error messages. 3001 * invoke.texi: Mark -M as depecated. 3002 30032008-04-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3004 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3005 3006 PR fortran/35994 3007 * trans-instrinsic.c (gfc_conv_intrinsic_minmaxloc): Correctly adjust 3008 loop counter offset. 3009 30102008-04-23 Paolo Bonzini <bonzini@gnu.org> 3011 3012 * trans-expr.c (gfc_conv_structure): Don't set TREE_INVARIANT. 3013 * trans-array.c (gfc_build_null_descriptor): Don't set TREE_INVARIANT. 3014 (gfc_trans_array_constructor_value): Don't set TREE_INVARIANT. 3015 (gfc_build_constant_array_constructor): Don't set TREE_INVARIANT. 3016 (gfc_conv_array_initializer): Don't set TREE_INVARIANT. 3017 * trans-common.c (get_init_field): Don't set TREE_INVARIANT. 3018 (create_common): Don't set TREE_INVARIANT. 3019 * trans-stmt.c (gfc_trans_character_select): Don't set TREE_INVARIANT. 3020 * trans-decl.c (gfc_generate_function_code): Don't set TREE_INVARIANT. 3021 30222008-04-21 Steve Ellcey <sje@cup.hp.com> 3023 3024 * f95-lang.c (gfc_init_decl_processing): use ptr_mode instead of Pmode. 3025 30262008-04-21 Daniel Franke <franke.daniel@gmail.com> 3027 3028 PR fortran/35019 3029 * gfortranspec.c (lookup_option): Properly handle separated arguments 3030 in -J option, print missing argument message when necessary. 3031 30322008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3033 3034 PR fortran/35882 3035 * scanner.c (skip_fixed_comments): Update continue_line when comment is 3036 detected. (gfc_next_char_literal): Likewise. 3037 30382008-04-19 Paul Thomas <pault@gcc.gnu.org> 3039 3040 PR fortran/35944 3041 PR fortran/35946 3042 PR fortran/35947 3043 * trans_array.c (gfc_trans_array_constructor): Temporarily 3044 realign loop, if loop->from is not zero, before creating 3045 the temporary array and provide an offset. 3046 3047 PR fortran/35959 3048 * trans-decl.c (gfc_init_default_dt): Add gfc_ prefix to name 3049 and allow for NULL body. Change all references from 3050 init_default_dt to gfc_init_default_dt. 3051 * trans.h : Add prototype for gfc_init_default_dt. 3052 * trans-array.c (gfc_trans_deferred_vars): After nullification 3053 call gfc_init_default_dt for derived types with allocatable 3054 components. 3055 30562008-04-18 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3057 3058 PR fortran/35892 3059 * trans-common.c (create_common): Revert patch causing regression. 3060 30612008-04-16 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3062 3063 PR fortran/35724 3064 * iresolve.c (gfc_resolve_eoshift): Check for NULL symtree in test for 3065 optional argument attribute. 3066 30672008-04-16 Paul Thomas <pault@gcc.gnu.org> 3068 3069 PR fortran/35932 3070 * trans-intrinsic.c (gfc_conv_intrinsic_char): Even though KIND 3071 is not used, the argument must be converted. 3072 30732008-04-16 Jakub Jelinek <jakub@redhat.com> 3074 3075 PR target/35662 3076 * f95-lang.c (gfc_init_builtin_functions): Make sure 3077 BUILT_IN_SINCOS{,F,L} types aren't varargs. 3078 30792008-04-15 Paul Thomas <pault@gcc.gnu.org> 3080 3081 PR fortran/35864 3082 * expr.c (scalarize_intrinsic_call): Reorder identification of 3083 array argument so that if one is not found a segfault does not 3084 occur. Return FAILURE if all scalar arguments. 3085 30862008-04-13 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3087 Tobias Burnus <burnus@net-b.de> 3088 3089 PR fortran/35882 3090 * options.c (gfc_init_options): Set the default maximum continuation 3091 lines to 255 for both free and fixed form source for warnings. 3092 (gfc_handle_option): Set -std=f95 fixed form max continuations to 19 and 3093 the -std=f95 free form max continuations to 39 for warnings. 3094 * scanner.c (gfc_next_char_literal): Adjust the current_line number only 3095 if it is less than the current locus. 3096 30972008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3098 3099 PR fortran/25829 28655 3100 * io.c (io_tag): Add new tags for decimal, encoding, asynchronous, 3101 round, sign, and id. (match_open_element): Match new tags. 3102 (gfc_resolve_open): Resolve new tags. (gfc_match_open): Enable encoding 3103 for DEFAULT only. Update error messages. (match_dt_element): Fix match 3104 tag for asynchronous. Update error messages. (gfc_free_inquire): Free 3105 new expressions. (match_inquire_element): Match new tags. 3106 (gfc_match_inquire): Add constraint for ID and PENDING. 3107 (gfc_resolve_inquire): Resolve new tags. 3108 * trans-io.c (gfc_trans_inquire): Clean up whitespace and fix setting of 3109 mask for ID parameter. 3110 * ioparm.def: Fix order of parameters for pending, round, and sign. 3111 NOTE: These must line up with the definitions in libgfortran/io/io.h. or 3112 things don't work. 3113 31142008-04-06 Paul Thomas <pault@gcc.gnu.org> 3115 3116 PR fortran/35780 3117 * expr.c (scalarize_intrinsic_call): Identify which argument is 3118 an array and use that as the template. 3119 (check_init_expr): Remove tests that first argument is an array 3120 in the call to scalarize_intrinsic_call. 3121 31222008-04-06 Tobias Schl��ter <tobi@gcc.gnu.org> 3123 3124 PR fortran/35832 3125 * io.c (io_tag): Add field 'value'. Split 'spec' field in 3126 existing io_tags. 3127 (match_etag, match_vtag, match_ltag): Split parsing in two steps 3128 to give better error messages. 3129 31302008-04-06 Tobias Burnus <burnus@net-b.de> 3131 3132 * io.c (check_io_constraints): Add constrains. ID= requires 3133 asynchronous= and asynchronous= must be init expression. 3134 31352008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3136 3137 * f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran". 3138 31392008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3140 3141 * dump-parse-tree.c: Use fprintf, fputs and fputc instead of 3142 gfc_status and gfc_status_char. Remove gfc_ prefix of the gfc_show_* 3143 functions and make them static. Add new gfc_dump_parse_tree 3144 function. 3145 * gfortran.h (gfc_option_t): Rename verbose into dump_parse_tree. 3146 (gfc_status, gfc_status_char): Delete prototypes. 3147 * error.c (gfc_status, gfc_status_char): Remove functions. 3148 * scanner.c (gfc_new_file): Use printf instead of gfc_status. 3149 * options.c (gfc_init_options): Rename verbose into dump_parse_tree. 3150 (gfc_handle_module_path_options): Use gfc_fatal_error instead of 3151 gfc_status and exit. 3152 (gfc_handle_option): Rename verbose into dump_parse_tree. 3153 * parse.c (gfc_parse_file): Use gfc_dump_parse_tree. 3154 31552008-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3156 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3157 3158 PR fortran/25829 28655 3159 * dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters. 3160 * gfortran.h (gfc_statement): Add ST_WAIT enumerator. 3161 (gfc_open): Add pointers for decimal, encoding, round, sign, 3162 asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal, 3163 encoding, pending, round, sign, size, id. 3164 (gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos, 3165 asynchronous, blank, decimal, delim, pad, round, sign. 3166 (gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for 3167 wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes. 3168 * trans-stmt.h (gfc_trans_wait): New function prototype. 3169 * trans.c (gfc_trans_code): Add case for EXEC_WAIT. 3170 * io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN, 3171 ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags. 3172 (gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new 3173 tags. (gfc_resolve_open): Remove comment around check for allowed 3174 values and ASYNCHRONOUS, update it. Likewise for DECIMAL, ENCODING, 3175 ROUND, and SIGN. (match_dt_element): Add matching for new tags. 3176 (gfc_free_wait): New function. (gfc_resolve_wait): New function. 3177 (match_wait_element): New function. (gfc_match_wait): New function. 3178 * resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT. 3179 (resolve_code): Add case for EXEC_WAIT. 3180 * st.c (gfc_free_statement): Add case for EXEC_WAIT. 3181 * trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter): 3182 Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator. 3183 (gfc_build_io_library_fndecls): Add function declaration for st_wait. 3184 (gfc_trans_open): Add mask bits for new I/O tags. 3185 (gfc_trans_inquire): Add mask bits for new I/O tags. 3186 (gfc_trans_wait): New translation function. 3187 (build_dt): Add mask bits for new I/O tags. 3188 * match.c (gfc_match_if) Add matcher for "wait". 3189 * match.h (gfc_match_wait): Prototype for new function. 3190 * ioparm.def: Add new I/O parameter definitions. 3191 * parse.c (decode_statement): Add match for "wait" statement. 3192 (next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same. 3193 31942008-04-03 Jakub Jelinek <jakub@redhat.com> 3195 3196 PR fortran/35786 3197 * openmp.c (resolve_omp_clauses): Diagnose if a clause symbol 3198 isn't a variable. 3199 32002008-04-03 Tom Tromey <tromey@redhat.com> 3201 3202 * Make-lang.in (fortran_OBJS): New variable. 3203 32042008-04-03 Paolo Bonzini <bonzini@gnu.org> 3205 3206 * f95-lang.c (insert_block): Kill. 3207 32082008-04-01 George Helffrich <george@gcc.gnu.org> 3209 3210 PR fortran/35154, fortran/23057 3211 * trans-common.c (create_common): Add decl to function 3212 chain to preserve identifier scope in debug output. 3213 32142008-04-01 Joseph Myers <joseph@codesourcery.com> 3215 3216 * gfortran.texi: Include gpl_v3.texi instead of gpl.texi 3217 * Make-lang.in (GFORTRAN_TEXI): Include gpl_v3.texi instead of 3218 gpl.texi. 3219 32202008-03-30 Paul Thomas <pault@gcc.gnu.org> 3221 3222 PR fortran/35740 3223 * resolve.c (resolve_function, resolve_call): If the procedure 3224 is elemental do not look for noncopying intrinsics. 3225 32262008-03-29 Paul Thomas <pault@gcc.gnu.org> 3227 3228 PR fortran/35698 3229 * trans-array.c (gfc_array_init_size): Set 'size' zero if 3230 negative in one dimension. 3231 3232 PR fortran/35702 3233 * trans-expr.c (gfc_trans_string_copy): Only assign a char 3234 directly if the lhs and rhs types are the same. 3235 32362008-03-28 Daniel Franke <franke.daniel@gmail.com> 3237 Paul Richard Thomas <paul.richard.thomas@gmail.com> 3238 3239 PR fortran/34714 3240 * primary.c (match_variable): Improved matching of function 3241 result variables. 3242 * resolve.c (resolve_allocate_deallocate): Removed checks if 3243 the actual argument for STAT is a variable. 3244 32452008-03-28 Tobias Burnus <burnus@net-b.de> 3246 3247 * symbol.c (gfc_get_default_type): Fix error message; option 3248 -fallow_leading_underscore should be -fallow-leading-underscore 3249 32502008-03-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3251 3252 PR fortran/35724 3253 * iresolve.c (gfc_resolve_cshift): Check for NULL symtree in test for 3254 optional argument attribute. 3255 32562008-03-27 Tom Tromey <tromey@redhat.com> 3257 3258 * Make-lang.in: Revert automatic dependency patch. 3259 32602008-03-25 Tom Tromey <tromey@redhat.com> 3261 3262 * Make-lang.in: Remove .o targets. 3263 (fortran_OBJS): New variable. 3264 (fortran/gfortranspec.o): Move to fortran/. Reduce to variable 3265 setting. 3266 (GFORTRAN_D_OBJS): Update. 3267 (GFORTRAN_TRANS_DEPS): Remove. 3268 32692008-03-24 Paul Thomas <pault@gcc.gnu.org> 3270 3271 PR fortran/34813 3272 * resolve.c (resolve_structure_cons): It is an error to assign 3273 NULL to anything other than a pointer or allocatable component. 3274 3275 PR fortran/33295 3276 * resolve.c (resolve_symbol): If the symbol is a derived type, 3277 resolve the derived type. If the symbol is a derived type 3278 function, ensure that the derived type is visible in the same 3279 namespace as the function. 3280 32812008-03-23 Tobias Schl��ter <tobi@gcc.gnu.org> 3282 3283 * trans.h: Use fold_build in build1_v, build2_v and build3_v 3284 macros. 3285 * trans-openmp.c (gfc_trans_omp_critical, gfc_trans_omp_single): 3286 Don't use build2_v macro. 3287 32882008-03-19 Daniel Franke <franke.daniel@gmail.com> 3289 3290 PR fortran/35152 3291 * interface.c (gfc_procedure_use): Check for keyworded arguments in 3292 procedures without explicit interfaces. 3293 32942008-03-16 Paul Thomas <pault@gcc.gnu.org> 3295 3296 PR fortran/35470 3297 * resolve.c (check_assumed_size_reference): Only visit the 3298 first reference and look directly at the highest dimension. 3299 33002008-03-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3301 3302 PR fortran/35184 3303 * trans-array.c (gfc_conv_array_index_offset): Remove unnecessary 3304 assert. 3305 33062008-03-15 Daniel Franke <franke.daniel@gmail.com> 3307 3308 PR fortran/35584 3309 * resolve.c (resolve_branch): Less strict and pessimistic warning 3310 message. 3311 33122008-03-11 Paolo Bonzini <bonzini@gnu.org> 3313 3314 * f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete. 3315 (gfc_be_parse_file): Call clear_binding_stack from here. 3316 (gfc_clear_binding_stack): Rename to clear_binding_stack. 3317 33182008-03-09 Paul Thomas <pault@gcc.gnu.org> 3319 3320 PR fortran/35474 3321 * module.c (mio_symtree_ref): After providing a symbol for a 3322 missing equivalence member, resolve and NULL the fixups. 3323 33242008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3325 3326 * invoke.texi (Error and Warning Options): Document 3327 -Wline-truncation. 3328 33292008-03-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3330 3331 PR fortran/34956 3332 * trans-array.c (gfc_conv_ss_startstride): Fix the logic to avoid 3333 checking bounds of absent optional arguments. 3334 33352008-03-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3336 3337 PR fortran/33197 3338 * intrinsic.c (add_functions): Add simplification routines for 3339 ERF, DERF, ERFC and DERFC. 3340 * decl.c (gfc_match_suffix, gfc_match_subroutine): Change GNU 3341 extensions into Fortran 2008 features. 3342 * intrinsic.h (gfc_simplify_erf, gfc_simplify_erfc): New 3343 prototypes. 3344 * simplify.c (gfc_simplify_erf, gfc_simplify_erfc): New functions. 3345 33462008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3347 3348 PR fortran/33197 3349 * intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH, 3350 ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N}, 3351 ERFC_SCALED, LOG_GAMMA and HYPOT. 3352 * intrinsic.h (gfc_check_hypot, gfc_simplify_hypot, 3353 gfc_resolve_hypot): New prototypes. 3354 * mathbuiltins.def: Add HYPOT builtin. Make complex versions of 3355 ACOSH, ASINH and ATANH available. 3356 * gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values. 3357 * lang.opt: Add -std=f2008 option. 3358 * libgfortran.h: Define GFC_STD_F2008. 3359 * lang-specs.h: Add .f08 and .F08 file suffixes. 3360 * iresolve.c (gfc_resolve_hypot): New function. 3361 * parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008. 3362 * check.c (gfc_check_hypot): New function. 3363 * trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin. 3364 * options.c (set_default_std_flags): Allow Fortran 2008 by default. 3365 (form_from_filename): Add .f08 suffix. 3366 (gfc_handle_option): Handle -std=f2008 option. 3367 * simplify.c (gfc_simplify_hypot): New function. 3368 * gfortran.texi: Document Fortran 2008 status and file extensions. 3369 * intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics, 3370 as well as HYPOT and ERFC_SCALED. Update documentation of ERF, 3371 ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH. 3372 * invoke.texi: Document the new -std=f2008 option. 3373 33742008-03-02 Jakub Jelinek <jakub@redhat.com> 3375 3376 * gfortranspec.c (lang_specific_driver): Update copyright notice 3377 dates. 3378 33792008-02-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3380 3381 PR fortran/35059 3382 * expr.c (find_array_element): Modify traversing the constructor to 3383 avoid trying to access NULL memory pointed to by next for the 3384 last element. (find_array_section): Exit while loop if cons->next is 3385 NULL. 3386 * trans-expr.c (gfc_conv_scalar_char_value): Initialize gfc_typespec. 3387 (gfc_conv_function_call): Same. 3388 * decl.c (gfc_match_implicit): Same. 3389 * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Same. 3390 33912008-02-28 Daniel Franke <franke.daniel@gmail.com> 3392 3393 PR fortran/31463 3394 PR fortran/33950 3395 PR fortran/34296 3396 * lang.opt: Added -Wreturn-type. 3397 * options.c (gfc_handle_option): Recognize -Wreturn-type. 3398 * trans-decl.c (gfc_trans_deferred_vars): Emit warnings for funtions 3399 where the result value is not set. 3400 (gfc_generate_function_code): Likewise. 3401 (generate_local_decl): Emit warnings for funtions whose RESULT 3402 variable is not set. 3403 34042008-02-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3405 3406 PR fortran/34868 3407 * trans-expr.c (gfc_conv_variable): Don't build indirect 3408 references when explicit interface is mandated. 3409 * resolve.c (resolve_formal_arglist): Set attr.always_explicit 3410 on the result symbol as well as the procedure symbol. 3411 34122008-02-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3413 3414 PR fortran/33387 3415 * trans.h: Remove prototypes for gfor_fndecl_math_exponent4, 3416 gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and 3417 gfor_fndecl_math_exponent16. 3418 * f95-lang.c (build_builtin_fntypes): Add new function types. 3419 (gfc_init_builtin_functions): Add new builtins for nextafter, 3420 frexp, ldexp, fabs, scalbn and inf. 3421 * iresolve.c (gfc_resolve_rrspacing): Don't add hidden arguments. 3422 (gfc_resolve_scale): Don't convert type of second argument. 3423 (gfc_resolve_set_exponent): Likewise. 3424 (gfc_resolve_size): Don't add hidden arguments. 3425 * trans-decl.c: Remove gfor_fndecl_math_exponent4, 3426 gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and 3427 gfor_fndecl_math_exponent16. 3428 * trans-intrinsic.c (gfc_intrinsic_map): Remove intrinsics 3429 for scalbn, fraction, nearest, rrspacing, set_exponent and 3430 spacing. 3431 (gfc_conv_intrinsic_exponent): Directly call frexp. 3432 (gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_nearest, 3433 gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing, 3434 gfc_conv_intrinsic_scale, gfc_conv_intrinsic_set_exponent): New 3435 functions. 3436 (gfc_conv_intrinsic_function): Use the new functions above. 3437 34382008-02-26 Tobias Burnus <burnus@net-b.de> 3439 3440 PR fortran/35033 3441 * interface.c (check_operator_interface): Show better line for error 3442 messages; fix constrains for user-defined assignment operators. 3443 (gfc_extend_assign): Fix constrains for user-defined assignment 3444 operators. 3445 34462008-02-26 Tom Tromey <tromey@redhat.com> 3447 3448 * trans-io.c (set_error_locus): Remove old location code. 3449 * trans-decl.c (gfc_set_decl_location): Remove old location code. 3450 * f95-lang.c (gfc_init): Remove test of USE_MAPPED_LOCATION. 3451 * scanner.c (gfc_gobble_whitespace): Remove old location code. 3452 (get_file): Likewise. 3453 (preprocessor_line): Likewise. 3454 (load_file): Likewise. 3455 (gfc_new_file): Likewise. 3456 * trans.c (gfc_trans_runtime_check): Remove old location code. 3457 (gfc_get_backend_locus): Likewise. 3458 (gfc_set_backend_locus): Likewise. 3459 * data.c (gfc_assign_data_value): Remove old location code. 3460 * error.c (show_locus): Remove old location code. 3461 * gfortran.h (gfc_linebuf): Remove old location code. 3462 (gfc_linebuf_linenum): Remove old-location variant. 3463 34642008-02-25 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3465 3466 PR fortran/34729 3467 * trans-const.c (gfc_build_string_const): Don't call gettext. 3468 (gfc_build_localized_string_const): New function. 3469 * trans-const.h (gfc_build_localized_string_const): New prototype. 3470 * trans.c (gfc_trans_runtime_check): Use 3471 gfc_build_localized_string_const instead of gfc_build_string_const. 3472 (gfc_call_malloc): Likewise. 3473 (gfc_allocate_with_status): Likewise. 3474 (gfc_allocate_array_with_status): Likewise. 3475 (gfc_deallocate_with_status): Likewise. 3476 (gfc_call_realloc): Likewise. 3477 * trans-io.c (gfc_trans_io_runtime_check): Likewise. 3478 34792008-02-24 Tobias Schl��ter <tobi@gcc.gnu.org> 3480 3481 * arith.c: Update copyright years. 3482 * arith.h: Likewise. 3483 * array.c: Likewise. 3484 * bbt.c: Likewise. 3485 * check.c: Likewise. 3486 * data.c: Likewise. 3487 * data.h: Likewise. 3488 * decl.c: Likewise. 3489 * dependency.c: Likewise. 3490 * dependency.h: Likewise. 3491 * dump-parse-tree.c: Likewise. 3492 * error.c: Likewise. 3493 * expr.c: Likewise. 3494 * gfc-internals.texi: Likewise. 3495 * gfortran.h: Likewise. 3496 * gfortran.texi: Likewise. 3497 * gfortranspec.c: Likewise. 3498 * interface.c: Likewise. 3499 * intrinsic.c: Likewise. 3500 * intrinsic.h: Likewise. 3501 * intrinsic.texi: Likewise. 3502 * invoke.texi: Likewise. 3503 * io.c: Likewise. 3504 * iresolve.c: Likewise. 3505 * iso-c-binding.def: Likewise. 3506 * iso-fortran-env.def: Likewise. 3507 * lang-specs.h: Likewise. 3508 * lang.opt: Likewise. 3509 * libgfortran.h: Likewise. 3510 * match.c: Likewise. 3511 * match.h: Likewise. 3512 * matchexp.c: Likewise. 3513 * misc.c: Likewise. 3514 * module.c: Likewise. 3515 * openmp.c: Likewise. 3516 * options.c: Likewise. 3517 * parse.c: Likewise. 3518 * parse.h: Likewise. 3519 * primary.c: Likewise. 3520 * resolve.c: Likewise. 3521 * scanner.c: Likewise. 3522 * simplify.c: Likewise. 3523 * st.c: Likewise. 3524 * symbol.c: Likewise. 3525 * target-memory.c: Likewise. 3526 * target-memory.h: Likewise. 3527 * trans-array.h: Likewise. 3528 * trans-const.h: Likewise. 3529 * trans-stmt.h: Likewise. 3530 * trans-types.c: Likewise. 3531 * trans-types.h: Likewise. 3532 * types.def: Likewise. 3533 35342008-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3535 3536 PR fortran/35223 3537 * simplify.c (gfc_simplify_ibclr), (gfc_simplify_ibits), 3538 (gfc_simplify_ibset): Remove call to range_check. 3539 (simplify_cmplx), (gfc_simplify_dble), (gfc_simplify_float) 3540 (gfc_simplify_real): Add call gfc_clear_ts to initialize the 3541 temporary gfc_typspec variable. 3542 35432008-02-24 Tobias Schl��ter <tobi@gcc.gnu.org> 3544 3545 * trans-array.c (gfc_conv_descriptor_data_get, 3546 gfc_conv_descriptor_data_set_internal, 3547 gfc_conv_descriptor_data_addr, gfc_conv_descriptor_offset, 3548 gfc_conv_descriptor_dtype, gfc_conv_descriptor_dimension, 3549 gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound, 3550 gfc_conv_descriptor_ubound, gfc_trans_create_temp_array, 3551 gfc_conv_array_transpose, gfc_grow_array, 3552 gfc_trans_array_constructor_subarray, 3553 gfc_trans_array_constructor_value, gfc_trans_scalarized_loop_end, 3554 gfc_array_init_size, gfc_array_allocate, gfc_array_deallocate, 3555 gfc_conv_array_initializer, gfc_trans_array_bounds, 3556 gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias, 3557 gfc_get_dataptr_offset, gfc_conv_array_parameter, 3558 gfc_trans_dealloc_allocated, get_full_array_size, 3559 gfc_duplicate_allocatable, structure_alloc_comps): Use fold_buildN 3560 instead of buildN. 3561 * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy, 3562 gfc_conv_component_ref, gfc_conv_cst_int_power, 3563 gfc_conv_function_call, gfc_trans_structur_assign): Likewise. 3564 * trans-common.c (create_common): Likewise. 3565 * trans-openmp.c (gfc_trans_omp_atomic, gfc_trans_omp_do): 3566 Likewise. 3567 * trans-const.c (gfc_conv_constant_to_tree): Likewise. 3568 * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_do, 3569 gfc_trans_integer_select, gfc_trans_character_select, 3570 gfc_trans_forall_loop, compute_overall_iter_number, 3571 gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_allocate, 3572 gfc_trans_deallocate): Likewise. 3573 * trans.c (gfc_build_addr_expr, gfc_trans_runtime_check, 3574 gfc_allocate_with_status, gfc_allocate_array_with_status, 3575 gfc_deallocate_with_status): Likewise. 3576 * f95-lang.c (gfc_truthvalue_conversion): Likewise. 3577 * trans-io.c (set_parameter_const, set_parameter_value, 3578 set_parameter_ref, set_string, set_internal_unit, io_result, 3579 set_error_locus, nml_get_addr_expr, transfer_expr): Likewise. 3580 * trans-decl.c (gfc_build_qualified_array, build_entry_thunks, 3581 gfc_get_fake_result_decl, gfc_trans_auto_character_variable, 3582 gfc_generate_function_code): Likewise. 3583 * convert.c (convert): Likewise. 3584 * trans-intrinsic.c (gfc_conv_intrinsic_conversion, 3585 build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint, 3586 gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart, 3587 gfc_conv_intrinsic_conjg, gfc_conv_intrinsic_abs, 3588 gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod, 3589 gfc_conv_intrinsic_dim, gfc_conv_intrinsic_dprod, 3590 gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate, 3591 gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax, 3592 gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_count, 3593 gfc_conv_intrinsic_arith, gfc_conv_intrinsic_dot_product, 3594 gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval, 3595 gfc_conv_intrinsic_btest, gfc_conv_intrinsic_not, 3596 gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft, 3597 gfc_conv_intrinsic_ichar, gfc_conv_intrinsic_size, 3598 gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer, 3599 gfc_conv_allocated, gfc_conv_associated, gfc_conv_intrinsic_trim, 3600 gfc_conv_intrinsic_repeat): Likewise. 3601 36022008-02-23 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3603 3604 PR target/25477 3605 * trans-expr.c (gfc_conv_power_op): Use BUILT_IN_CPOW{F,,L}. 3606 * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_CPOW{F,,L}. 3607 * trans.h (gfor_fndecl_math_cpow, gfor_fndecl_math_cpowf, 3608 gfor_fndecl_math_cpowl10, gfor_fndecl_math_cpowl16): Remove. 3609 * trans-decl.c: Likewise. 3610 36112008-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3612 3613 PR fortran/35059 3614 * expr.c (find_array_element): Modify traversing the constructor to 3615 avoid trying to access NULL memory pointed to by next for the 3616 last element. (find_array_section): Exit while loop if cons->next is 3617 NULL. 3618 36192008-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3620 3621 PR fortran/34907 3622 * iresolve.c (resolve_mask_arg): Add gfc_clear_ts to initialize 3623 structure. 3624 (gfc_resolve_aint): Likewise. 3625 (gfc_resolve_anint): Likewise. 3626 (gfc_resolve_besn): Likewise. 3627 (gfc_resolve_cshift): Likewise. 3628 (gfc_resolve_ctime): Likewise. 3629 (gfc_resolve_eoshift): Likewise. 3630 (gfc_resolve_index_func): Likewise. 3631 (gfc_resolve_isatty): Likewise. 3632 (gfc_resolve_malloc): Likewise. 3633 (gfc_resolve_rrspacing): Likewise. 3634 (gfc_resolve_scale): Likewise. 3635 (gfc_resolve_set_exponent): Likewise. 3636 (gfc_resolve_spacing): Likewise. 3637 (gfc_resolve_spacing): Likewise. 3638 (gfc_resolve_fgetc): Likewise. 3639 (gfc_resolve_fputc): Likewise. 3640 (gfc_resolve_ftell): Likewise. 3641 (gfc_resolve_ttynam): Likewise. 3642 (gfc_resolve_alarm_sub): Likewise. 3643 (gfc_resolve_mvbits): Likewise. 3644 (gfc_resolve_getarg): Likewise. 3645 (gfc_resolve_signal_sub): Likewise. 3646 (gfc_resolve_exit): Likewise. 3647 (gfc_resolve_flush): Likewise. 3648 (gfc_resolve_free): Likewise. 3649 (gfc_resolve_ctime_sub): Likewise. 3650 (gfc_resolve_fgetc_sub): Likewise. 3651 (gfc_resolve_fputc_sub): Likewise. 3652 (gfc_resolve_fseek_sub): Likewise. 3653 (gfc_resolve_ftell_sub): Likewise. 3654 (gfc_resolve_ttynam_sub): Likewise. 3655 36562008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3657 3658 * gfc-internals.texi: Fix typos and markup nits. 3659 * gfortran.texi: Likewise. 3660 * intrinsic.texi: Likewise. 3661 36622008-02-21 Richard Guenther <rguenther@suse.de> 3663 3664 * trans-expr.c (gfc_conv_expr_op): Expand INTRINSIC_PARENTHESES 3665 as unary PAREN_EXPR for real and complex typed expressions. 3666 (gfc_conv_unary_op): Fold the built tree. 3667 36682008-02-20 Tobias Burnus <burnus@net-b.de> 3669 3670 PR fortran/34997 3671 * match.c (gfc_match_name): Improve error message for '$'. 3672 36732008-02-19 Daniel Franke <franke.daniel@gmail.com> 3674 3675 PR fortran/35030 3676 * expr.c (gfc_check_pointer_assign): Add type and kind information 3677 to type-mismatch message. 3678 (gfc_check_assign): Unify error messages. 3679 36802008-02-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3681 3682 PR fortran/34952 3683 * gfortran.texi: Create new section for unimplemented extensions. 3684 Add "STRUCTURE and RECORD" and "ENCODE and DECODE statements". 3685 Remove "smaller projects" list. Fix a few typos. 3686 36872008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3688 3689 * intrinsic.texi: Rename INDEX node to avoid clashing with 3690 index.html on case-insensitive systems. 3691 36922008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3693 3694 PR fortran/35150 3695 * trans-expr.c (gfc_conv_function_call): Force evaluation of 3696 se->expr. 3697 36982008-02-10 Daniel Franke <franke.daniel@gmail.com> 3699 3700 PR fortran/35019 3701 * lang.opt: Allow '-J<dir>' next to '-J <dir>', 3702 likewise '-I <dir>' and '-I<dir>'. 3703 37042008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3705 3706 PR other/35107 3707 * Make-lang.in (f951): Add $(GMPLIBS). 3708 37092008-02-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3710 3711 PR fortran/35037 3712 * trans-common.c (build_field): Mark fields as volatile when needed. 3713 37142008-02-05 Tobias Burnus <burnus@net-b.de> 3715 3716 PR fortran/35093 3717 * data.c (gfc_assign_data_value): Only free "size" if 3718 it has not already been freed. 3719 37202008-02-05 Paul Thomas <pault@gcc.gnu.org> 3721 3722 PR fortran/34945 3723 * array.c (match_array_element_spec): Remove check for negative 3724 array size. 3725 (gfc_resolve_array_spec): Add check for negative size. 3726 37272008-02-05 Paul Thomas <pault@gcc.gnu.org> 3728 3729 PR fortran/32315 3730 * data.c (gfc_assign_data_value): Add bounds check for array 3731 references. 3732 37332008-02-04 Daniel Franke <franke.daniel@gmail.com> 3734 3735 * resolve.c (resolve_where): Fix typo. 3736 (gfc_resolve_where_code_in_forall): Likewise. 3737 37382008-02-03 Paul Thomas <pault@gcc.gnu.org> 3739 3740 PR fortran/32760 3741 * resolve.c (resolve_allocate_deallocate): New function. 3742 (resolve_code): Call it for allocate and deallocate. 3743 * match.c (gfc_match_allocate, gfc_match_deallocate) : Remove 3744 the checking of the STAT tag and put in above new function. 3745 * primary,c (match_variable): Do not fix flavor of host 3746 associated symbols yet if the type is not known. 3747 37482008-01-31 Paul Thomas <pault@gcc.gnu.org> 3749 3750 PR fortran/34910 3751 * expr.c (gfc_check_assign): It is an error to assign 3752 to a sibling procedure. 3753 37542008-01-30 Paul Thomas <pault@gcc.gnu.org> 3755 3756 PR fortran/34975 3757 * symbol.c (gfc_delete_symtree, gfc_undo_symbols): Rename 3758 delete_symtree to gfc_delete_symtree. 3759 * gfortran.h : Add prototype for gfc_delete_symtree. 3760 * module.c (load_generic_interfaces): Transfer symbol to a 3761 unique symtree and delete old symtree, instead of renaming. 3762 (read_module): The rsym and the found symbol are the same, so 3763 the found symtree can be deleted. 3764 3765 PR fortran/34429 3766 * decl.c (match_char_spec): Remove the constraint on deferred 3767 matching of functions and free the length expression. 3768 delete_symtree to gfc_delete_symtree. 3769 (gfc_match_type_spec): Whitespace. 3770 (gfc_match_function_decl): Defer characteristic association for 3771 all types except BT_UNKNOWN. 3772 * parse.c (decode_specification_statement): Only derived type 3773 function matching is delayed to the end of specification. 3774 37752008-01-28 Tobias Burnus <burnus@net-b.de> 3776 3777 PR libfortran/34980 3778 * simplify.c (gfc_simplify_shape): Simplify rank zero arrays. 3779 37802008-01-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3781 3782 PR fortran/34990 3783 * array.c (gfc_check_constructor_type): Revert clearing the expression. 3784 37852008-01-26 Tobias Burnus <burnus@net-b.de> 3786 3787 PR fortran/34848 3788 * trans-expr.c (gfc_conv_function_call): Don't call 3789 gfc_add_interface_mapping if the expression is NULL. 3790 37912008-01-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3792 3793 PR fortran/31610 3794 * trans-array.c (gfc_trans_create_temp_array): Remove call to 3795 gcc_assert (integer_zerop (loop->from[n])). 3796 37972008-01-25 Daniel Franke <franke.daniel@gmail.com> 3798 3799 PR fortran/34661 3800 * resolve.c (resolve_where): Added check if user-defined assignment 3801 operator is an elemental subroutine. 3802 (gfc_resolve_where_code_in_forall): Likewise. 3803 38042008-01-24 Daniel Franke <franke.daniel@gmail.com> 3805 3806 PR fortran/33375 3807 PR fortran/34858 3808 * gfortran.h: Revert changes from 2008-01-17. 3809 * match.c: Likewise. 3810 * symbol.c: Likewise. 3811 (gfc_undo_symbols): Undo namespace changes related to common blocks. 3812 38132008-01-24 Daniel Franke <franke.daniel@gmail.com> 3814 3815 PR fortran/34202 3816 * data.c (formalize_structure_cons): Skip formalization on 3817 empty structures. 3818 38192008-01-24 Daniel Franke <franke.daniel@gmail.com> 3820 3821 * gfortran.texi (OpenMP): Extended existing documentation. 3822 (contributors): Added major contributors of 2008 that were 3823 not listed yet. 3824 (proposed extensions): Removed implemented items. 3825 38262008-01-24 Paul Thomas <pault@gcc.gnu.org> 3827 3828 PR fortran/34872 3829 * parse.c (next_statement) : If ST_GET_FCN_CHARACTERISTICS is 3830 seen, check for a statement label and, if present, delete it 3831 and set the locus to the start of the statement. 3832 38332008-01-22 Paul Thomas <pault@gcc.gnu.org> 3834 3835 PR fortran/34875 3836 * trans-io.c (gfc_trans_transfer): If the array reference in a 3837 read has a vector subscript, use gfc_conv_subref_array_arg to 3838 copy back the temporary. 3839 38402008-01-22 Tobias Burnus <burnus@net-b.de> 3841 3842 PR fortran/34848 3843 * interface.c (compare_actual_formal): Fix adding type 3844 to missing_arg_type for absent optional arguments. 3845 38462008-01-22 Tobias Burnus <burnus@net-b.de> 3847 3848 PR fortran/34907 3849 * parse.c (parse_spec): Change = into ==. 3850 38512008-01-22 Daniel Franke <franke.daniel@gmail.com> 3852 3853 PR fortran/34915 3854 * expr.c (check_elemental): Fix check for valid data types. 3855 38562008-01-22 Tobias Burnus <burnus@net-b.de> 3857 3858 PR fortran/34899 3859 * scanner.c (load_line): Support <tab><digit> continuation lines. 3860 * invoke.texi (-Wtabs): Document this. 3861 38622008-01-22 Paul Thomas <pault@gcc.gnu.org> 3863 3864 PR fortran/34896 3865 * module.c (read_module): Set use_rename attribute. 3866 38672008-01-21 Tobias Burnus <burnus@net-b.de> 3868 3869 PR fortran/34901 3870 * interface.c (compare_parameter): Improved error message 3871 for arguments of same type and mismatched kinds. 3872 38732008-01-20 Paul Thomas <pault@gcc.gnu.org> 3874 3875 PR fortran/34861 3876 * resolve.c (resolve_entries): Do not do an array bounds check 3877 if the result symbols are the same. 3878 3879 PR fortran/34854 3880 * module.c (read_module) : Hide the symtree of the previous 3881 version of the symbol if this symbol is renamed. 3882 38832008-01-20 Paul Thomas <pault@gcc.gnu.org> 3884 3885 PR fortran/34784 3886 * array.c (gfc_check_constructor_type): Clear the expression ts 3887 so that the checking starts from the deepest level of array 3888 constructor. 3889 * primary.c (match_varspec): If an unknown type is changed to 3890 default character and the attempt to match a substring fails, 3891 change it back to unknown. 3892 3893 PR fortran/34785 3894 * trans-array.c (gfc_add_loop_ss_code) : If ss->string_length is 3895 NULL for an array constructor, use the cl.length expression to 3896 build it. 3897 (gfc_conv_array_parameter): Change call to gfc_evaluate_now to 3898 a tree assignment. 3899 39002008-01-19 Thomas Koenig <tkoenig@gcc.gnu.org> 3901 3902 PR fortran/34817 3903 PR fortran/34838 3904 * iresolve.c (gfc_resolve_all): Remove conversion of mask 3905 argument to kind=1 by removing call to resolve_mask_arg(). 3906 (gfc_resolve_any): Likewise. 3907 39082008-01-19 Tobias Burnus <burnus@net-b.de> 3909 3910 PR fortran/34760 3911 * primary.c (match_variable): Handle FL_UNKNOWN without 3912 uneducated guessing. 3913 (match_variable): Improve error message. 3914 39152008-01-18 Tobias Burnus <burnus@net-b.de> 3916 3917 PR fortran/32616 3918 * interface.c (get_expr_storage_size): Return storage size 3919 for array element designators. 3920 (compare_actual_formal): Reject unequal string sizes for 3921 assumed-shape dummy arguments. And fix error message for 3922 array-sections with vector subscripts. 3923 39242008-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3925 3926 PR fortran/34556 3927 * simplify.c (is_constant_array_expr): New static function that returns 3928 true if the given expression is an array and is constant. 3929 (gfc_simplify_reshape): Use new function. 3930 39312008-01-17 H.J. Lu <hongjiu.lu@intel.com> 3932 3933 PR fortran/33375 3934 * symbol.c (free_common_tree): Renamed to ... 3935 (gfc_free_common_tree): This. Remove static. 3936 (gfc_free_namespace): Updated. 3937 3938 * gfortran.h (gfc_free_common_tree): New. 3939 3940 * match.c (gfc_match_common): Call gfc_free_common_tree () with 3941 gfc_current_ns->common_root and set gfc_current_ns->common_root 3942 to NULL on syntax error. 3943 39442008-01-18 Richard Sandiford <rsandifo@nildram.co.uk> 3945 3946 PR fortran/34686 3947 * trans-expr.c (gfc_conv_function_call): Use proper 3948 type for returned character pointers. 3949 39502008-01-17 Paul Thomas <pault@gcc.gnu.org> 3951 3952 PR fortran/34429 3953 PR fortran/34431 3954 PR fortran/34471 3955 * decl.c : Remove gfc_function_kind_locus and 3956 gfc_function_type_locus. Add gfc_matching_function. 3957 (match_char_length): If matching a function and the length 3958 does not match, return MATCH_YES and try again later. 3959 (gfc_match_kind_spec): The same. 3960 (match_char_kind): The same. 3961 (gfc_match_type_spec): The same for numeric and derived types. 3962 (match_prefix): Rename as gfc_match_prefix. 3963 (gfc_match_function_decl): Except for function valued character 3964 lengths, defer applying kind, type and charlen info until the 3965 end of specification block. 3966 gfortran.h (gfc_statement): Add ST_GET_FCN_CHARACTERISTICS. 3967 parse.c (decode_specification_statement): New function. 3968 (decode_statement): Call it when a function has kind = -1. Set 3969 and reset gfc_matching function, as function statement is being 3970 matched. 3971 (match_deferred_characteristics): Simplify with a single call 3972 to gfc_match_prefix. Do appropriate error handling. In any 3973 case, make sure that kind = -1 is reset or corrected. 3974 (parse_spec): Call above on seeing ST_GET_FCN_CHARACTERISTICS. 3975 Throw an error if kind = -1 after last specification statement. 3976 parse.h : Prototype for gfc_match_prefix. 3977 39782008-01-16 Tobias Burnus <burnus@net-b.de> 3979 3980 PR fortran/34796 3981 * interface.c (compare_parameter): Allow AS_DEFERRED array 3982 elements and reject attr.pointer array elemenents. 3983 (get_expr_storage_size): Return storage size of elements of 3984 assumed-shape and pointer arrays. 3985 39862008-01-15 Sebastian Pop <sebastian.pop@amd.com> 3987 3988 * f95-lang.c (gfc_init_builtin_functions): Initialize GOMP builtins 3989 for flag_tree_parallelize_loops. 3990 39912008-01-15 Thomas Koenig <tkoenig@gcc.gnu.org> 3992 3993 PR libfortran/34671 3994 * iresolve.c (gfc_resolve_all): Call resolve_mask_arg. 3995 (gfc_resolve_any): Likewise. 3996 (gfc_resolve_count): Likewise. Don't append kind of 3997 argument to function name. 3998 39992008-01-13 Tobias Burnus <burnus@net-b.de> 4000 4001 PR fortran/34665 4002 * resolve.c (resolve_actual_arglist): For expressions, 4003 also check for assume-sized arrays. 4004 * interface.c (compare_parameter): Move F2003 character checks 4005 here, print error messages here, reject elements of 4006 assumed-shape array as argument to dummy arrays. 4007 (compare_actual_formal): Update for the changes above. 4008 40092008-01-13 Tobias Burnus <burnus@net-b.de> 4010 4011 PR fortran/34763 4012 * decl.c (contained_procedure): Only check directly preceeding state. 4013 40142008-01-13 Tobias Burnus <burnus@net-b.de> 4015 4016 PR fortran/34759 4017 * check.c (gfc_check_shape): Accept array ranges of 4018 assumed-size arrays. 4019 40202008-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org> 4021 4022 PR fortran/34432 4023 * match.c (gfc_match_name): Don't error if leading character is a '(', 4024 just return MATCH_NO. 4025 40262008-01-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> 4027 4028 PR fortran/34722 4029 * trans-io.c (create_dummy_iostat): Commit the symbol. 4030 40312008-01-11 Paul Thomas <pault@gcc.gnu.org> 4032 4033 PR fortran/34537 4034 * simplify.c (gfc_simplify_transfer): Return NULL if the size 4035 of the element is unavailable and only assign character length 4036 to the result, if 'mold' is constant. 4037 40382008-01-10 Paul Thomas <pault@gcc.gnu.org> 4039 4040 PR fortran/34396 4041 * trans-array.c (gfc_trans_array_ctor_element): Use gfc_trans_string_copy 4042 to assign strings and perform bounds checks on the string length. 4043 (get_array_ctor_strlen): Remove bounds checking. 4044 (gfc_trans_array_constructor): Initialize string length checking. 4045 * trans-array.h : Add prototype for gfc_trans_string_copy. 4046 40472008-01-08 Richard Guenther <rguenther@suse.de> 4048 4049 PR fortran/34706 4050 PR tree-optimization/34683 4051 * trans-types.c (gfc_get_array_type_bounds): Use an array type 4052 with known size for accesses if that is known. 4053 40542008-01-08 Paul Thomas <pault@gcc.gnu.org> 4055 4056 PR fortran/34476 4057 * expr.c (find_array_element): Check that the array bounds are 4058 constant before using them. Use lower, as well as upper bound. 4059 (check_restricted): Allow implied index variable. 4060 40612008-01-08 Paul Thomas <pault@gcc.gnu.org> 4062 4063 PR fortran/34681 4064 * trans_array.c (gfc_trans_deferred_array): Do not null the 4065 data pointer on entering scope, nor deallocate it on leaving 4066 scope, if the symbol has the 'save' attribute. 4067 4068 PR fortran/34704 4069 * trans_decl.c (gfc_finish_var_decl): Derived types with 4070 allocatable components and an initializer must be TREE_STATIC. 4071 40722008-01-07 Paul Thomas <pault@gcc.gnu.org> 4073 4074 PR fortran/34672 4075 * module.c (write_generic): Rewrite completely. 4076 (write_module): Change call to write_generic. 4077 40782008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org> 4079 4080 PR fortran/34659 4081 * scanner.c (load_line): Do not count ' ' as printable when checking for 4082 continuations. 4083 40842008-01-06 Paul Thomas <pault@gcc.gnu.org> 4085 4086 PR fortran/34545 4087 * module.c (load_needed): If the namespace has no proc_name 4088 give it the module symbol. 4089 40902008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org> 4091 4092 PR fortran/34387 4093 * trans-expr.c (gfc_conv_missing_dummy): Use a temporary to type convert 4094 the dummy variable expression, test for NULL, and pass the variable 4095 address to the called function. 4096 40972008-01-06 Tobias Burnus <burnus@net-b.de> 4098 4099 PR fortran/34658 4100 * match.c (gfc_match_common): Remove blank common in 4101 DATA BLOCK warning. 4102 * resolve.c (resolve_common_vars): New function. 4103 (resolve_common_blocks): Move checks to resolve_common_vars 4104 and invoke that function. 4105 (resolve_types): Call resolve_common_vars for blank commons. 4106 41072008-01-06 Tobias Burnus <burnus@net-b.de> 4108 4109 PR fortran/34655 4110 * resolve.c (resolve_equivalence_derived): Reject derived types with 4111 default initialization if equivalenced with COMMON variable. 4112 41132008-01-06 Tobias Burnus <burnus@net-b.de> 4114 4115 PR fortran/34654 4116 * io.c (check_io_constraints): Disallow unformatted I/O for 4117 internal units. 4118 41192008-01-06 Tobias Burnus <burnus@net-b.de> 4120 4121 PR fortran/34660 4122 * resolve.c (resolve_formal_arglist): Reject dummy procedure in 4123 ELEMENTAL functions. 4124 41252008-01-06 Tobias Burnus <burnus@net-b.de> 4126 4127 PR fortran/34662 4128 * interface.c (compare_actual_formal): Reject parameter 4129 actual to intent(out) dummy. 4130 41312008-01-04 Tobias Burnus <burnus@net-b.de> 4132 4133 PR fortran/34557 4134 * primary.c (match_varspec): Gobble whitespace before 4135 checking for '('. 4136 4137 4138Copyright (C) 2008 Free Software Foundation, Inc. 4139 4140Copying and distribution of this file, with or without modification, 4141are permitted in any medium without royalty provided the copyright 4142notice and this notice are preserved. 4143