12006-12-31 Paul Thomas <pault@gcc.gnu.org> 2 3 PR fortran/27900 4 * resolve.c (resolve_actual_arglist): If all else fails and a 5 procedure actual argument has no type, see if a specific 6 intrinsic matches. 7 8 PR fortran/24325 9 * resolve.c (resolve_function): If the function reference is 10 FL_VARIABLE this is an error. 11 122006-12-31 Paul Thomas <pault@gcc.gnu.org> 13 14 PR fortran/23060 15 * intrinsic.c (compare_actual_formal ): Distinguish argument 16 list functions from keywords. 17 * intrinsic.c (sort_actual): If formal is NULL, the presence of 18 an argument list function actual is an error. 19 * trans-expr.c (conv_arglist_function) : New function to 20 implement argument list functions %VAL, %REF and %LOC. 21 (gfc_conv_function_call): Call it. 22 * resolve.c (resolve_actual_arglist): Add arg ptype and check 23 argument list functions. 24 (resolve_function, resolve_call): Set value of ptype before 25 calls to resolve_actual_arglist. 26 * primary.c (match_arg_list_function): New function. 27 (gfc_match_actual_arglist): Call it before trying for a 28 keyword argument. 29 302006-12-28 Paul Thomas <pault@gcc.gnu.org> 31 32 PR fortran/30034 33 * resolve.c (resolve_formal_arglist): Exclude the test for 34 pointers and procedures for subroutine arguments as well as 35 functions. 36 37 PR fortran/30237 38 * intrinsic.c (remove_nullargs): Do not pass up arguments with 39 a label. If the actual has a label and the formal has a type 40 then emit an error. 41 422006-12-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> 43 44 PR fortran/30014 45 *io.c (resolve_tag): Don't issue error for tag_size type not being 46 default integer size for -std=F2003. Add similar check for 47 tag_iolength. 48 *ioparm.def: Change size and iolength parameters to ioint pointer, which 49 corresponds to GFC_IO_INT on the library side. 50 512006-12-27 Gerald Pfeifer <gerald@pfeifer.com> 52 53 * interface.c (compare_actual_formal): Remove unused variable 54 gsym. 55 562006-12-27 Paul Thomas <pault@gcc.gnu.org> 57 58 PR fortran/20896 59 * interface.c (check_sym_interfaces): Try to resolve interface 60 reference as a global symbol, if it is not a nodule procedure. 61 (compare_actual_formal): Remove call to gfc_find_symbol; if 62 the expression is already a variable it is locally declared 63 and this has precedence. 64 gfortran.h : Add prototype for resolve_global_procedure. 65 resolve.c (resolve_global_procedure): Remove static attribute 66 from function declaration. 67 (resolve_fl_procedure): Remove symtree declaration and the 68 redundant check for an ambiguous procedure. 69 70 PR fortran/25135 71 * module.c (load_generic_interfaces): If the symbol is present 72 and is not generic it is ambiguous. 73 742006-12-22 Paul Thomas <pault@gcc.gnu.org> 75 76 PR fortran/25818 77 * trans-array.c (gfc_trans_g77_array): If the variable is 78 optional or not always present, make the statement conditional 79 on presence of the argument. 80 * gfortran.h : Add symbol_attribute not_always_present. 81 * resolve.c (check_argument_lists): New function to check if 82 arguments are not present in all entries. 83 84 PR fortran/30084 85 * module.c (mio_component_ref): Move treatment of unique name 86 variables, during output, to fix_mio_expr. 87 (fix_mio_expr): New function that fixes defective expressions 88 before they are written to the module file. 89 (mio_expr): Call the new function. 90 (resolve_entries): Call check_argument_lists. 91 922006-12-21 Roger Sayle <roger@eyesopen.com> 93 94 * trans-array.c (gfc_trans_create_temp_array): When the size is known 95 at compile-time, avoid an unnecessary conditional assignment. 96 (gfc_array_init_size): Likewise. 97 982006-12-22 Kazu Hirata <kazu@codesourcery.com> 99 100 * interface.c: Fix a comment typo. 101 1022006-12-21 Paul Thomas <pault@gcc.gnu.org> 103 104 PR fortran/30273 105 * dependency.c (gfc_check_dependency): There is no dependency 106 with EXPR_NULL so always return 0. 107 1082006-12-21 Paul Thomas <pault@gcc.gnu.org> 109 110 PR fortran/30202 111 * trans-array.c (gfc_conv_function_call): Use parmse.expr for 112 the nullifying of intent(out) arguments rather than the backend 113 declaration. 114 1152006-12-20 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 116 117 PR fortran/25392 118 * trans-stmt.c (gfc_trans_return): Fix comment formatting. 119 * trans-types.c (gfc_sym_type): Don't return early for functions. 120 Remove special handling for -ff2c. 121 (gfc_get_function_type): Add special handling for -ff2c. 122 * trans-decl.c (gfc_create_function_decl): Fix comment formatting. 123 (gfc_get_fake_result_decl): Make sure we get the right type for 124 functions. 125 (gfc_generate_function_code): Convert type of result variable to 126 type of function. 127 1282006-12-20 Paul Thomas <pault@gcc.gnu.org> 129 130 PR fortran/30190 131 * trans-array.c (gfc_conv_array_ref): Remove gfc_evaluate_now 132 from the -fbounds-check branch. 133 1342006-12-20 Roger Sayle <roger@eyesopen.com> 135 136 * trans-expr.c (is_zero_initializer_p): Determine whether a given 137 constant expression is a zero initializer. 138 (gfc_trans_zero_assign): New function to attempt to optimize 139 "a(:) = 0.0" as a call to __builtin_memset (a, 0, sizeof(a)); 140 (gfc_trans_assignment): Special case array assignments to a 141 zero initializer constant, using gfc_trans_zero_assign. 142 1432006-12-20 Paul Thomas <pault@gcc.gnu.org> 144 145 PR fortran/29992 146 * interface.c (check_sym_interfaces): Module procedures in a 147 generic must be use associated or contained in the module. 148 * decl.c (gfc_match_modproc): Set attribute mod_proc. 149 * gfortran.h (symbol_attribute): Add mod_proc atribute. 150 151 PR fortran/30081 152 * resolve.c (resolve_generic_f, resolve_generic_s): Use 153 gfc_intrinsic_name to find out if the function is intrinsic 154 because it does not have to be a generic intrinsic to be 155 overloaded. 156 1572006-12-19 Tobias Burnus <burnus@net-b.de> 158 159 PR fortran/39238 160 * trans-intrinsic.c: Check for associated(NULL,NULL). 161 1622006-12-19 Paul Thomas <pault@gcc.gnu.org> 163 164 PR fortran/30236 165 * interface.c (compare_interfaces): Handle NULL symbols. 166 (count_types_test): Count NULL symbols, which correspond to 167 alternate returns. 168 169 (check_interface1): Change final argument from int to bool 170 in the function and all references. 171 1722006-12-18 Roger Sayle <roger@eyesopen.com> 173 174 * trans-array.c (gfc_conv_array_index_offset): Avoid multiplying 175 index by one, or adding zero to it. 176 1772006-12-17 Roger Sayle <roger@eyesopen.com> 178 179 PR fortran/30207 180 * dependency.c (gfc_full_array_ref_p): New function to test whether 181 the given array ref specifies the entire array. 182 (gfc_dep_resolver): Use gfc_full_array_ref_p to analyze AR_FULL 183 array refs against AR_SECTION array refs, and vice versa. 184 * dependency.h (gfc_full_array_ref_p): Prototype here. 185 * trans-array.c (gfc_conv_expr_descriptor): Use gfc_full_array_ref_p. 186 1872006-12-16 Brooks Moses <brooks.moses@codesourcery.com> 188 189 * gfortran.texi: Added TeX support for document parts; 190 rearranged existing text into "About GNU Fortran", 191 "Invoking GNU Fortran", and "Language Reference" parts. 192 1932006-12-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> 194 195 PR fortran/30200 196 * trans-io.c (build_dt): Move post block for format_expr to end. 197 1982006-12-14 Richard Guenther <rguenther@suse.de> 199 Diego Novillo <dnovillo@redhat.com> 200 201 * Make-lang.in (fortran/options.o): Add $(PARAMS_H) dependency. 202 * options.c (params.h): Include. 203 (gfc_post_options): Set MAX_ALIASED_VOPS to 50. 204 2052006-12-13 Richard Guenther <rguenther@suse.de> 206 207 PR fortran/30115 208 * trans-array.c (gfc_array_allocate): Adjust for changed 209 library interface. 210 (gfc_array_deallocate): Likewise. 211 (gfc_trans_dealloc_allocated): Likewise. 212 * trans-stmt.c (gfc_trans_allocate): Likewise. 213 (gfc_trans_deallocate): Likewise. 214 * trans-decl.c (gfc_build_builtin_function_decls): Adjust 215 function declarations to match the library changes. Mark 216 allocation functions with DECL_IS_MALLOC. 217 2182006-12-12 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 219 220 * trans-expr.c (gfc_conv_substring): Check for empty substring. 221 2222006-12-11 Jan Hubicka <jh@suse.cz> 223 224 * f95-lang.c (gfc_expand_function): Update for renamed varpool 225 functions. 226 2272006-12-10 Tobias Burnus <burnus@net-b.de> 228 229 * gfortran.texi: Update Fortran 2003 section. 230 2312006-12-10 Tobias Burnus <burnus@net-b.de> 232 233 PR fortran/23994 234 * interface.c (compare_actual_formal): PROTECTED is incompatible 235 with intent(out). 236 * symbol.c (check_conflict): Check for PROTECTED conflicts. 237 (gfc_add_protected): New function. 238 (gfc_copy_attr): Copy PROTECTED attribute. 239 * decl.c (match_attr_spec): Add PROTECTED support. 240 (gfc_match_protected): New function. 241 * dump-parse-tree.c (gfc_show_attr): Add PROTECTED support. 242 * gfortran.h (gfc_symbol): Add protected flag. 243 Add gfc_add_protected prototype. 244 * expr.c (gfc_check_pointer_assign): Add PROTECTED support. 245 * module.c (ab_attribute, attr_bits, mio_symbol_attribute, 246 mio_symbol_attribute): Add PROTECTED support. 247 * resolve.c (resolve_equivalence): Add PROTECTED support. 248 * match.c (gfc_match_assignment,gfc_match_pointer_assignment): 249 Check PROTECTED attribute. 250 * match.h: Add gfc_match_protected prototype. 251 * parse.c (decode_statement): Match PROTECTED statement. 252 * primary.c (match_variable): Add PROTECTED support. 253 2542006-12-09 Paul Thomas <pault@gcc.gnu.org> 255 256 PR fortran/29975 257 PR fortran/30068 258 PR fortran/30096 259 * interface.c (compare_type_rank_if): Reject invalid generic 260 interfaces. 261 (check_interface1): Give a warning for nonreferred to ambiguous 262 interfaces. 263 (check_sym_interfaces): Check whether an ambiguous interface is 264 referred to. Do not check host associated interfaces since these 265 cannot be ambiguous with the local versions. 266 (check_uop_interface, gfc_check_interfaces): Update call to 267 check_interface1. 268 * symbol.c (gfc_get_sym_tree, gfc_get_sym_tree): Allow adding 269 unambiguous procedures to generic interfaces. 270 * gfortran.h (symbol_attribute): Added use_only and 271 ambiguous_interfaces. 272 * module.c (load_need): Set the use_only flag, if needed. 273 * resolve.c (resolve_fl_procedure): Warn for nonreferred 274 interfaces. 275 * expr.c (find_array_section): Fix initializer array contructor. 276 2772006-12-09 Paul Thomas <pault@gcc.gnu.org> 278 279 PR fortran/29464 280 * module.c (load_generic_interfaces): Add symbols for all the 281 local names of an interface. Share the interface amongst the 282 symbols. 283 * gfortran.h : Add generic_copy to symbol_attribute. 284 * symbol.c (free_symbol): Only free interface if generic_copy 285 is not set. 286 2872006-12-09 Paul Thomas <pault@gcc.gnu.org> 288 289 PR fortran/29941 290 * resolve.c (resolve_function): Add LEN to the functions not 291 checked for assumed size actual args. 292 2932006-12-08 Tobias Burnus <burnus@net-b.de> 294 295 PR fortran/27546 296 * trans-decl.c (gfc_create_module_variable): Allow imported 297 symbols in interface bodies in modules. 298 2992006-12-06 Tobias Burnus <burnus@net-b.de> 300 301 PR fortran/29711 302 * error.c (error_print): Fix handling of printf-style position 303 specifiers of the form "%3$d". 304 3052006-12-05 Paul Thomas <pault@gcc.gnu.org> 306 307 PR fortran/30003 308 * trans-array.c (gfc_trans_create_temp_array): Set the section 309 ends to zero. 310 (gfc_conv_array_transpose): Likewise. 311 (gfc_conv_section_startstride): Declare an expression for end, 312 set it from a the array reference and evaluate it for the info 313 structure. Zero the ends in the ss structure and set end, used 314 in the bounds check, from the info structure. 315 trans.h: Add and end array to the gfc_ss_info structure. 316 3172006-12-05 Paul Thomas <pault@gcc.gnu.org> 318 319 PR fortran/29912 320 * trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL if the 321 lhs and rhs character lengths are not constant and equal for 322 character array valued functions. 323 3242006-12-04 Tobias Burnus <burnus@net-b.de> 325 326 PR fortran/29962 327 * expr.c (check_intrinsic_op): Allow noninteger exponents for F2003. 328 3292006-12-04 Paul Thomas <pault@gcc.gnu.org> 330 331 PR fortran/29821 332 * resolve.c (resolve_operator): Only return result of 333 gfc_simplify_expr if expression is constant. 334 3352006-12-04 Paul Thomas <pault@gcc.gnu.org> 336 337 PR fortran/29916 338 * resolve.c (resolve_symbol): Allow host-associated variables 339 the specification expression of an array-valued function. 340 * expr.c (check_restricted): Accept host-associated dummy 341 array indices. 342 3432006-12-03 Paul Thomas <pault@gcc.gnu.org> 344 345 PR fortran/29642 346 * trans-expr.c (gfc_conv_variable): A character expression with 347 the VALUE attribute needs an address expression; otherwise all 348 other expressions with this attribute must not be dereferenced. 349 (gfc_conv_function_call): Pass expressions with the VALUE 350 attribute by value, using gfc_conv_expr. 351 * symbol.c (check_conflict): Add strings for INTENT OUT, INOUT 352 and VALUE. Apply all the constraints associated with the VALUE 353 attribute. 354 (gfc_add_value): New function. 355 (gfc_copy_attr): Call it for VALUE attribute. 356 * decl.c (match_attr_spec): Include the VALUE attribute. 357 (gfc_match_value): New function. 358 * dump-parse-tree.c (gfc_show_attr): Include VALUE. 359 * gfortran.h : Add value to the symbol_attribute structure and 360 add a prototype for gfc_add_value 361 * module.c (mio_internal_string): Include AB_VALUE in enum. 362 (attr_bits): Provide the VALUE string for it. 363 (mio_symbol_attribute): Read or apply the VLUE attribute. 364 * trans-types.c (gfc_sym_type): Variables with the VLAUE 365 attribute are not passed by reference! 366 * resolve.c (was_declared): Add value to those that return 1. 367 (resolve_symbol): Value attribute requires dummy attribute. 368 * match.h : Add prototype for gfc_match_public. 369 * parse.c (decode_statement): Try to match a VALUE statement. 370 3712006-12-01 Thomas Koenig <Thomas.Koenig@online.de> 372 373 PR libfortran/29568 374 * gfortran.h (gfc_option_t): Add max_subrecord_length. 375 (top level): Define MAX_SUBRECORD_LENGTH. 376 * lang.opt: Add option -fmax-subrecord-length=. 377 * trans-decl.c: Add new function set_max_subrecord_length. 378 (gfc_generate_function_code): If we are within the main 379 program and max_subrecord_length has been set, call 380 set_max_subrecord_length. 381 * options.c (gfc_init_options): Add defaults for 382 max_subrecord_lenght, convert and record_marker. 383 (gfc_handle_option): Add handling for 384 -fmax_subrecord_length. 385 * invoke.texi: Document the new default for 386 -frecord-marker=<n>. 387 3882006-11-28 Paul Thomas <pault@gcc.gnu.org> 389 390 PR fortran/29976 391 * trans-expr.c (gfc_conv_missing_dummy): Remove build_int_const 392 and replace with cast to type of se->expr of integer_zero_node. 393 3942006-11-28 Paul Thomas <pault@gcc.gnu.org> 395 396 PR fortran/20880 397 * resolve.c (resolve_fl_procedure): Error if procedure is 398 ambiguous modified to require attr.referenced. 399 4002006-11-26 Francois-Xavier Coudert <coudert@clipper.ens.fr> 401 402 PR fortran/29892 403 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use a locus in 404 the call to gfc_trans_runtime_check. 405 * trans-array.c (gfc_trans_array_bound_check): Try harder to find 406 the variable or function name for the runtime error message. 407 (gfc_trans_dummy_array_bias): Use a locus in the call to 408 gfc_trans_runtime_check 409 4102006-11-26 Andrew Pinski <pinskia@gmail.com> 411 412 * trans-decl.c (gfc_build_intrinsic_function_decls): Mark the 413 pow functions as constant functions. 414 4152006-11-25 Andrew Pinski <pinskia@gmail.com> 416 417 PR fortran/29982 418 * trans-expr.c (gfc_conv_expr_reference): Strip off NOP_EXPRs. 419 4202006-11-25 Andrew Pinski <pinskia@gmail.com> 421 422 PR fortran/29951 423 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Change to 424 call memcpy instead of creating a VIEW_CONVERT_EXRP. 425 4262006-11-25 Francois-Xavier Coudert <coudert@clipper.ens.fr> 427 428 PR fortran/29711 429 * error.c (error_print): Handle printf-style position specifiers, 430 of the form "%3$d". 431 4322006-11-24 Paul Thomas <pault@gcc.gnu.org> 433 434 PR fortran/20880 435 * parse.c (parse_interface): Error if procedure name is that of 436 encompassing scope. 437 * resolve.c (resolve_fl_procedure): Error if procedure is 438 ambiguous. 439 440 PR fortran/29387 441 * interface.c (compare_actual_formal): Add missing condition 442 that 'where' be present for error that asserts that actual 443 arguments be definable. 444 4452006-11-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> 446 447 * resolve.c (resolve_actual_arglist): Remove the special case for 448 CHAR. 449 * intrinsic.c (add_functions): Remove the special case for CHAR. 450 4512006-11-22 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> 452 453 PR fortran/29441 454 * intrinsic.c (gfc_intrinsic_func_interface): Always check if 455 intrinsic is allowed in initialization expression. 456 4572006-11-22 Paul Thomas <pault@gcc.gnu.org> 458 459 PR fortran/25087 460 * resolve.c (resolve_fl_procedure): Add an error if an external 461 automatic character length function does not have an explicit 462 interface. 463 4642006-11-22 Paul Thomas <pault@gcc.gnu.org> 465 466 PR fortran/29652 467 * interface.c (check_interface1): Use a local value, instead of 468 the dummy, as the inner iterator over interface symbols. 469 4702006-11-21 Paul Thomas <pault@gcc.gnu.org> 471 472 PR fortran/29820 473 * trans-array.c (gfc_get_derived_type): Once done, spread the 474 backend_decl to all identical derived types in all sibling 475 namespaces. 476 4772006-11-20 Tobias Burnus <burnus@net-b.de> 478 479 PR fortran/27546 480 * primary.c (gfc_match_rvalue): Added IMPORT support. 481 4822006-11-20 Tobias Burnus <burnus@net-b.de> 483 484 * symbol.c (check_conflict): Add conflict between VOLATILE 485 attribute and program name. 486 4872006-11-20 Bernhard Fischer <aldot@gcc.gnu.org> 488 489 PR fortran/24783 490 * resolve.c (resolve_variable): Get the implicit type from the 491 symbols namespace rather than the default namespace. Fix whitespace. 492 (resolve_formal_arglist, resolve_equivalence): Fix typo. 493 4942006-11-19 Erik Edelmann <eedelman@gcc.gnu.org> 495 496 * resolve.c (resolve_ref): Check for ALLOCATABLEs to the right of 497 nonzero rank part references too. 498 4992006-11-19 Francois-Xavier Coudert <coudert@clipper.ens.fr> 500 501 * module.c (gfc_use_module): Uncomment the ISO_FORTRAN_ENV code. 502 Check that intrinsic and non-intrinsic modules don't conflict. 503 (use_iso_fortran_env_module): New function. 504 (create_int_parameter): New function. 505 * trans-types.c (gfc_init_kinds): Choose values for 506 gfc_numeric_storage_size and gfc_character_storage_size. 507 (gfc_numeric_storage_size, gfc_character_storage_size): New variables. 508 * resolve.c (resolve_symbol): Do no check intrinsic modules 509 against the list of intrinsic symbols. 510 * iso-fortran-env.def: New file. 511 * gfortran.h (gfc_numeric_storage_size, 512 gfc_character_storage_size): Add prototypes. 513 5142006-11-18 Francois-Xavier Coudert <coudert@clipper.ens.fr> 515 516 PR fortran/24285 517 * io.c (check_format): Allow dollars everywhere in format, and 518 issue a warning. 519 5202006-11-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> 521 522 * gfortran.h (gfc_add_intrinsic_modules_path, 523 gfc_open_intrinsic_module): New prototypes. 524 (gfc_add_include_path, gfc_open_included_file): Update prototypes. 525 * lang.opt: Add -fintrinsic-modules-path option. 526 * module.c (gfc_match_use): Match the Fortran 2003 form of 527 USE statement. 528 (gfc_use_module): Also handle intrinsic modules. 529 * scanner.c (gfc_directorylist): Add use_for_modules for field. 530 (intrinsic_modules_dirs): New static variable. 531 (add_path_to_list, gfc_add_intrinsic_modules_path): New functions. 532 (gfc_add_include_path): Use the new add_path_to_list helper 533 function. 534 (gfc_release_include_path): Free memory for intrinsic_modules_dirs. 535 (open_included_file, gfc_open_intrinsic_module): New functions. 536 (gfc_open_included_file): Use the new open_included_file 537 helper function. 538 * lang-specs.h: Use the new -fintrinsic-modules-path option. 539 * parse.c (decode_statement): Do not match the required space 540 after USE here. 541 * options.c (gfc_handle_option): Handle the new option. Use new 542 prototype for gfc_add_include_path. 543 (gfc_post_options): Use new prototype for gfc_add_include_path. 544 5452006-11-16 Francois-Xavier Coudert <coudert@clipper.ens.fr> 546 547 PR fortran/29391 548 PR fortran/29489 549 * simplify.c (simplify_bound): Fix the simplification of 550 LBOUND/UBOUND intrinsics. 551 * trans-intrinsic.c (simplify_bound): Fix the logic, and 552 remove an erroneous assert. 553 5542006-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu,org> 555 556 * trans-decl.c (gfc_get_symbol_decl): Fix formatting. 557 5582006-11-15 Brooks Moses <brooks.moses@codesourcery.com> 559 560 * data.c: Remove trailing periods from error messages. 561 * decl.c: Likewise. 562 * expr.c: Likewise. 563 * io.c: Likewise. 564 * match.c: Likewise. 565 * module.c: Likewise. 566 * options.c: Likewise. 567 * resolve.c: Likewise. 568 * symbol.c: Likewise. 569 * trans-io.c: Likewise. 570 5712006-11-15 Brooks Moses <brooks.moses@codesourcery.com> 572 573 * lang.opt: Rearrange entries back into ASCII order. 574 5752006-11-15 Tobias Burnus <burnus@net-b.de> 576 577 * parse.c (parse_contained): Fix indention 578 of one line. 579 5802006-11-15 Tobias Burnus <burnus@net-b.de> 581 582 PR fortran/27546 583 * decl.c (gfc_match_import,variable_decl): 584 Add IMPORT support. 585 (gfc_match_kind_spec): Fix typo in gfc_error. 586 * gfortran.h (gfc_namespace, gfc_statement): 587 Add IMPORT support. 588 * parse.c (decode_statement,gfc_ascii_statement, 589 verify_st_order): Add IMPORT support. 590 * match.h: Add gfc_match_import. 591 * gfortran.texi: Add IMPORT to the supported 592 Fortran 2003 features. 593 5942006-11-15 Tobias Burnus <burnus@net-b.de> 595 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 596 597 PR fortran/27588 598 * trans-expr.c (gfc_conv_substring): Add bounds checking. 599 (gfc_conv_variable, gfc_conv_substring_expr): Pass more 600 arguments to gfc_conv_substring. 601 6022006-11-15 Tobias Burnus <burnus@net-b.de> 603 604 PR fortran/29806 605 * parse.c (parse_contained): Check for empty contains statement. 606 6072006-11-15 Bud Davis <bdavis9659@sbcglobal.net> 608 609 PR fortran/28974 610 * gfortran.h (gfc_expr): Add element which holds a splay-tree 611 for the exclusive purpose of quick access to a constructor by 612 offset. 613 * data.c (find_con_by_offset): Use the splay tree for the search. 614 (gfc_assign_data_value): Use the splay tree. 615 (gfc_assign_data_value_range): ditto. 616 * expr.c (gfc_get_expr): Initialize new element to null. 617 (gfc_free_expr): Delete splay tree when deleting gfc_expr. 618 6192006-11-14 Brooks Moses <brooks.moses@codesourcery.com> 620 621 PR fortran/29702 622 * error.c (show_loci): Move column-offset calculation to 623 show_locus. 624 (show_locus): Remove blank lines before "Included in" 625 lines, clean up code, calculate column-offsets, print 626 column number is error-header lines as appropriate. 627 (error_integer): (new function) Print integer to error 628 buffer. 629 (error_print): Use error_integer, avoid possible buffer 630 overflows from buggy error formats. 631 6322006-11-14 Brooks Moses <brooks.moses@codesourcery.com> 633 634 * gfortran.h (GFC_MAX_LINE): Remove constant definition. 635 (gfc_option_t): Clarify comments. 636 * options.c: Set default line length limits to actual default 637 values, rather than flag values. 638 * scanner.c: Eliminate checking and handling of the 639 fixed/free_line_length flag values. 640 6412006-11-14 Brooks Moses <brooks.moses@codesourcery.com> 642 643 * lang.opt: Remove -fno-backend option. 644 * gfortran.h (gfc_option_t): Remove flag_no_backend. 645 * options.c (gfc_init_options): Remove flag_no_backend. 646 (gfc_handle_option): Remove -fno-backend option handler. 647 * parse.c (gfc_parse_file): Remove references to 648 gfc_option.flag_no_backend. 649 6502006-11-14 Tobias Burnus <burnus@net-b.de> 651 652 * match.c (gfc_match_namelist): Add missing space to 653 error message. 654 6552006-11-14 Tobias Burnus <burnus@net-b.de> 656 657 PR fortran/29657 658 * symbol.c (check_conflict): Add further conflicts. 659 6602006-11-13 Jakub Jelinek <jakub@redhat.com> 661 662 PR fortran/29759 663 * fortran/scanner.c (skip_free_comments): Clear openmp_flag 664 before returning true. 665 6662006-11-12 Andrew Pinski <andrew_pinski@playstation.sony.com> 667 668 PR fortran/26994 669 * trans-expr.c (gfc_conv_expr_reference): Set TREE_STATIC on the 670 new CONST_DECL. 671 6722006-11-11 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 673 674 * array.c: Add 2006 to copyright years. 675 * data.c: Same. 676 * interface.c: Same. 677 * misc.c: Same. 678 * trans-io.c: Same. 679 6802006-11-11 Richard Guenther <rguenther@suse.de> 681 682 * trans-intrinsic.c (enum rounding_mode): New enum. 683 (build_fix_expr, gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod, 684 gfc_conv_intrinsic_function): Use it instead of FIX_CEIL_EXPR, 685 FIX_FLOOR_EXPR, FIX_ROUND_EXPR and FIX_TRUNC_EXPR. 686 6872006-11-10 Brooks Moses <brooks.moses@codesourcery.com> 688 689 * lang.opt (-fmodule-private): Remove option. 690 * gfortran.h (gfc_option_t): Remove module_access_private flag. 691 * options.c (gfc_init_options): Remove initialization for it. 692 (gfc_handle_option): Remove handling for -fmodule-private. 693 * module.c (gfc_check_access): Add comments, remove check for 694 gfc_option.flag_module_access_private. 695 6962006-11-10 Paul Thomas <pault@gcc.gnu.org> 697 698 PR fortran/29758 699 * check.c (gfc_check_reshape): Check that there are enough 700 elements in the source array as to be able to fill an array 701 defined by shape, when pad is absent. 702 7032006-11-10 Paul Thomas <pault@gcc.gnu.org> 704 705 PR fortran/29315 706 * trans-expr.c (is_aliased_array): Treat correctly the case where the 707 component is itself and array or array reference. 708 7092006-11-09 Brooks Moses <brooks.moses@codesourcery.com> 710 711 * check.c (same_type_check): Typo fix in comment. 712 7132006-11-09 Paul Thomas <pault@gcc.gnu.org> 714 715 PR fortran/29431 716 * trans-array.c (get_array_ctor_strlen): If we fall through to 717 default, use a constant character length if it is available. 718 7192006-11-09 Paul Thomas <pault@gcc.gnu.org> 720 721 PR fortran/29744 722 * trans-types.c (gfc_get_derived_type): Ensure that the 723 proc_name namespace is not the same as the owner namespace and 724 that identical derived types in the same namespace share the 725 same backend_decl. 726 7272006-11-09 Paul Thomas <pault@gcc.gnu.org> 728 729 PR fortran/29699 730 * trans-array.c (structure_alloc_comps): Detect pointers to 731 arrays and use indirect reference to declaration. 732 * resolve.c (resolve_fl_variable): Tidy up condition. 733 (resolve_symbol): The same and only add initialization code if 734 the symbol is referenced. 735 * trans-decl.c (gfc_trans_deferred_vars): Call gfc_trans_ 736 deferred_array before gfc_trans_auto_array_allocation. 737 738 PR fortran/21370 739 * symbol.c (check_done): Remove. 740 (gfc_add_attribute): Remove reference to check_done and remove 741 the argument attr_intent. 742 (gfc_add_allocatable, gfc_add_dimension, gfc_add_external, 743 gfc_add_intrinsic, gfc_add_optional, gfc_add_pointer, 744 gfc_add_cray_pointer, gfc_add_cray_pointee, gfc_add_result, 745 gfc_add_target, gfc_add_in_common, gfc_add_elemental, 746 gfc_add_pure, gfc_add_recursive, gfc_add_procedure, 747 gfc_add_type): Remove references to check_done. 748 * decl.c (attr_decl1): Eliminate third argument in call to 749 gfc_add_attribute. 750 * gfortran.h : Change prototype for gfc_add_attribute. 751 7522006-11-08 Brooks Moses <brooks.moses@codesourcery.com> 753 754 * invoke.texi: Added documentation for -fmax-errors option. 755 7562006-11-08 Brooks Moses <brooks.moses@codesourcery.com> 757 758 * lang.opt: Add -fmax-errors= option. 759 * gfortran.h (gfc_option_t): Add max_errors element. 760 * options.c (gfc_init_options): Set max_errors default value 761 to 25. 762 (gfc_handle_options): Assign -fmax_errors value to 763 gfc_option.max_errors. 764 * error.c (gfc_increment_error_count): New function, which 765 also checks whether the error count exceeds max_errors. 766 (gfc_warning): Use it. 767 (gfc_warning_now): Use it. 768 (gfc_notify_std): Use it. 769 (gfc_error): Use it. 770 (gfc_error_now): Use it. 771 (gfc_error_check): Use it. 772 7732006-11-08 Brooks Moses <brooks.moses@codesourcery.com> 774 775 * lang.opt: Remove non-working -qkind= option. 776 * gfortran.h (gfc_option_t): Remove q_kind member. 777 * options.c (gfc_init_options): Remove q_kind initialization. 778 (gfc_handle_option): Remove -qkind= option handling. 779 * primary.c: (match_real_constant): Remove 'Q' exponent. 780 7812006-11-08 Tobias Burnus <burnus@net-b.de> 782 783 * gfortran.texi: Add volatile and internal-file 784 namelist to Fortran 2003 status. 785 * intrinsic.texi: Correct CHMOD entry. 786 7872006-11-07 Paul Thomas <pault@gcc.gnu.org> 788 789 PR fortran/29539 790 PR fortran/29634 791 * decl.c (variable_decl): Add test for presence of proc_name. 792 * error.c (gfc_error_flag_test): New function. 793 * gfortran.h : Prototype for gfc_error_flag_test. 794 7952006-11-07 Tobias Burnus <burnus@net-b.de> 796 797 PR fortran/29601 798 * symbol.c (check_conflict, gfc_add_volatile): Add volatile support. 799 * decl.c (match_attr_spec, gfc_match_volatile): Add volatile support. 800 * gfortran.h (symbol_attribute): Add volatile_ to struct. 801 * resolve.c (was_declared): Add volatile support. 802 * trans-decl.c (gfc_finish_var_decl): Add volatile support. 803 * match.h: Declare gfc_match_volatile. 804 * parse.c (decode_statement): Recognize volatile. 805 * modules.c (ab_attribute, attr_bits, mio_symbol_attribute): 806 Add volatile support. 807 * dump-parse-tree.c (gfc_show_attr): Add volatile support. 808 8092006-11-06 Tobias Burnus <burnus@net-b.de> 810 811 * decl.c (match_attr_spec, gfc_match_enum): Unify gfc_notify_std 812 message for GFC_STD_F2003. 813 * array.c (gfc_match_array_constructor): Unify gfc_notify_std 814 message for GFC_STD_F2003. 815 * io.c (check_io_constraints): Unify gfc_notify_std message for 816 GFC_STD_F2003. 817 * resolve.c (resolve_actual_arglist): Unify gfc_notify_std message 818 for GFC_STD_F2003. 819 8202006-11-06 Brooks Moses <brooks.moses@codesourcery.com> 821 822 * intrinsic.texi: Added documentation for FTELL, GETLOG, and 823 HOSTNM intrinsics. 824 8252006-11-06 Erik Edelmann <eedelman@gcc.gnu.org> 826 827 PR fortran/29630 828 PR fortran/29679 829 * expr.c (find_array_section): Support vector subscripts. Don't 830 add sizes for dimen_type == DIMEN_ELEMENT to the shape array. 831 8322006-11-05 Bernhard Fischer <aldot@gcc.gnu.org> 833 834 PR fortran/21061 835 * error.c (gfc_warning): If warnings_are_errors then treat 836 warnings as errors with respect to the exit code. 837 (gfc_notify_std): Ditto. 838 (gfc_warning_now): Ditto. 839 8402006-11-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu,org> 841 Paul Thomas <pault@gcc.gnu.org> 842 843 PR fortran/24518 844 * trans-intrinsic.c (gfc_conv_intrinsic_mod): Use built_in fmod 845 for both MOD and MODULO, if it is available. 846 847 PR fortran/29565 848 * trans-expr.c (gfc_conv_aliased_arg): For an INTENT(OUT), save 849 the declarations from the unused loops by merging the block 850 scope for each; this ensures that the temporary is declared. 851 8522006-11-04 Brooks Moses <brooks.moses@codesourcery.com> 853 854 * error.c (show_locus): Add trailing colon in error messages. 855 (error_print): Avoid leading space in error lines. 856 8572006-11-04 Francois-Xavier Coudert <coudert@clipper.ens.fr> 858 859 PR fortran/29713 860 * expr.c (gfc_simplify_expr): Correct memory allocation. 861 8622006-11-02 Brooks Moses <brooks.moses@codesourcery.com> 863 864 * error.c (show_locus): Remove "In file" from error messages. 865 8662006-10-31 Geoffrey Keating <geoffk@apple.com> 867 868 * trans-decl.c (gfc_generate_constructors): Update for removal 869 of get_file_function_name. 870 8712006-11-01 Bernhard Fischer <aldot@gcc.gnu.org> 872 873 PR fortran/29537 874 * trans-common.c (gfc_trans_common): If the blank common is 875 in a procedure or program without a name then proc_name is null, so 876 use the locus of the common. 877 (gfc_sym_mangled_common_id): Fix whitespace. 878 * match.c (gfc_match_common): Emit warning about blank common in 879 block data. 880 8812006-10-31 Francois-Xavier Coudert <coudert@clipper.ens.fr> 882 883 PR fortran/29067 884 * decl.c (gfc_set_constant_character_len): NULL-terminate the 885 character constant string. 886 * data.c (create_character_intializer): Likewise. 887 * expr.c (gfc_simplify_expr): NULL-terminate the substring 888 character constant. 889 * primary.c (match_hollerith_constant): NULL-terminate the 890 character constant string. 891 8922006-10-31 Paul Thomas <pault@gcc.gnu.org> 893 894 PR fortran/29387 895 * trans-intrinsic.c (gfc_conv_intrinsic_len): Rearrange to have 896 a specific case for EXPR_VARIABLE and, in default, build an ss 897 to call gfc_conv_expr_descriptor for array expressions.. 898 899 PR fortran/29490 900 * trans-expr.c (gfc_set_interface_mapping_bounds): In the case 901 that GFC_TYPE_ARRAY_LBOUND is not available, use descriptor 902 values for it and GFC_TYPE_ARRAY_UBOUND. 903 904 PR fortran/29641 905 * trans-types.c (gfc_get_derived_type): If the derived type 906 namespace has neither a parent nor a proc_name, set NULL for 907 the search namespace. 908 9092006-10-30 Tobias Burnus <burnus@net-b.de> 910 911 PR fortran/29452 912 * io.c (check_io_constraints): Fix keyword string comparison. 913 9142006-10-30 Andrew Pinski <pinskia@gmail.com> 915 916 PR fortran/29410 917 * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): 918 Change over to create VIEW_CONVERT_EXPR instead of using an 919 ADDR_EXPR, a cast and then an indirect reference 920 9212006-10-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> 922 923 * trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a 924 signed integer node. 925 9262006-10-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> 927 928 PR fortran/17741 929 * decl.c (get_proc_name): Bump current namespace refs count. 930 9312006-10-29 Jakub Jelinek <jakub@redhat.com> 932 933 PR fortran/29629 934 * trans-openmp.c (gfc_trans_omp_array_reduction): Set attr.flavor 935 of init_val_sym and outer_sym to FL_VARIABLE. 936 9372006-10-29 Kazu Hirata <kazu@codesourcery.com> 938 939 * intrinsic.texi: Fix a typo. 940 9412006-10-27 Steven G. Kargl <kargl@gcc.gnu.org> 942 943 * gfortran.h: Remove GFC_MPFR_TOO_OLD. 944 * arith.c (arctangent2): Remove function 945 (gfc_check_real_range): Remove subnormal kludge. 946 * arith.h: Remove arctangent2 prototype. 947 * simplify.c: (gfc_simplify_atan2): Remove use of arctangent2. 948 (gfc_simplify_exponent, gfc_simplify_log, gfc_simplify_nearest, 949 gfc_simplify_rrspacing, gfc_simplify_spacing): Remove mpfr kludges. 950 9512006-10-28 Tobias Burnus <burnus@net-b.de> 952 953 PR fortran/28224 954 * io.c (check_io_constraints): Allow namelists 955 for internal files for Fortran 2003. 956 9572006-10-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> 958 959 PR fortran/27954 960 * decl.c (gfc_free_data_all): New function to free all data structures 961 after errors in DATA statements and declarations. 962 (top_var_list): Use new function.(top_val_list): Use new function. 963 (gfc_match_data_decl): Use new function. 964 * misc.c (gfc_typename): Fixed incorrect function name in error text. 965 9662006-10-24 Erik Edelmann <eedelman@gcc.gnu.org> 967 968 PR fortran/29393 969 * expr.c (simplify_parameter_variable): Keep rank of original 970 expression. 971 9722006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 973 974 * Make-lang.in (f951$(exeext)): Depend on and link with attribs.o. 975 * trans.h (builtin_function): Rename to gfc_builtin_function. 976 Change the signature. 977 * 95-lang.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as 978 gfc_builtin_function. 979 (builtin_function): Rename to gfc_builtin_function. Move common 980 code to builtin_function. 981 (gfc_define_builtin): Replace calls to builtin_function with 982 gfc_define_builtin. 983 9842006-10-22 Francois-Xavier Coudert <coudert@clipper.ens.fr> 985 986 PR fortran/26025 987 * lang.opt: Add -fexternal-blas and -fblas-matmul-limit options. 988 * options.c (gfc_init_options): Initialize new flags. 989 (gfc_handle_option): Handle new flags. 990 * gfortran.h (gfc_option): Add flag_external_blas and 991 blas_matmul_limit flags. 992 * trans-expr.c (gfc_conv_function_call): Use new argument 993 append_args, appending it at the end of the argument list 994 built for a function call. 995 * trans-stmt.c (gfc_trans_call): Use NULL_TREE for the new 996 append_args argument to gfc_trans_call. 997 * trans.h (gfc_conv_function_call): Update prototype. 998 * trans-decl.c (gfc_build_intrinsic_function_decls): Add 999 prototypes for BLAS ?gemm routines. 1000 * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Generate the 1001 extra arguments given to the library matmul function, and give 1002 them to gfc_conv_function_call. 1003 * invoke.texi: Add documentation for -fexternal-blas and 1004 -fblas-matmul-limit. 1005 10062006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1007 1008 * Make-lang.in (F95_LIBS): Delete. 1009 * f951$(exeext): Use $(LIBS) instead of $(F95_LIBS). 1010 * config-lang.in (need_gmp): Delete. 1011 10122006-10-19 Brooks Moses <bmoses@stanford.edu> 1013 1014 * invoke.texi: Fixed "denormal" typo. 1015 10162006-10-19 Paul Thomas <pault@gcc.gnu.org> 1017 1018 PR fortran/29216 1019 PR fortran/29314 1020 * gfortran.h : Add EXEC_INIT_ASSIGN. 1021 * dump-parse-tree.c (gfc_show_code_node): The same. 1022 * trans-openmp.c (gfc_trans_omp_array_reduction): Set new 1023 argument for gfc_trans_assignment to false. 1024 * trans-stmt.c (gfc_trans_forall_1): The same. 1025 * trans-expr.c (gfc_conv_function_call, gfc_trans_assign, 1026 gfc_trans_arrayfunc_assign, gfc_trans_assignment): The 1027 same. In the latter function, use the new flag to stop 1028 the checking of the lhs for deallocation. 1029 (gfc_trans_init_assign): New function. 1030 * trans-stmt.h : Add prototype for gfc_trans_init_assign. 1031 * trans.c (gfc_trans_code): Implement EXEC_INIT_ASSIGN. 1032 * trans.h : Add new boolean argument to the prototype of 1033 gfc_trans_assignment. 1034 * resolve.c (resolve_allocate_exp): Replace EXEC_ASSIGN by 1035 EXEC_INIT_ASSIGN. 1036 (resolve_code): EXEC_INIT_ASSIGN does not need resolution. 1037 (apply_default_init): New function. 1038 (resolve_symbol): Call it for derived types that become 1039 defined but which do not already have an initialization 1040 expression.. 1041 * st.c (gfc_free_statement): Include EXEC_INIT_ASSIGN. 1042 10432006-10-16 Tobias Burnus <burnus@net-b.de> 1044 1045 * primary.c: Revert 'significand'-to-'significant' comment change. 1046 * invoke.texi (Warning Options): Minor cleanup for 1047 -Wimplicit-interface. 1048 10492006-10-17 Paul Thomas <pault@gcc.gnu.org> 1050 1051 PR fortran/29451 1052 * trans-array.c (gfc_trans_array_bounds): Test for and set 1053 negative stride of a non-constant bound array to zero. 1054 1055 PR fortran/29392 1056 * data.c (create_character_intializer): Copy and simplify 1057 the expressions for the start and end of a sub-string 1058 reference. 1059 10602006-10-16 Kaz Kojima <kkojima@rr.iij4u.or.jp> 1061 1062 * io.c (gfc_match_close): Ensure that status is terminated by 1063 a NULL element. 1064 10652006-10-16 Tobias Burnus <burnus@net-b.de> 1066 1067 * trans-stmt.c: Fix a typo 1068 * invoke.texi: Fix typos 1069 * resolve.c: Fix a comment typo 1070 * trans-decl.c: Fix a comment typo 1071 * primary.c: Fix a comment typo 1072 10732006-10-15 Steven G. Kargl <kargl@gcc.gnu.org> 1074 1075 PR fortran/29403 1076 * io.c (match_io): Check for a default-char-expr for PRINT format. 1077 10782006-10-15 Bernhard Fischer <aldot@gcc.gnu.org> 1079 1080 PR fortran/24767 1081 * lang.opt (Wunused-labels): Remove. 1082 * options.c: Remove references to gfc_option.warn_unused_labels. 1083 * gfortran.h: Remove variable warn_unused_labels. 1084 * resolve.c (warn_unused_fortran_label) : Use warn_unused_label 1085 instead of gfc_option.warn_unused_labels. 1086 * invoke.texi: Remove documentation of -Wunused-labels. 1087 10882006-10-14 Tobias Burnus <burnus@net-b.de> 1089 1090 * gfortran.texi: Add link to GFortran apps 1091 * intrinsic.texi: Updated documentation of ACCESS and CHMOD 1092 10932006-10-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1094 1095 PR fortran/19261 1096 * scanner.c (load_line): Add checks for illegal use of '&' and issue 1097 warnings. Issue errors with -pedantic. 1098 10992006-10-14 Paul Thomas <pault@gcc.gnu.org> 1100 1101 PR fortran/29371 1102 * trans-expr.c (gfc_trans_pointer_assignment): Add the expression 1103 for the assignment of null to the data field to se->pre, rather 1104 than block. 1105 11062006-10-14 Kazu Hirata <kazu@codesourcery.com> 1107 1108 * intrinsic.texi: Fix typos. 1109 * trans-array.c: Fix a comment typo. 1110 11112006-10-13 Brooks Moses <bmoses@stanford.edu> 1112 1113 * intrinsic.texi (STAT): Reverted a format in example code to 1114 octal; noted this in accompanying string. 1115 11162006-10-13 Paul Thomas <pault@gcc.gnu.org> 1117 1118 PR fortran/29373 1119 * decl.c (get_proc_name, gfc_match_function_decl): Add 1120 attr.implicit_type to conditions that throw error for 1121 existing explicit interface and that allow new type- 1122 spec to be applied. 1123 1124 PR fortran/29407 1125 * resolve.c (resolve_fl_namelist): Do not check for 1126 namelist/procedure conflict, if the symbol corresponds 1127 to a good local variable declaration. 1128 1129 PR fortran/27701 1130 * decl.c (get_proc_name): Replace the detection of a declared 1131 procedure by the presence of a formal argument list by the 1132 attributes of the symbol and the presence of an explicit 1133 interface. 1134 1135 PR fortran/29232 1136 * resolve.c (resolve_fl_variable): See if the host association 1137 of a derived type is blocked by the presence of another type I 1138 object in the current namespace. 1139 1140 PR fortran/29364 1141 * resolve.c (resolve_fl_derived): Check for the presence of 1142 the derived type for a derived type component. 1143 1144 PR fortran/24398 1145 * module.c (gfc_use_module): Check that the first words in a 1146 module file are 'GFORTRAN module'. 1147 1148 PR fortran/29422 1149 * resolve.c (resolve_transfer): Test functions for suitability 1150 for IO, as well as variables. 1151 1152 PR fortran/29428 1153 * trans-expr.c (gfc_trans_scalar_assign): Remove nullify of 1154 rhs expression. 1155 11562006-10-13 Francois-Xavier Coudert <coudert@clipper.ens.fr> 1157 1158 PR fortran/29391 1159 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Generate correct 1160 code for LBOUND and UBOUND intrinsics. 1161 11622006-10-13 Francois-Xavier Coudert <coudert@clipper.ens.fr> 1163 1164 PR fortran/21435 1165 * io.c (compare_to_allowed_values): New function. 1166 (gfc_match_open): Add checks for constant values of specifiers. 1167 (gfc_match_close): Add checks for constant values of the STATUS 1168 specifier. 1169 11702006-10-12 Brooks Moses <bmoses@stanford.edu> 1171 1172 * intrinsic.texi (STAT): Fixed a format typo in sample code. 1173 11742006-10-12 Brooks Moses <bmoses@stanford.edu> 1175 1176 * intrinsic.texi (STAT): Shortened lines in sample code. 1177 11782006-10-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> 1179 1180 * gfortran.h (gfc_show_actual_arglist, gfc_show_array_ref, 1181 gfc_show_array_spec, gfc_show_attr, gfc_show_code, 1182 gfc_show_components, gfc_show_constructor, gfc_show_equiv, 1183 gfc_show_expr, gfc_show_namelist, gfc_show_ref, gfc_show_symbol, 1184 gfc_show_typespec): Add prototypes. 1185 * dump-parse-tree.c (gfc_show_actual_arglist, gfc_show_array_ref, 1186 gfc_show_array_spec, gfc_show_attr, gfc_show_code, 1187 gfc_show_components, gfc_show_constructor, gfc_show_equiv, 1188 gfc_show_expr, gfc_show_namelist, gfc_show_ref, gfc_show_symbol, 1189 gfc_show_typespec): Remove 'static' from declaration. 1190 11912006-10-10 Brooks Moses <bmoses@stanford.edu> 1192 1193 * invoke.texi, gfortran.texi: Corrected erronous dashes. 1194 11952006-10-10 Brooks Moses <bmoses@stanford.edu> 1196 1197 * Make-lang.in: Added "fortran.pdf", "gfortran.pdf" target 1198 support. 1199 12002006-10-10 Daniel Franke <franke.daniel@gmail.com> 1201 1202 * intrinsic.texi: added documentation for FSTAT, GETARG,GET_COMMAND, 1203 GET_COMMAND_ARGUMENT, GETENV, GET_ENVIRONMENT_VARIABLE, IAND, IARGC, 1204 LSTAT and STAT, removed the reference to PR19292 from ACCESS, CHMOD, 1205 GMTIME, LSHIFT, LTIME, RSHIFT. 1206 12072006-10-10 Brooks Moses <bmoses@stanford.edu> 1208 1209 * gfortran.texi (Standards): Update to current status. 1210 12112006-10-09 Brooks Moses <bmoses@stanford.edu> 1212 1213 * Make-lang.in: Added intrinsic.texi to GFORTRAN_TEXI 1214 dependences. 1215 12162006-10-09 Brooks Moses <bmoses@stanford.edu> 1217 1218 * intrinsic.texi (MOVE_ALLOC): changed "Options" to "Standards". 1219 12202006-10-09 Steven G. Kargl <kargl@gcc.gnu.org> 1221 1222 * gfortran.h: Define GFC_MPFR_TOO_OLD via mpfr version info. 1223 * arith.c (arctangent, gfc_check_real_range): Use it. 1224 * simplify.c (gfc_simplify_atan2, gfc_simplify_exponent, 1225 gfc_simplify_log, gfc_simplify_nearest): Use it. 1226 1227 PR fortran/15441 1228 PR fortran/29312 1229 * iresolve.c (gfc_resolve_rrspacing): Give rrspacing library 1230 routine hidden precision argument. 1231 (gfc_resolve_spacing): Give spacing library routine hidden 1232 precision, emin - 1, and tiny(x) arguments. 1233 * simplify.c (gfc_simplify_nearest): Remove explicit subnormalization. 1234 (gfc_simplify_rrspacing): Implement formula from Fortran 95 standard. 1235 (gfc_simplify_spacing): Implement formula from Fortran 2003 standard. 1236 * trans-intrinsic.c (gfc_intrinsic_map_t) Declare rrspacing and 1237 spacing via LIBF_FUNCTION 1238 (prepare_arg_info, call_builtin_clz, gfc_conv_intrinsic_spacing, 1239 gfc_conv_intrinsic_rrspacing): Remove functions. 1240 (gfc_conv_intrinsic_function): Remove calls to 1241 gfc_conv_intrinsic_spacing and gfc_conv_intrinsic_rrspacing. 1242 * f95-lang.c (gfc_init_builtin_functions): Remove __builtin_clz, 1243 __builtin_clzl and __builtin_clzll 1244 12452006-10-09 Richard Henderson <rth@redhat.com> 1246 1247 Revert emutls patch. 1248 12492006-10-09 Francois-Xavier Coudert <coudert@clipper.ens.fr> 1250 1251 * intrinsic.c (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, 1252 add_sym_4s, add_sym_5s, add_functions): Use macro ACTUAL_NO, 1253 ACTUAL_YES, NOT_ELEMENTAL and ELEMENTAL instead of constants 1254 0 and 1 as second and third arguments to add_sym* functions. 1255 12562006-10-08 Erik Edelmann <edelmann@gcc.gnu.org> 1257 Paul Thomas <pault@gcc.gnu.org> 1258 1259 PR fortran/20541 1260 * interface.c (gfc_compare_derived_types): Add comparison of 1261 the allocatable field. 1262 * intrinsic.c (add_subroutines): Add MOVE_ALLOC. 1263 * trans-expr.c (gfc_conv_aliased_arg, gfc_trans_subarray_assign, 1264 gfc_trans_subcomponent_assign, gfc_conv_string_parameter, 1265 gfc_trans_scalar_assign): Add extra arguments l_is_temp 1266 and r_is_var to references to latter function. 1267 (gfc_conv_function_call): Add enum for types of argument and 1268 an associated variable parm_kind. Deallocate components of 1269 INTENT(OUT) and non-variable arrays. 1270 (gfc_trans_subcomponent_assign): Add block to assign arrays 1271 to allocatable components. 1272 (gfc_trans_scalar_assign): Add block to handle assignments of 1273 derived types with allocatable components, using the above new 1274 arguments to control allocation/deallocation of memory and the 1275 copying of allocated arrays. 1276 * trans-array.c (gfc_array_allocate): Remove old identification 1277 of pointer and replace with that of an allocatable array. Add 1278 nullify of structures with allocatable components. 1279 (gfc_conv_array_initializer): Treat EXPR_NULL. 1280 (gfc_conv_array_parameter): Deallocate allocatable components 1281 of non-variable structures. 1282 (gfc_trans_dealloc_allocated): Use second argument of library 1283 deallocate to inhibit, without error, freeing NULL pointers. 1284 (get_full_array_size): New function to return the size of a 1285 full array. 1286 (gfc_duplicate_allocatable): New function to allocate and copy 1287 allocated data. 1288 (structure_alloc_comps): New recursive function to deallocate, 1289 nullify or copy allocatable components. 1290 (gfc_nullify_alloc_comp, gfc_deallocate_alloc_comp, 1291 gfc_copy_alloc_comp): New interface functions to call previous. 1292 (gfc_trans_deferred_array): Add the code to nullify allocatable 1293 components, when entering scope, and to deallocate them on 1294 leaving. Do not call gfc_trans_static_array_pointer and return 1295 for structures with allocatable components and default 1296 initializers. 1297 * symbol.c (gfc_set_component_attr): Set allocatable field. 1298 (gfc_get_component_attr): Set the allocatable attribute. 1299 * intrinsic.h : Prototype for gfc_check_move_alloc. 1300 * decl.c (build_struct): Apply TR15581 constraints for 1301 allocatable components. 1302 (variable_decl): Default initializer is always NULL for 1303 allocatable components. 1304 (match_attr_spec): Allow, or not, allocatable components, 1305 according to the standard in force. 1306 * trans-array.h : Prototypes for gfc_nullify_alloc_comp, 1307 gfc_deallocate_alloc_comp, gfc_copy_alloc_comp and 1308 gfc_duplicate_allocatable. 1309 * gfortran.texi : Add mention of TR15581 extensions. 1310 * gfortran.h : Add attribute alloc_comp, add 1311 gfc_components field allocatable and add the prototype 1312 for gfc_expr_to_initialize. 1313 * trans-stmt.c (generate_loop_for_temp_to_lhs, 1314 generate_loop_for_rhs_to_temp, gfc_trans_where_assign, 1315 gfc_trans_where_3): Add extra arguments to calls to 1316 gfc_trans_scalar_assign and set appropriately. 1317 (gfc_trans_allocate): Nullify allocatable components. 1318 (gfc_trans_deallocate): Deallocate to ultimate allocatable 1319 components but stop at ultimate pointer components. 1320 * module.c (mio_symbol_attribute, mio_symbol_attribute, 1321 mio_component): Add module support for allocatable 1322 components. 1323 * trans-types.c (gfc_get_derived_type): Treat allocatable 1324 components. 1325 * trans.h : Add two boolean arguments to 1326 gfc_trans_scalar_assign. 1327 * resolve.c (resolve_structure_cons): Check conformance of 1328 constructor element and the component. 1329 (resolve_allocate_expr): Add expression to nullify the 1330 constructor expression for allocatable components. 1331 (resolve_transfer): Inhibit I/O of derived types with 1332 allocatable components. 1333 (resolve_fl_derived): Skip check of bounds of allocatable 1334 components. 1335 * trans-decl.c (gfc_get_symbol_decl): Add derived types 1336 with allocatable components to deferred variable. 1337 (gfc_trans_deferred_vars): Make calls for derived types 1338 with allocatable components to gfc_trans_deferred_array. 1339 (gfc_generate_function_code): Nullify allocatable 1340 component function result on entry. 1341 * parse.c (parse_derived): Set symbol attr.allocatable if 1342 allocatable components are present. 1343 * check.c (gfc_check_allocated): Enforce attr.allocatable 1344 for intrinsic arguments. 1345 (gfc_check_move_alloc): Check arguments of move_alloc. 1346 * primary.c (gfc_variable_attr): Set allocatable attribute. 1347 * intrinsic.texi : Add index entry and section for 1348 for move_alloc. 1349 13502006-10-08 Paul Thomas <pault@gcc.gnu.org> 1351 1352 PR fortran/29115 1353 * resolve.c (resolve_structure_cons): It is an error if the 1354 pointer component elements of a derived type constructor are 1355 not pointer or target. 1356 1357 1358 PR fortran/29211 1359 * trans-stmt.c (generate_loop_for_temp_to_lhs, 1360 generate_loop_for_rhs_to_temp): Provide a string length for 1361 the temporary by copying that of the other side of the scalar 1362 assignment. 1363 13642006-10-08 Tobias Burnus <burnus@net-b.de> 1365 1366 PR fortran/28585 1367 * intrinsic.c (add_functions): Add new_line Fortran 2003 intrinsic. 1368 * intrinsic.h: Add gfc_simplify_new_line and gfc_check_new_line 1369 prototypes. 1370 * check.c (gfc_check_new_line): New function. 1371 * simplify.c (gfc_simplify_new_line): New function. 1372 * intrinsic.texi: Document new_line intrinsic. 1373 13742006-10-07 Francois-Xavier Coudert <coudert@clipper.ens.fr> 1375 1376 PR fortran/16580 1377 PR fortran/29288 1378 * gcc/fortran/intrinsic.c (add_sym): Define the actual_ok when a 1379 gfc_intrinsic_sym structure is filled. 1380 (gfc_intrinsic_actual_ok): New function. 1381 (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, add_sym_4s, 1382 add_sym_5s): Intrinsic subroutines are not allowed as actual 1383 arguments, so we remove argument actual_ok. 1384 (add_functions): Correct the values for actual_ok of all intrinsics. 1385 Add comments for gfc_check_access_func and gfc_resolve_index_func. 1386 (add_subroutines): Remove the actual_ok argument, which was never used. 1387 * gcc/fortran/intrinsic.h (gfc_intrinsic_actual_ok): New prototype. 1388 * gcc/fortran/gfortran.h (gfc_resolve_index_func): New prototype. 1389 * gcc/fortran/resolve.c (resolve_actual_arglist): Check whether 1390 an intrinsic used as an argument list is allowed there. 1391 * gcc/fortran/iresolve.c (gfc_resolve_index_func): New function. 1392 (gfc_resolve_len): Change intrinsic function name to agree with 1393 libgfortran. 1394 * gcc/fortran/trans-decl.c (gfc_get_extern_function_decl): Add 1395 new case, because some specific intrinsics take 3 arguments. 1396 * gcc/fortran/intrinsic.texi: DIMAG is a GNU extension. 1397 13982006-10-06 Jakub Jelinek <jakub@redhat.com> 1399 1400 PR fortran/28415 1401 * trans-decl.c (gfc_finish_var_decl): With -fno-automatic, don't 1402 make artificial variables or pointer to variable automatic array 1403 TREE_STATIC. 1404 1405 * scanner.c (skip_free_comments): Return bool instead of void. 1406 (gfc_next_char_literal): Don't return ' ' if & is missing after 1407 !$omp or !$. Use skip_{free,fixed}_comments directly instead 1408 of gfc_skip_comments. 1409 14102006-10-04 Brooks Moses <bmoses@stanford.edu> 1411 1412 * gfortran.texi: (Current Status): update and rewrite to reflect 1413 actual status more accurately. 1414 14152006-10-04 Brooks Moses <bmoses@stanford.edu> 1416 1417 * gfortran.texi: Consistently refer to the compiler as "GNU 1418 Fortran". 1419 * intrinsic.texi: Ditto. 1420 * invoke.texi: Ditto. 1421 14222006-10-04 Richard Henderson <rth@redhat.com> 1423 Jakub Jelinek <jakub@redhat.com> 1424 1425 * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address 1426 and __emutls_register_common. 1427 * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls. 1428 * trans-common.c (build_common_decl): Don't check have_tls. 1429 * trans-decl.c (gfc_finish_var_decl): Likewise. 1430 * types.def (BT_WORD, BT_FN_PTR_PTR): New. 1431 (BT_FN_VOID_PTR_WORD_WORD_PTR): New. 1432 14332006-10-04 Paul Thomas <pault@gcc.gnu.org> 1434 1435 PR fortran/29343 1436 * resolve.c (resolve_allocate_expr): Exclude derived types from 1437 search for dependences between allocated variables and the 1438 specification expressions for other allocations in the same 1439 statement. 1440 14412006-10-04 Paul Thomas <pault@gcc.gnu.org> 1442 1443 PR fortran/29098 1444 * resolve.c (resolve_structure_cons): Do not return FAILURE if 1445 component expression is NULL. 1446 14472006-10-03 Paul Thomas <pault@gcc.gnu.org> 1448 1449 PR fortran/20779 1450 PR fortran/20891 1451 * resolve.c (find_sym_in_expr): New function that returns true 1452 if a symbol is found in an expression. 1453 (resolve_allocate_expr): Check whether the STAT variable is 1454 itself allocated in the same statement. Use the call above to 1455 check whether any of the allocated arrays are used in array 1456 specifications in the same statement. 1457 14582006-10-03 Steven G. Kargl <kargl@gcc.gnu.org> 1459 1460 * arith.c (gfc_check_real_range): Use correct exponent range for 1461 subnormal numbers. 1462 14632006-10-03 Paul Thomas <pault@gcc.gnu.org> 1464 1465 PR fortran/29284 1466 PR fortran/29321 1467 PR fortran/29322 1468 * trans-expr.c (gfc_conv_function_call): Check the expression 1469 and the formal symbol are present when testing the actual 1470 argument. 1471 1472 PR fortran/25091 1473 PR fortran/25092 1474 * resolve.c (resolve_entries): It is an error if the entries 1475 of an array-valued function do not have the same shape. 1476 14772006-10-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> 1478 1479 PR middle-end/27478 1480 * trans-decl.c (gfc_get_fake_result_decl): Mark var as 1481 TREE_ADDRESSABLE. 1482 14832006-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1484 1485 PR fortran/19262 1486 * gfortran.h (gfc_option_t): Add max_continue_fixed and 1487 max_continue_free. 1488 * options.c (gfc_init_options): Initialize fixed form and free form 1489 consecutive continuation line limits. 1490 * scanner.c (gfc_scanner_init_1): Initialize continue_line 1491 and continue_count. (gfc_next_char_literal): Count the number of 1492 continuation lines in the current statement and warn if limit 1493 is exceeded. 1494 14952006-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1496 1497 PR fortran/19260 1498 * scanner.c (gfc_next_char_literal): Add check for missing '&' 1499 and warn if in_string, otherwise return ' '. 1500 15012006-10-02 Francois-Xavier Coudert <coudert@clipper.ens.fr> 1502 1503 PR fortran/29210 1504 * primary.c (match_sym_complex_part): Named constants as real or 1505 imaginary part of complex a named constant are only allowed in 1506 Fortran 2003. 1507 15082006-10-01 Brooks Moses <bmoses@stanford.edu> 1509 1510 * gfortran.texi: Corrected references to MALLOC intrinsic. 1511 * invoke.texi: Minor cleanup and clarification to the Dialect 1512 Options section. 1513 15142006-09-30 Brooks Moses <bmoses@stanford.edu> 1515 1516 * invoke.texi: Add mention of BOZ constants and integer 1517 overflow to -fno-range-check. 1518 * gfortran.texi: Add mention of -fno-range-check to 1519 section on BOZ contants. 1520 15212006-09-30 Bernhard Fischer <aldot@gcc.gnu.org> 1522 1523 * resolve.c: Fix commentary typo. Fix whitespace. 1524 15252006-09-28 Steven G. Kargl <kargl@gcc.gnu.org> 1526 1527 fortran/29147 1528 * arith.c (gfc_check_integer_range): Disable range checking via 1529 -fno-range-check. 1530 15312006-09-28 Steven G. Kargl <kargl@gcc.gnu.org> 1532 1533 * arith.c: Change conditional test for inclusion of arctangent(). 1534 (gfc_check_real_range): Change conditional test for use of 1535 mpfr_subnormalize. 1536 * simplify.c (gfc_simplify_atan2): Fix conditional for use of 1537 mpfr_atan2() instead of arctangent(). 1538 (gfc_simplify_exponent): Fix conditional for use of mpfr_get_exp(). 1539 (gfc_simplify_log): Fix conditional for use of mpfr_atan2() instead 1540 of arctangent(). 1541 (gfc_simplify_nearest): Fix conditional for use of mpfr_nextafter(). 1542 15432006-09-27 Steven G. Kargl <kargl@gcc.gnu.org> 1544 1545 * arith.c: Conditionally include arctangent2(). 1546 (gfc_check_real_range): Use mpfr_subnormalize in preference to local 1547 hack. 1548 * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Append 1549 l for long double functions. 1550 * simplify.c: Wrap Copyright to new line. 1551 (gfc_simplify_atan2): Use mpfr_atan2 in preference to arctangent2(). 1552 (gfc_simplify_log): Ditto. 1553 1554 1555 PR fortran/28276 1556 * simplify.c (gfc_simplify_exponent): Use mpfr_get_exp in 1557 preference to broken local hack. 1558 1559 PR fortran/27021 1560 * simplify.c (gfc_simplify_nearest): Use mpfr_nexttoward and 1561 mpfr_subnormalize to handle numbers near zero in preference to broken 1562 local hack. 1563 15642006-09-26 Jakub Jelinek <jakub@redhat.com> 1565 1566 PR fortran/29097 1567 * scanner.c (include_line): Handle conditional include. 1568 15692006-09-25 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 1570 1571 PR fortran/21203 1572 * error.c (show_loci): No need to risk an ICE to output a 1573 slightly nicer error message. 1574 15752006-09-19 Paul Thomas <pault@gcc.gnu.org> 1576 Steven Bosscher <steven@gcc.gnu.org> 1577 1578 PR fortran/29101 1579 * trans-stmt.c (gfc_trans_character_select): Store the label 1580 from select_string and then clean up any temporaries from the 1581 conversion of the select expression, before branching to the 1582 selected case. 1583 15842006-09-18 Paul Thomas <pault@gcc.gnu.org> 1585 1586 PR fortran/28526 1587 * primary.c (match_variable): If the compiler is in a module 1588 specification block, an interface block or a contains section, 1589 reset host_flag to force the changed symbols mechanism. 1590 1591 PR fortran/29101 1592 * trans-stmt.c (gfc_trans_character_select): Add the post block 1593 for the expression to the main block, after the call to 1594 select_string and the last label. 1595 15962006-09-18 Paul Thomas <pault@gcc.gnu.org> 1597 1598 PR fortran/29060 1599 * iresolve.c (resolve_spread): Build shape for result if the 1600 source shape is available and dim and ncopies are constants. 1601 16022006-09-18 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 1603 1604 PR fortran/28817 1605 PR fortran/21918 1606 * trans-decl.c (generate_local_decl): Change from 'warning' to 1607 'gfc_warning' to have line numbers correctly reported. 1608 16092006-09-15 Paul Thomas <pault@gcc.gnu.org> 1610 1611 PR fortran/29051 1612 * decl.c (match_old_style_init): Set the 'where' field of the 1613 gfc_data structure 'newdata'. 1614 1615 * match.c (match_case_eos): Add a comprehensible error message. 1616 16172006-09-13 Wolfgang Gellerich <gellerich@de.ibm.com> 1618 1619 * trans-expr.c (gfc_add_interface_mapping): For characters, dereference 1620 pointer if necessary and then perform the cast. 1621 16222006-09-11 Steven G. Kargl <kargl@gcc.gnu.org> 1623 1624 * intrinsic.c: Update Copyright date. 1625 * intrinsic.h: Ditto. 1626 16272006-09-11 Paul Thomas <pault@gcc.gnu.org> 1628 1629 PR fortran/28890 1630 * trans-expr.c (gfc_conv_function_call): Obtain the string length 1631 of a dummy character(*) function from the symbol if it is not 1632 already translated. For a call to a character(*) function, use 1633 the passed, hidden string length argument, which is available 1634 from the backend_decl of the formal argument. 1635 * resolve.c (resolve_function): It is an error if a function call 1636 to a character(*) function is other than a dummy procedure or 1637 an intrinsic. 1638 16392006-09-10 Paul Thomas <pault@gcc.gnu.org> 1640 1641 PR fortran/28959 1642 * trans-types.c (gfc_get_derived_type): Use the parent namespace of 1643 the procedure if the type's own namespace does not have a parent. 1644 16452006-09-10 Paul Thomas <pault@gcc.gnu.org> 1646 1647 PR fortran/28923 1648 * expr.c (find_array_section): Only use the array lower and upper 1649 bounds for the start and end of the sections, where the expr is 1650 NULL. 1651 16522006-09-10 Paul Thomas <pault@gcc.gnu.org> 1653 1654 PR fortran/28914 1655 * trans-array.c (gfc_trans_array_constructor_value): Create a temporary 1656 loop variable to hold the current loop variable in case it is modified 1657 by the array constructor. 1658 16592006-09-07 Steven G. Kargl <kargls@comcast.net> 1660 1661 * gfortran.h (gfc_integer_info): Eliminate max_int. 1662 * arith.c (gfc_arith_init_1): Remove initialization of max_int. 1663 (gfc_arith_done_1): Remove clearing of max_int. 1664 (gfc_check_integer_range): Fix range chekcing of overflow. 1665 * simplify.c (gfc_simplify_not): Construct mask that was max_int. 1666 16672006-09-05 Paul Thomas <pault@gcc.gnu.org> 1668 1669 PR fortran/28908 1670 * gfortran.h : Restore the gfc_dt_list structure and reference 1671 to it in gfc_namespace. 1672 * resolve.c (resolve_fl_derived): Restore the building of the 1673 list of derived types for the current namespace. Modify the 1674 restored code so that a check is made to see if the symbol is 1675 already in the list. 1676 (resolve_fntype): Make sure that the specification block 1677 version of the derived type is used for a module function that 1678 returns that type. 1679 * symbol.c (gfc_free_dt_list): Restore. 1680 (gfc_free_namespace): Restore call to previous. 1681 * trans-types.c (copy_dt_decls_ifequal): Restore. 1682 (gfc_get_derived_type): Restore all the paraphenalia for 1683 association of derived types, including calls to previous. 1684 Modify the restored code such that all derived types are built 1685 if their symbols are found in the parent namespace; not just 1686 non-module types. Add backend_decls to like derived types in 1687 sibling namespaces, as well as that of the derived type. 1688 16892006-08-30 Kazu Hirata <kazu@codesourcery.com> 1690 1691 * match.c: Fix a comment typo. 1692 16932006-08-30 Paul Thomas <pault@gcc.gnu.org> 1694 1695 PR fortran/28885 1696 * trans-expr.c (gfc_conv_aliased_arg): Ensure that the temp 1697 declaration is retained for INTENT(OUT) arguments. 1698 1699 PR fortran/28873 1700 PR fortran/20067 1701 * resolve.c (resolve_generic_f): Make error message more 1702 comprehensible. 1703 (resolve_generic_s): Restructure search for specific procedures 1704 to be similar to resolve_generic_f and change to similar error 1705 message. Ensure that symbol reference is refreshed, in case 1706 the search produces a NULL. 1707 (resolve_specific_s): Restructure search, as above and as 1708 resolve_specific_f. Ensure that symbol reference is refreshed, 1709 in case the search produces a NULL. 1710 1711 PR fortran/25077 1712 PR fortran/25102 1713 * interface.c (check_operator_interface): Throw error if the 1714 interface assignment tries to change intrinsic type assigments 1715 or has less than two arguments. Also, it is an error if an 1716 interface operator contains an alternate return. 1717 1718 PR fortran/24866 1719 * parse.c (gfc_fixup_sibling_symbols): Do not modify the symbol 1720 if it is a dummy in the contained namespace. 1721 17222006-08-29 Steven G. Kargl <kargls@comcast.net> 1723 1724 PR fortran/28866 1725 * match.c: Wrap copyright. 1726 (gfc_match_assignment): Return MATCH_NO for failed lvalue. Remove 1727 gotos. Move error handling of FL_PARAMETER to ... 1728 * gfc_match_if: Deal with MATCH_NO from above. 1729 * primary.c: Wrap copyright. 1730 (match_variable): ... here. Improve error messages. 1731 17322006-08-29 Paul Thomas <pault@gcc.gnu.org> 1733 1734 PR fortran/28788 1735 * symbol.c (gfc_use_derived): Never eliminate the symbol, 1736 following reassociation of use associated derived types. 1737 17382006-08-26 Steven G. Kargl <kargls@comcast.net> 1739 1740 * arith.h: Update Copyright dates. Fix whitespace. 1741 * arith.c: Update Copyright dates. Fix whitespace. Fix comments. 1742 (gfc_arith_done_1): Clean up pedantic_min_int and subnormal. 1743 17442006-08-26 Tobias Burnus <burnus@net-b.de> 1745 1746 * gfortran.texi: Note variable initialization causes SAVE attribute. 1747 * intrinsic.texi: Clarify support for KIND=16 and KIND=10. 1748 Mention -std=f2003. Cross reference INQUIRE from ACCESS intrinsic. 1749 Add missing ) in ACOS. 1750 17512006-08-26 Daniel Franke <franke.daniel@gmail.com> 1752 1753 * intrinsic.texi: Update Copyright date. Added documentation 1754 for ACOSH, AND, ASINH, ATANH, CHDIR, FGET, FGETC, FPUT, FPUTC, 1755 GETCWD, OR and XOR intrinsics, removed inadvertently introduced 1756 doc-stubs for EQV and NEQV, corrected some typographical errors. 1757 17582006-08-24 Daniel Franke <franke.daniel@gmail.com>, 1759 Brooks Moses <bmoses@stanford.edu> 1760 1761 * intrinsic.texi: Added doc-stubs for undocumented intrinsics, 1762 added a "See Also" section, renamed the "Options" section to 1763 "Standard", improved the index, and made numerous minor 1764 typo corrections and grammatical fixes. 1765 17662006-08-24 Paul Thomas <pault@gcc.gnu.org> 1767 1768 PR fortran/28788 1769 * symbol.c (shift_types): Shift the derived type references in 1770 formal namespaces. 1771 (gfc_use_derived): Return if the derived type symbol is already 1772 in another namspace. Add searches for the derived type in 1773 sibling namespaces. 1774 1775 PR fortran/28771 1776 * decl.c (add_init_expr_to_sym): Restore the original but 1777 restricted to parameter arrays to fix a regression. 1778 17792006-08-23 Steven G. Kargl <kargls@comcast.net> 1780 1781 * gfortran.texi: Fix last commit where a "no" was deleted and 1782 a grammatical error was introduced. 1783 17842006-08-23 Steven G. Kargl <kargls@comcast.net> 1785 1786 * gfortran.texi: Spell check. Add a few contributors to 1787 Chapter 9. Expand the description of BOZ constant handling. 1788 17892006-08-20 Janne Blomqvist <jb@gcc.gnu.org> 1790 1791 PR fortran/25828 1792 * gfortran.texi: Mention STREAM I/O among supported F2003 1793 features. 1794 17952006-08-20 Paul Thomas <pault@gcc.gnu.org> 1796 1797 PR fortran/28601 1798 PR fortran/28630 1799 * gfortran.h : Eliminate gfc_dt_list structure and reference 1800 to it in gfc_namespace. 1801 * resolve.c (resolve_fl_derived): Remove the building of the 1802 list of derived types for the current namespace. 1803 * symbol.c (find_renamed_type): New function to find renamed 1804 derived types by symbol name rather than symtree name. 1805 (gfc_use_derived): Search parent namespace for identical 1806 derived type and use it, even if local version is complete, 1807 except in interface bodies. Ensure that renamed derived types 1808 are found by call to find_renamed_type. Recurse for derived 1809 type components. 1810 (gfc_free_dt_list): Remove. 1811 (gfc_free_namespace): Remove call to previous. 1812 * trans-types.c (copy_dt_decls_ifequal): Remove. 1813 (gfc_get_derived_type): Remove all the paraphenalia for 1814 association of derived types, including calls to previous. 1815 * match.c (gfc_match_allocate): Call gfc_use_derived to 1816 associate any derived types that are being allocated. 1817 1818 PR fortran/20886 1819 * resolve.c (resolve_actual_arglist): The passing of 1820 a generic procedure name as an actual argument is an 1821 error. 1822 1823 PR fortran/28735 1824 * resolve.c (resolve_variable): Check for a symtree before 1825 resolving references. 1826 1827 PR fortran/28762 1828 * primary.c (match_variable): Return MATCH_NO if the symbol 1829 is that of the program. 1830 1831 PR fortran/28425 1832 * trans-expr.c (gfc_trans_subcomponent_assign): Translate 1833 derived type component expressions other than another derived 1834 type constructor. 1835 1836 PR fortran/28496 1837 * expr.c (find_array_section): Correct errors in 1838 the handling of a missing start value for the 1839 index triplet in an array reference. 1840 1841 PR fortran/18111 1842 * trans-decl.c (gfc_build_dummy_array_decl): Before resetting 1843 reference to backend_decl, set it DECL_ARTIFICIAL. 1844 (gfc_get_symbol_decl): Likewise for original dummy decl, when 1845 a copy is made of an array. 1846 (create_function_arglist): Likewise for the _entry paramter 1847 in entry_masters. 1848 (build_entry_thunks): Likewise for dummies in entry thunks. 1849 1850 PR fortran/28600 1851 * trans-decl.c (gfc_get_symbol_decl): Ensure that the 1852 DECL_CONTEXT of the length of a character dummy is the 1853 same as that of the symbol declaration. 1854 1855 PR fortran/28771 1856 * decl.c (add_init_expr_to_sym): Remove setting of charlen for 1857 an initializer of an assumed charlen variable. 1858 1859 PR fortran/28660 1860 * trans-decl.c (generate_expr_decls): New function. 1861 (generate_dependency_declarations): New function. 1862 (generate_local_decl): Call previous if not either a dummy or 1863 a declaration in an entry master. 1864 18652006-08-19 Erik Edelmann <eedelman@gcc.gnu.org> 1866 1867 PR fortran/25217 1868 * resolve.c (resolve_fl_variable): Set a default initializer for 1869 derived types with INTENT(OUT) even if 'flag' is true. 1870 * trans-expr.c (gfc_conv_function_call): Insert code to 1871 reinitialize INTENT(OUT) arguments of derived type with default 1872 initializers. 1873 18742006-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1875 1876 PR fortran/25828 1877 * gfortran.h: Add new pointer for stream position to st_inquire. 1878 Rename gfc_large_io_int_kind to gfc_intio_kind. 1879 * trans-types.c (gfc_init_kinds): use gfc_intio_kind. 1880 * io.c: Add new IO tag for file position going in and another for out. 1881 (match_dt_element): Match new tag_spos. 1882 (gfc_resolve_dt): Resolve new tag_spos. 1883 (gfc_free_inquire): Free inquire->strm_pos. 1884 (match_inquire_element): Match new tag_strm_out. 1885 (gfc_resolve_inquire): Resolve new tag_strm_out. 1886 * trans-io.c: Rename IOPARM_type_large_io_int to IOPARM_type_intio. 1887 (gfc_build_st_parameter): Same. 1888 (gfc_build_io_library_fndecls) Same. and add build pointer type pintio. 1889 (gfc_trans_inquire): Translate strm_pos for inquire. 1890 * ioparm.def: Reorder flags to accomodate addition of new inquire 1891 flag for strm_pos_out and add it in. 1892 18932006-08-06 Paul Thomas <pault@gcc.gnu.org> 1894 1895 PR fortran/28590 1896 * parse.c (parse_derived): Remove the test for sequence type 1897 components of a sequence type. 1898 * resolve.c (resolve_fl_derived): Put the test here so that 1899 pointer components are tested. 1900 19012006-08-05 Steven G. Kargl <kargls@comcast.nt> 1902 1903 PR fortran/28548 1904 * resolve.c(resolve_elemental_actual): Add flags.h to use -pedantic 1905 and exclude conversion functions in conditional. Change gfc_error 1906 to gfc_warning. 1907 (warn_unused_label) Rename to ... 1908 (warn_unused_fortran_label) avoid warn_unused_label in flags.h. 1909 19102006-07-30 Francois-Xavier Coudert <coudert@clipper.ens.fr> 1911 1912 * intrinsic.c (add_functions): Add ACCESS, CHMOD, RSHIFT, LSHIFT. 1913 (add_subroutines): Add LTIME, GMTIME and CHMOD. 1914 * intrinsic.h (gfc_check_access_func, gfc_check_chmod, 1915 gfc_check_chmod_sub, gfc_check_ltime_gmtime, gfc_simplify_rshift, 1916 gfc_simplify_lshift, gfc_resolve_access, gfc_resolve_chmod, 1917 gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub, 1918 gfc_resolve_gmtime, gfc_resolve_ltime): Add prototypes. 1919 * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_ACCESS, 1920 GFC_ISYM_CHMOD, GFC_ISYM_LSHIFT, GFC_ISYM_RSHIFT. 1921 * iresolve.c (gfc_resolve_access, gfc_resolve_chmod, 1922 gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub, 1923 gfc_resolve_gmtime, gfc_resolve_ltime): New functions. 1924 * check.c (gfc_check_access_func, gfc_check_chmod, 1925 gfc_check_chmod_sub, gfc_check_ltime_gmtime): New functions. 1926 * trans-intrinsic.c (gfc_conv_intrinsic_rlshift): New function. 1927 (gfc_conv_intrinsic_function): Add cases for the new GFC_ISYM_*. 1928 19292006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1930 1931 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. 1932 19332006-07-26 Francois-Xavier Coudert <coudert@clipper.ens.fr> 1934 1935 * intrinsic.c (add_functions): Add INT2, SHORT, INT8, LONG, 1936 LSTAT, MCLOCK and MCLOCK8 intrinsic functions. 1937 (add_subroutines): Add LSTAT intrinsic subroutine. 1938 * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_INT2, 1939 GFC_ISYM_INT8, GFC_ISYM_LONG, GFC_ISYM_LSTAT, GFC_ISYM_MCLOCK 1940 and GFC_ISYM_MCLOCK8. 1941 * iresolve.c (gfc_resolve_int2, gfc_resolve_int8, 1942 gfc_resolve_long, gfc_resolve_lstat, gfc_resolve_mclock, 1943 gfc_resolve_mclock8, gfc_resolve_lstat_sub): New functions. 1944 * check.c (gfc_check_intconv): New function. 1945 * trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for 1946 the added GFC_ISYM_*. 1947 * simplify.c (gfc_simplify_intconv, gfc_simplify_int2, 1948 gfc_simplify_int8, gfc_simplify_long): New functions. 1949 * intrinsic.h (gfc_check_intconv, gfc_simplify_int2, 1950 gfc_simplify_int8, gfc_simplify_long, gfc_resolve_int2, 1951 gfc_resolve_int8, gfc_resolve_long, gfc_resolve_lstat, 1952 gfc_resolve_mclock, gfc_resolve_mclock8, gfc_resolve_lstat_sub): 1953 Add prototypes. 1954 19552006-07-24 Erik Edelmann <eedelman@gcc.gnu.org> 1956 1957 PR fortran/28416 1958 * trans-array.c (gfc_conv_array_parameter): Give special treatment for 1959 ALLOCATABLEs if they are themselves dummy variables. 1960 19612006-07-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1962 1963 PR fortran/25289 1964 * gfortran.h: Declare gfc_large_io_int_kind. 1965 * trans-types.c (gfc_init_kinds): Set gfc_large_io_int_kind 1966 to size 8 or 4. 1967 * trans-io.c (enum iofield_type): Add large_io_int type. 1968 (gfc_build_st_parameter): Same. 1969 (gfc_build_io_library_fndecls): Same. 1970 * ioparm_def: Use large_io_int to define rec. 1971 19722006-07-22 Steven Bosscher <steven@gcc.gnu.org> 1973 1974 PR fortran/28439 1975 * trans-stmt.c (gfc_trans_arithmetic_if): Evaluate the condition once. 1976 19772006-07-16 Jakub Jelinek <jakub@redhat.com> 1978 1979 PR fortran/28390 1980 * trans-openmp.c (gfc_trans_omp_do): Look for LASTPRIVATE in 1981 code->exp.omp_clauses rather than in the 3rd function argument. 1982 19832006-07-16 Paul Thomas <pault@gcc.gnu.org> 1984 1985 PR fortran/28384 1986 * trans-common.c (translate_common): If common_segment is NULL 1987 emit error that common block does not exist. 1988 1989 PR fortran/20844 1990 * io.c (check_io_constraints): It is an error if an ADVANCE 1991 specifier appears without an explicit format. 1992 1993 PR fortran/28201 1994 * resolve.c (resolve_generic_s): For a use_associated function, 1995 do not search for an alternative symbol in the parent name 1996 space. 1997 1998 PR fortran/20893 1999 * resolve.c (resolve_elemental_actual): New function t combine 2000 all the checks of elemental procedure actual arguments. In 2001 addition, check of array valued optional args(this PR) has 2002 been added. 2003 (resolve_function, resolve_call): Remove parts that treated 2004 elemental procedure actual arguments and call the above. 2005 20062006-07-14 Steven G. Kargl <kargls@comcast.net> 2007 2008 * trans-expr.c (gfc_trans_string_copy): Evaluate the string lengths 2009 2010006-07-13 Paul Thomas <pault@gcc.gnu.org> 2011 2012 PR fortran/28353 2013 * trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means 2014 that intent is INOUT (fixes regression). 2015 2016 PR fortran/25097 2017 * check.c (check_present): The only permitted reference is a 2018 full array reference. 2019 2020 PR fortran/20903 2021 * decl.c (variable_decl): Add error if a derived type is not 2022 from the current namespace if the namespace is an interface 2023 body. 2024 20252006-07-12 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2026 2027 PR fortran/28163 2028 * trans-expr.c (gfc_trans_string_copy): Generate inline code 2029 to perform string copying instead of calling a library function. 2030 * trans-decl.c (gfc_build_intrinsic_function_decls): Don't build 2031 decl for copy_string. 2032 * trans.h (gfor_fndecl_copy_string): Remove prototype. 2033 20342006-07-11 Feng Wang <fengwang@nudt.edu.cn> 2035 2036 PR fortran/28213 2037 * trans-io.c (transfer_expr): Deal with Hollerith constants used in 2038 I/O list. 2039 20402006-07-07 Kazu Hirata <kazu@codesourcery.com> 2041 2042 * intrinsic.texi: Fix typos. 2043 20442006-07-07 Paul Thomas <pault@gcc.gnu.org> 2045 2046 PR fortran/28237 2047 PR fortran/23420 2048 * io.c (resolve_tag): Any integer that is not an assigned 2049 variable is an error. 2050 20512006-07-06 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2052 2053 PR fortran/28129 2054 * trans-array.c (gfc_trans_array_bound_check): Add a locus 2055 argument, and use it in the error messages. 2056 (gfc_conv_array_index_offset): Donc perform bounds checking on 2057 the last dimension of assumed-size arrays. 2058 20592006-07-06 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2060 2061 PR fortran/27874 2062 * trans-stmt.c (compute_inner_temp_size): Don't perform bounds 2063 checking when calculating the bounds of scalarization. 2064 20652006-07-05 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2066 2067 PR fortran/20892 2068 * interface.c (gfc_match_interface): Don't allow dummy procedures 2069 to have a generic interface. 2070 20712006-07-04 Paul Thomas <pault@gcc.gnu.org> 2072 2073 PR fortran/28174 2074 * trans-array.c (gfc_conv_expr_descriptor): When building temp, 2075 ensure that the substring reference uses a new charlen. 2076 * trans-expr.c (gfc_conv_aliased_arg): Add the formal intent to 2077 the argument list, lift the treatment of missing string lengths 2078 from the above and implement the use of the intent. 2079 (gfc_conv_function_call): Add the extra argument to the call to 2080 the above. 2081 2082 PR fortran/28167 2083 * trans-array.c (get_array_ctor_var_strlen): Treat a constant 2084 substring reference. 2085 * array.c (gfc_resolve_character_array_constructor): Remove 2086 static attribute and add the gfc_ prefix, make use of element 2087 charlens for the expression and pick up constant string lengths 2088 for expressions that are not themselves constant. 2089 * gfortran.h : resolve_character_array_constructor prototype 2090 added. 2091 * resolve.c (gfc_resolve_expr): Call resolve_character_array_ 2092 constructor again after expanding the constructor, to ensure 2093 that the character length is passed to the expression. 2094 20952006-07-04 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2096 Daniel Franke <franke.daniel@gmail.com> 2097 2098 * intrinsic.c (add_subroutines): Add ITIME and IDATE. 2099 * intrinsic.h (gfc_check_itime_idate,gfc_resolve_idate, 2100 fc_resolve_itime): New protos. 2101 * iresolve.c (gfc_resolve_itime, gfc_resolve_idate): New functions. 2102 * check.c (gfc_check_itime_idate): New function. 2103 * intrinsic.texi: Document the new intrinsics. 2104 21052006-07-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2106 2107 * intrinsics/date_and_time.c (itime0,idate0,itime_i4,itime_i8, 2108 idate_i4,idate_i8): New functions. 2109 2110 21112006-07-03 Asher Langton <langton2@llnl.gov> 2112 2113 * decl.c (match_old_style_init): Add data attribute to symbol. 2114 21152006-07-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2116 2117 * iresolve.c (gfc_resolve_cpu_time, gfc_resolve_random_number): 2118 Remove ATTRIBUTE_UNUSED for used argument. 2119 21202006-07-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2121 2122 * intrinsic.texi: Document new intrinsics. 2123 21242006-07-01 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 2125 2126 PR fortran/19259 2127 * parse.c (next_free): Error out on line starting with semicolon. 2128 (next_fixed): Fix formatting. Error out on line starting with 2129 semicolon. 2130 21312006-06-30 Kazu Hirata <kazu@codesourcery.com> 2132 2133 * check.c: Fix a comment typo. 2134 21352006-06-25 Paul Thomas <pault@gcc.gnu.org> 2136 2137 PR fortran/25056 2138 * interface.c (compare_actual_formal): Signal an error if the formal 2139 argument is a pure procedure and the actual is not pure. 2140 2141 PR fortran/27554 2142 * resolve.c (resolve_actual_arglist): If the type of procedure 2143 passed as an actual argument is not already declared, see if it is 2144 an intrinsic. 2145 2146 PR fortran/25073 2147 * resolve.c (resolve_select): Use bits 1 and 2 of a new int to 2148 keep track of the appearance of constant logical case expressions. 2149 Signal an error is either value appears more than once. 2150 2151 PR fortran/20874 2152 * resolve.c (resolve_fl_procedure): Signal an error if an elemental 2153 function is not scalar valued. 2154 2155 PR fortran/20867 2156 * match.c (recursive_stmt_fcn): Perform implicit typing of variables. 2157 2158 PR fortran/22038 2159 * match.c (match_forall_iterator): Mark new variables as 2160 FL_UNKNOWN if the match fails. 2161 2162 PR fortran/28119 2163 * match.c (gfc_match_forall): Remove extraneous call to 2164 gfc_match_eos. 2165 2166 PR fortran/25072 2167 * resolve.c (resolve_code, resolve_function): Rework 2168 forall_flag scheme so that it is set and has a value of 2169 2, when the code->expr (ie. the forall mask) is resolved. 2170 This is used to change "block" to "mask" in the non-PURE 2171 error message. 2172 21732006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2174 2175 PR fortran/28081 2176 * resolve.c (resolve_substring): Don't issue out-of-bounds 2177 error messages when the range has zero size. 2178 21792006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2180 2181 PR fortran/23862 2182 * lang-specs.h (f95-cpp-input): Pass -ffree-form to f951 unless 2183 -ffixed-form is explicitly specified. 2184 21852006-06-24 Paul Thomas <pault@gcc.gnu.org> 2186 2187 PR fortran/28118 2188 * trans-array.c (gfc_conv_expr_descriptor): When building temp, 2189 use the substring reference to calculate the length if the 2190 expression does not have a charlen. 2191 21922006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2193 2194 PR fortran/28094 2195 * trans-intrinsic.c (gfc_conv_intrinsic_mod): Support cases where 2196 there is no integer kind equal to the resulting real kind. 2197 * intrinsic.c (add_functions): MODULO is not allowed as an actual 2198 argument. 2199 22002006-06-23 Steven G. Kargl <kargls@comcast.net> 2201 2202 PR fortran/27981 2203 * match.c (gfc_match_if): Handle errors in assignment in simple if. 2204 22052006-06-22 Asher Langton <langton2@llnl.gov> 2206 2207 PR fortran/24748 2208 * primary.c (gfc_match_rvalue): Don't call match_substring for 2209 implicit non-character types. 2210 22112006-06-22 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2212 2213 PR libfortran/26769 2214 * iresolve.c (gfc_resolve_reshape): Call reshape_r4 and 2215 reshape_r8 instead of reshape_4 and reshape_8. 2216 (gfc_resolve_transpose): Likewise for transpose. 2217 22182006-06-21 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2219 2220 * trans-expr.c (gfc_conv_missing_dummy, gfc_conv_unary_op, 2221 gfc_conv_cst_int_power, gfc_conv_string_tmp, 2222 gfc_conv_function_call): Replace calls to convert on constant 2223 integer nodes by build_int_cst. 2224 * trans-stmt.c (gfc_trans_do): Likewise. 2225 * trans-io.c (set_internal_unit, transfer_namelist_element): 2226 Likewise. 2227 * trans-decl.c (build_entry_thunks): Likewise. 2228 22292006-06-20 Steven G. Kargl <kargls@comcast.net> 2230 2231 * simplify.c (gfc_simplify_rrspacing): Initialize and clear mpfr_t 2232 variable. 2233 22342006-06-20 Paul Thomas <pault@gcc.gnu.org> 2235 2236 PR fortran/25049 2237 PR fortran/25050 2238 * check.c (non_init_transformational): New function. 2239 (find_substring_ref): New function to signal use of disallowed 2240 transformational intrinsic in an initialization expression. 2241 (gfc_check_all_any): Call previous if initialization expr. 2242 (gfc_check_count): The same. 2243 (gfc_check_cshift): The same. 2244 (gfc_check_dot_product): The same. 2245 (gfc_check_eoshift): The same. 2246 (gfc_check_minloc_maxloc): The same. 2247 (gfc_check_minval_maxval): The same. 2248 (gfc_check_gfc_check_product_sum): The same. 2249 (gfc_check_pack): The same. 2250 (gfc_check_spread): The same. 2251 (gfc_check_transpose): The same. 2252 (gfc_check_unpack): The same. 2253 2254 PR fortran/18769 2255 *intrinsic.c (add_functions): Add gfc_simplify_transfer. 2256 *intrinsic.h : Add prototype for gfc_simplify_transfer. 2257 *simplify.c (gfc_simplify_transfer) : New function to act as 2258 placeholder for eventual implementation. Emit error for now. 2259 2260 PR fortran/16206 2261 * expr.c (find_array_element): Eliminate condition on length of 2262 offset. Add bounds checking. Rearrange exit. Return try and 2263 put gfc_constructor result as an argument. 2264 (find_array_section): New function. 2265 (find_substring_ref): New function. 2266 (simplify_const_ref): Add calls to previous. 2267 (simplify_parameter_variable): Return on NULL expr. 2268 (gfc_simplify_expr): Only call gfc_expand_constructor for full 2269 arrays. 2270 2271 PR fortran/20876 2272 * match.c (gfc_match_forall): Add missing locus to gfc_code. 2273 22742006-06-18 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2275 2276 PR fortran/26801 2277 * trans-intrinsic.c (gfc_conv_associated): Use pre and post blocks 2278 of the scalarization expression. 2279 22802006-06-18 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2281 2282 PR fortran/19310 2283 PR fortran/19904 2284 * arith.c (gfc_range_check): Return ARITH_OK if -fno-range-check. Add 2285 return of ARITH_NAN, ARITH_UNDERFLOW, and ARITH_OVERFLOW. 2286 (gfc_arith_divide): If -fno-range-check allow mpfr to divide by zero. 2287 * gfortran.h (gfc_option_t): Add new flag. 2288 * invoke.texi: Document new flag. 2289 * lang.opt: Add option -frange-check. 2290 * options.c (gfc_init_options): Initialize new flag. 2291 (gfc_handle_options): Set flag if invoked. 2292 * simplify.c (range_check): Add error messages for 2293 overflow, underflow, and other errors. 2294 * trans-const.c (gfc_conv_mpfr_to_tree): Build NaN and Inf from mpfr 2295 result. 2296 22972006-06-17 Karl Berry <karl@gnu.org> 2298 2299 * gfortran.texi (@dircategory): Use "Software development" 2300 instead of "Programming", following the Free Software Directory. 2301 23022006-06-16 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2303 2304 PR fortran/27965 2305 * trans-array.c (gfc_conv_ss_startstride): Correct the runtime 2306 conditions for bounds-checking. Check for nonzero stride. 2307 Don't check the last dimension of assumed-size arrays. Fix the 2308 dimension displayed in the error message. 2309 23102006-06-15 Thomas Koenig <Thomas.Koenig@online.de> 2311 2312 * trans-array.h (gfc_trans_create_temp_array): Add bool 2313 argument. 2314 * trans-arrray.c (gfc_trans_create_temp_array): Add extra 2315 argument "function" to show if we are translating a function. 2316 If we are translating a function, perform checks whether 2317 the size along any argument is negative. In that case, 2318 allocate size 0. 2319 (gfc_trans_allocate_storage): Add function argument (as 2320 false) to gfc_trans_create_temp_array call. 2321 * trans-expr.c (gfc_conv_function_call): Add function 2322 argument (as true) to gfc_trans_create_temp_array call. 2323 * trans-stmt.c (gfc_conv_elemental_dependencies): Add 2324 function argument (as false) to gfc_trans_create_temp_array 2325 call. 2326 * trans-intrinsic.c: Likewise. 2327 23282006-06-10 Paul Thomas <pault@gcc.gnu.org> 2329 2330 PR fortran/24558 2331 PR fortran/20877 2332 PR fortran/25047 2333 * decl.c (get_proc_name): Add new argument to flag that a 2334 module function entry is being treated. If true, correct 2335 error condition, add symtree to module namespace and add 2336 a module procedure. 2337 (gfc_match_function_decl, gfc_match_entry, 2338 gfc_match_subroutine): Use the new argument in calls to 2339 get_proc_name. 2340 * resolve.c (resolve_entries): ENTRY symbol reference to 2341 to master entry namespace if a module function. 2342 * trans-decl.c (gfc_create_module_variable): Return if 2343 the symbol is an entry. 2344 * trans-exp.c (gfc_conv_variable): Check that parent_decl 2345 is not NULL. 2346 23472006-06-09 Jakub Jelinek <jakub@redhat.com> 2348 2349 PR fortran/27916 2350 * trans-openmp.c (gfc_omp_clause_default_ctor): New function. 2351 * trans.h (gfc_omp_clause_default_ctor): New prototype. 2352 * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Define. 2353 23542006-06-08 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2355 2356 PR fortran/27958 2357 * trans-expr.c (gfc_conv_substring): If the substring start is 2358 greater than its end, the length of the substring is zero, and 2359 not negative. 2360 (gfc_trans_string_copy): Don't generate a call to 2361 _gfortran_copy_string when destination length is zero. 2362 23632006-06-08 Asher Langton <langton2@llnl.gov> 2364 2365 PR fortran/27786 2366 * trans-array.c (gfc_conv_array_ref): Eliminate bounds checking 2367 for assumed-size Cray pointees. 2368 23692006-06-08 Steven G. Kargl <kargls@comcat.net> 2370 2371 * intrinsic.c (add_subroutine): Make make_noreturn() conditional on 2372 the appropriate symbol name. 2373 23742006-06-07 Paul Thomas <pault@gcc.gnu.org> 2375 2376 PR fortran/23091 2377 * resolve.c (resolve_fl_variable): Error if an automatic 2378 object has the SAVE attribute. 2379 2380 PR fortran/24168 2381 * expr.c (simplify_intrinsic_op): Transfer the rank and 2382 the locus to the simplified expression. 2383 2384 PR fortran/25090 2385 PR fortran/25058 2386 * gfortran.h : Add int entry_id to gfc_symbol. 2387 * resolve.c : Add static variables current_entry_id and 2388 specification_expr. 2389 (resolve_variable): During code resolution, check if a 2390 reference to a dummy variable in an executable expression 2391 is preceded by its appearance as a parameter in an entry. 2392 Likewise check its specification expressions. 2393 (resolve_code): Update current_entry_id on EXEC_ENTRY. 2394 (resolve_charlen, resolve_fl_variable): Set and reset 2395 specifiaction_expr. 2396 (is_non_constant_shape_array): Do not return on detection 2397 of a variable but continue to resolve all the expressions. 2398 (resolve_codes): set current_entry_id to an out of range 2399 value. 2400 24012006-06-06 Mike Stump <mrs@apple.com> 2402 2403 * Make-lang.in: Rename to htmldir to build_htmldir to avoid 2404 installing during build. 2405 24062006-06-06 Paul Thomas <pault@gcc.gnu.org> 2407 2408 PR fortran/27897 2409 * match.c (gfc_match_common): Fix code typo. Remove 2410 sym->name, since sym is NULL, and replace with name. 2411 24122006-06-05 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2413 2414 PR libfortran/27895 2415 * resolve.c (compute_last_value_for_triplet): New function. 2416 (check_dimension): Correctly handle zero-sized array sections. 2417 Add checking on last element of array sections. 2418 24192006-06-05 Steven G. Kargl <kargls@comcast.net> 2420 2421 * data.c (gfc_assign_data_value): Fix comment typo. Remove 2422 a spurious return. 2423 24242006-06-05 Paul Thomas <pault@gcc.gnu.org> 2425 2426 PR fortran/14067 2427 * data.c (create_character_intializer): Add warning message 2428 for truncated string. 2429 2430 PR fortran/16943 2431 * symbol.c : Include flags.h. 2432 (gfc_add_type): If a procedure and types are the same do not 2433 throw an error unless standard is less than gnu or pedantic. 2434 2435 PR fortran/20839 2436 * parse.c (parse_do_block): Error if named block do construct 2437 does not have a named enddo. 2438 2439 PR fortran/27655 2440 * check.c (gfc_check_associated): Pick up EXPR_NULL for pointer 2441 as well as target and put error return at end of function. 2442 24432006-06-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2444 2445 * trans.c (gfc_msg_bounds, gfc_msg_fault, gfc_msg_wrong_return): 2446 Add strings for common runtime error messages. 2447 (gfc_trans_runtime_check): Add a locus argument, use a string 2448 and not a string tree for the message. 2449 * trans.h (gfc_trans_runtime_check): Change prototype accordingly. 2450 (gfc_msg_bounds, gfc_msg_fault, gfc_msg_wrong_return): Add proto. 2451 * trans-const.c (gfc_strconst_bounds, gfc_strconst_fault, 2452 gfc_strconst_wrong_return, gfc_strconst_current_filename): Remove. 2453 (gfc_init_constants): Likewise. 2454 * trans-const.h: Likewise. 2455 * trans-decl.c (gfc_build_builtin_function_decls): Call to 2456 _gfortran_runtime_error has only one argument, the message string. 2457 * trans-array.h (gfc_conv_array_ref): Add a symbol argument and a 2458 locus. 2459 * trans-array.c (gfc_trans_array_bound_check): Build precise 2460 error messages. 2461 (gfc_conv_array_ref): Use the new symbol argument and the locus 2462 to build more precise error messages. 2463 (gfc_conv_ss_startstride): More precise error messages. 2464 * trans-expr.c (gfc_conv_variable): Give symbol reference and 2465 locus to gfc_conv_array_ref. 2466 (gfc_conv_function_call): Use the new prototype for 2467 gfc_trans_runtime_check. 2468 * trans-stmt.c (gfc_trans_goto): Build more precise error message. 2469 * trans-io.c (set_string): Likewise. 2470 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use new prototype 2471 for gfc_trans_runtime_check. 2472 24732006-06-01 Thomas Koenig <Thomas.Koenig@online.de> 2474 2475 PR fortran/27715 2476 * arith.c: Cast the characters from the strings to unsigned 2477 char to avoid values less than 0 for extended ASCII. 2478 24792006-06-01 Per Bothner <bothner@bothner.com> 2480 2481 * data.c (gfc_assign_data_value): Handle USE_MAPPED_LOCATION. 2482 * scanner.c (gfc_gobble_whitespace): Likewise. 2483 24842006-06-01 Paul Thomas <pault@gcc.gnu.org> 2485 2486 PR fortran/25098 2487 PR fortran/25147 2488 * interface.c (compare_parameter): Return 1 if the actual arg 2489 is external and the formal is a procedure. 2490 (compare_actual_formal): If the actual argument is a variable 2491 and the formal a procedure, this an error. If a gsymbol exists 2492 for a procedure of the same name, this is not yet resolved and 2493 the error is cleared. 2494 2495 * trans-intrinsic.c (gfc_conv_associated): Make provision for 2496 zero array length or zero string length contingent on presence 2497 of target, for consistency with standard. 2498 24992006-05-30 Asher Langton <langton2@llnl.gov> 2500 2501 * symbol.c (check_conflict): Allow external, function, and 2502 subroutine attributes with Cray pointees. 2503 * trans-expr.c (gfc_conv_function_val): Translate Cray pointees 2504 that point to procedures. 2505 * gfortran.texi: Document new feature. 2506 25072006-05-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2508 2509 PR fortran/27634 2510 * io.c (check_format): Add error for missing period in format 2511 specifier unless -std=legacy. 2512 * gfortran.texi: Add description of expanded namelist read and 2513 missing period in format extensions. 2514 25152006-05-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2516 2517 PR fortran/19777 2518 * trans-array.c (gfc_conv_array_ref): Perform out-of-bounds 2519 checking for assumed-size arrrays for all but the last dimension. 2520 25212006-05-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2522 2523 * invoke.texi: Change -fpackderived into -fpack-derived. 2524 25252006-05-29 Kazu Hirata <kazu@codesourcery.com> 2526 2527 * options.c, primary.c, resolve.c, trans-common.c: Fix typos 2528 in error messages. 2529 25302006-05-28 Kazu Hirata <kazu@codesourcery.com> 2531 2532 * check.c, expr.c, resolve.c, trans-common.c, 2533 trans-intrinsic.c, trans-stmt.c, trans-types.c: Fix comment typos. 2534 25352006-05-27 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2536 2537 PR fortran/19777 2538 * trans-array.c (gfc_conv_array_ref): Don't perform out-of-bounds 2539 checking for assumed-size arrrays. 2540 25412006-05-27 Paul Thomas <pault@gcc.gnu.org> 2542 2543 * trans-intrinsic.c (gfc_conv_associated): If pointer in first 2544 arguments has zero array length of zero string length, return 2545 false. 2546 25472006-05-26 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2548 2549 PR fortran/27524 2550 * trans-array.c (gfc_trans_dummy_array_bias): Don't use stride as 2551 a temporary variable when -fbounds-check is enabled, since its 2552 value will be needed later. 2553 25542006-05-26 Thomas Koenig <Thomas.Koenig@online.de> 2555 2556 PR fortran/23151 2557 * io.c (match_io): print (1,*) is an error. 2558 25592006-05-26 Paul Thomas <pault@gcc.gnu.org> 2560 2561 PR fortran/27709 2562 * resolve.c (find_array_spec): Add gfc_symbol, derived, and 2563 use to track repeated component references. 2564 2565 PR fortran/27155 2566 PR fortran/27449 2567 * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Use 2568 se->string_length throughout and use memcpy to populate the 2569 expression returned to the scalarizer. 2570 (gfc_size_in_bytes): New function. 2571 25722006-05-21 Paul Thomas <pault@gcc.gnu.org> 2573 2574 PR fortran/27613 2575 * primary.c (gfc_match_rvalue): Test if symbol represents a 2576 direct recursive function reference. Error if array valued, 2577 go to function0 otherwise. 2578 25792006-05-21 Paul Thomas <pault@gcc.gnu.org> 2580 2581 PR fortran/25746 2582 * interface.c (gfc_extend_assign): Use new EXEC_ASSIGN_CALL. 2583 * gfortran.h : Put EXEC_ASSIGN_CALL in enum. 2584 * trans-stmt.c (gfc_conv_elemental_dependencies): New function. 2585 (gfc_trans_call): Call it. Add new boolian argument to flag 2586 need for dependency checking. Assert intent OUT and IN for arg1 2587 and arg2. 2588 (gfc_trans_forall_1): Use new code EXEC_ASSIGN_CALL. 2589 trans-stmt.h : Modify prototype of gfc_trans_call. 2590 trans.c (gfc_trans_code): Add call for EXEC_ASSIGN_CALL. 2591 st.c (gfc_free_statement): Free actual for EXEC_ASSIGN_CALL. 2592 * dependency.c (gfc_check_fncall_dependency): Don't check other 2593 against itself. 2594 2595 PR fortran/25090 2596 * resolve.c : Remove resolving_index_expr. 2597 (entry_parameter): Remove. 2598 (gfc_resolve_expr, resolve_charlen, resolve_fl_variable): Lift 2599 calls to entry_parameter and references to resolving_index_expr. 2600 2601 PR fortran/27584 2602 * check.c (gfc_check_associated): Replace NULL assert with an 2603 error message, since it is possible to generate bad code that 2604 has us fall through to here.. 2605 2606 PR fortran/19015 2607 * iresolve.c (maxloc, minloc): If DIM is not present, pass the 2608 rank of ARRAY as the shape of the result. Otherwise, pass the 2609 shape of ARRAY, less the dimension DIM. 2610 (maxval, minval): The same, when DIM is present, otherwise no 2611 change. 2612 26132006-05-19 H.J. Lu <hongjiu.lu@intel.com> 2614 2615 PR fortran/27662 2616 * trans-array.c (gfc_conv_expr_descriptor): Don't zero the 2617 first stride to indicate a temporary. 2618 * trans-expr.c (gfc_conv_function_call): Likewise. 2619 26202006-05-18 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2621 Feng Wang <fengwang@nudt.edu.cn> 2622 2623 PR fortran/27552 2624 * dump-parse-tree.c (gfc_show_expr): Deal with Hollerith constants. 2625 * data.c (create_character_intializer): Set from_H flag if character is 2626 initialized by Hollerith constant. 2627 26282006-05-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2629 2630 PR fortran/26551 2631 * resolve.c (resolve_call, resolve_function): Issue an error 2632 if a function or subroutine call is recursive but the function or 2633 subroutine wasn't declared as such. 2634 26352006-05-07 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2636 2637 PR fortran/26551 2638 * gfortran.dg/recursive_check_1.f: New test. 2639 2640 26412006-05-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2642 2643 PR fortran/27320 2644 * dump-parse-tree.c (gfc_show_code_node): Try harder to find the 2645 called procedure name. 2646 26472006-05-17 Jakub Jelinek <jakub@redhat.com> 2648 2649 PR middle-end/27415 2650 * trans-openmp.c (gfc_trans_omp_parallel_do, 2651 gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare): Set 2652 OMP_PARALLEL_COMBINED flag. 2653 26542006-05-16 H.J. Lu <hongjiu.lu@intel.com> 2655 2656 PR driver/26885 2657 * Make-lang.in (GFORTRAN_D_OBJS): Replace gcc.o with 2658 $(GCC_OBJS). 2659 26602006-05-15 Paul Thomas <pault@gcc.gnu.org> 2661 2662 PR fortran/25090 2663 * resolve.c: Static resolving_index_expr initialized. 2664 (entry_parameter): New function to emit errors for variables 2665 that are not entry parameters. 2666 (gfc_resolve_expr): Call entry_parameter, when resolving 2667 variables, if the namespace has entries and resolving_index_expr 2668 is set. 2669 (resolve_charlen): Set resolving_index_expr before the call to 2670 resolve_index_expr and reset it afterwards. 2671 (resolve_fl_variable): The same before and after the call to 2672 is_non_constant_shape_array, which ultimately makes a call to 2673 gfc_resolve_expr. 2674 2675 PR fortran/25082 2676 * resolve.c (resolve_code): Add error condition that the return 2677 expression must be scalar. 2678 2679 PR fortran/27411 2680 * matchexp.c (gfc_get_parentheses): New function. 2681 (match_primary): Remove inline code and call above. 2682 * gfortran.h: Provide prototype for gfc_get_parentheses. 2683 * resolve.c (resolve_array_ref): Call the above, when start is a 2684 derived type variable array reference. 2685 26862006-05-15 Jakub Jelinek <jakub@redhat.com> 2687 2688 PR fortran/27446 2689 * trans-openmp.c (gfc_trans_omp_array_reduction): Ensure 2690 OMP_CLAUSE_REDUCTION_{INIT,MERGE} are set to BIND_EXPR. 2691 26922006-05-14 H.J. Lu <hongjiu.lu@intel.com> 2693 2694 * Make-lang.in (fortran/options.o): Depend on $(TARGET_H). 2695 26962006-05-11 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2697 2698 PR fortran/27553 2699 * parse.c (next_free): Return instead of calling decode_statement 2700 upon error. 2701 27022006-05-10 Thomas Koenig <Thomas.Koenig@online.de> 2703 2704 PR fortran/27470 2705 * trans-array.c(gfc_array_allocate): If ref->next exists 2706 that is if there is a statement like ALLOCATE(foo%bar(2)), 2707 F95 rules require that bar should be a pointer. 2708 27092006-05-10 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2710 2711 PR fortran/20460 2712 * resolve.c (gfc_resolve_index): Make REAL array indices a 2713 GFC_STD_LEGACY feature. 2714 27152006-05-10 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2716 2717 PR fortran/24549 2718 * parse.c (reject_statement): Clear gfc_new_block. 2719 27202006-05-09 Steven G. Kargl <kargls@comcast.net> 2721 2722 * invoke.texi: Missed file in previous commit. Update 2723 description of -fall-intrinsics 2724 27252006-05-07 Steven Boscher <steven@gcc.gnu.org> 2726 2727 PR fortran/27378 2728 * parse.c (next_statement): Add check to avoid an ICE when 2729 gfc_current_locus.lb is not set. 2730 27312006-05-07 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 2732 2733 PR fortran/27457 2734 * match.c (match_case_eos): Error out on garbage following 2735 CASE(...). 2736 27372006-05-07 Paul Thomas <pault@gcc.gnu.org> 2738 2739 PR fortran/24813 2740 * trans-array.c (get_array_ctor_strlen): Remove static attribute. 2741 * trans.h: Add prototype for get_array_ctor_strlen. 2742 * trans-intrinsic.c (gfc_conv_intrinsic_len): Switch on EXPR_ARRAY 2743 and call get_array_ctor_strlen. 2744 27452006-05-05 Steven G. Kargl <kargls@comcast.net> 2746 2747 * invoke.texi: Update description of -fall-intrinsics 2748 * options.c (gfc_post_options): Disable -Wnonstd-intrinsics if 2749 -fall-intrinsics is used. 2750 (gfc_handle_option): Permit -Wno-nonstd-intrinsics. 2751 27522006-05-04 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 2753 2754 * simplify.c (ascii_table): Fix wrong entry. 2755 27562006-05-02 Steven G. Kargl <kargls@comcast.net> 2757 2758 PR fortran/26896 2759 * lang.opt: Fix -Wtab description 2760 2761 PR fortran/20248 2762 * lang.opt: New flag -fall-intrinsics. 2763 * invoke.texi: Document option. 2764 * gfortran.h (options_t): New member flag_all_intrinsics. 2765 * options.c (gfc_init_options, gfc_handle_option): Set new option. 2766 sort nearby misplaced options. 2767 * intrinsic.c (add_sym, make_generic, make_alias): Use it. 2768 27692006-05-02 Paul Thomas <pault@gcc.gnu.org> 2770 2771 PR fortran/27269 2772 * module.c: Add static flag in_load_equiv. 2773 (mio_expr_ref): Return if no symtree and in_load_equiv. 2774 (load_equiv): If any of the equivalence members have no symtree, free 2775 the equivalence and the associated expressions. 2776 2777 PR fortran/27324 2778 * trans-common.c (gfc_trans_common): Invert the order of calls to 2779 finish equivalences and gfc_commit_symbols. 2780 27812006-04-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2782 2783 PR fortran/25681 2784 * simplify.c (simplify_len): Character variables with constant 2785 length can be simplified. 2786 27872006-04-29 H.J. Lu <hongjiu.lu@intel.com> 2788 2789 PR fortran/27351 2790 * trans-array.c (gfc_conv_array_transpose): Move gcc_assert 2791 before gfc_conv_expr_descriptor. 2792 27932006-04-23 Paul Thomas <pault@gcc.gnu.org> 2794 2795 PR fortran/25099 2796 * resolve.c (resolve_call): Check conformity of elemental 2797 subroutine actual arguments. 2798 27992006-04-22 Jakub Jelinek <jakub@redhat.com> 2800 2801 PR fortran/26769 2802 * iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16). 2803 (gfc_resolve_transpose): Use transpose_r16 for real(16). 2804 28052006-04-21 Paul Thomas <pault@gcc.gnu.org> 2806 2807 PR fortran/27122 2808 * resolve.c (resolve_function): Remove general restriction on auto 2809 character length function interfaces. 2810 (gfc_resolve_uops): Check restrictions on defined operator 2811 procedures. 2812 (resolve_types): Call the check for defined operators. 2813 2814 PR fortran/27113 2815 * trans-array.c (gfc_trans_array_constructor_subarray): Remove 2816 redundant gfc_todo_error. 2817 (get_array_ctor_var_strlen): Remove typo in enum. 2818 28192006-04-18 Bernhard Fischer <aldot@gcc.gnu.org> 2820 2821 * parse.c (next_free): Use consistent error string between 2822 free-form and fixed-form for illegal statement label of zero. 2823 (next_fixed): Use consistent warning string between free-form 2824 and fixed-form for statement labels for empty statements. 2825 28262006-04-18 Steve Ellcey <sje@cup.hp.com> 2827 2828 * trans-io.c (gfc_build_io_library_fndecls): Align pad. 2829 28302006-04-16 Thomas Koenig <Thomas.Koenig@online.de> 2831 2832 PR fortran/26017 2833 * trans-array.c(gfc_array_init_size): Introduce or_expr 2834 which is true if the size along any dimension 2835 is negative. Create a temporary variable with base 2836 name size. If or_expr is true, set the temporary to 0, 2837 to the normal size otherwise. 2838 28392006-04-16 Paul Thomas <pault@gcc.gnu.org> 2840 2841 PR fortran/26822 2842 * intrinsic.c (add_functions): Mark LOGICAL as elemental. 2843 2844 PR fortran/26787 2845 * expr.c (gfc_check_assign): Extend scope of error to include 2846 assignments to a procedure in the main program or, from a 2847 module or internal procedure that is not that represented by 2848 the lhs symbol. Use VARIABLE rather than l-value in message. 2849 2850 PR fortran/27096 2851 * trans-array.c (gfc_trans_deferred_array): If the backend_decl 2852 is not a descriptor, dereference and then test and use the type. 2853 2854 PR fortran/25597 2855 * trans-decl.c (gfc_trans_deferred_vars): Check if an array 2856 result, is also automatic character length. If so, process 2857 the character length. 2858 2859 PR fortran/18003 2860 PR fortran/25669 2861 PR fortran/26834 2862 * trans_intrinsic.c (gfc_walk_intrinsic_bound): Set 2863 data.info.dimen for bound intrinsics. 2864 * trans_array.c (gfc_conv_ss_startstride): Pick out LBOUND and 2865 UBOUND intrinsics and supply their shape information to the ss 2866 and the loop. 2867 2868 PR fortran/27124 2869 * trans_expr.c (gfc_trans_function_call): Add a new block, post, 2870 in to which all the argument post blocks are put. Add this block 2871 to se->pre after a byref call or to se->post, otherwise. 2872 28732006-04-14 Roger Sayle <roger@eyesopen.com> 2874 2875 * trans-io.c (set_string): Use fold_build2 and build_int_cst instead 2876 of build2 and convert to construct "x < 0" rather than "x <= -1". 2877 28782006-04-13 Richard Henderson <rth@redhat.com> 2879 2880 * trans-openmp.c (gfc_trans_omp_sections): Adjust for changed 2881 number of operands to OMP_SECTIONS. 2882 28832006-04-08 Kazu Hirata <kazu@codesourcery.com> 2884 2885 * gfortran.texi: Fix typos. Follow spelling conventions. 2886 * resolve.c, trans-expr.c, trans-stmt.c: Fix comment typos. 2887 Follow spelling conventions. 2888 28892006-04-05 Roger Sayle <roger@eyesopen.com> 2890 2891 * dependency.c (get_no_elements): Delete function. 2892 (get_deps): Delete function. 2893 (transform_sections): Delete function. 2894 (gfc_check_section_vs_section): Significant rewrite. 2895 28962006-04-04 H.J. Lu <hongjiu.lu@intel.com> 2897 2898 PR fortran/25619 2899 * trans-array.c (gfc_conv_expr_descriptor): Only dereference 2900 character pointer when copying temporary. 2901 2902 PR fortran/23634 2903 * trans-array.c (gfc_conv_expr_descriptor): Properly copy 2904 temporary character with non constant size. 2905 29062006-04-03 Paul Thomas <pault@gcc.gnu.org> 2907 2908 PR fortran/26891 2909 * trans.h: Prototype for gfc_conv_missing_dummy. 2910 * trans-expr (gfc_conv_missing_dummy): New function 2911 (gfc_conv_function_call): Call it and tidy up some of the code. 2912 * trans-intrinsic (gfc_conv_intrinsic_function_args): The same. 2913 2914 PR fortran/26976 2915 * array.c (gfc_array_dimen_size): If available, return shape[dimen]. 2916 * resolve.c (resolve_function): If available, use the argument 2917 shape for the function expression. 2918 * iresolve.c (gfc_resolve_transfer): Set shape[0] = size. 2919 29202006-04-02 Erik Edelmann <eedelman@gcc.gnu.org> 2921 2922 * trans-array.c (gfc_trans_dealloc_allocated): Take a 2923 tree representation of the array to be deallocated as argument 2924 instead of its gfc_symbol. 2925 (gfc_trans_deferred_array): Update call to 2926 gfc_trans_dealloc_allocated. 2927 * trans-array.h (gfc_trans_dealloc_allocated): Update 2928 prototype. 2929 * trans-expr.c (gfc_conv_function_call): Update call to 2930 gfc_trans_dealloc_allocated, get indirect reference to dummy 2931 arguments. 2932 29332006-04-01 Roger Sayle <roger@eyesopen.com> 2934 2935 PR fortran/25270 2936 * trans-array.c (gfc_trans_allocate_array_storage): In array index 2937 calculations use gfc_index_zero_node and gfc_index_one_node instead 2938 of integer_zero_node and integer_one_node respectively. 2939 (gfc_conv_array_transpose): Likewise. 2940 (gfc_conv_ss_startstride): Likewise. 2941 (gfc_trans_dummy_array_bias): Likewise. 2942 29432006-04-01 Roger Sayle <roger@eyesopen.com> 2944 2945 * dependency.c (gfc_is_inside_range): Delete. 2946 (gfc_check_element_vs_section): Significant rewrite. 2947 29482006-04-01 Roger Sayle <roger@eyesopen.com> 2949 2950 * dependency.c (gfc_dep_compare_expr): Strip parentheses and unary 2951 plus operators when comparing expressions. Handle comparisons of 2952 the form "X+C vs. X", "X vs. X+C", "X-C vs. X" and "X vs. X-C" where 2953 C is an integer constant. Handle comparisons of the form "P+Q vs. 2954 R+S" and "P-Q vs. R-S". Handle comparisons of integral extensions 2955 specially (increasing functions) so extend(A) > extend(B), when A>B. 2956 (gfc_check_element_vs_element): Move test later, so that we ignore 2957 the fact that "A < B" or "A > B" when A or B contains a forall index. 2958 29592006-03-31 Asher Langton <langton2@llnl.gov> 2960 2961 PR fortran/25358 2962 * expr.c (gfc_check_assign): Allow cray pointee to be assumes-size. 2963 29642006-03-30 Paul Thomas <paulthomas2@wanadoo.fr> 2965 Bud Davis <bdavis9659@sbcglobal.net> 2966 2967 PR 21130 2968 * module.c (load_needed): Traverse entire tree before returning. 2969 29702006-03-30 Roger Sayle <roger@eyesopen.com> 2971 2972 PR middle-end/22375 2973 * trans.c (gfc_trans_runtime_check): Promote the arguments of 2974 __builtin_expect to the correct types, and the result back to 2975 boolean_type_node. 2976 29772006-03-29 Carlos O'Donell <carlos@codesourcery.com> 2978 2979 * Make-lang.in: Rename docdir to gcc_docdir. 2980 29812006-03-28 Steven G. Kargl <kargls@comcast.net> 2982 2983 * intrinsic.texi: s/floor/float in previous commit. 2984 29852006-03-28 Paul Thomas <pault@gcc.gnu.org> 2986 2987 PR fortran/26779 2988 * resolve.c (resolve_fl_procedure): Do not check the access of 2989 derived types for internal procedures. 2990 29912006-03-27 Jakub Jelinek <jakub@redhat.com> 2992 2993 * io.c (check_io_constraints): Don't look at 2994 dt->advance->value.charater.string, unless it is a CHARACTER 2995 constant. 2996 2997 * f95-lang.c (gfc_get_alias_set): New function. 2998 (LANG_HOOKS_GET_ALIAS_SET): Define. 2999 30002006-03-25 Steven G. Kargl <kargls@comcast.net> 3001 3002 PR fortran/26816 3003 * intrinsic.c (add_functions): Allow FLOAT to accept all integer kinds. 3004 * intrinsic.texi: Document FLOAT. 3005 30062006-03-25 Thomas Koenig <Thomas.Koenig@online.de> 3007 3008 PR fortran/26769 3009 * iresolve.c (gfc_resolve_reshape): Remove doubling of 3010 kind for complex. For real(kind=10), call reshape_r10. 3011 (gfc_resolve_transpose): For real(kind=10), call 3012 transpose_r10. 3013 30142006-03-25 Roger Sayle <roger@eyesopen.com> 3015 3016 * dependency.c (gfc_check_dependency): Improve handling of pointers; 3017 Two variables of different types can't have a dependency, and two 3018 variables with the same symbol are equal, even if pointers. 3019 30202006-03-24 Roger Sayle <roger@eyesopen.com> 3021 3022 * gfortran.h (gfc_symbol): Add a new "forall_index" bit field. 3023 * match.c (match_forall_iterator): Set forall_index field on 3024 the iteration variable's symbol. 3025 * dependency.c (contains_forall_index_p): New function to 3026 traverse a gfc_expr to check whether it contains a variable 3027 with forall_index set in it's symbol. 3028 (gfc_check_element_vs_element): Return GFC_DEP_EQUAL for scalar 3029 constant expressions that don't variables used as FORALL indices. 3030 30312006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3032 3033 PR driver/22600 3034 * error.c (gfc_fatal_error): Return ICE_EXIT_CODE instead of 4. 3035 30362006-03-22 Thomas Koenig <Thomas.Koenig@online.de> 3037 3038 PR fortran/19303 3039 * gfortran.h (gfc_option_t): Add record_marker. 3040 * lang.opt: Add -frecord-marker=4 and -frecord-marker=8. 3041 * trans-decl.c: Add gfor_fndecl_set_record_marker. 3042 (gfc_build_builtin_function_decls): Set 3043 gfor_fndecl_set_record_marker. 3044 (gfc_generate_function_code): If we are in the main program 3045 and -frecord-marker was provided, call set_record_marker. 3046 * options.c (gfc_handle_option): Add handling for 3047 -frecord-marker=4 and -frecord-marker=8. 3048 * invoke.texi: Document -frecord-marker. 3049 30502006-03-22 Paul Thomas <pault@gcc.gnu.org> 3051 3052 PR fortran/17298 3053 * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): New 3054 function to implement array valued TRANSFER intrinsic. 3055 (gfc_conv_intrinsic_function): Call the new function if TRANSFER 3056 and non-null se->ss. 3057 (gfc_walk_intrinsic_function): Treat TRANSFER as one of the 3058 special cases by calling gfc_walk_intrinsic_libfunc directly. 3059 30602006-03-21 Toon Moene <toon@moene.indiv.nluug.nl> 3061 3062 * options.c (gfc_init_options): Initialize 3063 flag_argument_noalias to 3. 3064 30652006-03-20 Thomas Koenig <Thomas.Koenig@online.de> 3066 3067 PR fortran/20935 3068 * iresolve.c (gfc_resolve_maxloc): If mask is scalar, 3069 prefix the function name with an "s". If the mask is scalar 3070 or if its kind is smaller than gfc_default_logical_kind, 3071 coerce it to default kind. 3072 (gfc_resolve_maxval): Likewise. 3073 (gfc_resolve_minloc): Likewise. 3074 (gfc_resolve_minval): Likewise. 3075 (gfc_resolve_product): Likewise. 3076 (gfc_resolve_sum): Likewise. 3077 30782006-03-19 Paul Thomas <pault@gcc.gnu.org> 3079 3080 PR fortran/26741 3081 *expr.c (external_spec_function): Permit elemental functions. 3082 3083 PR fortran/26716 3084 *interface.c (compare_actual_formal): Detect call for procedure 3085 usage and require rank checking, in this case, for assumed shape 3086 and deferred shape arrays. 3087 (gfc_procedure_use): Revert to pre-PR25070 call to 3088 compare_actual_formal that does not require rank checking.. 3089 30902006-03-16 Roger Sayle <roger@eyesopen.com> 3091 3092 * gfortran.h (gfc_equiv_info): Add length field. 3093 * trans-common.c (copy_equiv_list_to_ns): Set the length field. 3094 * dependency.c (gfc_are_equivalenced_arrays): Use both the offset 3095 and length fields to determine whether the two equivalenced symbols 3096 overlap in memory. 3097 30982006-03-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3099 3100 PR fortran/19101 3101 * gfortran.h: Add warn_ampersand. 3102 * invoke.texi: Add documentation for new option. 3103 * lang.opt: Add Wampersand. 3104 * options.c (gfc_init_options): Initialize warn_ampersand. 3105 (gfc_post_options): Set the warn if pedantic. 3106 (set_Wall): Set warn_ampersand. 3107 (gfc_handle_option: Add Wampersand for itself, -std=f95, and -std=f2003. 3108 * scanner.c (gfc_next_char_literal): Add test for missing '&' in 3109 continued character constant and give warning if missing. 3110 31112006-03-14 Steven G. Kargl <kargls@comcast.net> 3112 3113 PR 18537 3114 * gfortran.h: Wrap Copyright line. 3115 (gfc_option_t): add warn_tabs member. 3116 * lang.opt: Update Coyright year. Add the Wtabs. 3117 * invoke.texi: Document -Wtabs. 3118 * scanner.c (gfc_gobble_whitespace): Use warn_tabs. Add linenum to 3119 suppress multiple warnings. 3120 (load_line): Use warn_tabs. Add linenum, current_line, seen_comment 3121 to suppress multiple warnings. 3122 * options.c (gfc_init_options): Initialize warn_tabs. 3123 (set_Wall): set warn_tabs for -Wall. 3124 (gfc_post_options): Adjust flag_tabs depending on -pedantic. 3125 (gfc_handle_option): Process command-line option -W[no-]tabs 3126 31272006-03-13 Paul Thomas <pault@gcc.gnu.org> 3128 3129 PR fortran/25378 3130 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set the initial position to zero and 3131 modify the condition for updating it, to implement the F2003 requirement for all(mask) 3132 is false. 3133 31342006-03-13 Jakub Jelinek <jakub@redhat.com> 3135 3136 * trans-openmp.c (gfc_trans_omp_variable): Handle references 3137 to parent result. 3138 * trans-expr.c (gfc_conv_variable): Remove useless setting 3139 of parent_flag, formatting. 3140 3141 * trans-decl.c (gfc_get_fake_result_decl): Re-add setting of 3142 GFC_DECL_RESULT flag. 3143 31442006-03-11 Roger Sayle <roger@eyesopen.com> 3145 3146 * dependency.c (gfc_dep_compare_expr) <EXPR_OP>: Allow unary and 3147 binary operators to compare equal if their operands are equal. 3148 <EXPR_FUNCTION>: Allow "constant" intrinsic conversion functions 3149 to compare equal, if their operands are equal. 3150 31512006-03-11 Erik Edelmann <eedelman@gcc.gnu.org> 3152 3153 * symbol.c (check_conflict): Allow allocatable function results, 3154 except for elemental functions. 3155 * trans-array.c (gfc_trans_allocate_temp_array): Rename to ... 3156 (gfc_trans_create_temp_array): ... this, and add new argument 3157 callee_alloc. 3158 (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call 3159 to gfc_trans_allocate_temp_array. 3160 * trans-array.h (gfc_trans_allocate_temp_array): Update prototype. 3161 * trans-expr.c (gfc_conv_function_call): Use new arg of 3162 gfc_trans_create_temp_array avoid pre-allocation of temporary 3163 result variables of pointer AND allocatable functions. 3164 (gfc_trans_arrayfunc_assign): Return NULL for allocatable 3165 functions. 3166 * resolve.c (resolve_symbol): Copy value of 'allocatable' attribute 3167 from sym->result to sym. 3168 31692006-03-09 Erik Edelmann <eedelman@gcc.gnu.org> 3170 3171 * trans-expr.c (gfc_add_interface_mapping): Copy 'allocatable' 3172 attribute from sym to new_sym. Call build_fold_indirect_ref() 3173 for allocatable arguments. 3174 31752006-03-09 Paul Thomas <pault@gcc.gnu.org> 3176 3177 PR fortran/26257 3178 * trans-array.c (gfc_conv_expr_descriptor): Exclude calculation of 3179 the offset and data when se->data_not_needed is set. 3180 * trans.h: Include the data_not_need bit in gfc_se. 3181 * trans-intrinsic.c (gfc_conv_intrinsic_size): Set it for SIZE. 3182 31832006-03-06 Paul Thomas <pault@gcc.gnu.org> 3184 Erik Edelmann <eedelman@gcc.gnu.org> 3185 3186 * trans-array.c (gfc_trans_dealloc_allocated): New function. 3187 (gfc_trans_deferred_array): Use it, instead of inline code. 3188 * trans-array.h: Prototype for gfc_trans_dealloc_allocated(). 3189 * trans-expr.c (gfc_conv_function_call): Deallocate allocated 3190 ALLOCATABLE, INTENT(OUT) arguments upon procedure entry. 3191 31922006-03-06 Paul Thomas <pault@gcc.gnu.org> 3193 3194 PR fortran/26107 3195 * resolve.c (resolve_function): Add name after test for pureness. 3196 3197 PR fortran/19546 3198 * trans-expr.c (gfc_conv_variable): Detect reference to parent result, 3199 store current_function_decl, replace with parent, whilst calls are 3200 made to gfc_get_fake_result_decl, and restore afterwards. Signal this 3201 to gfc_get_fake_result_decl with a new argument, parent_flag. 3202 * trans-stmt.c (gfc_trans_return): gfc_get_fake_result_decl 2nd arg 3203 is set to zero. 3204 * trans.h: Add parent_flag to gfc_get_fake_result_decl prototype. 3205 * trans-decl.c (gfc_get_fake_result_decl): On parent_flag, being set, 3206 add decl to parent function. Replace refs to current_fake_result_decl 3207 with refs to this_result_decl. 3208 (gfc_generate_function_code): Null parent_fake_result_decl before the 3209 translation of code for contained procedures. Set parent_flag to zero 3210 in call to gfc_get_fake_result_decl. 3211 * trans-intrinsic.c (gfc_conv_intrinsic_len): The same. 3212 32132006-03-05 Steven G. Kargl <kargls@comcast.net> 3214 3215 * simplify.c (gfc_simplify_verify): Fix return when SET=''. 3216 32172006-03-05 Erik Edelmann <eedelman@gcc.gnu.org> 3218 3219 PR fortran/16136 3220 * symbol.c (conf_std): New macro. 3221 (check_conflict): Use it to allow ALLOCATABLE dummy 3222 arguments for F2003. 3223 * trans-expr.c (gfc_conv_function_call): Pass the 3224 address of the array descriptor when dummy argument is 3225 ALLOCATABLE. 3226 * interface.c (compare_allocatable): New function. 3227 (compare_actual_formal): Use it. 3228 * resolve.c (resolve_deallocate_expr, 3229 resolve_allocate_expr): Check that INTENT(IN) variables 3230 aren't (de)allocated. 3231 * gfortran.texi (Fortran 2003 status): List ALLOCATABLE 3232 dummy arguments as supported. 3233 32342006-03-03 Roger Sayle <roger@eyesopen.com> 3235 3236 * dependency.c (gfc_check_element_vs_element): Revert last change. 3237 32382006-03-03 Roger Sayle <roger@eyesopen.com> 3239 3240 * dependency.c (gfc_check_element_vs_element): Consider two 3241 unordered scalar subscripts as (potentially) equal. 3242 32432006-03-03 Roger Sayle <roger@eyesopen.com> 3244 3245 * dependency.c (gfc_check_dependency): Call gfc_dep_resolver to 3246 check whether two array references have a dependency. 3247 (gfc_check_element_vs_element): Assume lref and rref must be 3248 REF_ARRAYs. If gfc_dep_compare_expr returns -2, assume these 3249 references could potentially overlap. 3250 (gfc_dep_resolver): Whitespace and comment tweaks. Assume a 3251 dependency if the references have different depths. Rewrite 3252 final term to clarrify we only have a dependency for overlaps. 3253 32542006-03-03 Thomas Koenig <Thomas.Koenig@online.de> 3255 3256 PR fortran/25031 3257 * trans-array.h: Adjust gfc_array_allocate prototype. 3258 * trans-array.c (gfc_array_allocate): Change type of 3259 gfc_array_allocatate to bool. Function returns true if 3260 it operates on an array. Change second argument to gfc_expr. 3261 Find last reference in chain. 3262 If the function operates on an allocatable array, emit call to 3263 allocate_array() or allocate64_array(). 3264 * trans-stmt.c (gfc_trans_allocate): Code to follow to last 3265 reference has been moved to gfc_array_allocate. 3266 * trans.h: Add declaration for gfor_fndecl_allocate_array and 3267 gfor_fndecl_allocate64_array. 3268 (gfc_build_builtin_function_decls): Add gfor_fndecl_allocate_array 3269 and gfor_fndecl_allocate64_array. 3270 32712006-03-01 Roger Sayle <roger@eyesopen.com> 3272 3273 * trans-stmt.c (generate_loop_for_temp_to_lhs): Add an additional 3274 INVERT argument to invert the sense of the WHEREMASK argument. 3275 Remove unneeded code to AND together a list of masks. 3276 (generate_loop_for_rhs_to_temp): Likewise. 3277 (gfc_trans_assign_need_temp): Likewise. 3278 (gfc_trans_forall_1): Likewise. 3279 (gfc_evaluate_where_mask): Likewise, add a new INVERT argument 3280 to specify the sense of the MASK argument. 3281 (gfc_trans_where_assign): Likewise. 3282 (gfc_trans_where_2): Likewise. Restructure code that decides 3283 whether we need to allocate zero, one or two temporary masks. 3284 If this is a top-level WHERE (i.e. the incoming MASK is NULL), 3285 we only need to allocate at most one temporary mask, and can 3286 invert it's sense to provide the complementary pending execution 3287 mask. Only calculate the size of the required temporary arrays 3288 if we need any. 3289 (gfc_trans_where): Update call to gfc_trans_where_2. 3290 32912006-03-01 Paul Thomas <pault@gcc.gnu.org> 3292 3293 * iresolve.c (gfc_resolve_dot_product): Remove any difference in 3294 treatment of logical types. 3295 * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): New function. 3296 3297 PR fortran/26393 3298 * trans-decl.c (gfc_get_symbol_decl): Extend condition that symbols 3299 must be referenced to include unreferenced symbols in an interface 3300 body. 3301 3302 PR fortran/20938 3303 * trans-array.c (gfc_conv_resolve_dependencies): Add call to 3304 gfc_are_equivalenced_arrays. 3305 * symbol.c (gfc_free_equiv_infos, gfc_free_equiv_lists): New 3306 functions. (gfc_free_namespace): Call them. 3307 * trans-common.c (copy_equiv_list_to_ns): New function. 3308 (add_equivalences): Call it. 3309 * gfortran.h: Add equiv_lists to gfc_namespace and define 3310 gfc_equiv_list and gfc_equiv_info. 3311 * dependency.c (gfc_are_equivalenced_arrays): New function. 3312 (gfc_check_dependency): Call it. 3313 * dependency.h: Prototype for gfc_are_equivalenced_arrays. 3314 33152006-03-01 Roger Sayle <roger@eyesopen.com> 3316 3317 * dependency.c (gfc_is_same_range): Compare the stride, lower and 3318 upper bounds when testing array reference ranges for equality. 3319 (gfc_check_dependency): Fix indentation whitespace. 3320 (gfc_check_element_vs_element): Likewise. 3321 (gfc_dep_resolver): Likewise. 3322 33232006-02-28 Thomas Koenig <Thomas.Koenig@online.de> 3324 3325 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): 3326 If the mask expression exists and has rank 0, enclose the 3327 generated loop in an "if (mask)". Put the default 3328 initialization into the else branch. 3329 33302006-02-25 Thomas Koenig <Thomas.Koenig@online.de> 3331 3332 PR fortran/23092 3333 * trans-intrinsic.c (gfc_conv_intrinsic_arith): If the 3334 mask expression exists and has rank 0, enclose the generated 3335 loop in an "if (mask)". 3336 * (gfc_conv_intrinsic_minmaxloc): Likewise. 3337 33382006-02-24 Paul Thomas <pault@gcc.gnu.org> 3339 3340 PR fortran/26409 3341 * resolve.c (resolve_contained_functions, resolve_types, 3342 gfc_resolve): Revert patch of 2006-02-19. 3343 33442006-02-24 Paul Thomas <pault@gcc.gnu.org> 3345 3346 PR fortran/24519 3347 * dependency.c (gfc_is_same_range): Correct typo. 3348 (gfc_check_section_vs_section): Call gfc_is_same_range. 3349 3350 PR fortran/25395 3351 * trans-common.c (add_equivalences): Add a new flag that is set when 3352 an equivalence is seen that prevents more from being reset until the 3353 start of a new traversal of the list, thus ensuring completion of 3354 all the equivalences. 3355 33562006-02-23 Erik Edelmann <eedelman@gcc.gnu.org> 3357 3358 * module.c (read_module): Remove redundant code lines. 3359 33602006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3361 * Make-lang.in (FORTRAN): Remove 3362 (.PHONY): Remove F95 and f95. Add fortran 3363 33642006-02-20 Roger Sayle <roger@eyesopen.com> 3365 3366 * trans-stmt.c (gfc_trans_where_2): Avoid updating unused current 3367 execution mask for empty WHERE/ELSEWHERE clauses. Don't allocate 3368 temporary mask arrays if they won't be used. 3369 33702006-02-20 Roger Sayle <roger@eyesopen.com> 3371 3372 * trans-stmt.c (gfc_trans_where_assign): Remove code to handle 3373 traversing a linked list of MASKs. The MASK is now always a 3374 single element requiring no ANDing during the assignment. 3375 33762006-02-19 Thomas Koenig <Thomas.Koenig@online.de> 3377 3378 * gfortran.texi: Document environment variables which 3379 influence runtime behavior. 3380 33812006-02-19 H.J. Lu <hongjiu.lu@intel.com> 3382 3383 * resolve.c (resolve_contained_functions): Call resolve_entries 3384 first. 3385 (resolve_types): Remove calls to resolve_entries and 3386 resolve_contained_functions. 3387 (gfc_resolve): Call resolve_contained_functions. 3388 33892006-02-19 Erik Edelmann <eedelman@gcc.gnu.org> 3390 3391 PR fortran/26201 3392 * intrinsic.c (gfc_convert_type_warn): Call 3393 gfc_intrinsic_symbol() on the newly created symbol. 3394 33952006-02-19 Paul Thomas <pault@gcc.gnu.org> 3396 3397 PR fortran/25054 3398 * resolve.c (is_non_constant_shape_array): New function. 3399 (resolve_fl_variable): Remove code for the new function and call it. 3400 (resolve_fl_namelist): New function. Add test for namelist array 3401 with non-constant shape, using is_non_constant_shape_array. 3402 (resolve_symbol): Remove code for resolve_fl_namelist and call it. 3403 3404 PR fortran/25089 3405 * match.c (match_namelist): Increment the refs field of an accepted 3406 namelist object symbol. 3407 * resolve.c (resolve_fl_namelist): Test namelist objects for a conflict 3408 with contained or module procedures. 3409 34102006-02-18 Roger Sayle <roger@eyesopen.com> 3411 3412 * trans-stmt.c (struct temporary_list): Delete. 3413 (gfc_trans_where_2): Major reorganization. Remove no longer needed 3414 TEMP argument. Allocate and deallocate the control mask and 3415 pending control mask locally. 3416 (gfc_trans_forall_1): Delete TEMP local variable, and update 3417 call to gfc_trans_where_2. No need to deallocate arrays after. 3418 (gfc_evaluate_where_mask): Major reorganization. Change return 3419 type to void. Pass in parent execution mask, MASK, and two 3420 already allocated mask arrays CMASK and PMASK. On return 3421 CMASK := MASK & COND, PMASK := MASK & !COND. MASK, CMASK and 3422 CMASK may all be NULL, or refer to the same temporary arrays. 3423 (gfc_trans_where): Update call to gfc_trans_where_2. We no 3424 longer need a TEMP variable or to deallocate temporary arrays 3425 allocated by gfc_trans_where_2. 3426 34272006-02-18 Danny Smith <dannysmith@users.sourceforeg.net> 3428 3429 * gfortran.h (gfc_add_attribute): Change uint to unsigned int. 3430 * symbol.c (gfc_add_attribute): Likewise for definition. 3431 * resolve.c (resolve_global_procedure): Likewise for variable 'type'. 3432 34332006-02-17 Richard Sandiford <richard@codesourcery.com> 3434 3435 * trans-common.c: Include rtl.h earlier. 3436 * trans-decl.c: Likewise. 3437 34382006-02-16 Jakub Jelinek <jakub@redhat.com> 3439 3440 PR fortran/26224 3441 * parse.c (parse_omp_do, parse_omp_structured_block): Call 3442 gfc_commit_symbols and gfc_warning_check. 3443 3444 * openmp.c (resolve_omp_clauses): Add a dummy case label to workaround 3445 PR middle-end/26316. 3446 34472006-02-16 Paul Thomas <pault@gcc.gnu.org> 3448 3449 PR fortran/24557 3450 * trans-expr.c (gfc_add_interface_mapping): Use the actual argument 3451 for character(*) arrays, rather than casting to the type and kind 3452 parameters of the formal argument. 3453 34542006-02-15 Toon Moene <toon@moene.indiv.nluug.nl> 3455 3456 PR fortran/26054 3457 * options.c: Do not warn for Fortran 2003 features by default. 3458 34592006-02-15 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 3460 3461 * check.c: Update copyright years. 3462 3463 * check.c (gfc_check_minloc_maxloc, check_reduction): Don't call 3464 dim_range_check on not-present optional dim argument. 3465 34662006-02-15 Jakub Jelinek <jakub@redhat.com> 3467 3468 PR libgomp/25938 3469 PR libgomp/25984 3470 * Make-lang.in (install-finclude-dir): New goal. 3471 (fortran.install-common): Depend on install-finclude-dir. 3472 * lang-specs.h: If not -nostdinc, add -I finclude. 3473 34742006-02-14 Thomas Koenig <Thomas.Koenig@online.de> 3475 3476 PR fortran/25045 3477 * check.c (dim_check): Perform all checks if dim is optional. 3478 (gfc_check_minloc_maxloc): Use dim_check and dim_rank_check 3479 to check dim argument. 3480 (check_reduction): Likewise. 3481 34822006-02-14 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 3483 3484 PR fortran/26277 3485 * io.c (match_ltag): Mark label as referenced. 3486 34872006-02-14 Jakub Jelinek <jakub@redhat.com> 3488 Richard Henderson <rth@redhat.com> 3489 Diego Novillo <dnovillo@redhat.com> 3490 3491 * invoke.texi: Document -fopenmp. 3492 * gfortran.texi (Extensions): Document OpenMP. 3493 3494 Backport from gomp-20050608-branch 3495 * trans-openmp.c: Call build_omp_clause instead of 3496 make_node when creating OMP_CLAUSE_* trees. 3497 (gfc_trans_omp_reduction_list): Remove argument 'code'. 3498 Adjust all callers. 3499 3500 * trans.h (build4_v): Define. 3501 * trans-openmp.c: Call build4_v to create OMP_PARALLEL nodes. 3502 Call build3_v to create OMP_SECTIONS nodes. 3503 3504 PR fortran/25162 3505 * openmp.c (gfc_match_omp_variable_list): Call gfc_set_sym_referenced 3506 on all symbols added to the variable list. 3507 3508 * openmp.c (gfc_match_omp_clauses): Fix check for non-INTRINSIC 3509 procedure symbol in REDUCTION. 3510 3511 * trans-openmp.c (gfc_trans_omp_array_reduction): Use gfc_add 3512 for MINUS_EXPR OMP_CLAUSE_REDUCTION_CODE. 3513 3514 * trans-openmp.c (gfc_trans_omp_do): Add PBLOCK argument. If PBLOCK 3515 is non-NULL, evaluate INIT/COND/INCR and chunk size expressions in 3516 that statement block. 3517 (gfc_trans_omp_parallel_do): Pass non-NULL PBLOCK to gfc_trans_omp_do 3518 for non-ordered non-static combined loops. 3519 (gfc_trans_omp_directive): Pass NULL PBLOCK to gfc_trans_omp_do. 3520 3521 * openmp.c: Include target.h and toplev.h. 3522 (gfc_match_omp_threadprivate): Emit diagnostic if target does 3523 not support TLS. 3524 * Make-lang.in (fortran/openmp.o): Add dependencies on 3525 target.h and toplev.h. 3526 3527 * trans-decl.c (gfc_get_fake_result_decl): Set GFC_DECL_RESULT. 3528 * trans-openmp.c (gfc_omp_privatize_by_reference): Make 3529 DECL_ARTIFICIAL vars predetermined shared except GFC_DECL_RESULT. 3530 (gfc_omp_disregard_value_expr): Handle GFC_DECL_RESULT. 3531 (gfc_trans_omp_variable): New function. 3532 (gfc_trans_omp_variable_list, gfc_trans_omp_reduction_list): Use it. 3533 * trans.h (GFC_DECL_RESULT): Define. 3534 3535 * trans-openmp.c (gfc_omp_firstprivatize_type_sizes): New function. 3536 * f95-lang.c (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define. 3537 * trans.h (gfc_omp_firstprivatize_type_sizes): New prototype. 3538 3539 * trans-openmp.c (gfc_omp_privatize_by_reference): Return 3540 true if a pointer has GFC_DECL_SAVED_DESCRIPTOR set. 3541 (gfc_trans_omp_array_reduction, gfc_trans_omp_reduction_list): New 3542 functions. 3543 (gfc_trans_omp_clauses): Add WHERE argument. Call 3544 gfc_trans_omp_reduction_list rather than gfc_trans_omp_variable_list 3545 for reductions. 3546 (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do, 3547 gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare, 3548 gfc_trans_omp_sections, gfc_trans_omp_single): Adjust 3549 gfc_trans_omp_clauses callers. 3550 3551 * openmp.c (omp_current_do_code): New var. 3552 (gfc_resolve_omp_do_blocks): New function. 3553 (gfc_resolve_omp_parallel_blocks): Call it. 3554 (gfc_resolve_do_iterator): Add CODE argument. Don't propagate 3555 predetermination if argument is !$omp do or !$omp parallel do 3556 iteration variable. 3557 * resolve.c (resolve_code): Call gfc_resolve_omp_do_blocks 3558 for EXEC_OMP_DO. Adjust gfc_resolve_do_iterator caller. 3559 * fortran.h (gfc_resolve_omp_do_blocks): New prototype. 3560 (gfc_resolve_do_iterator): Add CODE argument. 3561 3562 * trans.h (gfc_omp_predetermined_sharing, 3563 gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New 3564 prototypes. 3565 (GFC_DECL_COMMON_OR_EQUIV, GFC_DECL_CRAY_POINTEE): Define. 3566 * trans-openmp.c (gfc_omp_predetermined_sharing, 3567 gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New 3568 functions. 3569 * trans-common.c (build_equiv_decl, build_common_decl, 3570 create_common): Set GFC_DECL_COMMON_OR_EQUIV flag on the decls. 3571 * trans-decl.c (gfc_finish_cray_pointee): Set GFC_DECL_CRAY_POINTEE 3572 on the decl. 3573 * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_SHARING, 3574 LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR, 3575 LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE): Define. 3576 3577 * openmp.c (resolve_omp_clauses): Remove extraneous comma. 3578 3579 * symbol.c (check_conflict): Add conflict between cray_pointee and 3580 threadprivate. 3581 * openmp.c (gfc_match_omp_threadprivate): Fail if 3582 gfc_add_threadprivate returned FAILURE. 3583 (resolve_omp_clauses): Diagnose Cray pointees in SHARED, 3584 {,FIRST,LAST}PRIVATE and REDUCTION clauses and Cray pointers in 3585 {FIRST,LAST}PRIVATE and REDUCTION clauses. 3586 3587 * resolve.c (omp_workshare_flag): New variable. 3588 (resolve_function): Diagnose use of non-ELEMENTAL user defined 3589 function in WORKSHARE construct. 3590 (resolve_code): Cleanup forall_save use. Make sure omp_workshare_flag 3591 is set to correct value in different contexts. 3592 3593 * openmp.c (resolve_omp_clauses): Replace %s with '%s' when printing 3594 variable name. 3595 (resolve_omp_atomic): Likewise. 3596 3597 PR fortran/24493 3598 * scanner.c (skip_free_comments): Set at_bol at the beginning of the 3599 loop, not before it. 3600 (skip_fixed_comments): Handle ! comments in the middle of line here 3601 as well. 3602 (gfc_skip_comments): Use skip_fixed_comments for FIXED_FORM even if 3603 not at BOL. 3604 (gfc_next_char_literal): Fix expected canonicalized *$omp string. 3605 3606 * trans-openmp.c (gfc_trans_omp_do): Use make_node and explicit 3607 initialization to build OMP_FOR instead of build. 3608 3609 * trans-decl.c (gfc_gimplify_function): Invoke 3610 diagnose_omp_structured_block_errors. 3611 3612 * trans-openmp.c (gfc_trans_omp_master): Use OMP_MASTER. 3613 (gfc_trans_omp_ordered): Use OMP_ORDERED. 3614 3615 * gfortran.h (gfc_resolve_do_iterator, gfc_resolve_blocks, 3616 gfc_resolve_omp_parallel_blocks): New prototypes. 3617 * resolve.c (resolve_blocks): Renamed to... 3618 (gfc_resolve_blocks): ... this. Remove static. 3619 (gfc_resolve_forall): Adjust caller. 3620 (resolve_code): Only call gfc_resolve_blocks if code->block != 0 3621 and not for EXEC_OMP_PARALLEL* directives. Call 3622 gfc_resolve_omp_parallel_blocks for EXEC_OMP_PARALLEL* directives. 3623 Call gfc_resolve_do_iterator if resolved successfully EXEC_DO 3624 iterator. 3625 * openmp.c: Include pointer-set.h. 3626 (omp_current_ctx): New variable. 3627 (gfc_resolve_omp_parallel_blocks, gfc_resolve_do_iterator): New 3628 functions. 3629 * Make-lang.in (fortran/openmp.o): Depend on pointer-set.h. 3630 3631 * openmp.c (gfc_match_omp_clauses): For max/min/iand/ior/ieor, 3632 look up symbol if it exists, use its name instead and, if it is not 3633 INTRINSIC, issue diagnostics. 3634 3635 * parse.c (parse_omp_do): Handle implied end do properly. 3636 (parse_executable): If parse_omp_do returned ST_IMPLIED_ENDDO, 3637 return it instead of continuing. 3638 3639 * trans-openmp.c (gfc_trans_omp_critical): Update for changed 3640 operand numbering. 3641 (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do, 3642 gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare, 3643 gfc_trans_omp_sections, gfc_trans_omp_single): Likewise. 3644 3645 * trans.h (gfc_omp_privatize_by_reference): New prototype. 3646 * f95-lang.c (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Redefine 3647 to gfc_omp_privatize_by_reference. 3648 * trans-openmp.c (gfc_omp_privatize_by_reference): New function. 3649 3650 * trans-stmt.h (gfc_trans_omp_directive): Add comment. 3651 3652 * openmp.c (gfc_match_omp_variable_list): Add ALLOW_COMMON argument. 3653 Disallow COMMON matching if it is set. 3654 (gfc_match_omp_clauses, gfc_match_omp_flush): Adjust all callers. 3655 (resolve_omp_clauses): Show locus in error messages. Check that 3656 variable types in reduction clauses are appropriate for reduction 3657 operators. 3658 3659 * resolve.c (resolve_symbol): Don't error if a threadprivate module 3660 variable isn't SAVEd. 3661 3662 * trans-openmp.c (gfc_trans_omp_do): Put count into BLOCK, not BODY. 3663 Fix typo in condition. Fix DOVAR initialization. 3664 3665 * openmp.c (gfc_match_omp_clauses): Match min/iand/ior/ieor 3666 rather than .min. etc. 3667 3668 * trans-openmpc.c (omp_not_yet): Remove. 3669 (gfc_trans_omp_parallel_do): Keep listprivate clause on parallel. 3670 Force creation of BIND_EXPR around the workshare construct. 3671 (gfc_trans_omp_parallel_sections): Likewise. 3672 (gfc_trans_omp_parallel_workshare): Likewise. 3673 3674 * types.def (BT_I16, BT_FN_I16_VPTR_I16, 3675 BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add. 3676 3677 * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_DEFAULT. 3678 (gfc_trans_omp_code): New function. 3679 (gfc_trans_omp_do): Use it, remove omp_not_yet uses. 3680 (gfc_trans_omp_parallel, gfc_trans_omp_single): Likewise. 3681 (gfc_trans_omp_sections): Likewise. Only treat empty last section 3682 specially if lastprivate clause is present. 3683 * f95-lang.c (gfc_init_builtin_functions): Create BUILT_IN_TRAP 3684 builtin. 3685 3686 * trans-openmp.c (gfc_trans_omp_variable_list): Update for 3687 OMP_CLAUSE_DECL name change. 3688 (gfc_trans_omp_do): Likewise. 3689 3690 * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_REDUCTION 3691 clauses. 3692 (gfc_trans_omp_atomic): Build OMP_ATOMIC instead of expanding 3693 sync builtins directly. 3694 (gfc_trans_omp_single): Build OMP_SINGLE statement. 3695 3696 * trans-openmp.c (gfc_trans_add_clause): New. 3697 (gfc_trans_omp_variable_list): Take a tree code and build the clause 3698 node here. Link it to the head of a list. 3699 (gfc_trans_omp_clauses): Update to match. 3700 (gfc_trans_omp_do): Use gfc_trans_add_clause. 3701 3702 * trans-openmp.c (gfc_trans_omp_clauses): Change second argument to 3703 gfc_omp_clauses *. Use gfc_evaluate_now instead of creating 3704 temporaries by hand. 3705 (gfc_trans_omp_atomic, gfc_trans_omp_critical): Use buildN_v macros. 3706 (gfc_trans_omp_do): New function. 3707 (gfc_trans_omp_master): Dont' check for gfc_trans_code returning NULL. 3708 (gfc_trans_omp_parallel): Adjust gfc_trans_omp_clauses caller. 3709 Use buildN_v macros. 3710 (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections, 3711 gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections, 3712 gfc_trans_omp_single, gfc_trans_omp_workshare): New functions. 3713 (gfc_trans_omp_directive): Use them. 3714 * parse.c (parse_omp_do): Allow new_st.op == EXEC_NOP. 3715 * openmp.c (resolve_omp_clauses): Check for list items present 3716 in multiple clauses. 3717 (resolve_omp_do): Check that iteration variable is not THREADPRIVATE 3718 and is not present in any clause variable lists other than PRIVATE 3719 or LASTPRIVATE. 3720 3721 * gfortran.h (symbol_attribute): Add threadprivate bit. 3722 (gfc_common_head): Add threadprivate member, change use_assoc 3723 and saved into char to save space. 3724 (gfc_add_threadprivate): New prototype. 3725 * symbol.c (check_conflict): Handle threadprivate. 3726 (gfc_add_threadprivate): New function. 3727 (gfc_copy_attr): Copy threadprivate. 3728 * trans-openmp.c (gfc_trans_omp_clauses): Avoid creating a temporary 3729 if IF or NUM_THREADS is constant. Create OMP_CLAUSE_SCHEDULE and 3730 OMP_CLAUSE_ORDERED. 3731 * resolve.c (resolve_symbol): Complain if a THREADPRIVATE symbol 3732 outside a module and not in COMMON has is not SAVEd. 3733 (resolve_equivalence): Ensure THREADPRIVATE objects don't get 3734 EQUIVALENCEd. 3735 * trans-common.c: Include target.h and rtl.h. 3736 (build_common_decl): Set DECL_TLS_MODEL if THREADPRIVATE. 3737 * trans-decl.c: Include rtl.h. 3738 (gfc_finish_var_decl): Set DECL_TLS_MODEL if THREADPRIVATE. 3739 * dump-parse-tree.c (gfc_show_attr): Handle THREADPRIVATE. 3740 * Make-lang.in (fortran/trans-decl.o): Depend on $(RTL_H). 3741 (fortran/trans-common.o): Depend on $(RTL_H) and $(TARGET_H). 3742 * openmp.c (gfc_match_omp_variable_list): Ensure COMMON block 3743 is from current namespace. 3744 (gfc_match_omp_threadprivate): Rewrite. 3745 (resolve_omp_clauses): Check some clause restrictions. 3746 * module.c (ab_attribute): Add AB_THREADPRIVATE. 3747 (attr_bits): Add THREADPRIVATE. 3748 (mio_symbol_attribute, mio_symbol_attribute): Handle threadprivate. 3749 (load_commons, write_common, write_blank_common): Adjust for type 3750 change of saved, store/load threadprivate bit from the integer 3751 as well. 3752 3753 * types.def (BT_FN_UINT_UINT): New. 3754 (BT_FN_VOID_UINT_UINT): Remove. 3755 3756 * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_barrier, 3757 gfc_trans_omp_critical, gfc_trans_omp_flush, gfc_trans_omp_master, 3758 gfc_trans_omp_ordered, gfc_trans_omp_parallel): New functions. 3759 (gfc_trans_omp_directive): Use them. 3760 3761 * openmp.c (expr_references_sym): Add SE argument, don't look 3762 into SE tree. 3763 (is_conversion): New function. 3764 (resolve_omp_atomic): Adjust expr_references_sym callers. Handle 3765 promoted expressions. 3766 * trans-openmp.c (gfc_trans_omp_atomic): New function. 3767 (gfc_trans_omp_directive): Call it. 3768 3769 * f95-lang.c (builtin_type_for_size): New function. 3770 (gfc_init_builtin_functions): Initialize synchronization and 3771 OpenMP builtins. 3772 * types.def: New file. 3773 * Make-lang.in (f95-lang.o): Depend on $(BUILTINS_DEF) and 3774 fortran/types.def. 3775 3776 * trans-openmp.c: Rename GOMP_* tree codes into OMP_*. 3777 3778 * dump-parse-tree.c (show_symtree): Don't crash if ns->proc_name 3779 is NULL. 3780 3781 * dump-parse-tree.c (gfc_show_namelist, gfc_show_omp_node): New 3782 functions. 3783 (gfc_show_code_node): Call gfc_show_omp_node for EXEC_OMP_* nodes. 3784 3785 * parse.c (parse_omp_do): Call pop_state before next_statement. 3786 * openmp.c (expr_references_sym, resolve_omp_atomic, resolve_omp_do): 3787 New functions. 3788 (gfc_resolve_omp_directive): Call them. 3789 * match.c (match_exit_cycle): Issue error if EXIT or CYCLE statement 3790 leaves an OpenMP structured block or if EXIT terminates !$omp do 3791 loop. 3792 3793 * Make-lang.in (F95_PARSER_OBJS): Add fortran/openmp.o. 3794 (F95_OBJS): Add fortran/trans-openmp.o. 3795 (fortran/trans-openmp.o): Depend on $(GFORTRAN_TRANS_DEPS). 3796 * lang.opt: Add -fopenmp option. 3797 * options.c (gfc_init_options): Initialize it. 3798 (gfc_handle_option): Handle it. 3799 * gfortran.h (ST_OMP_ATOMIC, ST_OMP_BARRIER, ST_OMP_CRITICAL, 3800 ST_OMP_END_CRITICAL, ST_OMP_END_DO, ST_OMP_END_MASTER, 3801 ST_OMP_END_ORDERED, ST_OMP_END_PARALLEL, ST_OMP_END_PARALLEL_DO, 3802 ST_OMP_END_PARALLEL_SECTIONS, ST_OMP_END_PARALLEL_WORKSHARE, 3803 ST_OMP_END_SECTIONS, ST_OMP_END_SINGLE, ST_OMP_END_WORKSHARE, 3804 ST_OMP_DO, ST_OMP_FLUSH, ST_OMP_MASTER, ST_OMP_ORDERED, 3805 ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS, 3806 ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION, 3807 ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE): New 3808 statement codes. 3809 (OMP_LIST_PRIVATE, OMP_LIST_FIRSTPRIVATE, OMP_LIST_LASTPRIVATE, 3810 OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN, 3811 OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT, 3812 OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV, 3813 OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND, 3814 OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST, OMP_LIST_NUM): 3815 New OpenMP variable list types. 3816 (gfc_omp_clauses): New typedef. 3817 (gfc_get_omp_clauses): Define. 3818 (EXEC_OMP_CRITICAL, EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER, 3819 EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO, 3820 EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE, 3821 EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE, 3822 EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT, 3823 EXEC_OMP_END_SINGLE): New OpenMP gfc_exec_op codes. 3824 (struct gfc_code): Add omp_clauses, omp_name, omp_namelist 3825 and omp_bool fields to ext union. 3826 (flag_openmp): Declare. 3827 (gfc_free_omp_clauses, gfc_resolve_omp_directive): New prototypes. 3828 * scanner.c (openmp_flag, openmp_locus): New variables. 3829 (skip_free_comments, skip_fixed_comments, gfc_next_char_literal): 3830 Handle OpenMP directive lines and conditional compilation magic 3831 comments. 3832 * parse.h (COMP_OMP_STRUCTURED_BLOCK): New compile state. 3833 * parse.c (decode_omp_directive, parse_omp_do, parse_omp_atomic, 3834 parse_omp_structured_block): New functions. 3835 (next_free, next_fixed): Parse OpenMP directives. 3836 (case_executable, case_exec_markers, case_decl): Add ST_OMP_* 3837 codes. 3838 (gfc_ascii_statement): Handle ST_OMP_* codes. 3839 (parse_executable): Rearrange the loop slightly, so that 3840 parse_omp_do can return next_statement. 3841 * match.h (gfc_match_omp_eos, gfc_match_omp_atomic, 3842 gfc_match_omp_barrier, gfc_match_omp_critical, gfc_match_omp_do, 3843 gfc_match_omp_flush, gfc_match_omp_master, gfc_match_omp_ordered, 3844 gfc_match_omp_parallel, gfc_match_omp_parallel_do, 3845 gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare, 3846 gfc_match_omp_sections, gfc_match_omp_single, 3847 gfc_match_omp_threadprivate, gfc_match_omp_workshare, 3848 gfc_match_omp_end_nowait, gfc_match_omp_end_single): New prototypes. 3849 * resolve.c (resolve_blocks): Ignore EXEC_OMP_* block directives. 3850 (resolve_code): Call gfc_resolve_omp_directive on EXEC_OMP_* 3851 directives. 3852 * trans.c (gfc_trans_code): Call gfc_trans_omp_directive for 3853 EXEC_OMP_* directives. 3854 * st.c (gfc_free_statement): Handle EXEC_OMP_* statement freeing. 3855 * trans-stmt.h (gfc_trans_omp_directive): New prototype. 3856 * openmp.c: New file. 3857 * trans-openmp.c: New file. 3858 38592006-02-13 Andrew Pinski <pinskia@physics.uc.edu> 3860 Jakub Jelinek <jakub@redhat.com> 3861 3862 PR fortran/26246 3863 * trans-decl.c (gfc_get_symbol_decl, gfc_get_fake_result_decl): Use 3864 gfc_add_decl_to_function rather than gfc_finish_var_decl on length. 3865 38662006-02-13 Paul Thomas <pault@gcc.gnu.org> 3867 3868 PR fortran/26074 3869 PR fortran/25103 3870 * resolve.c (resolve_symbol): Extend the requirement that module 3871 arrays have constant bounds to those in the main program. At the 3872 same time simplify the array bounds, to avoiding trapping parameter 3873 array references, and exclude automatic character length from main 3874 and modules. Rearrange resolve_symbol and resolve_derived to put as 3875 each flavor together, as much as is possible and move all specific 3876 code for flavors FL_VARIABLE, FL_PROCEDURE and FL_PARAMETER into new 3877 functions. 3878 (resolve_fl_var_and_proc, resolve_fl_variable, resolve_fl_procedure): 3879 New functions to do work of resolve_symbol. 3880 (resolve_index_expr): New function that is called from resolved_symbol 3881 and is extracted from resolve_charlen. 3882 (resolve_charlen): Call this new function. 3883 (resolve_fl_derived): Renamed resolve_derived to be consistent with 3884 the naming of the new functions for the other flavours. Change the 3885 charlen checking so that the style is consistent with other similar 3886 checks. Add the generation of the gfc_dt_list, removed from resolve_ 3887 symbol. 3888 3889 PR fortran/20861 3890 * resolve.c (resolve_actual_arglist): Prevent internal procedures 3891 from being dummy arguments. 3892 3893 PR fortran/20871 3894 * resolve.c (resolve_actual_arglist): Prevent pure but non-intrinsic 3895 procedures from being dummy arguments. 3896 3897 PR fortran/25083 3898 * resolve.c (check_data_variable): Add test that data variable is in 3899 COMMON. 3900 3901 PR fortran/25088 3902 * resolve.c (resolve_call): Add test that the subroutine does not 3903 have a type. 3904 39052006-02-12 Erik Edelmann <eedelman@gcc.gnu.org> 3906 3907 PR fortran/25806 3908 * trans-array.c (gfc_trans_allocate_array_storage): New argument 3909 dealloc; free the temporary only if dealloc is true. 3910 (gfc_trans_allocate_temp_array): New argument bool dealloc, to be 3911 passed onwards to gfc_trans_allocate_array_storage. 3912 (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to 3913 gfc_trans_allocate_temp_array. 3914 * trans-array.h (gfc_trans_allocate_temp_array): Update function 3915 prototype. 3916 * trans-expr.c (gfc_conv_function_call): Set new argument 'dealloc' 3917 to gfc_trans_allocate_temp_array to false in case of functions 3918 returning pointers. 3919 (gfc_trans_arrayfunc_assign): Return NULL for functions returning 3920 pointers. 3921 39222006-02-10 Steven G. Kargl <kargls@comcast.net> 3923 3924 PR fortran/20858 3925 *decl.c (variable_decl): Improve error message. Remove initialization 3926 typespec. Wrap long line. 3927 *expr.c (gfc_check_pointer_assign): Permit checking of type, kind type, 3928 and rank. 3929 *simplify.c (gfc_simplify_null): Ensure type, kind type, and rank 3930 are set. 3931 3932 39332006-02-10 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 3934 3935 PR fortran/14771 3936 * arith.c (eval_intrinsic): Accept INTRINSIC_PARENTHESES. 3937 * expr.c (check_intrinsic_op): Likewise. 3938 * module.c (mio_expr): Likewise. 3939 39402006-02-09 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 3941 3942 * dump-parse-tree.c: Update copyright years. 3943 * matchexp.c: Likewise. 3944 * module.c: Likewise. 3945 3946 PR fortran/14771 3947 * gfortran.h (gfc_intrinsic_op): Add INTRINSIC_PARENTHESES. 3948 * dump-parse-tree (gfc_show_expr): Handle INTRINSIC_PARENTHESES. 3949 * expr.c (simplify_intrinsic_op): Treat INTRINSIC_PARENTHESES as 3950 if it were INTRINSIC_UPLUS. 3951 * resolve.c (resolve_operator): Handle INTRINSIC_PARENTHESES. 3952 * match.c (intrinsic_operators): Add INTRINSIC_PARENTHESES. 3953 * matchexp.c (match_primary): Record parentheses surrounding 3954 numeric expressions. 3955 * module.c (intrinsics): Add INTRINSIC_PARENTHESES for module 3956 dumping. 3957 * trans-expr.c (gfc_conv_expr_op): Handle INTRINSIC_PARENTHESES. 3958 39592006-02-09 Paul Thomas <pault@gcc.gnu.org> 3960 3961 PR fortran/26038 3962 * trans-stmt.c (gfc_trans_allocate): Provide assumed character length 3963 scalar with missing backend_decl for the hidden dummy charlen. 3964 3965 PR fortran/25059 3966 * interface.c (gfc_extend_assign): Remove detection of non-PURE 3967 subroutine in assignment interface, with gfc_error, and put it in 3968 * resolve.c (resolve_code). 3969 3970 PR fortran/25070 3971 * interface.c (gfc_procedure_use): Flag rank checking for non- 3972 elemental, contained or interface procedures in call to 3973 (compare_actual_formal), where ranks are checked for assumed 3974 shape arrays.. 3975 39762006-02-08 Francois-Xavier Coudert <coudert@clipper.ens.fr> 3977 3978 PR libfortran/25425 3979 * trans-decl.c (gfc_generate_function_code): Add new argument, 3980 pedantic, to set_std call. 3981 39822006-02-06 Thomas Koenig <Thomas.Koenig@online.de> 3983 3984 PR libfortran/23815 3985 * gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment 3986 variable. 3987 * invoke.texi: Mention the "Runtime" chapter. 3988 Document the -fconvert= option. 3989 * gfortran.h: Add options_convert. 3990 * lang.opt: Add fconvert=little-endian, fconvert=big-endian, 3991 fconvert=native and fconvert=swap. 3992 * trans-decl.c (top level): Add gfor_fndecl_set_convert. 3993 (gfc_build_builtin_function_decls): Set gfor_fndecl_set_convert. 3994 (gfc_generate_function_code): If -fconvert was specified, 3995 and this is the main program, add a call to set_convert(). 3996 * options.c: Handle the -fconvert options. 3997 39982006-02-06 Roger Sayle <roger@eyesopen.com> 3999 4000 * trans-stmt.c (gfc_evaluate_where_mask): Allow the NMASK argument 4001 to be NULL to indicate that the not mask isn't required. 4002 (gfc_trans_where_2): Remove PMASK argument. Avoid calculating the 4003 pending mask for the last clause of a WHERE chain. Update recursive 4004 call. 4005 (gfc_trans_forall_1): Update call to gfc_trans_where_2. 4006 (gfc_trans_where): Likewise. 4007 40082006-02-06 Jakub Jelinek <jakub@redhat.com> 4009 4010 Backport from gomp-20050608-branch 4011 * trans-decl.c (create_function_arglist): Handle dummy functions. 4012 4013 * trans-decl.c (gfc_get_symbol_decl): Revert explicit setting of 4014 TYPE_SIZE_UNIT. 4015 (gfc_trans_vla_type_sizes): Also "gimplify" 4016 GFC_TYPE_ARRAY_DATAPTR_TYPE for GFC_DESCRIPTOR_TYPE_P types. 4017 * trans-array.c (gfc_trans_deferred_array): Call 4018 gfc_trans_vla_type_sizes. 4019 4020 * trans-decl.c (saved_function_decls, saved_parent_function_decls): 4021 Remove unnecessary initialization. 4022 (create_function_arglist): Make sure __result has complete type. 4023 (gfc_get_fake_result_decl): Change current_fake_result_decl into 4024 a tree chain. For entry master, create a separate variable 4025 for each result name. For BT_CHARACTER results, call 4026 gfc_finish_var_decl on length even if it has been already created, 4027 but not pushdecl'ed. 4028 (gfc_trans_vla_type_sizes): For function/entry result, adjust 4029 result value type, not the FUNCTION_TYPE. 4030 (gfc_generate_function_code): Adjust for current_fake_result_decl 4031 changes. 4032 (gfc_trans_deferred_vars): Likewise. Call gfc_trans_vla_type_sizes 4033 even on result if it is assumed-length character. 4034 4035 * trans-decl.c (gfc_trans_dummy_character): Add SYM argument. 4036 Call gfc_trans_vla_type_sizes. 4037 (gfc_trans_auto_character_variable): Call gfc_trans_vla_type_sizes. 4038 (gfc_trans_vla_one_sizepos, gfc_trans_vla_type_sizes_1, 4039 gfc_trans_vla_type_sizes): New functions. 4040 (gfc_trans_deferred_vars): Adjust gfc_trans_dummy_character 4041 callers. Call gfc_trans_vla_type_sizes on assumed-length 4042 character parameters. 4043 * trans-array.c (gfc_trans_array_bounds, 4044 gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias): Call 4045 gfc_trans_vla_type_sizes. 4046 * trans.h (gfc_trans_vla_type_sizes): New prototype. 4047 4048 * trans-decl.c (gfc_build_qualified_array): For non-assumed-size 4049 arrays without constant size, create also an index var for 4050 GFC_TYPE_ARRAY_SIZE (type). If the type is incomplete, complete 4051 it as 0..size-1. 4052 (gfc_create_string_length): Don't call gfc_defer_symbol_init 4053 if just creating DECL_ARGUMENTS. 4054 (gfc_get_symbol_decl): Call gfc_finish_var_decl and 4055 gfc_defer_symbol_init even if ts.cl->backend_decl is already 4056 set to a VAR_DECL that doesn't have DECL_CONTEXT yet. 4057 (create_function_arglist): Rework, so that hidden length 4058 arguments for CHARACTER parameters are created together with 4059 the parameters. Resolve ts.cl->backend_decl for CHARACTER 4060 parameters. If the argument is a non-constant length array 4061 or CHARACTER, ensure PARM_DECL has different type than 4062 its DECL_ARG_TYPE. 4063 (generate_local_decl): Call gfc_get_symbol_decl even 4064 for non-referenced non-constant length CHARACTER parameters 4065 after optionally issuing warnings. 4066 * trans-array.c (gfc_trans_array_bounds): Set last stride 4067 to GFC_TYPE_ARRAY_SIZE (type) to initialize it as well. 4068 (gfc_trans_dummy_array_bias): Initialize GFC_TYPE_ARRAY_SIZE (type) 4069 variable as well. 4070 4071 * trans-expr.c (gfc_conv_expr_val): Fix comment typo. 4072 4073 * trans-stmt.c (gfc_trans_simple_do): Fix comment. 4074 40752006-02-04 Roger Sayle <roger@eyesopen.com> 4076 4077 * dependency.c (gfc_check_dependency): Remove unused vars and nvars 4078 arguments. Replace with an "identical" argument. A full array 4079 reference to the same symbol is a dependency if identical is true. 4080 * dependency.h (gfc_check_dependency): Update prototype. 4081 * trans-array.h (gfc_check_dependency): Delete duplicate prototype. 4082 * trans-stmt.c: #include dependency.h for gfc_check_dependency. 4083 (gfc_trans_forall_1): Update calls to gfc_check_dependency. 4084 (gfc_trans_where_2): Likewise. Remove unneeded variables. 4085 (gfc_trans_where_3): New function for simple non-dependent WHEREs. 4086 (gfc_trans_where): Call gfc_trans_where_3 to translate simple 4087 F90-style WHERE statements without internal dependencies. 4088 * Make-lang.in (trans-stmt.o): Depend upon dependency.h. 4089 40902006-02-05 H.J. Lu <hongjiu.lu@intel.com> 4091 4092 PR fortran/26041 4093 PR fortran/26064 4094 * resolve.c (resolve_types): New function. 4095 (resolve_codes): Likewise. 4096 (gfc_resolve): Use them. 4097 40982006-02-05 Roger Sayle <roger@eyesopen.com> 4099 4100 * trans-stmt.c (gfc_evaluate_where_mask): Use LOGICAL*1 for WHERE 4101 masks instead of LOGICAL*4. 4102 41032006-02-05 Jakub Jelinek <jakub@redhat.com> 4104 4105 * resolve.c (resolve_symbol): Initialize constructor_expr to NULL. 4106 41072006-02-04 Thomas Koenig <Thomas.Koenig@online.de> 4108 4109 PR fortran/25075 4110 check.c (identical_dimen_shape): New function. 4111 (check_dot_product): Use identical_dimen_shape() to check sizes 4112 for dot_product. 4113 (gfc_check_matmul): Likewise. 4114 (gfc_check_merge): Check conformance between tsource and fsource 4115 and between tsource and mask. 4116 (gfc_check_pack): Check conformance between array and mask. 4117 41182006-02-03 Steven G. Kargl <kargls@comcast> 4119 Paul Thomas <pault@gcc.gnu.org> 4120 4121 PR fortran/20845 4122 * resolve.c (resolve_symbol): Default initialization of derived type 4123 component reguires the SAVE attribute. 4124 41252006-02-02 Steven G. Kargl <kargls@comcast> 4126 4127 PR fortran/24958 4128 match.c (gfc_match_nullify): Free the list from head not tail. 4129 4130 PR fortran/25072 4131 * match.c (match_forall_header): Fix internal error caused by bogus 4132 gfc_epxr pointers. 4133 4134 41352006-01-31 Thomas Koenig <Thomas.Koenig@online.de> 4136 4137 PR fortran/26039 4138 expr.c (gfc_check_conformance): Reorder error message 4139 to avoid plural. 4140 check.c(gfc_check_minloc_maxloc): Call gfc_check_conformance 4141 for checking arguments array and mask. 4142 (check_reduction): Likewise. 4143 41442006-01-30 Erik Edelmann <eedelman@gcc.gnu.org> 4145 4146 PR fortran/24266 4147 * trans-io.c (set_internal_unit): Check the rank of the 4148 expression node itself instead of its symbol. 4149 41502006-01-29 Paul Thomas <pault@gcc.gnu.org> 4151 4152 PR fortran/18578 4153 PR fortran/18579 4154 PR fortran/20857 4155 PR fortran/20885 4156 * interface.c (compare_actual_formal): Error for INTENT(OUT or INOUT) 4157 if actual argument is not a variable. 4158 41592006-01-28 Paul Thomas <pault@gcc.gnu.org> 4160 4161 PR fortran/17911 4162 * expr.c (gfc_check_assign, gfc_check_pointer_assign): Emit error if 4163 the lvalue is a use associated procedure. 4164 4165 PR fortran/20895 4166 PR fortran/25030 4167 * expr.c (gfc_check_pointer_assign): Emit error if lvalue and rvalue 4168 character lengths are not the same. Use gfc_dep_compare_expr for the 4169 comparison. 4170 * gfortran.h: Add prototype for gfc_dep_compare_expr. 4171 * dependency.h: Remove prototype for gfc_dep_compare_expr. 4172 41732006-01-27 Paul Thomas <pault@gcc.gnu.org> 4174 4175 PR fortran/25964 4176 * resolve.c (resolve_function): Add GFC_ISYM_LOC to the list of 4177 generic_ids exempted from assumed size checking. 4178 41792006-01-27 Jakub Jelinek <jakub@redhat.com> 4180 4181 PR fortran/25324 4182 * Make-lang.in (fortran/scanner.o): Depend on toplev.h. 4183 * lang.opt (fpreprocessed): New option. 4184 * scanner.c: Include toplev.h. 4185 (gfc_src_file, gfc_src_preprocessor_lines): New variables. 4186 (preprocessor_line): Unescape filename if there were any 4187 backslashes. 4188 (load_file): If initial and gfc_src_file is not NULL, 4189 use it rather than opening the file. If gfc_src_preprocessor_lines 4190 has non-NULL elements, pass it to preprocessor_line. 4191 (unescape_filename, gfc_read_orig_filename): New functions. 4192 * gfortran.h (gfc_option_t): Add flag_preprocessed. 4193 (gfc_read_orig_filename): New prototype. 4194 * options.c (gfc_init_options): Clear flag_preprocessed. 4195 (gfc_post_options): If flag_preprocessed, call 4196 gfc_read_orig_filename. 4197 (gfc_handle_option): Handle OPT_fpreprocessed. 4198 * lang-specs.h: Pass -fpreprocessed to f951 if preprocessing 4199 sources. 4200 42012006-01-27 Erik Edelmann <eedelman@gcc.gnu.org> 4202 4203 * symbol.c (free_old_symbol): Fix confusing comment, and add code 4204 to free old_symbol->formal. 4205 42062006-01-26 Paul Thomas <pault@gcc.gnu.org> 4207 4208 PR fortran/25964 4209 * resolve.c (resolve_function): Exclude statement functions from 4210 global reference checking. 4211 4212 PR fortran/25084 4213 PR fortran/20852 4214 PR fortran/25085 4215 PR fortran/25086 4216 * resolve.c (resolve_function): Declare a gfc_symbol to replace the 4217 references through the symtree to the symbol associated with the 4218 function expresion. Give error on reference to an assumed character 4219 length function is defined in an interface or an external function 4220 that is not a dummy argument. 4221 (resolve_symbol): Give error if an assumed character length function 4222 is array-valued, pointer-valued, pure or recursive. Emit warning 4223 that character(*) value functions are obsolescent in F95. 4224 4225 PR fortran/25416 4226 * trans-expr.c (gfc_conv_function_call): The above patch to resolve.c 4227 prevents any assumed character length function call from getting here 4228 except intrinsics such as SPREAD. In this case, ensure that no 4229 segfault occurs from referencing non-existent charlen->length-> 4230 expr_type and provide a backend_decl for the charlen from the charlen 4231 of the first actual argument. 4232 4233 Cure temp name confusion. 4234 * trans-expr.c (gfc_get_interface_mapping_array): Change name of 4235 temporary from "parm" to "ifm" to avoid clash with temp coming from 4236 trans-array.c. 4237 42382006-01-25 Erik Edelmann <eedelman@gcc.gnu.org> 4239 4240 PR fortran/25716 4241 * symbol.c (free_old_symbol): New function. 4242 (gfc_commit_symbols): Use it. 4243 (gfc_commit_symbol): New function. 4244 (gfc_use_derived): Use it. 4245 * gfortran.h: Add prototype for gfc_commit_symbol. 4246 * intrinsic.c (gfc_find_function): Search in 'conversion' 4247 if not found in 'functions'. 4248 (gfc_convert_type_warn): Add a symtree to the new 4249 expression node, and commit the new symtree->n.sym. 4250 * resolve.c (gfc_resolve_index): Make sure typespec is 4251 properly initialized. 4252 42532006-01-23 Paul Thomas <pault@gcc.gnu.org> 4254 4255 PR fortran/25901 4256 * decl.c (get_proc_name): Replace subroutine and function attributes 4257 in "already defined" test by the formal arglist pointer being non-NULL. 4258 4259 Fix regression in testing of admissability of attributes. 4260 * symbol.c (gfc_add_attribute): If the current_attr has non-zero 4261 intent, do not do the check for a dummy being used. 4262 * decl.c (attr_decl1): Add current_attr.intent as the third argument 4263 in the call to gfc_add_attribute. 4264 * gfortran.h: Add the third argument to the prototype for 4265 gfc_add_attribute. 4266 42672006-01-21 Joseph S. Myers <joseph@codesourcery.com> 4268 4269 * gfortranspec.c (lang_specific_driver): Update copyright notice 4270 date. 4271 42722006-01-21 Paul Thomas <pault@gcc.gnu.org> 4273 4274 PR fortran/25124 4275 PR fortran/25625 4276 * decl.c (get_proc_name): If there is an existing 4277 symbol in the encompassing namespace, call errors 4278 if it is a procedure of the same name or the kind 4279 field is set, indicating a type declaration. 4280 4281 PR fortran/20881 4282 PR fortran/23308 4283 PR fortran/25538 4284 PR fortran/25710 4285 * decl.c (add_global_entry): New function to check 4286 for existing global symbol with this name and to 4287 create new one if none exists. 4288 (gfc_match_entry): Call add_global_entry before 4289 matching argument lists for subroutine and function 4290 entries. 4291 * gfortran.h: Prototype for existing function, 4292 global_used. 4293 * resolve.c (resolve_global_procedure): New function 4294 to check global symbols for procedures. 4295 (resolve_call, resolve_function): Calls to this 4296 new function for non-contained and non-module 4297 procedures. 4298 * match.c (match_common): Add check for existing 4299 global symbol, creat one if none exists and emit 4300 error if there is a clash. 4301 * parse.c (global_used): Remove static and use the 4302 gsymbol name rather than the new_block name, so that 4303 the function can be called from resolve.c. 4304 (parse_block_data, parse_module, add_global_procedure): 4305 Improve checks for existing gsymbols. Emit error if 4306 already defined or if references were to another type. 4307 Set defined flag. 4308 4309 PR fortran/PR24276 4310 * trans-expr.c (gfc_conv_aliased_arg): New function called by 4311 gfc_conv_function_call that coverts an expression for an aliased 4312 component reference to a derived type array into a temporary array 4313 of the same type as the component. The temporary is passed as an 4314 actual argument for the procedure call and is copied back to the 4315 derived type after the call. 4316 (is_aliased_array): New function that detects an array reference 4317 that is followed by a component reference. 4318 (gfc_conv_function_call): Detect an aliased actual argument with 4319 is_aliased_array and convert it to a temporary and back again 4320 using gfc_conv_aliased_arg. 4321 43222006-01-19 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 4323 4324 * gfortranspec.c: Update copyright years. 4325 * trans.c: Likewise. 4326 * trans-array.c: Likewise. 4327 * trans-array.h: Likewise. 4328 * trans-decl.c: Likewise. 4329 * trans-stmt.c: Likewise. 4330 * trans-stmt.h: Likewise. 4331 * trans-types.c: Likewise. 4332 43332006-01-18 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 4334 4335 PR fortran/18540 4336 PR fortran/18937 4337 * gfortran.h (BBT_HEADER): Move definition up. 4338 (gfc_st_label): Add BBT_HEADER, remove 'prev' and 'next'. 4339 * io.c (format_asterisk): Adapt initializer. 4340 * resolve.c (resolve_branch): Allow FORTRAN 66 cross-block GOTOs 4341 as extension. 4342 (warn_unused_label): Take gfc_st_label label as argument, adapt to 4343 new data structure. 4344 (gfc_resolve): Adapt call to warn_unused_label. 4345 * symbol.c (compare_st_labels): New function. 4346 (gfc_free_st_label, free_st_labels, gfc_get_st_label): Convert to 4347 using balanced binary tree. 4348 * decl.c (match_char_length, gfc_match_old_kind_spec): Do away 4349 with 'cnt'. 4350 (warn_unused_label): Adapt to binary tree. 4351 * match.c (gfc_match_small_literal_int): Only set cnt if non-NULL. 4352 * primary.c (match_kind_param): Do away with cnt. 4353 43542006-01-18 Paul Thomas <pault@gcc.gnu.org> 4355 4356 PR fortran/20869 4357 PR fortran/20875 4358 PR fortran/25024 4359 * symbol.c (check_conflict): Add pointer valued elemental 4360 functions and internal procedures with the external attribute 4361 to the list of conflicts. 4362 (gfc_add_attribute): New catch-all function to perform the 4363 checking of symbol attributes for attribute declaration 4364 statements. 4365 * decl.c (attr_decl1): Call gfc_add_attribute for each of - 4366 (gfc_match_external, gfc_match_intent, gfc_match_intrinsic, 4367 gfc_match_pointer, gfc_match_dimension, gfc_match_target): 4368 Remove spurious calls to checks in symbol.c. Set the 4369 attribute directly and use the call to attr_decl() for 4370 checking. 4371 * gfortran.h: Add prototype for gfc_add_attribute. 4372 4373 PR fortran/25785 4374 * resolve.c (resolve_function): Exclude PRESENT from assumed size 4375 argument checking. Replace strcmp's with comparisons with generic 4376 codes. 4377 43782006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 4379 4380 * gfortranspec.c (lang_specific_spec_functions): Remove. 4381 43822006-01-16 Richard Guenther <rguenther@suse.de> 4383 4384 * trans-stmt.c (gfc_trans_if_1): Use fold_buildN and build_int_cst. 4385 (gfc_trans_arithmetic_if): Likewise. 4386 (gfc_trans_simple_do): Likewise. 4387 (gfc_trans_do): Likewise. 4388 (gfc_trans_do_while): Likewise. 4389 (gfc_trans_logical_select): Likewise. 4390 (gfc_trans_forall_loop): Likewise. 4391 (generate_loop_for_temp_to_lhs): Likewise. 4392 (generate_loop_for_rhs_to_temp): Likewise. 4393 (gfc_trans_allocate): Likewise. 4394 * trans.c (gfc_add_expr_to_block): Do not fold expr again. 4395 43962006-01-16 Richard Guenther <rguenther@suse.de> 4397 4398 * trans-expr.c (gfc_conv_function_call): Use fold_build2. 4399 * trans-stmt.c (gfc_trans_goto): Likewise. Use build_int_cst. 4400 * trans.c (gfc_trans_runtime_check): Don't fold the condition 4401 again. 4402 44032006-01-13 Steven G. Kargl <kargls@comcast.net> 4404 4405 PR fortran/25756 4406 * symbol.c (gfc_free_st_label): Give variable meaningful name. Remove 4407 unneeded parenthesis. Fix-up the head of the list (2 lines gleaned 4408 from g95). 4409 44102006-01-13 Diego Novillo <dnovillo@redhat.com> 4411 4412 * trans.c (gfc_add_expr_to_block): Do not fold tcc_statement 4413 nodes. 4414 44152006-01-11 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> 4416 4417 * parse.c (next_fixed): Remove superfluous string concatenation. 4418 44192006-01-11 Bernhard Fischer <rep.nop@aon.at> 4420 4421 PR fortran/25486 4422 * scanner.c (load_line): use maxlen to determine the line-length used 4423 for padding lines in fixed form. 4424 44252006-01-11 Paul Thomas <pault@gcc.gnu.org> 4426 4427 PR fortran/25730 4428 * trans-types.c (copy_dt_decls_ifequal): Copy backend decl for 4429 character lengths. 4430 44312006-01-09 Andrew Pinski <pinskia@physics.uc.edu> 4432 4433 fortran/24936 4434 * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Use fold_convert 4435 to avoid type mismatch. 4436 44372006-01-09 Andrew Pinski <pinskia@physics.uc.edu> 4438 4439 PR fortran/21977 4440 * trans-decl.c (gfc_generate_function_code): Move the NULLing of 4441 current_fake_result_decl down to below generate_local_vars. 4442 44432006-01-09 Feng Wang <fengwang@nudt.edu.cn> 4444 4445 PR fortran/12456 4446 * trans-expr.c (gfc_to_single_character): New function that converts 4447 string to single character if its length is 1. 4448 (gfc_build_compare_string):New function that compare string and handle 4449 single character specially. 4450 (gfc_conv_expr_op): Use gfc_build_compare_string. 4451 (gfc_trans_string_copy): Use gfc_to_single_character. 4452 * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Use 4453 gfc_build_compare_string. 4454 * trans.h (gfc_build_compare_string): Add prototype. 4455 44562006-01-09 Feng Wang <fengwang@nudt.edu.cn> 4457 4458 * simplify.c (gfc_simplify_char): Use UCHAR_MAX instead of literal 4459 constant. 4460 (gfc_simplify_ichar): Get the result from unsinged char and in the 4461 range 0 to UCHAR_MAX instead of CHAR_MIN to CHAR_MAX. 4462 44632006-01-08 Erik Edelmann <eedelman@gcc.gnu.org> 4464 4465 PR fortran/25093 4466 * resolve.c (resolve_fntype): Check that PUBLIC functions 4467 aren't of PRIVATE type. 4468 44692006-01-07 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> 4470 4471 * decl.c (gfc_match_function_decl): Correctly error out in case of 4472 omitted function argument list. 4473 44742006-01-07 Paul Thomas <pault@gcc.gnu.org> 4475 4476 PR fortran/22146 4477 * trans-array.c (gfc_reverse_ss): Remove static attribute. 4478 (gfc_walk_elemental_function_args): Replace gfc_expr * argument for 4479 the function call with the corresponding gfc_actual_arglist*. Change 4480 code accordingly. 4481 (gfc_walk_function_expr): Call to gfc_walk_elemental_function_args 4482 now requires the actual argument list instead of the expression for 4483 the function call. 4484 * trans-array.h: Modify the prototype for gfc_walk_elemental_function_args 4485 and provide a prototype for gfc_reverse_ss. 4486 * trans-stmt.h (gfc_trans_call): Add the scalarization code for the case 4487 where an elemental subroutine has array valued actual arguments. 4488 4489 PR fortran/25029 4490 PR fortran/21256 4491 PR fortran/20868 4492 PR fortran/20870 4493 * resolve.c (check_assumed_size_reference): New function to check for upper 4494 bound in assumed size array references. 4495 (resolve_assumed_size_actual): New function to do a very restricted scan 4496 of actual argument expressions of those procedures for which incomplete 4497 assumed size array references are not allowed. 4498 (resolve_function, resolve_call): Switch off assumed size checking of 4499 actual arguments, except for elemental procedures and intrinsic 4500 inquiry functions, in some circumstances. 4501 (resolve_variable): Call check_assumed_size_reference. 4502 45032006-01-05 Jerry DeLisle <jvdelisle@gcc.gnu.org> 4504 4505 PR fortran/24268 4506 * io.c (next_char_not_space): New function that returns the next 4507 character that is not white space. 4508 (format_lex): Use the new function to skip whitespace within 4509 a format string. 4510 45112006-01-05 Erik Edelmann <eedelman@gcc.gnu.org> 4512 4513 PR fortran/23675 4514 * expr.c (gfc_expr_set_symbols_referenced): New function. 4515 * gfortran.h: Add a function prototype for it. 4516 * resolve.c (resolve_function): Use it for 4517 use associated character functions lengths. 4518 * expr.c, gfortran.h, resolve.c: Updated copyright years. 4519 45202006-01-03 Steven G. Kargl <kargls@comcast.net> 4521 4522 PR fortran/25101 4523 * resolve.c (resolve_forall_iterators): Check for scalar variables; 4524 Check stride is nonzero. 4525 45262006-01-02 Steven G. Kargl <kargls@comcast.net> 4527 4528 PR fortran/24640 4529 * parse.c (next_free): Check for whitespace after the label. 4530 * match.c (gfc_match_small_literal_int): Initialize cnt variable. 4531 45322006-01-01 Steven G. Kargl <kargls@comcast.net> 4533 4534 * ChangeLog: Split previous years into ... 4535 * ChangeLog-2002: here. 4536 * ChangeLog-2003: here. 4537 * ChangeLog-2004: here. 4538 * ChangeLog-2005: here. 4539 4540 4541Copyright (C) 2006 Free Software Foundation, Inc. 4542 4543Copying and distribution of this file, with or without modification, 4544are permitted in any medium without royalty provided the copyright 4545notice and this notice are preserved. 4546