12011-12-31 Thomas König <tkoenig@gcc.gnu.org> 2 3 PR fortran/51502 4 * expr.c (gfc_check_vardef_context): When determining 5 implicit pure status, also check for variable definition 6 context. Walk up namespaces until a procedure is 7 found to reset the implict pure attribute. 8 * resolve.c (gfc_implicit_pure): Walk up namespaces 9 until a procedure is found. 10 112011-12-29 Thomas Koenig <tkoenig@gcc.gnu.org> 12 13 * dependency.c (gfc_dep_compare_functions): Document 14 new behavior for REALs and complex. Add comment to cases 15 where only INTEGERs are handled. Compare REAL and COMPLEX 16 constants, returning 0 and -2 only. Add assert to make 17 sure that only integer constants are compared. 18 192011-12-19 Tobias Burnus <burnus@net-b.de> 20 21 PR fortran/51605 22 * parse.c (gfc_fixup_sibling_symbols): Regard FL_LABEL as 23 local symbol. 24 252011-12-19 Tobias Burnus <burnus@net-b.de> 26 27 PR fortran/51605 28 * match.c (gfc_match_select_type): Handle 29 scalar polymophic coarrays. 30 (select_type_set_tmp, ): Ditto; avoid segfault if !class_ok. 31 * primary.c (gfc_match_rvalue): Avoid segfault if !class_ok. 32 * resolve.c (resolve_select_type): Ditto. 33 (resolve_assoc_var): Fix setting the TARGET attribute for 34 polymorphic selectors which are pointers. 35 362011-12-19 Tobias Burnus <burnus@net-b.de> 37 38 * check.c (coarray_check): Add class ref if needed. 39 * resolve.c (resolve_fl_var_and_proc, 40 resolve_fl_derived0, resolve_symbol): Fix checking 41 for BT_CLASS. 42 432011-12-15 Paul Thomas <pault@gcc.gnu.org> 44 45 * trans-expr.c (gfc_walk_function_expr): Detect elemental 46 procedure components as well as elemental procedures. 47 * trans-array.c (gfc_conv_procedure_call): Ditto. 48 * trans-decl.c (gfc_trans_deferred_vars): Correct erroneous 49 break for class pointers to continue. 50 512011-12-15 Toon Moene <toon@moene.org> 52 53 PR fortran/51310 54 * resolve.c (build_default_init_expr): Allow non-allocatable, 55 non-compile-time-constant-shape arrays to have a default 56 initializer. 57 * invoke.texi: Delete the restriction on automatic arrays not 58 being initialized by -finit-<type>=<constant>. 59 602011-12-15 Tobias Burnus <burnus@net-b.de> 61 62 PR fortran/51550 63 PR fortran/47545 64 PR fortran/49050 65 PR fortran/51075 66 * resolve.c (resolve_fl_derived0): Print not-implemented error 67 for deferred-length character components. 68 692011-12-15 Tobias Burnus <burnus@net-b.de> 70 71 * primary.c (gfc_match_varspec): Match array spec for 72 polymorphic coarrays. 73 (gfc_match_rvalue): If a symbol of unknown flavor has a 74 codimension, mark it as a variable. 75 * simplify.c (gfc_simplify_image_index): Directly call 76 simplify_cobound. 77 * trans-intrinsic.c (trans_this_image): Fix handling of 78 corank = 1 arrays. 79 802011-12-15 Jakub Jelinek <jakub@redhat.com> 81 82 PR debug/51517 83 * trans-decl.c (gfc_get_symbol_decl): Don't set DECL_INITAL on span. 84 (gfc_trans_deferred_vars): Instead add its runtime initialization 85 here. 86 872011-12-11 Tobias Burnus <burnus@net-b.de> 88 89 PR fortran/50923 90 * trans-decl.c (generate_local_decl): Set TREE_NO_WARNING only 91 if the front end has printed a warning. 92 (gfc_generate_function_code): Fix unset-result warning. 93 942011-12-11 Paul Thomas <pault@gcc.gnu.org> 95 Tobias Burnus <burnus@gcc.gnu.org> 96 97 PR fortran/41539 98 PR fortran/43214 99 PR fortran/43969 100 PR fortran/44568 101 PR fortran/46356 102 PR fortran/46990 103 PR fortran/49074 104 * interface.c (symbol_rank): Return the rank of the _data 105 component of class objects. 106 (compare_parameter): Also compare the derived type of the class 107 _data component for type mismatch. Similarly, return 1 if the 108 formal and _data ranks match. 109 (compare_actual_formal): Do not compare storage sizes for class 110 expressions. It is an error if an actual class array, passed to 111 a formal class array is not full. 112 * trans-expr.c (gfc_class_data_get, gfc_class_vptr_get, 113 gfc_vtable_field_get, gfc_vtable_hash_get, gfc_vtable_size_get, 114 gfc_vtable_extends_get, gfc_vtable_def_init_get, 115 gfc_vtable_copy_get): New functions for class API. 116 (gfc_conv_derived_to_class): For an array reference in an 117 elemental procedure call retain the ss to provide the 118 scalarized array reference. Moved in file. 119 (gfc_conv_class_to_class): New function. 120 (gfc_conv_subref_array_arg): Use the type of the 121 class _data component as a basetype. 122 (gfc_conv_procedure_call): Ensure that class array expressions 123 have both the _data reference and an array reference. Use 124 gfc_conv_class_to_class to handle class arrays for elemental 125 functions in scalarized loops, class array elements and full 126 class arrays. Use a call to gfc_conv_subref_array_arg in order 127 that the copy-in/copy-out for passing class arrays to derived 128 type arrays occurs correctly. 129 (gfc_conv_expr): If it is missing, add the _data component 130 between a class object or component and an array reference. 131 (gfc_trans_class_array_init_assign): New function. 132 (gfc_trans_class_init_assign): Call it for array expressions. 133 * trans-array.c (gfc_add_loop_ss_code): Do not use a temp for 134 class scalars since their size will depend on the dynamic type. 135 (build_class_array_ref): New function. 136 (gfc_conv_scalarized_array_ref): Call build_class_array_ref. 137 (gfc_array_init_size): Add extra argument, expr3, that represents 138 the SOURCE argument. If present,use this for the element size. 139 (gfc_array_allocate): Also add argument expr3 and use it when 140 calling gfc_array_init_size. 141 (structure_alloc_comps): Enable class arrays. 142 * class.c (gfc_add_component_ref): Carry over the derived type 143 of the _data component. 144 (gfc_add_class_array_ref): New function. 145 (class_array_ref_detected): New static function. 146 (gfc_is_class_array_ref): New function that calls previous. 147 (gfc_is_class_scalar_expr): New function. 148 (gfc_build_class_symbol): Throw not implemented error for 149 assumed size class arrays. Remove error that prevents 150 CLASS arrays. 151 (gfc_build_class_symbol): Prevent pointer/allocatable conflict. 152 Also unset codimension. 153 (gfc_find_derived_vtab): Make 'copy' elemental and set the 154 intent of the arguments accordingly.: 155 * trans-array.h: Update prototype for gfc_array_allocate. 156 * array.c (gfc_array_dimen_size): Return failure if class expr. 157 (gfc_array_size): Likewise. 158 * gfortran.h: New prototypes for gfc_add_class_array_ref, 159 gfc_is_class_array_ref and gfc_is_class_scalar_expr. 160 * trans-stmt.c (trans_associate_var): Exclude class targets 161 from test. Move the allocation of the _vptr to an earlier time 162 for class objects. 163 (trans_associate_var): Assign the descriptor directly for class 164 arrays. 165 (gfc_trans_allocate): Add expr3 to gfc_array_allocate arguments. 166 Convert array element references into sections. Do not invoke 167 gfc_conv_procedure_call, use gfc_trans_call instead. 168 * expr.c (gfc_get_corank): Fix for BT_CLASS. 169 (gfc_is_simply_contiguous): Exclude class from test. 170 * trans.c (gfc_build_array_ref): Include class array refs. 171 * trans.h: Include prototypes for class API functions that are 172 new in trans-expr. Define GFC_DECL_CLASS(node). 173 * resolve.c (check_typebound_baseobject ): Remove error for 174 non-scalar base object. 175 (resolve_allocate_expr): Ensure that class _data component is 176 present. If array, call gfc_expr_to_intialize. 177 (resolve_select): Remove scalar error for SELECT statement as a 178 temporary measure. 179 (resolve_assoc_var): Update 'target' (aka 'selector') as 180 needed. Ensure that the target expression has the right rank. 181 (resolve_select_type): Ensure that target expressions have a 182 valid locus. 183 (resolve_allocate_expr, resolve_fl_derived0): Fix for BT_CLASS. 184 * trans-decl.c (gfc_get_symbol_decl): Set GFC_DECL_CLASS, where 185 appropriate. 186 (gfc_trans_deferred_vars): Get class arrays right. 187 * match.c(select_type_set_tmp): Add array spec to temporary. 188 (gfc_match_select_type): Allow class arrays. 189 * check.c (array_check): Ensure that class arrays have refs. 190 (dim_corank_check, dim_rank_check): Retrun success if class. 191 * primary.c (gfc_match_varspec): Fix for class arrays and 192 co-arrays. Make sure that class _data is present. 193 (gfc_match_rvalue): Handle class arrays. 194 *trans-intrinsic.c (gfc_conv_intrinsic_size): Add class array 195 reference. 196 (gfc_conv_allocated): Add _data component to class expressions. 197 (gfc_add_intrinsic_ss_code): ditto. 198 * simplify.c (simplify_cobound): Fix for BT_CLASS. 199 (simplify_bound): Return NULL for class arrays. 200 (simplify_cobound): Obtain correct array_spec. Use cotype as 201 appropriate. Use arrayspec for bounds. 202 2032011-12-11 Thomas Koenig <tkoenig@gcc.gnu.org> 204 205 PR fortran/50690 206 * frontend-passes.c (in_omp_workshare): New variable. 207 (cfe_expr_0): Don't eliminiate common function if it would put 208 the variable immediately into a WORKSHARE construct. 209 (optimize_namespace): Set in_omp_workshare. 210 (gfc_code_walker): Keep track of OMP PARALLEL and OMP WORKSHARE 211 constructs. 212 2132011-12-10 Tobias Burnus <burnus@net-b.de> 214 215 * trans-decl.c (add_argument_checking): Fix syntax. 216 2172011-12-10 Tobias Burnus <burnus@net-b.de> 218 Kai Tietz <ktietz@redhat.com> 219 220 * trans-decl.c (add_argument_checking): Check ts.deferred earlier. 221 * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use %ld with long. 222 2232011-12-08 Tobias Burnus <burnus@net-b.de> 224 225 PR fortran/50815 226 * trans-decl.c (add_argument_checking): Skip bound checking 227 for deferred-length strings. 228 2292011-12-08 Tobias Burnus <burnus@net-b.de> 230 231 PR fortran/51378 232 * symbol.c (gfc_find_component): Fix access check of parent 233 components. 234 2352011-12-08 Tobias Burnus <burnus@net-b.de> 236 237 PR fortran/51407 238 * io/transfer.c (require_numeric_type): New function. 239 (formatted_transfer_scalar_read, formatted_transfer_scalar_write): 240 Use it, allow BOZ edit descriptors with F2008. 241 2422011-12-08 Tobias Burnus <burnus@net-b.de> 243 244 PR fortran/51448 245 * fortran/trans-array.c (get_std_lbound): Fix handling of 246 conversion functions. 247 2482011-12-08 Toon Moene <toon@moene.org> 249 250 PR fortran/51310 251 * invoke.texi: Itemize the cases for which 252 -finit-<type>=<constant> doesn't work. 253 2542011-12-06 Tobias Burnus <burnus@net-b.de> 255 256 PR fortran/51435 257 * expr.c (gfc_has_default_initializer): Fix handling of 258 DT with initialized pointer components. 259 2602011-12-05 Thomas Koenig <tkoenig@gcc.gnu.org> 261 262 PR fortran/51338 263 * dependency.c (are_identical_variables): Handle case where 264 end fields of substring references are NULL. 265 2662011-12-04 Tobias Burnus <burnus@net-b.de> 267 268 PR fortran/51383 269 * resolve.c (find_array_spec): Use ref->u.c.component 270 directly without starting from ts.u.derived. 271 2722011-12-03 Tobias Burnus <burnus@net-b.de> 273 274 PR fortran/48887 275 * match.c (select_type_set_tmp): Don't set allocatable/pointer 276 attribute. 277 * class.c (gfc_build_class_symbol): Handle 278 attr.select_type_temporary. 279 2802011-12-03 Tobias Burnus <burnus@net-b.de> 281 282 PR fortran/50684 283 * check.c (variable_check): Fix intent(in) check. 284 2852011-12-03 Tobias Burnus <burnus@net-b.de> 286 287 * check.c (gfc_check_move_alloc): Allow nonpolymorphic 288 FROM with polymorphic TO. 289 * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle 290 nonpolymorphic FROM with polymorphic TO. 291 2922011-12-01 Janne Blomqvist <jb@gcc.gnu.org> 293 294 * module.c (dt_lower_string): Make static. 295 (dt_upper_string): Likewise. 296 2972011-12-01 Janne Blomqvist <jb@gcc.gnu.org> 298 299 PR fortran/25708 300 * module.c (parse_string): Read string into resizable array 301 instead of parsing twice and seeking. 302 (peek_atom): New implementation avoiding seeks. 303 (require_atom): Save and set column and line explicitly for error 304 handling. 305 3062011-12-01 Janne Blomqvist <jb@gcc.gnu.org> 307 308 * misc.c (gfc_open_file): Don't call stat. 309 3102011-11-29 Thomas Koenig <tkoenig@gcc.gnu.org> 311 312 PR fortran/40958 313 * module.c (prev_module_line): New variable. 314 (prev_module_column): New variable. 315 (prev_character): New variable. 316 (module_char): Update the new variables. 317 (module_unget_char): New function. 318 (parse_string): Use module_unget_char. 319 (parse_integer): Likewise. 320 (parse_name): Likewise. 321 3222011-11-29 Tobias Burnus <burnus@net-b.de> 323 324 PR fortran/51306 325 PR fortran/48700 326 * check.c (gfc_check_move_alloc): Make sure that from/to 327 are both polymorphic or neither. 328 * trans-intrinsic.c (conv_intrinsic_move_alloc): Cleanup, 329 generate inline code. 330 3312011-11-28 Tobias Burnus <burnus@net-b.de> 332 Steven G. Kargl <kargl@gcc.gnu.org> 333 334 PR fortran/51308 335 * symbol.c (check_conflict): Ignore BIND(C) + PARAMETER 336 conflicts for ISO_C_BINDING variables. 337 (gen_special_c_interop_ptr): Don't mark c_ptr_null/c_funptr_null 338 as SAVE. 339 3402011-11-25 Mikael Morin <mikael@gcc.gnu.org> 341 342 * trans-array.c (set_loop_bounds): Remove dead conditions. 343 3442011-11-25 Mikael Morin <mikael@gcc.gnu.org> 345 346 PR fortran/51250 347 PR fortran/43829 348 * trans-array.c (gfc_trans_create_temp_array): Get dimension from 349 the right gfc_ss struct. 350 3512011-11-25 Tobias Burnus <burnus@net-b.de> 352 353 PR fortran/50408 354 * trans-decl.c (gfc_get_module_backend_decl): Also copy 355 ts.u.derived from the gsym if the ts.type is BT_CLASS. 356 (gfc_get_extern_function_decl): Copy also the backend_decl 357 for the symbol's ts.u.{derived,cl} from the gsym. 358 * trans-types.c (gfc_copy_dt_decls_ifequal): Directly 359 return if "from" and "to" are the same. 360 3612011-11-25 Tobias Burnus <burnus@net-b.de> 362 363 PR fortran/51302 364 * trans-stmt.c (gfc_trans_simple_do): Add a fold_convert. 365 3662011-11-24 Tobias Burnus <burnus@net-b.de> 367 368 PR fortran/51218 369 * resolve.c (pure_subroutine): If called subroutine is 370 impure, unset implicit_pure. 371 (resolve_function): Move impure check to simplify code. 372 3732011-11-19 Tobias Burnus <burnus@net-b.de> 374 375 PR fortran/51207 376 * class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER 377 and hence as TREE_READONLY; add subroutine attribute to 378 __copy_ procedure. 379 380 PR fortran/50640 381 * trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7. 382 * trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab as 383 GFC_DECL_PUSH_TOPLEVEL. 384 (gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there. 385 (build_function_decl): Push __copy_ procedure to the toplevel. 386 3872011-11-16 Tobias Burnus <burnus@net-b.de> 388 389 PR fortran/39427 390 PR fortran/37829 391 * decl.c (match_data_constant, match_data_constant, variable_decl, 392 gfc_match_decl_type_spec, access_attr_decl, 393 check_extended_derived_type, gfc_match_derived_decl, 394 gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal 395 with DT constructors. 396 * gfortran.h (gfc_find_dt_in_generic, 397 gfc_convert_to_structure_constructor): New function prototypes. 398 * interface.c (check_interface0, check_interface1, 399 gfc_search_interface): Ignore DT constructors in generic list. 400 * match.h (gfc_match_structure_constructor): Update prototype. 401 * match.c (match_derived_type_spec): Ensure that one uses the DT 402 not the generic function. 403 * module.c (MOD_VERSION): Bump. 404 (dt_lower_string, dt_upper_string): New functions. 405 (find_use_name_n, find_use_operator, compare_true_names, 406 find_true_name, add_true_name, fix_mio_expr, load_needed, 407 read_module, write_dt_extensions, write_symbol): Changes to deal with 408 different symtree vs. sym names. 409 (create_derived_type): Create also generic procedure. 410 * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and generic 411 function as the same. 412 * primary.c (gfc_convert_to_structure_constructor): New function. 413 (gfc_match_structure_constructor): Restructured; calls 414 gfc_convert_to_structure_constructor. 415 (build_actual_constructor, gfc_match_rvalue): Update for DT generic 416 functions. 417 * resolve.c (resolve_formal_arglist, resolve_structure_cons, 418 is_illegal_recursion, resolve_generic_f, resolve_variable, 419 resolve_fl_variable_derived, resolve_fl_derived0, 420 resolve_symbol): Handle DT and DT generic constructors. 421 * symbol.c (gfc_use_derived, gfc_undo_symbols, 422 gen_special_c_interop_ptr, gen_cptr_param, 423 generate_isocbinding_symbol, gfc_get_derived_super_type): Handle 424 derived-types, which are hidden in the generic type. 425 (gfc_find_dt_in_generic): New function 426 * trans-array.c (gfc_conv_array_initializer): Replace FL_PARAMETER 427 expr by actual value. 428 * trans-decl.c (gfc_get_module_backend_decl, gfc_trans_use_stmts): 429 Ensure that we use the DT and not the generic function. 430 * trans-types.c (gfc_get_derived_type): Ensure that we use the DT 431 and not the generic procedure. 432 4332011-11-14 Tobias Burnus <burnus@net-b.de> 434 435 PR fortran/51073 436 * trans-decl.c (generate_coarray_sym_init): Handle zero-sized arrays. 437 4382011-11-09 Tobias Burnus <burnus@net-b.de> 439 440 * symbol.c (clear_sym_mark, traverse_ns): Remove functions. 441 (count_st_nodes, do_traverse_symtree, fill_st_vector): New functions. 442 (gfc_traverse_symtree, gfc_traverse_ns): Call do_traverse_symtree. 443 4442011-11-09 Janne Blomqvist <jb@gcc.gnu.org> 445 446 PR libfortran/50016 447 * gfortran.texi (Data consistency and durability): New section. 448 4492011-11-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 450 451 PR fortran/50540 452 * resolve.c (resolve_forall_iterators): Transform internal errors 453 to normal errors. 454 4552011-11-09 Janus Weil <janus@gcc.gnu.org> 456 457 PR fortran/50960 458 * class.c (gfc_find_derived_vtab): Make the vtab symbols FL_PARAMETER. 459 * expr.c (gfc_simplify_expr): Prevent vtabs from being replaced with 460 their value. 461 * resolve.c (resolve_values): Use-associated symbols do not need to 462 be resolved again. 463 (resolve_fl_parameter): Make sure the symbol has a value. 464 4652011-11-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 466 467 PR fortran/38718 468 * intrinsic.c (add_functions): Allow dreal simplification. 469 * intrinsic.h (gfc_simplify_dreal): New prototype. 470 * simplify.c (gfc_simplify_dreal): New function. 471 4722011-11-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 473 474 PR fortran/21881 475 * trans-types.c (gfc_get_dtype): Issue a fatal error instead of 476 an internal error. 477 4782011-11-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 479 480 PR fortran/50404 481 * io.c (gfc_resolve_close): CLOSE requires a UNIT. 482 4832011-11-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 484 485 PR fortran/50409 486 * expr.c (gfc_simplify_expr): Substrings can't have negative 487 length. 488 4892011-11-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 490 491 PR fortran/50334 492 * invoke.texi (-finit-*): Document interaction with 493 -Wuninitialized. 494 4952011-11-07 François-Xavier Coudert <fxcoudert@gcc.gnu.org> 496 497 PR libfortran/49188 498 PR libfortran/49336 499 * invoke.texi: Fix documentation of fsign-zero option. Remove 500 contractions. 501 * intrinsic.texi: Fix ATAN2 documentation for signed zeros. 502 Remove contractions. 503 * gfortran.texi: Remove contractions. 504 5052011-11-07 Janus Weil <janus@gcc.gnu.org> 506 507 PR fortran/50919 508 * class.c (add_proc_comp): Don't add non-overridable procedures to the 509 vtable. 510 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine): 511 Don't generate a dynamic _vptr call for non-overridable procedures. 512 5132011-11-07 Janne Blomqvist <jb@gcc.gnu.org> 514 515 * intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock 516 and time are part of the C standard library. 517 5182011-11-06 Janus Weil <janus@gcc.gnu.org> 519 520 * gfortran.h (gfc_extend_expr): Modified prototype. 521 * interface.c (gfc_extend_expr): Return 'match' instead of 'gfc_try'. 522 Remove argument 'real_error'. 523 * resolve.c (resolve_operator): Modified call to 'gfc_extend_expr'. 524 5252011-11-06 Andrew MacLeod <amacleod@redhat.com> 526 Aldy Hernandez <aldyh@redhat.com> 527 528 Merged from cxx-mem-model. 529 530 * types.def: (BT_SIZE, BT_CONST_VOLATILE_PTR, BT_FN_VOID_INT, 531 BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT, 532 BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR, 533 BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT, 534 BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, 535 BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT, 536 BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT): New types. 537 5382011-11-04 Mikael Morin <mikael@gcc.gnu.org> 539 540 PR fortran/43829 541 * trans-array.c (gfc_conv_expr_descriptor): Accept the inline intrinsic 542 case in the assertion. 543 * trans-intrinsic (enter_nested_loop): New function. 544 (gfc_conv_intrinsic_arith): Support non-scalar cases. 545 (nest_loop_dimension, walk_inline_intrinsic_arith): New functions. 546 (walk_inline_intrinsic_function): Handle sum and product. 547 (gfc_inline_intrinsic_function_p): Ditto. 548 * trans.h (gfc_get_loopinfo): New macro. 549 5502011-11-04 Mikael Morin <mikael@gcc.gnu.org> 551 552 * trans-intrinsic.c (gfc_conv_intrinsic_arith): Introduce parent 553 expression variable. Use it. 554 5552011-11-04 Mikael Morin <mikael@gcc.gnu.org> 556 557 * trans-intrinsic.c (gfc_conv_intrinsic.c): Introduce current loop 558 pointer. Use it. 559 5602011-11-04 Mikael Morin <mikael@gcc.gnu.org> 561 562 * trans-intrinsic.c (gfc_conv_intrinsic_arith): Small argument handling 563 cleanup. 564 5652011-11-04 Mikael Morin <mikael@gcc.gnu.org> 566 567 * trans-intrinsic.c (gfc_conv_intrinsic_arith): Update conditions. 568 5692011-11-04 Mikael Morin <mikael@gcc.gnu.org> 570 571 * frontend-passes.c (cfe_register_funcs): Return early in the case 572 of an inline intrinsic function. 573 (optimize_binop_array_assignment): Skip optimization in the case of 574 an inline intrinsic function. 575 5762011-11-04 Mikael Morin <mikael@gcc.gnu.org> 577 578 * array.c (match_subscript): Skip whitespaces before setting locus. 579 * matchexp.c (match_level_1): Ditto. 580 5812011-11-04 Mikael Morin <mikael@gcc.gnu.org> 582 583 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Set loop's 584 temporary rank to the loop rank. Mark ss chains for multiple loop 585 if necessary. Use gfc_trans_scalarized_loop_boundary to end one loop 586 and start another. 587 5882011-11-04 Mikael Morin <mikael@gcc.gnu.org> 589 590 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set loop's 591 temporary rank to the loop rank. Mark ss chains for multiple loop 592 if necessary. Use gfc_trans_scalarized_loop_boundary to end one loop 593 and start another. 594 5952011-11-04 Mikael Morin <mikael@gcc.gnu.org> 596 597 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Don't calculate 598 offset twice in generated code. 599 6002011-11-04 Mikael Morin <mikael@gcc.gnu.org> 601 602 * trans-expr.c (gfc_conv_procedure_call): Handle temporaries for 603 arguments to elemental calls. 604 * trans-stmt.c (replace_ss): New function. 605 (gfc_conv_elemental_dependencies): Remove temporary loop handling. 606 Create a new ss for the temporary and replace the original one with it. 607 Remove fake array references. Recalculate all offsets. 608 6092011-11-04 Mikael Morin <mikael@gcc.gnu.org> 610 611 * trans-array.h (gfc_free_ss, gfc_set_delta): New prototypes. 612 * trans-array.c (gfc_free_ss): Remove forward declaration. 613 Make non-static. 614 (set_delta, gfc_set_delta): Remove forward declaration. 615 Make non-static and rename the former to the later. Update uses. 616 6172011-11-03 Mikael Morin <mikael@gcc.gnu.org> 618 619 * trans.h (gfc_inline_intrinsic_function_p): Move prototype... 620 * gfortran.h (gfc_inline_intrinsic_function_p): ... here. 621 * dependency.c (gfc_check_argument_var_dependency): Check dependencies 622 of inline intrinsics' arguments. 623 6242011-11-03 Mikael Morin <mikael@gcc.gnu.org> 625 626 * trans-array.c (gfc_trans_preloop_setup): New pointers to outer 627 dimension's ss and loop. Use them. 628 6292011-11-03 Mikael Morin <mikael@gcc.gnu.org> 630 631 * trans-array.c (outermost_loop): New function. 632 (gfc_trans_array_constructor, gfc_set_vector_loop_bounds, 633 gfc_add_loop_ss_code): Put generated code out of the outermost loop. 634 6352011-11-03 Mikael Morin <mikael@gcc.gnu.org> 636 637 * trans-array.c (constant_array_constructor_loop_size): 638 Handle multiple loops. 639 6402011-11-03 Mikael Morin <mikael@gcc.gnu.org> 641 642 * trans-array.c (get_rank, get_loop_upper_bound_for_array): 643 New functions. 644 (gfc_trans_array_constructor): Handle multiple loops. 645 6462011-11-03 Mikael Morin <mikael@gcc.gnu.org> 647 648 * trans.h (struct gfc_loopinfo): New field parent. 649 * trans-array.c (gfc_cleanup_loop): Free nested loops. 650 (gfc_add_ss_to_loop): Set nested_loop's parent loop. 651 (gfc_trans_array_constructor): Update assertion. 652 (gfc_conv_loop_setup): Ditto. 653 6542011-11-03 Mikael Morin <mikael@gcc.gnu.org> 655 656 * trans-array.c (gfc_add_loop_ss_code): Skip non-nestedmost ss. 657 Call recursively gfc_add_loop_ss_code for all the nested loops. 658 (gfc_conv_ss_startstride): Only get the descriptor for the outermost 659 ss. Call recursively gfc_conv_ss_startstride for all the nested loops. 660 (set_loop_bounds): Call recursively for all the nested loops. 661 (set_delta): Ditto. 662 6632011-11-03 Mikael Morin <mikael@gcc.gnu.org> 664 665 * trans.h (struct gfc_loopinfo): New fields nested and next. 666 * trans-array.c (gfc_add_ss_to_loop): Update list of nested list if 667 ss has non-null nested_ss field. 668 6692011-11-03 Mikael Morin <mikael@gcc.gnu.org> 670 671 * trans-array.c (gfc_trans_create_temp_array): Loop over the parents. 672 6732011-11-03 Mikael Morin <mikael@gcc.gnu.org> 674 675 * trans-array.c (get_array_ref_dim, get_scalarizer_dim_for_array_dim): 676 Rename the former to the latter and loop over the parents. 677 (innermost_ss): New function. 678 (get_array_ref_dim_for_loop_dim): New function. 679 (gfc_trans_create_temp_array): Use get_scalarizer_dim_for_array_dim. 680 (set_loop_bounds): Use get_array_dim_for_loop_dim). 681 6822011-11-03 Mikael Morin <mikael@gcc.gnu.org> 683 684 * trans.h (struct gfc_ss): New field nested_ss. 685 * trans-expr.c (gfc_advance_se_ss_chain): Update assertion. 686 6872011-11-03 Mikael Morin <mikael@gcc.gnu.org> 688 689 * trans-array.c (set_vector_loop_bounds): Loop over the parents. 690 6912011-11-03 Mikael Morin <mikael@gcc.gnu.org> 692 693 * trans-array.c (gfc_trans_array_constructor): Loop over the parents. 694 6952011-11-03 Mikael Morin <mikael@gcc.gnu.org> 696 697 * trans-array.c (gfc_set_loop_bounds_from_array_spec): Loop over the 698 parents. 699 7002011-11-03 Mikael Morin <mikael@gcc.gnu.org> 701 702 * trans.h (struct gfc_ss): New field parent. 703 * trans-array.c (gfc_trans_scalarizing_loops): Skip clearing if a 704 parent exists. 705 * trans-expr.c (gfc_advance_se_ss_chain): Move to parent ss at the 706 end of the chain. 707 7082011-11-03 Mikael Morin <mikael@gcc.gnu.org> 709 710 * trans-array.h (gfc_trans_create_temp_array): Remove loop argument. 711 * trans-array.c (gfc_trans_create_temp_array): Ditto. Get loop from ss. 712 Update reference to loop. Remove loop argument. 713 (gfc_trans_array_constructor, gfc_conv_loop_setup): Update calls to 714 gfc_trans_create_temp_array. 715 * trans-expr.c (gfc_conv_procedure_call): Ditto. 716 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto. 717 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. 718 Set loop before calling gfc_trans_create_temp_array. 719 7202011-11-03 Mikael Morin <mikael@gcc.gnu.org> 721 722 * trans-array.c (gfc_trans_create_temp_array): New variable total_dim. 723 Set total_dim to loop's rank. Replace usages of loop's rank. 724 7252011-11-03 Mikael Morin <mikael@gcc.gnu.org> 726 727 * trans-array.c (gfc_trans_array_constructor, trans_array_constructor): 728 Rename the former to the later. Get loop from ss. 729 Remove loop argument. 730 (gfc_add_loop_ss_code): Update call. 731 7322011-11-03 Mikael Morin <mikael@gcc.gnu.org> 733 734 * trans-array.c (gfc_set_vector_loop_bounds): Get loop from ss. 735 Remove loop argument. 736 (gfc_add_loop_ss_code): Update call. 737 7382011-11-03 Mikael Morin <mikael@gcc.gnu.org> 739 740 * trans.h (struct gfc_ss): New field loop. 741 * trans-array.c (set_ss_loop): New function. 742 (gfc_add_ss_to_loop): Call set_ss_loop. 743 7442011-11-03 Mikael Morin <mikael@gcc.gnu.org> 745 746 * trans.h (struct gfc_ss_info): New field refcount. 747 * trans-array.c (free_ss_info): Decrement refcount. Return early if 748 still non-zero. 749 (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss): Increment 750 refcount. 751 7522011-11-03 Mikael Morin <mikael@gcc.gnu.org> 753 754 * trans-array.c (gfc_trans_create_temp_array): Move invariant condition 755 out of the containing loop. 756 7572011-11-03 Mikael Morin <mikael@gcc.gnu.org> 758 759 * trans-array.c (gfc_conv_loop_setup, gfc_trans_create_temp_array): 760 Move specloop arrays clearing from the former to the latter. 761 7622011-11-03 Mikael Morin <mikael@gcc.gnu.org> 763 764 * trans-array.c (set_loop_bounds): Separate the beginning of 765 gfc_conv_loop_setup into a function of its own. 766 (set_delta): Separate the end of gfc_conv_loop_setup into a function 767 of its own. 768 (gfc_conv_loop_setup): Call set_loop_bounds and set delta. 769 (set_loop_bounds, set_delta, gfc_conv_loop_setup): Make loopspec a 770 pointer to the specloop field from the loop struct. 771 7722011-11-03 Tobias Burnus <burnus@net-b.de> 773 774 PR fortran/50933 775 * interface.c (gfc_compare_derived_types): Fix check for BIND(C). 776 7772011-11-03 Tobias Burnus <burnus@net-b.de> 778 779 PR fortran/50960 780 * trans-decl.c (gfc_finish_var_decl): Mark PARAMETER as TREE_READONLY. 781 7822011-11-03 Mikael Morin <mikael@gcc.gnu.org> 783 784 * trans.h (struct gfc_ss, struct gfc_ss_info): Move field 785 gfc_ss::where into gfc_ss_info. 786 * trans-array.c (gfc_add_loop_ss_code): 787 Update reference chains. 788 * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto. 789 7902011-11-03 Mikael Morin <mikael@gcc.gnu.org> 791 792 * trans.h (struct gfc_ss, struct gfc_ss_info): Move field 793 gfc_ss::useflags into gfc_ss_info. 794 * trans-array.c (gfc_mark_ss_chain_used, gfc_trans_preloop_setup, 795 gfc_trans_scalarizing_loops, gfc_trans_scalarized_boundary): 796 Update reference chains. 797 * trans-expr.c (gfc_conv_procedure_call): Ditto. 798 * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto. 799 8002011-11-03 Mikael Morin <mikael@gcc.gnu.org> 801 802 * trans.h (struct gfc_ss, struct gfc_ss_info): Move field 803 gfc_ss::data::info into gfc_ss_info::data and remove empty union 804 gfc_ss::data. 805 * trans-array.c (gfc_free_ss, gfc_trans_create_temp_array, 806 gfc_trans_constant_array_constructor, gfc_trans_array_constructor, 807 gfc_set_vector_loop_bounds, gfc_add_loop_ss_code, 808 gfc_conv_ss_descriptor, gfc_trans_array_bound_check, 809 gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref, 810 add_array_offset, gfc_trans_preloop_setup, 811 gfc_trans_scalarized_boundary, gfc_conv_section_startstride, 812 gfc_conv_ss_startstride, gfc_could_be_alias, 813 gfc_conv_loop_setup, gfc_conv_expr_descriptor, 814 gfc_alloc_allocatable_for_assignment, gfc_walk_array_ref): 815 Update reference chains and factor them where possible. 816 * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg, 817 gfc_conv_procedure_call, gfc_trans_subarray_assign): Updata reference 818 chains. 819 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto. 820 * trans-io.c (transfer_array_component): Ditto. 821 * trans-stmt.c (gfc_conv_elemental_dependencies, 822 gfc_trans_pointer_assign_need_temp): Ditto. 823 8242011-11-03 Mikael Morin <mikael@gcc.gnu.org> 825 826 * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct 827 gfc_ss::data::temp into gfc_ss_info::data. 828 * trans-array.c (gfc_get_temp_ss, gfc_conv_loop_setup): Update reference 829 chains. 830 8312011-11-03 Mikael Morin <mikael@gcc.gnu.org> 832 833 * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct 834 gfc_ss::data::scalar into newly created union gfc_ss_info::data, 835 and rename subfield expr to value. 836 * trans-array.c (gfc_add_loop_ss_code, gfc_conv_array_index_offset, 837 gfc_conv_expr_descriptor): Update reference chains. 838 * trans-const.c (gfc_conv_constant): Ditto. 839 * trans-expr.c (gfc_conv_expr): Ditto. 840 8412011-11-03 Mikael Morin <mikael@gcc.gnu.org> 842 843 * trans.h (struct gfc_ss, struct gfc_ss_info): Move field 844 string_length from the former struct to the latter. 845 * trans-array.c 846 (gfc_get_temp_ss, gfc_trans_array_constructor, gfc_add_loop_ss_code, 847 gfc_conv_ss_descriptor, gfc_conv_scalarized_array_ref, 848 gfc_conv_resolve_dependencies, gfc_conv_loop_setup, 849 gfc_conv_expr_descriptor): Update references to string_length and 850 factor common reference chains where possible. 851 * trans-const.c (gfc_conv_constant): Ditto. 852 * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg, 853 gfc_conv_expr): Ditto. 854 8552011-11-03 Mikael Morin <mikael@gcc.gnu.org> 856 857 * trans.h (struct gfc_ss, struct gfc_ss_info): Move field expr from 858 the former struct to the latter. 859 * trans-array.c 860 (gfc_get_array_ss, gfc_get_scalar_ss, 861 gfc_trans_constant_array_constructor, gfc_trans_array_constructor, 862 gfc_add_loop_ss_code, gfc_conv_ss_descriptor, 863 gfc_trans_array_bound_check, gfc_conv_array_index_offset, 864 gfc_conv_scalarized_array_ref, gfc_conv_ss_startstride, 865 gfc_could_be_alias, gfc_conv_resolve_dependencies, 866 gfc_conv_loop_setup, gfc_conv_expr_descriptor, 867 gfc_alloc_allocatable_for_assignment): Update references to expr and 868 factor common reference chains where possible. 869 * trans-const.c (gfc_conv_constant): Ditto. 870 * trans-expr.c (gfc_conv_variable, gfc_conv_procedure_call, 871 gfc_conv_array_constructor_expr, gfc_conv_expr, 872 gfc_conv_expr_reference): Ditto. 873 * trans-intrinsic.c (trans_this_image, gfc_conv_intrinsic_bound, 874 gfc_conv_intrinsic_cobound, gfc_conv_intrinsic_funcall, 875 gfc_add_intrinsic_ss_code): Ditto. 876 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. 877 8782011-11-03 Mikael Morin <mikael@gcc.gnu.org> 879 880 * trans.h (struct gfc_ss_info): New struct. 881 (gfc_get_ss_info): New macro. 882 (struct gfc_ss): Move type field to struct gfc_ss_info. 883 Add an info field of type gfc_ss_info. 884 * trans-array.c (free_ss_info): New function. 885 (gfc_free_ss): Call free_ss_info. 886 (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss): 887 Allocate gfc_ss_info field. 888 (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss, 889 gfc_set_vector_loop_bounds, gfc_add_loop_ss_code, 890 gfc_conv_array_index_offset, gfc_trans_preloop_setup, 891 gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride, 892 gfc_conv_ss_startstride, gfc_conv_resolve_dependencies, 893 gfc_conv_loop_setup, transposed_dims, gfc_conv_expr_descriptor, 894 gfc_walk_elemental_function_args): Update references to type. 895 * trans-const.c (gfc_conv_constant): Factor common reference chains 896 and update reference to type. 897 * trans-expr.c (gfc_conv_procedure_call, gfc_trans_assignment_1): 898 Update reference to type. 899 (gfc_conv_array_constructor_expr, gfc_conv_expr, 900 gfc_conv_expr_reference): Ditto. Factor common reference chains. 901 * trans-intrinsic.c (walk_inline_intrinsic_transpose): Update references 902 to type 903 * trans-stmt.c (gfc_trans_where_assign): Ditto. 904 9052011-11-03 Mikael Morin <mikael@gcc.gnu.org> 906 907 * trans.h (struct gfc_ss, struct gfc_array_info): Move shape field 908 from the former struct to the latter. 909 * trans-array.c (gfc_conv_ss_startstride, gfc_conv_loop_setup): 910 Update field references. 911 * trans-expr.c (gfc_trans_subarray_assign): Update field references 912 and factor common reference chains. 913 * trans-io.c (transfer_array_component): Ditto. 914 9152011-11-03 Mikael Morin <mikael@gcc.gnu.org> 916 917 * trans.h (struct gfc_array_info): Move dim and dimen fields... 918 (struct gfc_ss): ... here. Remove gfc_ss::data::temp::dimen field. 919 * trans-array.c (gfc_conv_loop_setup): Remove temp_ss dim array 920 initialization. 921 (gfc_get_temp_ss): Initialize dim and dimen. 922 (gfc_free_ss, gfc_get_array_ss, gfc_get_temp_ss, 923 gfc_set_loop_bounds_from_array_spec, get_array_ref_dim, 924 gfc_trans_create_temp_array, gfc_trans_constant_array_constructor, 925 gfc_set_vector_loop_bounds, gfc_conv_scalarized_array_ref, 926 gfc_trans_preloop_setup, gfc_conv_ss_startstride, 927 gfc_conv_resolve_dependencies, gfc_conv_loop_setup, transposed_dims, 928 gfc_conv_expr_descriptor, gfc_alloc_allocatable_for_assignment, 929 gfc_walk_array_ref): Update field references. 930 * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call): 931 Ditto. 932 * trans-intrinsic.c (walk_inline_intrinsic_transpose): Ditto. 933 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. 934 9352011-11-03 Mikael Morin <mikael@gcc.gnu.org> 936 937 * trans.h (struct gfc_ss_info, struct gfc_array_info): 938 Rename the former to the latter. 939 * trans-array.c (gfc_get_array_ss, gfc_trans_allocate_array_storage, 940 get_array_ref_dim, gfc_trans_create_temp_array, 941 gfc_trans_constant_array_constructor, gfc_set_vector_loop_bounds, 942 gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref, 943 add_array_offset, gfc_trans_preloop_setup, gfc_conv_section_startstride, 944 gfc_conv_ss_startstride, gfc_conv_loop_setup, transposed_dims, 945 gfc_conv_expr_descriptor): Update all uses. 946 * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call): 947 Ditto. 948 * trans-intrinsic.c (gfc_conv_intrinsic_transfer, 949 walk_inline_intrinsic_transpose): Ditto. 950 * trans-stmt.c (gfc_conv_elemental_dependencies, 951 gfc_trans_pointer_assign_need_temp): Ditto. 952 9532011-11-03 Mikael Morin <mikael@gcc.gnu.org> 954 955 * trans-array.c (dim_ok, transposed_dims): Rename the former to the 956 latter. Change argument type. Invert return value. 957 (gfc_conv_expr_descriptor): Update calls. 958 9592011-11-03 Mikael Morin <mikael@gcc.gnu.org> 960 961 * trans-array.c (get_array_ref_dim): Change argument type and name. 962 Obtain previous argument from the new argument in the body. 963 (gfc_trans_create_temp_arry, gfc_conv_loop_setup): Update calls. 964 9652011-11-03 Mikael Morin <mikael@gcc.gnu.org> 966 967 * trans-array.c (gfc_set_vector_loop_bounds, set_vector_loop_bounds): 968 Rename the former to the latter. Change type and name of argument. 969 Get previous argument from the new one. 970 (gfc_add_loop_ss_code): Update call. 971 9722011-11-03 Mikael Morin <mikael@gcc.gnu.org> 973 974 * trans-array.h (gfc_trans_create_temp_array): Replace info argument 975 with ss argument. 976 * trans-array.c (gfc_trans_create_temp_array): Ditto. Get info from ss. 977 (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to 978 gfc_trans_create_temp_array. 979 * trans-expr.c (gfc_conv_procedure_call): Ditto. 980 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto. 981 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. 982 9832011-11-03 Mikael Morin <mikael@gcc.gnu.org> 984 985 * trans-array.c (gfc_trans_array_bound_check): Use ss argument 986 to get name. 987 9882011-11-03 Mikael Morin <mikael@gcc.gnu.org> 989 990 * trans-array.c (gfc_trans_array_bound_check, 991 trans_array_bound_check): Rename the former to the latter. 992 Replace descriptor argument with ss argument. Get descriptor from ss. 993 (gfc_conv_array_index_offset, conv_array_index_offset): Rename the 994 former to the latter. Update call to trans_array_bound_check. 995 Replace info argument with ss argument. Get info from ss. 996 (gfc_conv_scalarized_array_ref): Update call to conv_array_index_offset. 997 (add_array_offset): Ditto 998 9992011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1000 1001 * trans-array.c (gfc_trans_constant_array_constructor, 1002 trans_constant_array_constructor): Rename the former to the latter. 1003 Don't set the rank of the temporary for the loop. Remove then unused 1004 loop argument. 1005 (gfc_trans_array_constructor): Update call. 1006 10072011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1008 1009 * trans-array.c (gfc_trans_scalarizing_loops): Stop loop before end 1010 marker, not after it. 1011 10122011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1013 1014 * trans-array.c (gfc_conv_loop_setup): Also skip temporary arrays. 1015 10162011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1017 1018 * trans-array.c (gfc_conv_ss_startstride): Access array bounds along 1019 array dimensions instead of loop dimensions. 1020 10212011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1022 1023 * trans-array.c (gfc_trans_preloop_setup): Assertify one condition. 1024 10252011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1026 1027 * trans-array.c (gfc_walk_array_ref): Skip coarray dimensions. 1028 10292011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1030 1031 * trans-array.c (get_array_ref_dim): Remove redundant condition. 1032 10332011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1034 1035 * trans-array.c (gfc_trans_preloop_setup): Move common code... 1036 (add_array_offset): ...into that new function. 1037 10382011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1039 1040 * trans-array.c (gfc_trans_preloop_setup): Use loop's dimension instead 1041 of array's dimention. Check that it is indeed the same. 1042 10432011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1044 1045 * trans-array.c (gfc_trans_preloop_setup): Remove redundant assertion. 1046 Special case outermost loop. 1047 10482011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1049 1050 * trans-array.c (gfc_trans_preloop_setup): Factor loop index 1051 initialization. 1052 10532011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1054 1055 * trans-array.c (gfc_trans_preloop_setup): Move code earlier. 1056 10572011-11-03 Mikael Morin <mikael@gcc.gnu.org> 1058 1059 * trans-array.c (gfc_trans_preloop_setup): Move array reference 1060 initialisation earlier. Factor subsequent array references. 1061 10622011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1063 1064 * Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK. 1065 10662011-10-30 Steven G. Kargl <kargl@gcc.gnu.org> 1067 1068 PR fortran/50573 1069 * check.c (gfc_check_dshift): Update argument checking for BOZ. 1070 Update checking SHIFT against BITSIZE of I or J. 1071 * intrinsic.texi: Update docs for DSHIFTL and DSHIFTR. 1072 10732011-10-28 Steven G. Kargl <kargl@gcc.gnu.org> 1074 1075 * check.c (gfc_check_atan_2): Typo in comment. 1076 (gfc_check_nearest): If 's' is constant, check that it is not 0. 1077 * simplify.c (simplify_dshift, gfc_simplify_ibclr, gfc_simplify_ibits, 1078 gfc_simplify_ibset, simplify_shift, gfc_simplify_ishftc, 1079 gfc_simplify_nearest): Remove dead code. 1080 10812011-10-23 Steven G. Kargl <kargl@gcc.gnu.org> 1082 1083 * simplify.c (simplify_transformation_to_array): Fix memory leak. 1084 10852011-10-20 Steven G. Kargl <kargl@gcc.gnu.org> 1086 1087 PR fortran/50821 1088 * check.c (gfc_check_ishftc): Check args are constant before 1089 extracting the integer. 1090 10912011-10-20 Steven G. Kargl <kargl@gcc.gnu.org> 1092 1093 PR fortran/50514 1094 * check.c (less_than_bitsize1): Check |shift| <= bit_size(i). 1095 (gfc_check_ishftc): Check |shift| <= bit_size(i) and check 1096 that size is positive. 1097 10982011-10-20 Steven G. Kargl <kargl@gcc.gnu.org> 1099 1100 PR fortran/50524 1101 * resolve.c (resolve_ref): Check return value of resolve_substring(). 1102 11032011-10-20 Steven G. Kargl <kargl@gcc.gnu.org> 1104 1105 * io.c (match_dt_format): Match a user-defined operator or a kind 1106 type prefixed string. 1107 11082011-10-19 Janus Weil <janus@gcc.gnu.org> 1109 1110 PR fortran/47023 1111 * check.c (gfc_check_sizeof): Reject procedures as argument of SIZEOF. 1112 * intrinsinc.texi (SIZEOF): Document it. 1113 (STORAGE_SIZE): Fix special characters. Fix line breaks. 1114 11152011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1116 1117 PR fortran/50420 1118 * trans.c (gfc_build_array_ref): If type is not an array, check that 1119 there is nothing to do, and do nothing. 1120 11212011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1122 1123 PR fortran/50420 1124 * trans-types.c (gfc_build_array_type): Don't force lower bound to one 1125 in the deferred case. 1126 11272011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1128 1129 PR fortran/50420 1130 * simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays. 1131 Don't set already set array ref. 1132 11332011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1134 1135 * array.c (gfc_find_array_ref): Remove coarray-specific handling. 1136 11372011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1138 1139 PR fortran/50420 1140 * check.c (dim_corank_check): Use gfc_get_corank to get corank. 1141 11422011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1143 1144 PR fortran/50420 1145 * trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION. 1146 1147 PR fortran/50420 1148 * trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for 1149 the scalarization chain initialization. 1150 11512011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1152 1153 PR fortran/50420 1154 * trans-intrinsic.c (walk_coarray): Allow subreferences after a 1155 coarray object reference. 1156 11572011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1158 1159 PR fortran/50420 1160 * trans-array.c (gfc_walk_array_ref): Allow zero rank arrays 1161 if they are coarrays. 1162 11632011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1164 1165 * trans-array.h (gfc_walk_array_ref): New prototype. 1166 * trans-array.c (gfc_walk_array_ref): New function, containing 1167 all but the beginning of gfc_walk_variable_expr's code. 1168 (gfc_walk_variable_expr): Use gfc_walk_array_ref. 1169 11702011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1171 1172 PR fortran/50420 1173 * trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of 1174 ndim for the descriptor's rank. 1175 11762011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1177 1178 PR fortran/50420 1179 * trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting 1180 from zero, and add then the relevant offset (either ndim or loop.dimen) 1181 depending on context. 1182 11832011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1184 1185 * trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space. 1186 11872011-10-18 Mikael Morin <mikael@gcc.gnu.org> 1188 1189 * trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization 1190 earlier. 1191 11922011-10-18 Janus Weil <janus@gcc.gnu.org> 1193 1194 PR fortran/47023 1195 * decl.c (verify_c_interop_param): Renamed to 1196 'gfc_verify_c_interop_param'. Add error message for polymorphic 1197 arguments. 1198 (verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject 1199 polymorphic variables. 1200 (verify_bind_c_sym): Renamed 'verify_c_interop'. 1201 * gfortran.h (verify_c_interop,verify_c_interop_param): Renamed. 1202 * check.c (gfc_check_sizeof): Ditto. 1203 * resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto. 1204 * symbol.c (verify_bind_c_derived_type): Ditto. 1205 12062011-10-15 Tom Tromey <tromey@redhat.com> 1207 Dodji Seketeli <dodji@redhat.com> 1208 1209 * cpp.c (print_line, cb_define): Adjust to avoid using internals 1210 of struct line_map. Use the public API instead. 1211 12122011-10-17 Janus Weil <janus@gcc.gnu.org> 1213 1214 PR fortran/47023 1215 PR fortran/50752 1216 * primary.c (match_kind_param): Avoid segfault. 1217 12182011-10-16 Thomas Koenig <tkoenig@gcc.gnu.org> 1219 1220 * frontend-passes.c (current_ns): Make static. 1221 (create_var): Note parent of newly created namespace. 1222 (optimize_namespace): Don't wak sibling namespaces 1223 if they are EXEC_BLOCK because this is handled... 1224 (gfc_code_walker): ... here. Also walk ASSOCIATE lists. 1225 12262011-10-16 Janus Weil <janus@gcc.gnu.org> 1227 1228 PR fortran/47023 1229 * primary.c (match_kind_param): Detect ISO_C_BINDING kinds. 1230 (get_kind): Pass on 'is_iso_c' flag. 1231 (match_integer_constant,match_real_constant,match_logical_constant): 1232 Set 'ts.is_c_interop'. 1233 12342011-10-16 Janus Weil <janus@gcc.gnu.org> 1235 1236 PR fortran/50547 1237 * resolve.c (resolve_formal_arglist): Remove unneeded error message. 1238 Some reshuffling. 1239 12402011-10-15 Tobias Burnus <burnus@net-b.de> 1241 1242 * gfortran.texi (Fortran 2008 status, TS 29113 status, 1243 Further Interoperability of Fortran with C): Update implementation 1244 status, change references from TR 29113 to TS 29113. 1245 * intrinsic.texi (RANK): Change TR 29113 to TS 29113. 1246 * invoke.text (-std=): Ditto, change -std=f2008tr to -std=f2008ts. 1247 * lang.opt (std=): Ditto. 1248 * options.c (gfc_handle_option, set_default_std_flags): Ditto and 1249 change GFC_STD_F2008_TR to GFC_STD_F2008_TS. 1250 * libgfortran.h: Ditto. 1251 * intrinsic.c (add_functions, gfc_check_intrinsic_standard): Ditto. 1252 * decl.c (verify_c_interop_param): Ditto. 1253 12542011-10-14 Janus Weil <janus@gcc.gnu.org> 1255 1256 PR fortran/50570 1257 * expr.c (gfc_check_vardef_context): Don't throw an error on 1258 non-pointer assignments involving an intent(in) pointer dummy. 1259 12602011-10-14 Tobias Burnus <burnus@net-b.de> 1261 1262 PR fortran/50718 1263 * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer 1264 for dummy arguments with VALUE attribute. 1265 12662011-10-11 Tobias Burnus <burnus@net-b.de> 1267 Janus Weil <janus@gcc.gnu.org> 1268 1269 * invoke.texi (-fwhole-file): Update wording since -fwhole-file 1270 is now enabled by default. 1271 12722011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> 1273 1274 * trans-expr.c (gfc_conv_power_op): Delete old interface with two 1275 parallel arrays to hold standard builtin declarations, and replace 1276 it with a function based interface that can support creating 1277 builtins on the fly in the future. Change all uses, and poison 1278 the old names. Make sure 0 is not a legitimate builtin index. 1279 (fill_with_spaces): Ditto. 1280 (gfc_trans_string_copy): Ditto. 1281 (gfc_trans_zero_assign): Ditto. 1282 (gfc_build_memcpy_call): Ditto. 1283 (alloc_scalar_allocatable_for_assignment): Ditto. 1284 * trans-array.c (gfc_trans_array_constructor_value): Ditto. 1285 (duplicate_allocatable): Ditto. 1286 (gfc_alloc_allocatable_for_assignment): Ditto. 1287 * trans-openmp.c (gfc_omp_clause_copy_ctor): Ditto. 1288 (gfc_omp_clause_assign_op): Ditto. 1289 (gfc_trans_omp_atomic): Ditto. 1290 (gfc_trans_omp_do): Ditto. 1291 (gfc_trans_omp_task): Ditto. 1292 * trans-stmt.c (gfc_trans_stop): Ditto. 1293 (gfc_trans_sync): Ditto. 1294 (gfc_trans_allocate): Ditto. 1295 (gfc_trans_deallocate): Ditto. 1296 * trans.c (gfc_call_malloc): Ditto. 1297 (gfc_allocate_using_malloc): Ditto. 1298 (gfc_call_free): Ditto. 1299 (gfc_deallocate_with_status): Ditto. 1300 (gfc_deallocate_scalar_with_status): Ditto. 1301 * f95-lang.c (gfc_define_builtin): Ditto. 1302 (gfc_init_builtin_functions): Ditto. 1303 * trans-decl.c (create_main_function): Ditto. 1304 * trans-intrinsic.c (builtin_decl_for_precision): Ditto. 1305 13062011-10-10 Thomas Koenig <tkoenig@gcc.gnu.org> 1307 1308 PR fortran/50564 1309 * frontend-passes (forall_level): New variable. 1310 (cfe_register_funcs): Don't register functions if we 1311 are within a forall loop. 1312 (optimize_namespace): Set forall_level to 0 before entry. 1313 (gfc_code_walker): Increase/decrease forall_level. 1314 13152011-10-09 Tobias Burnus <burnus@net-b.de> 1316 1317 PR fortran/50273 1318 * trans-common.c (translate_common): Fix -Walign-commons check. 1319 13202011-10-09 Mikael Morin <mikael.morin@sfr.fr> 1321 1322 * interface.c (check_dummy_characteristics): Count dimensions starting 1323 from one in diagnostic. 1324 13252011-10-09 Tobias Burnus <burnus@net-b.de> 1326 1327 * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add 1328 dependency on iso-c-binding.def and iso-fortran-env.def. 1329 * module.c (import_iso_c_binding_module): Add error when 1330 explicitly importing a nonstandard symbol; extend standard- 1331 depending loading. 1332 * iso-c-binding.def: Add c_float128 and c_float128_complex 1333 integer parameters (for -std=gnu). 1334 * intrinsic.texi (ISO_C_Binding): Document them. 1335 * symbol.c (generate_isocbinding_symbol): Change macros 1336 to ignore GFC_STD_* data. 1337 * trans-types.c (gfc_init_c_interop_kinds): Ditto; make 1338 nonstatic and renamed from "init_c_interop_kinds". 1339 (gfc_init_kinds): Don't call it 1340 * trans-types.h (gfc_init_c_interop_kinds): Add prototype. 1341 * f95-lang.c (gfc_init_decl_processing): Call it. 1342 13432011-10-09 Janus Weil <janus@gcc.gnu.org> 1344 1345 PR fortran/50659 1346 * expr.c (replace_symbol): Only do replacement if the symbol is a dummy. 1347 13482011-10-08 Paul Thomas <pault@gcc.gnu.org> 1349 1350 PR fortran/47844 1351 * trans-array.c (gfc_conv_array_index_offset): Use descriptor 1352 stride for pointer function results. 1353 13542011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1355 1356 * trans-array.c (gfc_conv_expr_descriptor): Remove trailing whitespace. 1357 13582011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1359 1360 * trans-array.c (gfc_conv_ss_startstride): Merge two switch cases. 1361 13622011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1363 1364 * trans-array.c (gfc_conv_section_startstride): Remove coarray argument. 1365 Remove conditions on coarray. 1366 (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride. 1367 (gfc_conv_expr_descriptor): Ditto. Add assertions before the call. 1368 13692011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1370 1371 * trans-array.c (gfc_conv_section_startstride): Remove coarray_last 1372 argument. Remove condition on coarray_last. 1373 (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride. 1374 (gfc_conv_expr_descriptor): Ditto. 1375 13762011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1377 1378 * trans-array.c (gfc_walk_variable_expr): Remove scalar coarray 1379 handling. Don't reset array ref's corank and codimensions' types 1380 in the full array ref case. Update loop upper limit. 1381 Remove DIMEN_THIS_IMAGE case. Remove unnecessary conditions. 1382 13832011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1384 1385 * trans.h (gfc_ss_info): Remove codimen field. 1386 * trans-array.c (gfc_get_array_ss): Don't set codimen field. 1387 (gfc_trans_create_temp_array): Don't set descriptor's cobounds. 1388 (gfc_trans_constant_array_constructor): Update loop upper limit. 1389 (gfc_conv_ss_startstride): Don't set codimen field. 1390 Don't get descriptor's cobounds. 1391 (gfc_walk_variable_expr): Update dimension index. 1392 * trans-intrinsic.c (trans_this_image, trans_image_index, 1393 conv_intrinsic_cobound): Don't set codimen field 1394 13952011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1396 1397 * trans.h (gfc_loopinfo): Remove codimen field. 1398 * trans-array.c (gfc_set_vector_loop_bounds, 1399 gfc_trans_scalarizing_loops, gfc_conv_loop_setup): Update loop upper 1400 limit. 1401 (gfc_set_loop_bounds_from_array_spec): Ditto. Remove skip on last 1402 codimension. 1403 (gfc_start_scalarized_body): Update loop lower limit. 1404 (gfc_conv_ss_startstride): Don't set loop's codimen field. 1405 (gfc_conv_loop_setup): Remove unnecessary condition. 1406 (gfc_conv_expr_descriptor): Don't use loop's codimen field as corank. 1407 14082011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1409 1410 * trans.h (gfc_ss): Remove data.temp.codimen field. 1411 * trans-array.c (gfc_conv_resolve_dependencies, 1412 gfc_conv_expr_descriptor): Don't set temp's codimen field. 1413 14142011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1415 1416 * resolve.c (resolve_array_ref): Set array_ref's dimen field (and the 1417 associated dimen_type) in the full array ref case. 1418 14192011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1420 1421 * trans-intrinsic.c (walk_coarray): New function. 1422 (convert_element_to_coarray_ref): Move code to walk_coarray. Remove. 1423 (trans-this_image, trans_image_index, conv_intrinsic_cobound): 1424 Use walk_coarray. 1425 14262011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1427 1428 * trans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer 1429 cobounds evaluation. 1430 14312011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1432 1433 * trans-array.c (gfc_conv_ss_startstride): Support zero rank loop. 1434 14352011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1436 1437 * trans-array.c (gfc_conv_section_startstride): Move code to 1438 evaluate_bound. Use evaluate_bound. 1439 (evaluate_bound): New function. 1440 14412011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1442 1443 * trans-array.c (gfc_conv_section_startstride): Update assertion to 1444 also accept coarrays. 1445 14462011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1447 1448 * trans-array.c (gfc_conv_section_startstride): Factor common 1449 array ref references. 1450 14512011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1452 1453 * trans-array.c (gfc_conv_expr_descriptor): Use codim instead of 1454 loop.codimen as argument to gfc_get_array_type_bounds. 1455 14562011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1457 1458 * trans-array.h (struct gfc_se): New flag want_coarray. 1459 * trans-intrinsic.c (trans_this_image, trans_image_index, 1460 conv_intrinsic_cobound): Set want_coarray. 1461 * trans_array.c (gfc_conv_expr_descriptor): Evaluate codimension 1462 earlier and without relying on the scalarizer. 1463 14642011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1465 1466 * expr.c (gfc_get_corank): Return 0 if input expression is not a 1467 coarray. 1468 14692011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1470 1471 * trans-array.c (gfc_conv_expr_descriptor): Simplify coarray 1472 descriptor setup code. 1473 14742011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1475 1476 * resolve.c (compare_spec_to_ref): Move coarray ref initialization 1477 code... 1478 (resolve_array_ref): ... here. 1479 14802011-10-07 Mikael Morin <mikael.morin@sfr.fr> 1481 1482 * check.c (is_coarray): Remove. 1483 (coarray_check): Use gfc_is_coarray. 1484 14852011-10-07 Janus Weil <janus@gcc.gnu.org> 1486 1487 PR fortran/50625 1488 * class.c (gfc_build_class_symbol): Fix whitespace. 1489 * module.c (mio_symbol): Set 'class_ok' attribute. 1490 * trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has 1491 been built for class symbols. 1492 14932011-10-04 Janus Weil <janus@gcc.gnu.org> 1494 1495 PR fortran/35831 1496 * interface.c (check_dummy_characteristics): Check the array shape. 1497 14982011-10-01 Janus Weil <janus@gcc.gnu.org> 1499 1500 PR fortran/50585 1501 * interface.c (get_expr_storage_size): Check if 'length' component is 1502 associated. 1503 15042011-09-29 Janus Weil <janus@gcc.gnu.org> 1505 1506 PR fortran/50547 1507 * resolve.c (resolve_formal_arglist): Fix pureness check for dummy 1508 functions. 1509 1510 PR fortran/50553 1511 * symbol.c (check_conflict): Forbid TARGET attribute for statement 1512 functions. 1513 15142011-09-27 Jakub Jelinek <jakub@redhat.com> 1515 1516 * trans-types.c (gfc_type_for_size): Return wider type 1517 if no suitable narrower type has been found. 1518 (gfc_type_for_mode): Return NULL_TREE if gfc_type_for_size 1519 returned type doesn't have expected TYPE_MODE. 1520 15212011-09-26 Janus Weil <janus@gcc.gnu.org> 1522 1523 PR fortran/50515 1524 * resolve.c (resolve_common_blocks): Check for EXTERNAL attribute. 1525 1526 PR fortran/50517 1527 * interface.c (gfc_compare_interfaces): Bugfix in check for result type. 1528 15292011-09-22 Janus Weil <janus@gcc.gnu.org> 1530 1531 PR fortran/41733 1532 * expr.c (gfc_check_pointer_assign): Check for nonintrinsic elemental 1533 procedures. 1534 * interface.c (gfc_compare_interfaces): Rename 'intent_flag'. Check 1535 for PURE and ELEMENTAL attributes. 1536 (compare_actual_formal): Remove pureness check here. 1537 15382011-09-20 Steven G. Kargl <kargl@gcc.gnu.org> 1539 1540 * check.c (gfc_check_c_sizeof): Remove redundant word. 1541 15422011-09-20 Simon Baldwin <simonb@google.com> 1543 1544 * module.c (gfc_dump_module): Omit timestamp from output. 1545 15462011-09-17 Janus Weil <janus@gcc.gnu.org> 1547 1548 PR fortran/50403 1549 * symbol.c (gfc_use_derived): Fix coding style. 1550 15512011-09-15 Janus Weil <janus@gcc.gnu.org> 1552 1553 PR fortran/50401 1554 * resolve.c (resolve_transfer): Check if component 'ref' is defined. 1555 1556 PR fortran/50403 1557 * symbol.c (gfc_use_derived): Check if argument 'sym' is defined. 1558 15592011-09-14 Tobias Burnus <burnus@net-b.de> 1560 1561 PR fortran/34547 1562 PR fortran/50375 1563 * check.c (gfc_check_null): Allow allocatables as MOLD to NULL. 1564 * resolve.c (resolve_transfer): Reject NULL without MOLD. 1565 * interface.c (gfc_procedure_use): Reject NULL without MOLD 1566 if no explicit interface is known. 1567 (gfc_search_interface): Reject NULL without MOLD if it would 1568 lead to ambiguity. 1569 15702011-09-13 Janus Weil <janus@gcc.gnu.org> 1571 1572 PR fortran/50379 1573 * symbol.c (check_conflict): Check conflict between GENERIC and RESULT 1574 attributes. 1575 15762011-09-11 Thomas Koenig <tkoenig@gcc.gnu.org> 1577 1578 PR fortran/50327 1579 * frontend-passes.c (dummy_expr_callback): New function. 1580 (convert_do_while): New function. 1581 (optimize_namespace): Call code walker to convert do while loops. 1582 15832011-09-11 Janus Weil <janus@gcc.gnu.org> 1584 1585 PR fortran/35831 1586 PR fortran/47978 1587 * interface.c (check_dummy_characteristics): New function to check the 1588 characteristics of dummy arguments. 1589 (gfc_compare_interfaces,gfc_check_typebound_override): Call it here. 1590 15912011-09-08 Mikael Morin <mikael.morin@sfr.fr> 1592 1593 * trans-array.c (gfc_trans_constant_array_constructor): Remove 1594 superfluous initialisation of DIM field. 1595 (gfc_trans_array_constructor): Assert that DIMEN field is properly set. 1596 (gfc_conv_expr_descriptor): Ditto. 1597 * trans-expr.c (gfc_conv_procedure_call): Ditto. 1598 15992011-09-08 Mikael Morin <mikael.morin@sfr.fr> 1600 1601 * trans-array.h (gfc_get_scalar_ss): New prototype. 1602 * trans-array.c (gfc_get_scalar_ss): New function. 1603 (gfc_walk_variable_expr, gfc_walk_op_expr, 1604 gfc_walk_elemental_function_args): Re-use gfc_get_scalar_ss. 1605 * trans-expr.c (gfc_trans_subarray_assign): Ditto. 1606 (gfc_trans_assignment_1): Ditto. 1607 * trans-stmt.c (compute_inner_temp_size, gfc_trans_where_assign, 1608 gfc_trans_where_3): Ditto. 1609 16102011-09-08 Mikael Morin <mikael.morin@sfr.fr> 1611 1612 * trans-array.h (gfc_get_temp_ss): New prototype. 1613 * trans-array.c (gfc_get_temp_ss): New function. 1614 (gfc_conv_resolve_dependencies): Re-use gfc_get_temp_ss. 1615 (gfc_conv_expr_descriptor): Ditto. 1616 * trans-expr.c (gfc_conv_subref_array_arg): Ditto. 1617 16182011-09-08 Mikael Morin <mikael.morin@sfr.fr> 1619 1620 * trans-array.h (gfc_get_array_ss): New prototype. 1621 * trans-array.c (gfc_get_array_ss): New function. 1622 (gfc_walk_variable_expr, gfc_walk_function_expr, 1623 gfc_walk_array_constructor): Re-use gfc_get_array_ss. 1624 * trans-expr.c (gfc_trans_subarray_assign): Ditto. 1625 * trans-intrinsic.c (gfc_walk_intrinsic_bound, 1626 gfc_walk_intrinsic_libfunc): Ditto. 1627 * trans-io.c (transfer_array_component): Ditto. 1628 16292011-09-08 Tobias Burnus <burnus@net-b.de> 1630 1631 PR fortran/44646 1632 * decl.c (gfc_match_entry, gfc_match_end): Handle COMP_DO_CONCURRENT. 1633 * dump-parse-tree.c (show_code_node): Handle EXEC_DO_CONCURRENT. 1634 * gfortran.h (gfc_exec_op): Add EXEC_DO_CONCURRENT. 1635 * match.c (gfc_match_critical, match_exit_cycle, gfc_match_stopcode, 1636 lock_unlock_statement, sync_statement, gfc_match_allocate, 1637 gfc_match_deallocate, gfc_match_return): Add DO CONCURRENT diagnostic. 1638 (gfc_match_do): Match DO CONCURRENT. 1639 (match_derived_type_spec, match_type_spec, gfc_free_forall_iterator, 1640 match_forall_iterator, match_forall_header, match_simple_forall, 1641 gfc_match_forall): Move up in the file. 1642 * parse.c (check_do_closure, parse_do_block): Handle do concurrent. 1643 * parse.h (gfc_compile_state): Add COMP_DO_CONCURRENT. 1644 * resolve.c (do_concurrent_flag): New global variable. 1645 (resolve_function, pure_subroutine, resolve_branch, 1646 gfc_resolve_blocks, resolve_code, resolve_types): Add do concurrent 1647 diagnostic. 1648 * st.c (gfc_free_statement): Handle EXEC_DO_CONCURRENT. 1649 * trans-stmt.c (gfc_trans_do_concurrent): New function. 1650 (gfc_trans_forall_1): Handle do concurrent. 1651 * trans-stmt.h (gfc_trans_do_concurrent): New function prototype. 1652 * trans.c (trans_code): Call it. 1653 * frontend-passes.c (gfc_code_walker): Handle EXEC_DO_CONCURRENT. 1654 16552011-09-07 Janus Weil <janus@gcc.gnu.org> 1656 1657 PR fortran/48095 1658 * primary.c (gfc_match_structure_constructor): Handle parsing of 1659 procedure pointers components in structure constructors. 1660 * resolve.c (resolve_structure_cons): Check interface of procedure 1661 pointer components. Changed wording of some error messages. 1662 16632011-09-04 Janus Weil <janus@gcc.gnu.org> 1664 1665 PR fortran/50227 1666 * trans-types.c (gfc_sym_type): Check for proc_name. 1667 16682011-08-30 Tobias Burnus <burnus@net-b.de> 1669 1670 PR fortran/45044 1671 * trans-common.c (build_common_decl): Warn if named common 1672 block's size is not everywhere the same. 1673 16742011-08-30 Steven G. Kargl <kargl@gcc.gnu.org> 1675 1676 PR fortran/45170 1677 * trans-stmt.c (gfc_trans_allocate): Evaluate the substring. 1678 16792011-08-29 Janus Weil <janus@gcc.gnu.org> 1680 1681 PR fortran/50225 1682 * trans-decl.c (gfc_generate_function_code): Nullify polymorphic 1683 allocatable function results. 1684 16852011-08-29 Tobias Burnus <burnus@net-b.de> 1686 1687 * trans-decl.c (generate_coarray_sym_init): Use 1688 GFC_CAF_COARRAY_STATIC for static coarrays. 1689 16902011-08-28 Dodji Seketeli <dodji@redhat.com> 1691 1692 * scanner.c (load_file): Don't abuse LC_RENAME reason while 1693 (indirectly) calling linemap_add. 1694 16952011-08-26 Jakub Jelinek <jakub@redhat.com> 1696 1697 * trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL 1698 if threadprivate. 1699 * symbol.c (check_conflict): Allow threadprivate attribute with 1700 FL_PROCEDURE if proc_pointer. 1701 17022011-08-25 Mikael Morin <mikael@gcc.gnu.org> 1703 1704 PR fortran/50050 1705 * expr.c (gfc_free_shape): Do nothing if shape is NULL. 1706 (free_expr0): Remove redundant NULL shape check. 1707 * resolve.c (check_host_association): Ditto. 1708 * trans-expr.c (gfc_trans_subarray_assign): Assert that shape is 1709 non-NULL. 1710 * trans-io.c (transfer_array_component): Ditto. 1711 17122011-08-25 Tobias Burnus <burnus@net-b.de> 1713 1714 * trans-array.c (gfc_conv_descriptor_token): Add assert. 1715 * trans-decl.c (gfc_build_qualified_array, 1716 create_function_arglist): Handle assumed-shape arrays. 1717 * trans-expr.c (gfc_conv_procedure_call): Ditto. 1718 * trans-types.c (gfc_get_array_descriptor_base): Ditto, don't 1719 add "caf_token" to assumed-shape descriptors, new akind argument. 1720 (gfc_get_array_type_bounds): Pass akind. 1721 * trans.h (lang_decl): New elements caf_offset and token. 1722 (GFC_DECL_TOKEN, GFC_DECL_CAF_OFFSET): New macros. 1723 17242011-08-25 Tobias Burnus <burnus@net-b.de> 1725 1726 * trans-array.c (structure_alloc_comps): Fix for allocatable 1727 scalar coarray components. 1728 * trans-expr.c (gfc_conv_component_ref): Ditto. 1729 * trans-type.c (gfc_get_derived_type): Ditto. 1730 17312011-08-24 Tobias Burnus <burnus@net-b.de> 1732 1733 PR fortran/50163 1734 * expr.c (check_init_expr): Return when an error occured. 1735 17362011-08-24 Joseph Myers <joseph@codesourcery.com> 1737 1738 * Make-lang.in (fortran/cpp.o): Remove explicit compilation rule. 1739 17402011-08-23 Tobias Burnus <burnus@net-b.de> 1741 1742 PR fortran/31600 1743 * symbol.c (gfc_add_type): Better diagnostic if redefining 1744 use-associated symbol. 1745 * module.c (gfc_use_module): Use module name as locus. 1746 17472011-08-22 Gabriel Charette <gchare@google.com> 1748 1749 * cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens 1750 defined in cpp_define_builtins. 1751 17522011-08-22 Mikael Morin <mikael@gcc.gnu.org> 1753 1754 PR fortran/50050 1755 * gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes. 1756 * expr.c (gfc_clear_shape, gfc_free_shape): New functions. 1757 (free_expr0): Re-use gfc_free_shape. 1758 * trans-expr.c (gfc_trans_subarray_assign): Ditto. 1759 * trans-io.c (transfer_array_component): Ditto. 1760 * resolve.c (check_host_association): Ditto. 1761 (gfc_expr_to_initialize): Don't force the rank value and free the shape 1762 after updating the expression. Recalculate shape and rank. 1763 (resolve_where_shape): Re-use gfc_clear_shape. 1764 * array.c (gfc_array_ref_shape): Ditto. 1765 17662011-08-21 Thomas Koenig <tkoenig@gcc.gnu.org> 1767 1768 PR fortran/47659 1769 * expr.c (gfc_check_assign): Check for type conversions when the 1770 right-hand side is a constant REAL/COMPLEX contstant the left-hand 1771 side is also REAL/COMPLEX. Don't warn when a narrowing conversion 1772 for REAL does not change the value of the constant. 1773 17742011-08-21 Thomas Koenig <tkoenig@gcc.gnu.org> 1775 1776 PR fortran/50130 1777 * resolve.c (resolve_array_ref): Don't calculate upper bound 1778 if the stride is zero. 1779 17802011-08-20 Janus Weil <janus@gcc.gnu.org> 1781 1782 PR fortran/49638 1783 * dependency.c (gfc_dep_compare_expr): Add new result value "-3". 1784 (gfc_check_element_vs_section,gfc_check_element_vs_element): Handle 1785 result value "-3". 1786 * frontend-passes.c (optimize_comparison): Ditto. 1787 * interface.c (gfc_check_typebound_override): Ditto. 1788 17892011-08-19 Mikael Morin <mikael.morin@sfr.fr> 1790 1791 PR fortran/50129 1792 * parse.c (parse_where): Undo changes after emitting an error. 1793 17942011-08-19 Jakub Jelinek <jakub@redhat.com> 1795 1796 PR fortran/49792 1797 * trans-expr.c (gfc_trans_assignment_1): Set OMPWS_SCALARIZER_WS 1798 bit in ompws_flags only if loop.temp_ss is NULL, and clear it if 1799 lhs needs reallocation. 1800 * trans-openmp.c (gfc_trans_omp_workshare): Don't return early if 1801 code is NULL, emit a barrier if workshare emitted no code at all 1802 and NOWAIT clause isn't present. 1803 18042011-08-19 Mikael Morin <mikael.morin@sfr.fr> 1805 1806 PR fortran/50071 1807 * gfortran.h (gfc_exec_op): New constant EXEC_END_NESTED_BLOCK. 1808 * parse.c (check_statement_label): Accept ST_END_BLOCK and 1809 ST_END_ASSOCIATE as valid branch target. 1810 (accept_statement): Change EXEC_END_BLOCK to EXEC_END_NESTED_BLOCK. 1811 Add EXEC_END_BLOCK code in the ST_END_BLOCK and ST_END_ASSOCIATE cases. 1812 * resolve.c (find_reachable_labels): Change EXEC_END_BLOCK to 1813 EXEC_END_NESTED_BLOCK. 1814 (resolve_branch): Ditto. 1815 (resolve_code): Add EXEC_END_NESTED_BLOCK case. 1816 * st.c (gfc_free_statement): Ditto. 1817 * trans.c (trans_code): Ditto. 1818 18192011-08-18 Mikael Morin <mikael.morin@sfr.fr> 1820 1821 PR fortran/50071 1822 * symbol.c (gfc_get_st_label): Use the derived type namespace when 1823 we are parsing a derived type definition. 1824 18252011-08-18 Tobias Burnus <burnus@net-b.de> 1826 1827 PR fortran/18918 1828 * parse.c (parse_derived): Add lock_type 1829 checks, improve coarray_comp handling. 1830 * resolve.c (resolve_allocate_expr, 1831 resolve_lock_unlock, resolve_symbol): Fix lock_type 1832 constraint checks. 1833 18342011-08-17 Tobias Burnus <burnus@net-b.de> 1835 1836 PR fortran/31461 1837 * trans-decl.c (generate_local_decl): Warn about 1838 unused explicitly imported module variables/parameters. 1839 18402011-08-17 Janus Weil <janus@gcc.gnu.org> 1841 1842 PR fortran/50070 1843 * resolve.c (resolve_fl_variable): Reject non-constant character lengths 1844 in COMMON variables. 1845 18462011-08-16 Tobias Burnus <burnus@net-b.de> 1847 Dominique Dhumieres <dominiq@lps.ens.fr> 1848 1849 PR fortran/50094 1850 * resolve.c (resolve_symbol): Fix stupid typo. 1851 18522011-08-15 Tobias Burnus <burnus@net-b.de> 1853 1854 * resolve.c (resolve_symbol): Fix coarray result-var check. 1855 18562011-08-14 Steven G. Kargl <kargl@gcc.gnu.org> 1857 1858 * module.c (use_iso_fortran_env_module): Spell 'referrenced' correctly. 1859 18602011-08-14 Janus Weil <janus@gcc.gnu.org> 1861 1862 PR fortran/50073 1863 * decl.c (check_function_name): New function, separated off from 1864 'variable_decl' and slightly extended. 1865 (variable_decl,attr_decl1): Call it. 1866 18672011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1868 1869 * Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS). 1870 18712011-08-07 Janus Weil <janus@gcc.gnu.org> 1872 Thomas Koenig <tkoenig@gcc.gnu.org> 1873 1874 PR fortran/49638 1875 * dependency.c (are_identical_variables): For dummy arguments only 1876 check for equal names, not equal symbols. 1877 * interface.c (gfc_check_typebound_override): Add checking for rank 1878 and character length. 1879 18802011-08-07 Janus Weil <janus@gcc.gnu.org> 1881 1882 PR fortran/49638 1883 * dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove 1884 two prototypes. 1885 * dependency.c (gfc_are_identical_variables,are_identical_variables): 1886 Renamed the former to the latter and made static. 1887 (gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle 1888 commutativity of multiplication. 1889 (gfc_is_same_range,is_same_range): Renamed the former to the latter, 1890 made static and removed argument 'def'. 1891 (check_section_vs_section): Renamed 'gfc_is_same_range'. 1892 * gfortran.h (gfc_check_typebound_override): New prototype. 1893 * interface.c (gfc_check_typebound_override): Moved here from ... 1894 * resolve.c (check_typebound_override): ... here (and renamed). 1895 (resolve_typebound_procedure): Renamed 'check_typebound_override'. 1896 18972011-08-06 Thomas Koenig <tkoenig@gcc.gnu.org> 1898 1899 PR fortran/50004 1900 * target-memory.c (gfc_target_expr-size): Don't clobber typespec 1901 for derived types. 1902 * simplify.c (gfc_simplify_transfer): Don't calculate source_size 1903 twice. 1904 19052011-08-05 Thomas Koenig <tkoenig@gcc.gnu.org> 1906 1907 PR fortran/37211 1908 * gfortran.h (gfc_calculate_transfer_sizes): Add prototype. 1909 * target-memory.h (gfc_target_interpret_expr): Add boolean 1910 argument wether to convert wide characters. 1911 * target-memory.c (gfc_target_expr_size): Also return length 1912 of characters for non-constant expressions if these can be 1913 determined from the cl. 1914 (interpret_array): Add argument for gfc_target_interpret_expr. 1915 (gfc_interpret_derived): Likewise. 1916 (gfc_target_interpret_expr): Likewise. 1917 * check.c: Include target-memory.h. 1918 (gfc_calculate_transfer_sizes): New function. 1919 (gfc_check_transfer): When -Wsurprising is in force, calculate 1920 sizes and warn if result is larger than size (check moved from 1921 gfc_simplify_transfer). 1922 * simplify.c (gfc_simplify_transfer): Use 1923 gfc_calculate_transfer_sizes. Remove warning. 1924 19252011-08-04 Richard Guenther <rguenther@suse.de> 1926 1927 PR fortran/49957 1928 * trans-array.c (add_to_offset): New function. 1929 (gfc_conv_array_ref): Build the array index expression in optimally 1930 associated order. 1931 (gfc_walk_variable_expr): Adjust for the backward walk. 1932 19332011-08-02 Daniel Kraft <d@domob.eu> 1934 1935 PR fortran/49885 1936 * trans-array.c (gfc_trans_auto_array_allocation): Change 1937 gfc_start_block to gfc_init_block to avoid spurious extra-scope. 1938 19392011-08-02 Tobias Burnus <burnus@net-b.de> 1940 1941 * trans-array.c (gfc_array_allocate): Pass token to 1942 gfc_allocate_allocatable for -fcoarray=lib. 1943 * trans-stmt.c (gfc_trans_allocate): Update 1944 gfc_allocate_allocatable call. 1945 * trans.h (gfc_allocate_allocatable): Update prototype. 1946 (gfc_allocate_using_lib): Remove. 1947 * trans.c (gfc_allocate_using_lib): Make static, handle token. 1948 (gfc_allocate_allocatable): Ditto. 1949 19502011-08-02 Jakub Jelinek <jakub@redhat.com> 1951 1952 PR fortran/46752 1953 * cpp.c (cpp_define_builtins): Change _OPENMP to 201107. 1954 * openmp.c (gfc_free_omp_clauses): Free also final_expr. 1955 (OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define. 1956 (gfc_match_omp_clauses): Handle parsing final and mergeable 1957 clauses. 1958 (OMP_TASK_CLAUSES): Allow final and mergeable clauses. 1959 (gfc_match_omp_taskyield): New function. 1960 (resolve_omp_clauses): Resolve final clause. Allow POINTERs and 1961 Cray pointers in clauses other than REDUCTION. 1962 (gfc_match_omp_atomic): Match optional 1963 read/write/update/capture keywords after !$omp atomic. 1964 (resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms. 1965 * dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD, 1966 print final and mergeable clauses. 1967 (show_code_node): Handle EXEC_OMP_TASKYIELD. 1968 * trans-openmp.c (gfc_trans_omp_clauses): Handle final and 1969 mergeable clauses. 1970 (gfc_trans_omp_taskyield): New function. 1971 (gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD. 1972 (gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms. 1973 (gfc_omp_clause_copy_ctor): Handle non-allocated allocatable. 1974 (gfc_omp_predetermined_sharing): Adjust comment. 1975 * gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and 1976 ST_OMP_END_ATOMIC. 1977 (gfc_omp_clauses): Add final_expr and mergeable fields. 1978 (gfc_exec_op): Add EXEC_OMP_TASKYIELD. 1979 (gfc_omp_atomic_op): New enum typedef. 1980 (struct gfc_code): Add ext.omp_atomic. 1981 * trans.c (trans_code): Handle EXEC_OMP_TASKYIELD. 1982 * frontend-passes.c (gfc_code_walker): Also walk final_expr. 1983 * resolve.c (gfc_resolve_blocks, resolve_code): Handle 1984 EXEC_OMP_TASKYIELD. 1985 * st.c (gfc_free_statement): Likewise. 1986 * match.h (gfc_match_omp_taskyield): New prototype. 1987 * parse.c (decode_omp_directive): Handle taskyield directive. 1988 Handle !$omp end atomic. 1989 (case_executable): Add ST_OMP_TASKYIELD case. 1990 (gfc_ascii_statement): Handle ST_OMP_TASKYIELD. 1991 (parse_omp_atomic): Return gfc_statement instead of void. 1992 For !$omp atomic capture parse two assignments instead of 1993 just one and require !$omp end atomic afterwards, for 1994 other !$omp atomic forms just allow !$omp end atomic at the 1995 end. 1996 (parse_omp_structured_block, parse_executable): Adjust 1997 parse_omp_atomic callers. 1998 19992011-08-02 Tobias Burnus <burnus@net-b.de> 2000 2001 * intrinsic.c (OMP_LIB): Updated openmp_version's 2002 value to 201107. 2003 * gfortran.texi (OpenMP): Update ref to OpenMP 3.1. 2004 * intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1; 2005 remove deleted omp_integer_kind and omp_logical_kind constants. 2006 20072011-07-31 Janus Weil <janus@gcc.gnu.org> 2008 2009 PR fortran/49112 2010 * resolve.c (resolve_structure_cons): Don't do the full dt resolution, 2011 only call 'resolve_fl_derived0'. 2012 (resolve_typebound_procedures): Resolve typebound procedures of 2013 parent type. 2014 (resolve_fl_derived0): New function, which does a part of the work 2015 for 'resolve_fl_derived'. 2016 (resolve_fl_derived): Call 'resolve_fl_derived0' and do some additional 2017 things. 2018 20192011-07-30 Thomas Koenig <tkoenig@gcc.gnu.org> 2020 2021 PR fortran/48876 2022 * expr.c (gfc_simplify_expr): If end of a string is less 2023 than zero, set it to zero. 2024 20252011-07-28 Jakub Jelinek <jakub@redhat.com> 2026 2027 PR fortran/31067 2028 * frontend-passes.c (optimize_minmaxloc): New function. 2029 (optimize_expr): Call it. 2030 20312011-07-27 Tobias Burnus <burnus@net-b.de> 2032 2033 PR fortran/45586 2034 * trans-types.c (gfc_get_derived_type): Ensure that pointer 2035 component types are marked as nonrestricted. 2036 20372011-07-27 Daniel Carrera <dcarrera@gmail.com> 2038 2039 PR fortran/49755 2040 * trans.c (gfc_allocate_using_malloc): Change function signature. 2041 Return nothing. New parameter "pointer". Eliminate temorary variables. 2042 (gfc_allocate_using_lib): Ditto. 2043 (gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib 2044 and gfc_allocate_using_malloc. Do not free and then reallocate a 2045 variable that is already allocated. 2046 (gfc_likely): New function. Basedon gfc_unlikely. 2047 * trans-array.c (gfc_array_init_size): New parameter "descriptor_block". 2048 Instructions to modify the array descriptor are stored in this block 2049 while other instructions continue to be stored in "pblock". 2050 (gfc_array_allocate): Update call to gfc_array_init_size. Move the 2051 descriptor_block so that the array descriptor is only updated if 2052 the array was allocated successfully. 2053 Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc. 2054 * trans.h (gfc_allocate_allocatable): Change function signature. 2055 Function now returns void. 2056 (gfc_allocate_using_lib): Ditto, and new function parameter. 2057 (gfc_allocate_using_malloc): Ditto. 2058 * trans-openmp.c (gfc_omp_clause_default_ctor, 2059 gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call 2060 to gfc_allocate_allocatable with gfc_allocate_using_malloc. 2061 * trans-stmt.c (gfc_trans_allocate): Update function calls for 2062 gfc_allocate_allocatable and gfc_allocate_using_malloc. 2063 20642011-07-26 Tobias Burnus <burnus@net-b.de> 2065 2066 * trans-array.c (CAF_TOKEN_FIELD): New macro constant. 2067 (gfc_conv_descriptor_token): New function. 2068 * trans-array.h (gfc_conv_descriptor_token): New prototype. 2069 * trans-types.c (gfc_get_array_descriptor_base): For coarrays 2070 with -fcoarray=lib, append "void *token" to the array descriptor. 2071 (gfc_array_descriptor_base_caf): New static variable. 2072 * trans-expr.c (gfc_conv_procedure_call): Handle token and offset 2073 when passing a descriptor coarray to a nondescriptor dummy. 2074 20752011-07-23 Tobias Burnus <burnus@net-b.de> 2076 2077 * resolve.c (resolve_symbol): Fix coarray var decl check. 2078 20792011-07-21 Daniel Carrera <dcarrera@gmail.com> 2080 2081 * trans.c (gfc_allocate_with_status): Split into two functions 2082 gfc_allocate_using_malloc and gfc_allocate_usig_lib. 2083 (gfc_allocate_using_malloc): The status parameter is now the 2084 actual status rather than a pointer. Code cleanup. 2085 (gfc_allocate_using_lib): Ditto. Add new parametrs errmsg and 2086 errlen. Pass these to the coarray lib. 2087 * trans-openmp.c (gfc_omp_clause_default_ctor): Update calls to 2088 gfc_allocate_allocatable. 2089 (gfc_omp_clause_copy_ctor): Ditto. 2090 (gfc_trans_omp_array_reduction): Ditto. 2091 * trans-stmt.c (gfc_trans_allocate): Ditto. Update call to 2092 gfc_allocate_using_malloc. Pass stat rather than pstat to the allocate 2093 fuctions. If using coarray lib, pass errmsg and errlen to the allocate 2094 functions. Move error checking outside the if (!gfc_array_allocate) 2095 block so that it also affects trees produced by gfc_array_allocate. 2096 * trans-array.c (gfc_array_allocate): Add new parameters errmsg 2097 and errlen. Replace parameter pstat by status. Code cleanup. Update 2098 calls to gfc_allocate_allocatable and gfc_allocate_using_malloc. 2099 * trans-array.h (gfc_array_allocate): Update signature of 2100 gfc_array_allocate. 2101 21022011-07-21 Steven G. Kargl <kargl@gcc.gnu.org> 2103 2104 * gfortran.texi: Remove a duplicate word. 2105 21062011-07-21 Tobias Burnus <burnus@net-b.de> 2107 2108 * check.c (gfc_check_present): Allow coarrays. 2109 * trans-array.c (gfc_conv_array_ref): Avoid casting 2110 when a pointer is wanted. 2111 * trans-decl.c (create_function_arglist): For -fcoarray=lib, 2112 handle hidden token and offset arguments for nondescriptor 2113 coarrays. 2114 * trans-expr.c (get_tree_for_caf_expr): New function. 2115 (gfc_conv_procedure_call): For -fcoarray=lib pass the 2116 token and offset for nondescriptor coarray dummies. 2117 * trans.h (lang_type): Add caf_offset tree. 2118 (GFC_TYPE_ARRAY_CAF_OFFSET): New macro. 2119 21202011-07-19 Tobias Burnus <burnus@net-b.de> 2121 2122 * expr.c (gfc_is_coarray): New function. 2123 * gfortran.h (gfc_is_coarray): New prototype. 2124 * interface.c (compare_parameter): Use it. 2125 21262011-07-19 Richard Guenther <rguenther@suse.de> 2127 2128 * trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus. 2129 (gfc_trans_string_copy): Likewise. 2130 * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise. 2131 * trans-types.c (gfc_get_array_descr_info): Likewise. 2132 * trans.c (gfc_build_array_ref): Likewise. 2133 21342011-07-19 Janus Weil <janus@gcc.gnu.org> 2135 2136 PR fortran/49708 2137 * resolve.c (resolve_allocate_expr): Fix diagnostics for pointers. 2138 21392011-07-18 Tobias Burnus <burnus@net-b.de> 2140 2141 * trans-decl.c (gfc_build_qualified_array): Make coarray's 2142 token TYPE_QUAL_RESTRICT. 2143 21442011-07-18 Tobias Burnus <burnus@net-b.de> 2145 2146 * resolve.c (resolve_transfer): Mention defined I/O 2147 in the diagnostic for alloc_comp/pointer_comp. 2148 21492011-07-17 Tobias Burnus <burnus@net-b.de> 2150 2151 PR fortran/34657 2152 * module.c (check_for_ambiguous): Check whether the name is matches 2153 the current program unit. 2154 21552011-07-17 Tobias Burnus <burnus@net-b.de> 2156 2157 PR fortran/49624 2158 * expr.c (gfc_check_pointer_assign): Fix checking for invalid 2159 pointer bounds. 2160 21612011-07-16 Tobias Burnus <burnus@net-b.de> 2162 2163 * expr.c (gfc_ref_this_image): New function. 2164 (gfc_is_coindexed): Use it. 2165 * gfortran.h (gfc_ref_this_image): New prototype. 2166 * resolve.c (resolve_deallocate_expr, 2167 resolve_allocate_expr): Support alloc scalar coarrays. 2168 * trans-array.c (gfc_conv_array_ref, gfc_array_init_size, 2169 gfc_conv_descriptor_cosize, gfc_array_allocate, 2170 gfc_trans_deferred_array): Ditto. 2171 * trans-expr.c (gfc_conv_variable) Ditto.: 2172 * trans-stmt.c (gfc_trans_deallocate): Ditto. 2173 * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds 2174 gfc_get_array_descr_info): Ditto. 2175 * trans-decl.c (gfc_get_symbol_decl): Ditto. 2176 21772011-07-11 Jakub Jelinek <jakub@redhat.com> 2178 2179 PR fortran/49698 2180 * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize 2181 inner_size to gfc_index_one_node instead of integer_one_node. 2182 21832011-07-10 Tobias Burnus <burnus@net-b.de> 2184 2185 PR fortran/49690 2186 * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL. 2187 21882011-07-09 Uros Bizjak <ubizjak@gmail.com> 2189 2190 PR fortran/48926 2191 * expr.c (gfc_get_corank): Change return value to int. 2192 * gfortran.h (gfc_get_corank): Update function prototype. 2193 21942011-07-07 Mikael Morin <mikael.morin@sfr.fr> 2195 2196 PR fortran/49648 2197 * resolve.c (resolve_symbol): Force resolution of function result's 2198 array specification. 2199 22002011-07-07 Tobias Burnus <burnus@net-b.de> 2201 2202 * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register 2203 with NULL arguments for (new) stat=/errmsg= arguments. 2204 22052011-07-06 Daniel Carrera <dcarrera@gmail.com> 2206 2207 * trans-array.c (gfc_array_allocate): Rename allocatable_array to 2208 allocatable. Rename function gfc_allocate_array_with_status to 2209 gfc_allocate_allocatable_with_status. Update function call for 2210 gfc_allocate_with_status. 2211 * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function 2212 gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status. 2213 * trans-stmt.c (gfc_trans_allocate): Update function call for 2214 gfc_allocate_with_status. Rename function gfc_allocate_array_with_status 2215 to gfc_allocate_allocatable_with_status. 2216 * trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status 2217 so it uses the library for memory allocation when -fcoarray=lib. 2218 (gfc_allocate_allocatable_with_status): Renamed from 2219 gfc_allocate_array_with_status. 2220 (gfc_allocate_allocatable_with_status): Update function call for 2221 gfc_allocate_with_status. 2222 * trans.h (gfc_coarray_type): New enum. 2223 (gfc_allocate_with_status): Update prototype. 2224 (gfc_allocate_allocatable_with_status): Renamed from 2225 gfc_allocate_array_with_status. 2226 * trans-decl.c (generate_coarray_sym_init): Use the new constant 2227 GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register. 2228 22292011-07-06 Richard Guenther <rguenther@suse.de> 2230 2231 * f95-lang.c (gfc_init_decl_processing): 2232 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2. 2233 22342011-07-04 Jakub Jelinek <jakub@redhat.com> 2235 2236 PR fortran/49623 2237 * gfortranspec.c (lang_specific_driver): Ignore options with 2238 CL_ERR_MISSING_ARG errors. 2239 22402011-07-02 Janus Weil <janus@gcc.gnu.org> 2241 2242 PR fortran/49562 2243 * expr.c (gfc_check_vardef_context): Handle type-bound procedures. 2244 22452011-06-30 Jakub Jelinek <jakub@redhat.com> 2246 2247 PR fortran/49540 2248 * gfortran.h (gfc_constructor): Add repeat field. 2249 * trans-array.c (gfc_conv_array_initializer): Handle repeat > 1. 2250 * array.c (current_expand): Add repeat field. 2251 (expand_constructor): Copy repeat. 2252 * constructor.c (node_free, node_copy, gfc_constructor_get, 2253 gfc_constructor_lookup): Handle repeat field. 2254 (gfc_constructor_lookup_next, gfc_constructor_remove): New functions. 2255 * data.h (gfc_assign_data_value): Add mpz_t * argument. 2256 (gfc_assign_data_value_range): Removed. 2257 * constructor.h (gfc_constructor_advance): Removed. 2258 (gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes. 2259 * data.c (gfc_assign_data_value): Add REPEAT argument, handle it and 2260 also handle overwriting a range with a single entry. 2261 (gfc_assign_data_value_range): Removed. 2262 * resolve.c (check_data_variable): Adjust gfc_assign_data_value 2263 call. Use gfc_assign_data_value instead of 2264 gfc_assign_data_value_expr. 2265 22662011-06-27 Janus Weil <janus@gcc.gnu.org> 2267 2268 PR fortran/49466 2269 * trans-array.c (structure_alloc_comps): Make sure sub-components 2270 and extended types are correctly deallocated. 2271 22722011-06-21 Andrew MacLeod <amacleod@redhat.com> 2273 2274 * trans-openmp.c: Add sync_ or SYNC__ to builtin names. 2275 * trans-stmt.c: Add sync_ or SYNC__ to builtin names. 2276 * trans-decl.c: Add sync_ or SYNC__ to builtin names. 2277 22782011-06-21 Janus Weil <janus@gcc.gnu.org> 2279 2280 PR fortran/49112 2281 * class.c (gfc_find_derived_vtab): Make vtab and default initialization 2282 symbols SAVE_IMPLICIT. 2283 22842011-06-20 Tobias Burnus <burnus@net-b.de> 2285 2286 PR fortran/18918 2287 * gfortran.h (gfc_check_vardef_context): Update prototype. 2288 (iso_fortran_env_symbol): Handle derived types. 2289 (symbol_attribute): Add lock_comp. 2290 * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check. 2291 * interface.c (compare_parameter, gfc_procedure_use): Handle 2292 LOCK_TYPE. 2293 (compare_actual_formal): Update 2294 gfc_check_vardef_context call. 2295 * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto. 2296 * intrinsic.c (check_arglist): Ditto. 2297 * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto. 2298 * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add. 2299 * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE. 2300 * module.c (mio_symbol_attribute): Handle lock_comp. 2301 (create_derived_type): New function. 2302 (use_iso_fortran_env_module): Call it to handle LOCK_TYPE. 2303 * parse.c (parse_derived): Add constraint check for LOCK_TYPE. 2304 * resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint 2305 checks for LOCK_TYPE. 2306 (gfc_resolve_iterator, resolve_deallocate_expr, 2307 resolve_allocate_expr, resolve_code, resolve_transfer): Update 2308 gfc_check_vardef_context call. 2309 * trans-stmt.h (gfc_trans_lock_unlock): New prototype. 2310 * trans-stmt.c (gfc_trans_lock_unlock): New function. 2311 * trans.c (trans_code): Handle LOCK and UNLOCK. 2312 23132011-06-18 Janus Weil <janus@gcc.gnu.org> 2314 2315 PR fortran/49400 2316 * decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside 2317 BLOCK constructs. 2318 23192011-06-17 Janus Weil <janus@gcc.gnu.org> 2320 2321 PR fortran/48699 2322 * check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic, 2323 make sure the vtab is present. 2324 23252011-06-16 Janus Weil <janus@gcc.gnu.org> 2326 2327 PR fortran/49074 2328 * interface.c (gfc_extend_assign): Propagate the locus from the 2329 assignment to the type-bound procedure call. 2330 23312011-06-16 Janus Weil <janus@gcc.gnu.org> 2332 2333 PR fortran/49417 2334 * module.c (mio_component): Make sure the 'class_ok' attribute is set 2335 for use-associated CLASS components. 2336 * parse.c (parse_derived): Check for 'class_ok' attribute. 2337 * resolve.c (resolve_fl_derived): Ditto. 2338 23392011-06-13 Thomas Koenig <tkoenig@gcc.gnu.org> 2340 2341 * frontend-passes.c (remove_trim): New function. 2342 (optimize_assignment): Use it. 2343 (optimize_comparison): Likewise. Return correct status 2344 for previous change. 2345 23462011-06-12 Tobias Burnus 2347 2348 PR fortran/49324 2349 * trans-expr.c (gfc_trans_assignment_1): Tell 2350 gfc_trans_scalar_assign to also deep-copy RHS nonvariables 2351 with allocatable components. 2352 * trans-array.c (gfc_conv_expr_descriptor): Ditto. 2353 23542011-05-11 Thomas Koenig <tkoenig@gcc.gnu.org> 2355 2356 * frontend-passes.c (optimize_assignment): Follow chains 2357 of concatenation operators to the end for removing trailing 2358 TRIMS for assignments. 2359 23602011-06-10 Daniel Carrera <dcarrera@gmail.com> 2361 2362 * trans-decl.c (gfc_build_builtin_function_decls): 2363 Updated declaration of caf_sync_all and caf_sync_images. 2364 * trans-stmt.c (gfc_trans_sync): Function 2365 can now handle a "stat" variable that has an integer type 2366 different from integer_type_node. 2367 23682011-06-09 Richard Guenther <rguenther@suse.de> 2369 2370 * trans.c (gfc_allocate_array_with_status): Mark error path 2371 as unlikely. 2372 23732011-06-08 Tobias Burnus <burnus@net-b.de> 2374 2375 PR fortran/18918 2376 * gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK. 2377 (gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK. 2378 (gfc_code): Add expr4. 2379 * match.h (gfc_match_lock, gfc_match_unlock): New prototypes. 2380 * match.c (gfc_match_lock, gfc_match_unlock, 2381 lock_unlock_statement): New functions. 2382 (sync_statement): Bug fix, avoiding double freeing. 2383 (gfc_match_if): Handle LOCK/UNLOCK statement. 2384 * parse.c (decode_statement, next_statement, 2385 gfc_ascii_statement): Ditto. 2386 * st.c (gfc_free_statement): Handle LOCK and UNLOCK. 2387 * resolve.c (resolve_lock_unlock): New function. 2388 (resolve_code): Call it. 2389 * dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK. 2390 23912011-06-07 Richard Guenther <rguenther@suse.de> 2392 2393 * f95-lang.c (gfc_init_decl_processing): Do not set 2394 size_type_node or call set_sizetype. 2395 23962011-06-05 Tobias Burnus <burnus@net-b.de> 2397 2398 PR fortran/49255 2399 * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer 2400 for F2008. 2401 24022011-06-05 Andreas Schmidt <andreas.schmidt.42@gmx.net> 2403 Thomas Koenig <tkoenig@gcc.gnu.org> 2404 2405 * dump-parse-tree.c (show_symbol): Don't dump namespace 2406 for ENTRY to avoid infinite recursion. 2407 24082011-06-02 Asher Langton <langton2@llnl.gov> 2409 2410 PR fortran/49268 2411 * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray 2412 pointees as AS_EXPLICIT. 2413 24142011-06-02 Asher Langton <langton2@llnl.gov> 2415 2416 PR fortran/37039 2417 * decl.c (variable_decl): Merge current_as before copying to cp_as. 2418 24192011-06-02 Steven G. Kargl <kargl@gcc.gnu.org> 2420 2421 PR fortran/49265 2422 * decl.c (gfc_match_modproc): Allow for a double colon in a module 2423 procedure statement. 2424 * parse.c ( decode_statement): Deal with whitespace around :: in 2425 gfc_match_modproc. 2426 24272011-05-31 Tobias Burnus <burnus@net-b.de> 2428 2429 PR fortran/18918 2430 * intrinsic.c (klass): Add CLASS_ATOMIC. 2431 (add_subroutines): Add atomic_ref/atomic_define. 2432 * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document. 2433 * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref, 2434 gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes. 2435 * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF 2436 and GFC_ISYM_ATOMIC_REF. 2437 (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars. 2438 * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New 2439 functions. 2440 * check.c (gfc_check_atomic, gfc_check_atomic_def, 2441 gfc_check_atomic_ref): New functions. 2442 * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND, 2443 ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value. 2444 * trans-intrinsic.c (conv_intrinsic_atomic_def, 2445 conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New 2446 functions. 2447 (conv_intrinsic_move_alloc) Renamed from 2448 gfc_conv_intrinsic_move_alloc - and made static. 2449 * trans.h (gfc_conv_intrinsic_move_alloc): Remove. 2450 (gfc_conv_intrinsic_subroutine) Add prototype. 2451 * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine. 2452 * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New 2453 global vars. 2454 (gfc_init_kinds): Set them. 2455 24562011-05-31 Tobias Burnus <burnus@net-b.de> 2457 2458 PR fortran/18918 2459 * trans-array.c (gfc_trans_dummy_array_bias): Handle 2460 cobounds of assumed-shape arrays. 2461 24622011-05-31 Tobias Burnus <burnus@net-b.de> 2463 2464 PR fortran/18918 2465 * resolve.c (resolve_fl_variable): Handle static coarrays 2466 with non-constant cobounds. 2467 24682011-05-29 Janus Weil <janus@gcc.gnu.org> 2469 2470 PR fortran/47601 2471 * module.c (mio_component_ref): Handle components of extended types. 2472 * symbol.c (gfc_find_component): Return is sym is NULL. 2473 24742011-05-29 Tobias Burnus <burnus@net-b.de> 2475 2476 PR fortran/18918 2477 * interface.c (compare_parameter): Add check for passing coarray 2478 to allocatable noncoarray dummy. 2479 24802011-05-29 Tobias Burnus <burnus@net-b.de> 2481 Richard Guenther <rguenther@suse.de> 2482 2483 PR fortran/18918 2484 * trans-types.c (gfc_get_nodesc_array_type): Don't mess with 2485 the type's TREE_TYPE. 2486 * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT. 2487 * trans.c (gfc_build_array_ref): Ditto. 2488 24892011-05-27 Tobias Burnus <burnus@net-b.de> 2490 2491 PR fortran/18918 2492 * check.c (gfc_check_associated, gfc_check_null): Add coindexed check. 2493 * match.c (gfc_match_nullify): Ditto. 2494 * resolve.c (resolve_deallocate_expr): Ditto. 2495 * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted 2496 for nonpointers. 2497 24982011-05-27 Tobias Burnus <burnus@net-b.de> 2499 2500 PR fortran/48820 2501 * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK. 2502 * intrinsic.c (add_functions): Add rank intrinsic. 2503 (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR. 2504 * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes. 2505 * simplify.c (gfc_simplify_rank): New function. 2506 * intrinsic.texi (RANK): Add description for rank intrinsic. 2507 * check.c (gfc_check_rank): New function. 2508 25092011-05-26 Paul Thomas <pault@gcc.gnu.org> 2510 Thomas Koenig <tkoenig@gcc.gnu.org> 2511 2512 PR fortran/48955 2513 * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET 2514 changed to GFC_ENABLE_REVERSE. 2515 * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed 2516 to GFC_INHIBIT_REVERSE. 2517 * gfortran.h: Enum gfc_reverse is now GFC_ENABLE_REVERSE, 2518 GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE. 2519 * dependency.c (gfc_dep_resolver): Change names for elements of 2520 gfc_reverse as necessary. Change the logic so that forward 2521 dependences are remembered as well as backward ones. When both 2522 have appeared, force a temporary. 2523 25242011-05-26 Tobias Burnus <burnus@net-b.de> 2525 2526 PR fortran/18918 2527 * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays. 2528 * trans-decl.c (has_coarray_vars, caf_init_block, 2529 gfor_fndecl_caf_register): New file-global variables. 2530 (gfc_finish_var_decl): Make sure that coarrays in main are static. 2531 (gfc_build_qualified_array): Generate coarray token variable. 2532 (gfc_get_symbol_decl): Don't use a static initializer for coarrays. 2533 (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register. 2534 (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for 2535 static coarrays. 2536 (generate_local_decl): Check for local coarrays. 2537 (create_main_function): SYNC ALL before calling MAIN. 2538 (generate_coarray_sym_init): Register static coarray. 2539 (generate_coarray_init): Generate CAF registering constructor 2540 function. 2541 (gfc_generate_function_code): Call it, if needed, do not create 2542 cgraph twice. 2543 (gfc_generate_module_vars, gfc_process_block_locals): Call 2544 generate_coarray_init. 2545 * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for 2546 -fcoarray=lib. 2547 * trans.h (gfor_fndecl_caf_register): New variable. 2548 (lang_type): New element caf_token. 2549 (GFC_TYPE_ARRAY_CAF_TOKEN): New macro. 2550 25512011-05-24 Joseph Myers <joseph@codesourcery.com> 2552 2553 * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o. 2554 (gfortran$(exeext)): Use libcommon-target.a. 2555 25562011-05-22 Thomas Koenig <tkoenig@gcc.gnu.org> 2557 2558 * frontend-passes.c (cfe_register_funcs): Also register 2559 character functions if their charlens are known and constant. 2560 Also register allocatable functions. 2561 25622011-05-21 Janus Weil <janus@gcc.gnu.org> 2563 2564 PR fortran/48699 2565 * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the 2566 selector is ALLOCATABLE. 2567 25682011-05-20 Janus Weil <janus@gcc.gnu.org> 2569 2570 PR fortran/48706 2571 * module.c (write_dt_extensions): Do not write extended types which 2572 are local to a subroutine. 2573 25742011-05-20 Joseph Myers <joseph@codesourcery.com> 2575 2576 * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o. 2577 25782011-05-20 Janne Blomqvist <jb@gcc.gnu.org> 2579 2580 * gfortran.texi (set_fpe): Update documentation. 2581 * invoke.texi (-ffpe-trap): Likewise. 2582 * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT. 2583 * options.c (gfc_handle_fpe_trap_option): Handle inexact and make 2584 precision an alias for it. 2585 25862011-05-19 Tobias Burnus <burnus@net-b.de> 2587 2588 PR fortran/18918 2589 * trans-types.c (gfc_get_element_type): Handle scalar coarrays. 2590 (gfc_get_nodesc_array_type): Make a variant-type copy for scalar 2591 coarrays. 2592 * trans.c (gfc_build_array_ref): Return original type not variant 2593 copy for scalar coarrays. 2594 * trans-array.c (gfc_conv_array_ref): Ditto. 2595 25962011-05-18 Janus Weil <janus@gcc.gnu.org> 2597 2598 PR fortran/48700 2599 * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO' 2600 argument to avoid memory leaks. 2601 26022011-05-16 Tobias Burnus <burnus@net-b.de> 2603 2604 * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR. 2605 (Fortran 2008 status): Multi-image support for coarrays. 2606 (TR 19113 status): New section. 2607 26082011-05-15 Tobias Burnus <burnus@net-b.de> 2609 2610 PR fortran/18918 2611 actual argument is not an array; rank mismatch is diagnosted later. 2612 * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle 2613 scalar coarrays. 2614 * trans-types.c (gfc_get_array_type_bounds): Ditto. 2615 26162011-05-15 Joern Rennecke <amylaar@spamcop.net> 2617 2618 PR middle-end/46500 2619 * trans-types.c: Include "tm.h". 2620 [0] (c_size_t_size): Remove. 2621 26222011-05-15 Janne Blomqvist <jb@gcc.gnu.org> 2623 2624 PR libfortran/48915 2625 * gfortran.texi (_gfortran_set_options): Even though -fbacktrace 2626 is now the default, the library defaults to backtracing disabled. 2627 26282011-05-14 Tobias Burnus <burnus@net-b.de> 2629 2630 * lang.opt (fdump-core): Re-add as ignored option 2631 for backward compatibility. 2632 26332011-05-14 Janne Blomqvist <jb@gcc.gnu.org> 2634 2635 PR libfortran/48915 2636 * gfortran.texi: Update mixed-language programming section 2637 reflecting the removal of the fdump-core option, and that 2638 -fbacktrace is now enabled by default. 2639 26402011-05-14 Thomas Koenig <tkoenig@gcc.gnu.org> 2641 2642 PR fortran/22572 2643 * frontend-passes.c (cfe_register_funcs): Also register functions 2644 for potential elimination if the rank is > 0, the shape is unknown 2645 and reallocate on assignment is active. 2646 (create_var): For rank > 0 functions with unknown shape, create 2647 an allocatable temporary. 2648 26492011-05-14 Tobias Burnus <burnus@net-b.de> 2650 2651 PR fortran/18918 2652 * interface.c (compare_parameter): Skip diagnostic if 2653 actual argument is not an array; rank mismatch is diagnosted later. 2654 26552011-05-14 Tobias Burnus <burnus@net-b.de> 2656 2657 * options.c (gfc_init_options, gfc_post_options): Enable 2658 -fstack-arrays by default if -Ofast is used. 2659 * invoke.texi (-fstack-arrays): Document this. 2660 26612011-05-14 Janne Blomqvist <jb@gcc.gnu.org> 2662 2663 PR libfortran/48915 2664 * gfortran.h (gfc_option_t): Remove flag_dump_core. 2665 * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section. 2666 (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default. 2667 * intrinsic.texi (ABORT): Remove explanation of -fdump-core. 2668 * invoke.texi: Remove -fdump-core, document that -fbacktrace is 2669 enabled by default. 2670 * lang.opt: Remove -fdump-core. 2671 * options.c (gfc_init_options): Make backtrace default to enabled, 2672 remove dump_core. 2673 (gfc_handle_option): Remove OPT_fdump-core. 2674 * trans-decl.c: Pass a 0 to preserve ABI. 2675 26762011-05-14 Janne Blomqvist <jb@gcc.gnu.org> 2677 2678 * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation. 2679 26802011-05-13 Tobias Burnus <burnus@net-b.de> 2681 2682 PR fortran/48972 2683 * io.c (resolve_tag_format, resolve_tag): Make sure 2684 that the string is of default kind. 2685 (gfc_resolve_inquire): Also resolve decimal tag. 2686 26872011-05-12 Tobias Burnus <burnus@net-b.de> 2688 2689 PR fortran/48972 2690 * resolve.c (resolve_intrinsic): Don't resolve module 2691 intrinsics multiple times. 2692 26932011-05-11 Tobias Burnus <burnus@net-b.de> 2694 2695 PR fortran/48889 2696 * expr.c (gfc_is_constant_expr): Use e->value.function.esym 2697 instead of e->symtree->n.sym, if available. 2698 26992011-05-07 Eric Botcazou <ebotcazou@adacore.com> 2700 2701 * f95-lang.c (global_bindings_p): Return bool and simplify. 2702 27032011-05-07 Tobias Burnus <burnus@net-b.de> 2704 2705 PR fortran/18918 2706 PR fortran/48919 2707 * trans.h: Move gfc_init_coarray_decl prototype ... 2708 * gfortran.h: ... to here. 2709 * parse.c (translate_all_program_units): Call gfc_init_coarray_decl. 2710 (gfc_parse_file): Update translate_all_program_units call. 2711 * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration, 2712 new argument whether DECL_EXTERNAL should be used. 2713 (create_main_function): Update gfc_init_coarray_decl call. 2714 * trans-intrinsic.c (trans_this_image, trans_image_index, 2715 conv_intrinsic_cobound): Ditto. 2716 27172011-05-06 Tobias Burnus <burnus@net-b.de> 2718 2719 PR fortran/18918 2720 * trans-array.c (gfc_walk_variable_expr): Continue walking 2721 for scalar coarrays. 2722 * trans-intrinsic.c (convert_element_to_coarray_ref): New function. 2723 (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it. 2724 (trans_this_image): Fix algorithm. 2725 * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base, 2726 gfc_sym_type): Handle scalar coarrays. 2727 27282011-05-06 Tobias Burnus <burnus@net-b.de> 2729 2730 PR fortran/48858 2731 PR fortran/48820 2732 * lang.opt (std=f2008tr): New. 2733 * libgfortran.h (GFC_STD_F2008_TR): New macro constant. 2734 * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C) 2735 procedures for -std=f2008tr/gnu/legacy. 2736 (gfc_match_import): Set sym to NULL. 2737 * options.c (set_default_std_flags,gfc_handle_option): Handle 2738 -std=f2008tr. 2739 * invoke.texi (-std=): Document -std=f2008tr. 2740 27412011-05-05 Nathan Froyd <froydnj@codesourcery.com> 2742 2743 * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label. 2744 * trans-io.c (add_case): Likewise. 2745 * trans-stmt.c (gfc_trans_integer_select): Likewise. 2746 (gfc_trans_character_select): Likewise. 2747 27482011-05-05 Eric Botcazou <ebotcazou@adacore.com> 2749 2750 * trans-decl.c (trans_function_start): Do not set 2751 dont_save_pending_sizes_p. 2752 27532011-05-04 Nathan Froyd <froydnj@codesourcery.com> 2754 2755 * trans.h (gfc_chainon_list): Delete. 2756 * trans.c (gfc_chainon_list): Delete. 2757 27582011-05-04 Tobias Burnus <burnus@net-b.de> 2759 2760 PR fortran/48864 2761 * invoke.texi (fno-protect-parens): Document 2762 that -Ofast implies -fno-protect-parens. 2763 * options.c (gfc_init_options, gfc_post_options): 2764 Make -Ofast imply -fno-protect-parens. 2765 27662011-05-04 Nathan Froyd <froydnj@codesourcery.com> 2767 2768 * trans-decl.c (build_library_function_decl_1): Call 2769 build_function_type_vec. Adjust argument list building accordingly. 2770 * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise. 2771 * trans-types.c (gfc_get_function_type): Likewise. 2772 27732011-05-04 Richard Guenther <rguenther@suse.de> 2774 2775 * trans-array.c (gfc_trans_array_constructor_value): Use 2776 size_int for bounds of range types. 2777 (gfc_trans_array_constructor_value): Use size_type_node 2778 for memcpy argument. 2779 * trans-common.c (build_field): Use gfc_charlen_type_node 2780 for lengths. 2781 * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL 2782 as type to build_int_cst. 2783 * trans-const.c (gfc_build_string_const): Use size_int 2784 for bounds of range types. 2785 (gfc_build_wide_string_const): Likewise. 2786 * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node 2787 for lengths. 2788 (gfc_trans_character_select): Likewise. 2789 (gfc_trans_character_select): Do not pass NULL 2790 as type to build_int_cst. 2791 (gfc_trans_character_select): Use size_int for bounds of range types. 2792 * trans-io.c (gfc_build_io_library_fndecls): Likewise. 2793 (add_case): Do not pass NULL as type to build_int_cst. 2794 (transfer_expr): Likewise. 2795 (transfer_array_desc): Likewise. 2796 * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node 2797 for lengths. 2798 (gfc_trans_assign_aux_var): Likewise. 2799 (create_main_function): Use size_int for bounds of range types. 2800 * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass 2801 NULL as type to build_int_cst. 2802 (gfc_conv_intrinsic_spacing): Likewise. 2803 (gfc_conv_intrinsic_rrspacing): Likewise. 2804 (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths. 2805 28062011-05-04 Richard Guenther <rguenther@suse.de> 2807 2808 * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc 2809 argument to int_const_binop. 2810 28112011-05-03 Tobias Burnus <burnus@net-b.de> 2812 2813 PR fortran/18918 2814 * trans-intrinsic.c (trans_this_image): Implement version with 2815 coarray argument. 2816 (conv_intrinsic_cobound): Simplify code. 2817 (gfc_conv_intrinsic_function): Call trans_this_image for 2818 this_image(coarray) except for -fcoarray=single. 2819 28202011-05-02 Steven G. Kargl <kargl@gcc.gnu.org> 2821 2822 PR fortran/48720 2823 * gfortran.texi: Document the 'Q' exponent-letter extension. 2824 * invoke.texi: Document -Wreal-q-constant. 2825 * lang.opt: Add -Wreal-q-constant option. 2826 * gfortran.h: Add warn_real_q_constant to option struct. 2827 * primary.c (match_real_constant): Use it. Accept 'Q' as 2828 exponent-letter for REAL(16) real-literal-constant with a 2829 fallback to REAL(10) or error if REAL(10) is not available. 2830 * options.c (gfc_init_options, set_Wall) Set it. 2831 (gfc_handle_option): Handle new option. 2832 28332011-04-30 Thomas Koenig <tkoenig@gcc.gnu.org> 2834 2835 * dump-prase-tree.c (show_code_node): Set the current 2836 namespace to the BLOCK before displaying it; restore 2837 afterwards. 2838 28392011-04-30 Tobias Burnus <burnus@net-b.de> 2840 2841 PR fortran/48821 2842 * decl.c (gfc_match_import): Don't try to find the 2843 symbol if already found. 2844 28452011-04-30 Paul Thomas <pault@gcc.gnu.org> 2846 2847 PR fortran/48746 2848 * trans-expr.c (fcncall_realloc_result): Set the bounds and the 2849 offset so that the lbounds are one. 2850 (gfc_trans_arrayfunc_assign): Add rank to arguments of above. 2851 28522011-04-29 Paul Thomas <pault@gcc.gnu.org> 2853 2854 PR fortran/48462 2855 * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with 2856 automatic reallocation when the lhs is a target. 2857 2858 PR fortran/48746 2859 * trans-expr.c (fcncall_realloc_result): Make sure that the 2860 result dtype field is set before the function call. 2861 28622011-04-29 Tobias Burnus <burnus@net-b.de> 2863 2864 PR fortran/48810 2865 * resolve.c (resolve_typebound_generic_call): Don't check access 2866 flags of the specific function. 2867 2868 PR fortran/48800 2869 * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED 2870 to AS_ASSUMED_SHAPE for function results. 2871 (resolve_fl_var_and_proc): Print also for function results with 2872 AS_DEFERRED an error, if they are not a pointer or allocatable. 2873 (resolve_types): Make sure arguments of procedures in interface 2874 blocks are resolved. 2875 28762011-04-29 Michael Matz <matz@suse.de> 2877 2878 * options.c (options.c): Set warn_maybe_uninitialized. 2879 28802011-04-28 Tobias Burnus <burnus@net-b.de> 2881 2882 PR fortran/48112 2883 * resolve.c (resolve_fl_var_and_proc): Print diagnostic of 2884 function results only once. 2885 (resolve_symbol): Always resolve function results. 2886 2887 PR fortran/48279 2888 * expr.c (gfc_check_vardef_context): Fix handling of generic 2889 EXPR_FUNCTION. 2890 * interface.c (check_interface0): Reject internal functions 2891 in generic interfaces, unless -std=gnu. 2892 28932011-04-27 Tobias Burnus <burnus@net-b.de> 2894 2895 PR fortran/48788 2896 * resolve.c (resolve_global_procedure): Error recovery - 2897 avoid segfault for (non)character-returning functions. 2898 28992011-04-26 Thomas Koenig <tkoenig@gcc.gnu.org> 2900 2901 * decl.c (gfc_match_end): Check that the block name starts 2902 with "block@". 2903 * parse.c (gfc_build_block_ns): Make block names unique by 2904 numbering them. 2905 29062011-04-26 Thomas Koenig <tkoenig@gcc.gnu.org> 2907 2908 * frontend-passes.c (inserted_block): New variable. 2909 (changed_statement): Likewise. 2910 (create_var): Encase statement to be operated on in a BLOCK. 2911 Adjust code insertion for BLOCK. 2912 (cfe_code): Set inserted_block and changed_statement to NULL. 2913 29142011-04-23 Tobias Burnus <burnus@net-b.de> 2915 2916 PR fortran/18918 2917 * module.c (mio_array_spec): Set as->cotype on reading. 2918 * resolve.c (resolve_allocate_expr): Fix allocating coarray 2919 components. 2920 29212011-04-21 Thomas Koenig <tkoenig@gcc.gnu.org> 2922 2923 PR fortran/48405 2924 * frontend_passes (cfe_register_funcs): Remove workaround for DO 2925 loops. 2926 (gfc_code_walker): Make sure the pointer to the current 2927 statement doen't change when other statements are inserted. 2928 29292011-04-21 Tobias Burnus <burnus@net-b.de> 2930 2931 PR fortran/18918 2932 * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check. 2933 29342011-04-20 Jim Meyering <meyering@redhat.com> 2935 2936 * expr.c (free_expr0): Remove useless if-before-free. 2937 * gfortranspec.c (lang_specific_pre_link): Likewise. 2938 * interface.c (gfc_extend_expr): Likewise. 2939 * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise. 2940 29412011-04-19 Tobias Burnus <burnus@net-b.de> 2942 2943 PR fortran/48588 2944 PR fortran/48692 2945 2946 * module.c (fix_mio_expr): Commit created symbol. 2947 29482011-04-19 Janne Blomqvist <jb@gcc.gnu.org> 2949 2950 * scanner.c (load_file): Use XCNEWVAR instead of xcalloc. 2951 29522011-04-19 Janne Blomqvist <jb@gcc.gnu.org> 2953 2954 * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of 2955 free. 2956 29572011-04-19 Janne Blomqvist <jb@gcc.gnu.org> 2958 2959 * misc.c (gfc_getmem): Remove function. 2960 * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem 2961 usage with XCNEW or XCNEWVEC. 2962 * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with 2963 XCNEW or XCNEWVEC. 2964 * options.c (gfc_handle_module_path_options) 2965 (gfc_get_option_string): Likewise. 2966 * resolve.c (gfc_resolve_forall): Likewise. 2967 * simplify.c (simplify_transformation_to_array): Likewise. 2968 * target-memory.c (gfc_target_interpret_expr): Likewise. 2969 * trans-common.c (get_segment_info, copy_equiv_list_to_ns) 2970 (get_init_field): Likewise. 2971 * trans-expr.c (gfc_conv_statement_function): Likewise. 2972 * trans-io.c (nml_full_name): Likewise. 2973 * trans-stmt.c (gfc_trans_forall_1): Likewise. 2974 * scanner.c (load_file): Replace gfc_getmem usage with xcalloc. 2975 29762011-04-19 Tobias Burnus <burnus@net-b.de> 2977 2978 PR fortran/48588 2979 * parse.c (resolve_all_program_units): Skip modules. 2980 (translate_all_program_units): Handle modules. 2981 (gfc_parse_file): Defer code generation for modules. 2982 29832011-04-19 Martin Jambor <mjambor@suse.cz> 2984 2985 * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node 2986 instead of cgraph_get_create_node. 2987 29882011-04-18 Jim Meyering <meyering@redhat.com> 2989 2990 remove now-unused definition of gfc_free 2991 * misc.c (gfc_free): Remove function. 2992 * gfortran.h (gfc_free): Remove its prototype. 2993 29942011-04-18 Jim Meyering <meyering@redhat.com> 2995 2996 convert each use of gfc_free (p) to free (p) 2997 Do that by running this command: 2998 perl -pi -e 's/\bgfc_free ?\(/free (/' \ 2999 $(git grep -El '\bgfc_free ?\(') 3000 which also corrects the few uses that lacked a space between 3001 the function name and the open parenthesis. 3002 Manually undo the change to the function definition itself 3003 and its prototype. They'll be removed next. 3004 * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/ 3005 * constructor.c (node_free): Likewise. 3006 * cpp.c (dump_queued_macros): Likewise. 3007 * data.c (gfc_assign_data_value): Likewise. 3008 * decl.c (free_variable, free_value, gfc_free_data): Likewise. 3009 (gfc_free_data_all, match_old_style_init): Likewise. 3010 (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL): 3011 Likewise. 3012 (gfc_match_modproc): Likewise. 3013 * dependency.c (check_section_vs_section): Likewise. 3014 * error.c (gfc_pop_error, gfc_free_error): Likewise. 3015 * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise. 3016 (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise. 3017 (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol): 3018 Likewise. 3019 * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise. 3020 (strip_function_call, optimize_comparison): Likewise. 3021 * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise. 3022 (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist): 3023 Likewise. 3024 * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise. 3025 (gfc_convert_chartype): Likewise. 3026 * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close): 3027 Likewise. 3028 (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise. 3029 * match.c (gfc_free_iterator, gfc_match_associate): Likewise. 3030 (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until): 3031 Likewise. 3032 (free_case, gfc_free_forall_iterator): Likewise. 3033 * misc.c: Likewise. 3034 * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise. 3035 (free_true_name, peek_atom, mio_allocated_wide_string): Likewise. 3036 (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise. 3037 (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise. 3038 (mio_full_typebound_tree, skip_list, load_equiv): Likewise. 3039 (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise. 3040 * openmp.c (gfc_free_omp_clauses): Likewise. 3041 * options.c (gfc_post_options): Likewise. 3042 * parse.c (select_type_pop, parse_omp_structured_block): Likewise. 3043 * primary.c (gfc_free_structure_ctor_component): Likewise. 3044 * resolve.c (resolve_structure_cons, check_host_association): Likewise. 3045 (gfc_resolve_forall, resolve_equivalence): Likewise. 3046 * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise. 3047 (gfc_define_undef_line, preprocessor_line, include_line): Likewise. 3048 (load_file, gfc_read_orig_filename): Likewise. 3049 * simplify.c (simplify_transformation_to_array): Likewise. 3050 (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING): 3051 Likewise. 3052 (gfc_simplify_compiler_options): Likewise. 3053 * st.c (gfc_free_statement, gfc_free_statements): Likewise. 3054 (gfc_free_association_list): Likewise. 3055 * symbol.c (free_components, gfc_free_st_label, free_st_labels): 3056 Likewise. 3057 (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise. 3058 (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise. 3059 (free_common_tree, free_uop_tree, free_sym_tree): Likewise. 3060 (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists): 3061 Likewise. 3062 (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise. 3063 (gfc_free_namespace): Likewise. 3064 * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise. 3065 (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise. 3066 (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise. 3067 * trans-common.c (get_init_field, create_common): Likewise. 3068 * trans-const.c (gfc_build_wide_string_const): Likewise. 3069 (gfc_conv_string_init): Likewise. 3070 * trans-decl.c (gfc_generate_function_code): Likewise. 3071 * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping): 3072 Likewise. 3073 (SCALAR_POINTER, gfc_conv_statement_function): Likewise. 3074 (gfc_trans_subarray_assign): Likewise. 3075 * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise. 3076 * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise. 3077 (transfer_namelist_element, transfer_array_component): Likewise. 3078 * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise. 3079 * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise. 3080 * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus): 3081 Likewise. 3082 30832011-04-15 Jim Meyering <meyering@redhat.com> 3084 3085 gfortran: remove cpp definition of free, ... 3086 in preparation for the s/gfc_free/free/ transformation. 3087 * gfortran.h (free): Remove macro definition that would otherwise 3088 prevent direct use of the function. 3089 30902011-04-18 Tobias Burnus <burnus@net-b.de> 3091 3092 PR fortran/18918 3093 * array.c (gfc_match_array_ref): Check for too many codimensions. 3094 * check.c (gfc_check_image_index): Check number of elements 3095 in SUB argument. 3096 * simplify.c (gfc_simplify_image_index): Remove unreachable checks. 3097 30982011-04-18 Tobias Burnus <burnus@net-b.de> 3099 3100 PR fortran/18918 3101 * iresolve.c (gfc_resolve_image_index): Set ts.type. 3102 * simplify.c (gfc_simplify_image_index): Don't abort if the bounds 3103 are not known at compile time and handle -fcoarray=lib. 3104 * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle 3105 IMAGE_INDEX. 3106 (conv_intrinsic_cobound): Fix comment typo. 3107 (trans_this_image): New function. 3108 * trans-array.c (gfc_unlikely): Move to trans.c. 3109 * trans.c (gfc_unlikely): Function moved from trans-array.c. 3110 (gfc_trans_runtime_check): Use it. 3111 * trans-io.c (gfc_trans_io_runtime_check): Ditto. 3112 * trans.h (gfc_unlikely): Add prototype. 3113 31142011-04-18 Paul Thomas <pault@gcc.gnu.org> 3115 3116 PR fortran/48462 3117 * trans-expr.c (fcncall_realloc_result): Renamed version of 3118 realloc_lhs_bounds_for_intrinsic_call that does not touch the 3119 descriptor bounds anymore but makes a temporary descriptor to 3120 hold the result. 3121 (gfc_trans_arrayfunc_assign): Modify the reference to above 3122 renamed function. 3123 31242011-05-17 Tobias Burnus <burnus@net-b.de> 3125 3126 PR fortran/48624 3127 * trans-decl.c (gfc_get_extern_function_decl): Fix decl 3128 for external procedures with proc arguments. 3129 31302011-04-15 Michael Matz <matz@suse.de> 3131 3132 * trans-array.c (toplevel): Include gimple.h. 3133 (gfc_trans_allocate_array_storage): Check flag_stack_arrays, 3134 properly expand variable length arrays. 3135 (gfc_trans_auto_array_allocation): If flag_stack_arrays create 3136 variable length decls and associate them with their scope. 3137 * gfortran.h (gfc_option_t): Add flag_stack_arrays member. 3138 * options.c (gfc_init_options): Handle -fstack_arrays option. 3139 * lang.opt (fstack-arrays): Add option. 3140 * invoke.texi (Code Gen Options): Document it. 3141 * Make-lang.in (trans-array.o): Depend on GIMPLE_H. 3142 31432011-04-15 Tobias Burnus <burnus@net-b.de> 3144 3145 PR fortran/18918 3146 * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused 3147 code which is also causing an ICE. 3148 31492011-04-14 Nathan Froyd <froydnj@codesourcery.com> 3150 3151 * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon. 3152 31532011-04-12 Nathan Froyd <froydnj@codesourcery.com> 3154 3155 * f95-lang.c (union lang_tree_node): Check for TS_COMMON before 3156 calling TREE_CHAIN. 3157 31582011-04-12 Paul Thomas <pault@gcc.gnu.org> 3159 3160 PR fortran/48360 3161 PR fortran/48456 3162 * trans-array.c (get_std_lbound): For derived type variables 3163 return array valued component lbound. 3164 31652011-04-12 Martin Jambor <mjambor@suse.cz> 3166 3167 * trans-decl.c (gfc_generate_function_code): Call 3168 cgraph_get_create_node instead of cgraph_node. 3169 31702011-04-11 Tobias Burnus <burnus@net-b.de> 3171 3172 PR fortran/18918 3173 * simplify.c (simplify_bound_dim): Exit for 3174 ucobound's last dimension unless -fcoarray=single. 3175 * trans-array (gfc_conv_descriptor_size_1): Renamed from 3176 gfc_conv_descriptor_size, made static, has now from_dim and 3177 to_dim arguments. 3178 (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size. 3179 (gfc_conv_descriptor_cosize): New function. 3180 * trans-array.h (gfc_conv_descriptor_cosize): New prototype. 3181 * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location 3182 and handle last codim of ucobound for when -fcoarray is not "single". 3183 31842011-04-08 Thomas Koenig <tkoenig@gcc.gnu.org> 3185 3186 PR fortran/48448 3187 * gfortran.h (gfc_option_t): Add warn_function_elimination and 3188 flag_frontend_optimize. 3189 * lang.opt (Wfunction-elimination): Add. 3190 (ffrontend-optimize): Add. 3191 * invoke.texi: Add documentation for -Wfunction-elimination 3192 and -ffrontend-optimize. Add -faggressive-function-elimination 3193 to list of code generation options. 3194 * frontend-passes.c (gfc_run_passes): Run optimizations if 3195 flag_frontend_optimize is set. 3196 (warn_function_elimination): New function. 3197 (cfe_expr_0): Call it if requested to do so. 3198 * options.c (gfc_init_options): Initiate warn_function_elimination 3199 and flag_frontend_optimize. 3200 (gfc_post_options): Set flag_frontend_optimize if not specified 3201 by user, depending on the optimization level. 3202 (gfc_handle_option): Handle -Wfunction-elimination and 3203 -ffrontend-optimize. 3204 32052011-04-06 Tobias Burnus <burnus@net-b.de> 3206 3207 PR fortran/18918 3208 * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix 3209 call for this_image. 3210 32112011-04-05 Nathan Froyd <froydnj@codesourcery.com> 3212 3213 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use 3214 build_function_type_list instead of build_function_type. Correct 3215 argument order for func_frexp and func_scalbn. 3216 32172011-04-05 Duncan Sands <baldrick@free.fr> 3218 3219 * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types. 3220 32212011-04-04 Thomas Koenig <tkoenig@gcc.gnu.org> 3222 3223 * frontend-passes: (optimize_lexical_comparison): New function. 3224 (optimize_expr): Call it. 3225 (optimize_comparison): Also handle lexical comparison functions. 3226 Return false instad of -2 for unequal comparison. 3227 32282011-04-04 Thomas Koenig <tkoenig@gcc.gnu.org> 3229 3230 PR fortran/48412 3231 * frontend-passes (cfe_expr_0): Reverse the order of going 3232 through the loops. 3233 32342011-04-04 Tobias Burnus <burnus@net-b.de> 3235 Mikael Morin <mikael.morin@sfr.fr> 3236 3237 PR fortran/18918 3238 * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE. 3239 * expr.c (gfc_is_coindexed): Ditto. 3240 * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE. 3241 * interface.c (compare_parameter): Use gfc_expr_attr and 3242 gfc_is_coindexed. 3243 * resolve.c (check_dimension, compare_spec_to_ref, 3244 resolve_allocate_expr, check_data_variable): Update for 3245 DIMEN_THIS_IMAGE. 3246 * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image, 3247 gfc_simplify_ucobound): Allow non-constant bounds. 3248 * trans-array.c (gfc_set_loop_bounds_from_array_spec, 3249 gfc_trans_create_temp_array, gfc_trans_constant_array_constructor, 3250 gfc_set_vector_loop_bounds, gfc_conv_array_index_offset, 3251 gfc_start_scalarized_body, gfc_trans_scalarizing_loops, 3252 gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride, 3253 gfc_conv_ss_startstride, gfc_conv_loop_setup, 3254 gfc_trans_array_bounds, gfc_conv_expr_descriptor, 3255 gfc_walk_variable_expr): Handle codimen. 3256 * trans-decl.c (gfc_build_qualified_array): Save cobounds. 3257 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2. 3258 (conv_intrinsic_cobound): New function. 3259 (gfc_conv_intrinsic_function): Call it. 3260 (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle 3261 ucobound, lcobound, this_image. 3262 * fortran/trans-types.c (gfc_build_array_type): Save cobounds. 3263 (gfc_get_dtype): Honour corank. 3264 (gfc_get_nodesc_array_type): Save corank and codimensions. 3265 (gfc_get_array_type_bounds): Save cobound. 3266 * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item. 3267 (gfc_array_kind): Add corank item. 3268 (GFC_TYPE_ARRAY_CORANK): New macro. 3269 32702011-04-03 Kai Tietz <ktietz@redhat.com> 3271 3272 PR middle-end/48422 3273 * Make-lang.in (f95-lang.o): Add some missing dependencies. 3274 32752011-04-01 Thomas Koenig <tkoenig@gcc.gnu.org> 3276 3277 PR fortran/48352 3278 * frontend-passes (cfe_register_funcs): Don't 3279 register functions if they appear as iterators in DO loops. 3280 32812011-03-30 Michael Matz <matz@suse.de> 3282 3283 PR fortran/47516 3284 * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter, 3285 don't use local variable. 3286 (gfc_trans_arrayfunc_assign): Adjust caller. 3287 32882011-03-29 Janus Weil <janus@gcc.gnu.org> 3289 3290 PR fortran/48095 3291 * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface. 3292 * module.c (MOD_VERSION): Bump. 3293 (mio_typespec): Read/write 'interface' field. 3294 * primary.c (match_string_constant,match_logical_constant): Remove 3295 unneeded code. 3296 (match_complex_constant): Make sure to clear the typespec. 3297 32982011-03-29 Thomas Koenig <tkoenig@gcc.gnu.org> 3299 3300 * frontend-passes.c (create_var): Warn about creating an 3301 array temporary if requested. 3302 33032011-03-27 Thomas Koenig <tkoenig@gcc.gnu.org> 3304 3305 PR fortran/47065 3306 * frontend-passes.c (optimize_trim): Also follow references, except 3307 when they are substring references or array references. 3308 33092011-03-27 Tobias Burnus <burnus@net-b.de> 3310 3311 PR fortran/18918 3312 * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to 3313 GFC_ISYM_NUM_IMAGES. 3314 (gfc_fcoarray): Add GFC_FCOARRAY_LIB. 3315 * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES 3316 rename. 3317 * invoke.texi (-fcoarray=): Document "lib" argument. 3318 * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE(). 3319 * libgfortran.h (libgfortran_stat_codes): Add comments. 3320 * options.c (gfc_handle_coarray_option): Add -fcoarray=lib. 3321 * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image): 3322 Handle GFC_FCOARRAY_LIB. 3323 * trans.h (gfc_init_coarray_decl): New prototype. 3324 (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize, 3325 gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical, 3326 gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images, 3327 gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str, 3328 gfort_gvar_caf_num_images, gfort_gvar_caf_this_image): 3329 New global variables. 3330 * trans-decl.c: Declare several CAF functions (cf. above). 3331 (gfc_build_builtin_function_decls): Initialize those. 3332 (gfc_init_coarray_decl): New function. 3333 (create_main_function): Call CAF init/finalize functions. 3334 * trans-intrinsic.c (trans_this_image, trans_num_images): New. 3335 (gfc_conv_intrinsic_function): Call those. 3336 * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical): 3337 Add code for GFC_FCOARRAY_LIB. 3338 33392011-03-26 Janus Weil <janus@gcc.gnu.org> 3340 3341 PR fortran/48291 3342 * class.c (get_unique_hashed_string): Adjust maximum allowable length 3343 for unique type string. 3344 33452011-03-25 Kai Tietz <ktietz@redhat.com> 3346 3347 * scanner.c (preprocessor_line): Use filename_cmp 3348 instead of strcmp. 3349 33502011-03-25 Tobias Burnus <burnus@net-b.de> 3351 3352 PR fortran/48174 3353 PR fortran/45304 3354 * trans-types.c (gfc_get_function_type): Don't use varargs if the 3355 procedure is known to have no arguments. 3356 33572011-03-21 Thomas Koenig <tkoenig@gcc.gnu.org> 3358 3359 PR fortran/22572 3360 * gfortran.h (gfc_option_t): Add 3361 flag_aggressive_function_elimination. 3362 (gfc_dep_compare_functions): Add prototype. 3363 * lang.opt: Add faggressive-function-elimination. 3364 * invoke.texi: Document -faggressive-function-elimination. 3365 * frontend_passes (expr_array): New static variable. 3366 (expr_size): Likewise. 3367 (expr_count): Likewise. 3368 (current_code): Likewise. 3369 (current_ns): Likewise. 3370 (gfc_run_passes): Allocate and free space for expressions. 3371 (cfe_register_funcs): New function. 3372 (create_var): New function. 3373 (cfc_expr_0): New function. 3374 (cfe_code): New function. 3375 (optimize_namespace): Invoke gfc_code_walker with cfe_code 3376 and cfe_expr_0. 3377 * dependency.c (gfc_dep_compare_functions): New function. 3378 (gfc_dep_compare_expr): Use it. 3379 * options.c (gfc_init_options): Handle 3380 flag_aggressive_function_elimination. 3381 (gfc_handle_option): Likewise. 3382 33832011-03-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3384 3385 * arith.c (arith_power): Plug memory leak. 3386 33872011-03-12 Janus Weil <janus@gcc.gnu.org> 3388 3389 PR fortran/48059 3390 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type 3391 for polymorphic arguments. 3392 33932011-03-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3394 3395 PR fortran/48054 3396 * intrinsic.texi: Clarify doc of logarithm functions. 3397 33982011-03-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3399 3400 PR fortran/47552 3401 * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of 3402 the string length variable. 3403 34042011-03-11 Janus Weil <janus@gcc.gnu.org> 3405 3406 PR fortran/47768 3407 * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP. 3408 (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'. 3409 34102011-03-06 Paul Thomas <pault@gcc.gnu.org> 3411 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3412 3413 PR fortran/47850 3414 * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if 3415 the expression has an iterator. Otherwise, iterate through the 3416 array, checking for constant expressions for each element. 3417 34182011-03-04 Janne Blomqvist <jb@gcc.gnu.org> 3419 3420 PR libfortran/47802 3421 * intrinsic.texi: Update CTIME and FDATE documentation. 3422 34232011-03-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3424 3425 * invoke.texi (Option Summary, Fortran Dialect Options) 3426 (Preprocessing Options, Runtime Options, Code Gen Options): 3427 Fix vertical list spacing by using @itemx for additinoal 3428 items, empty line before @table. Fix typos. 3429 34302011-02-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3431 3432 PR fortran/47894 3433 * intrinsic.texi: Fix doc of the VERIFY intrinsic. 3434 34352011-02-26 Tobias Burnus <burnus@net-b.de> 3436 3437 PR fortran/47846 3438 * trans-stmt.c (gfc_trans_allocate): Fix allocation with 3439 type-spec of deferred-length strings. 3440 34412011-02-26 Tobias Burnus <burnus@net-b.de> 3442 3443 PR fortran/47886 3444 * openmp.c (gfc_resolve_omp_directive): Resolve if() 3445 condition of OpenMP's task. 3446 34472011-02-26 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3448 3449 PR fortran/47894 3450 * intrinsic.texi: Fix doc of the VERIFY intrinsic. 3451 34522011-02-24 Tobias Burnus <burnus@net-b.de> 3453 3454 PR fortran/47872 3455 * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add 3456 multitable for linebreak between different syntax variants. 3457 34582011-02-24 Richard Guenther <rguenther@suse.de> 3459 3460 PR fortran/47839 3461 * f95-lang.c (pushdecl): For externs in non-global scope push 3462 a copy of the decl into the BLOCK. 3463 34642011-02-23 Mikael Morin <mikael@gcc.gnu.org> 3465 3466 PR fortran/40850 3467 * trans.c (gfc_prepend_expr_to_block): New function. 3468 * trans.h (gfc_prepend_expr_to_block): Declare. 3469 * trans-array.c (gfc_conv_array_parameter): Replace 3470 gfc_add_expr_to_block with gfc_prepend_expr_to_block. 3471 34722011-02-22 Paul Thomas <pault@gcc.gnu.org> 3473 3474 PR fortran/45743 3475 * trans-decl.c (gfc_get_extern_function_decl): Don't use the 3476 gsymbol backend_decl if the procedure has a formal argument 3477 that is a procedure. 3478 34792011-02-22 Tobias Burnus <burnus@net-b.de> 3480 3481 PR fortran/41359 3482 * trans-stmt.c (gfc_trans_if_1): Use correct line for 3483 expressions in the if condition. 3484 34852011-02-20 Tobias Burnus <burnus@net-b.de> 3486 3487 PR fortran/47797 3488 * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and 3489 gfc_restore_backend_locus to have better debug locations. 3490 * trans-array.c (gfc_trans_deferred_array): Ditto. 3491 34922011-02-20 Paul Thomas <pault@gcc.gnu.org> 3493 3494 PR fortran/45077 3495 PR fortran/44945 3496 * trans-types.c (gfc_get_derived_type): Remove code that looks 3497 for decls in gsym and add call to gfc_get_module_backend_decl. 3498 * trans.h: Add prototype for gfc_get_module_backend_decl. 3499 * trans-decl.c (gfc_get_module_backend_decl): New function. 3500 (gfc_get_symbol_decl): Call it. 3501 35022011-02-19 Paul Thomas <pault@gcc.gnu.org> 3503 3504 PR fortran/47348 3505 * trans-array.c (get_array_ctor_all_strlen): Move up in file. 3506 (get_array_ctor_var_strlen): Add block dummy and add call to 3507 get_array_ctor_all_strlen instead of giving up on substrings. 3508 Call gcc_unreachable for default case. 3509 (get_array_ctor_strlen): Add extra argument to in call to 3510 get_array_ctor_var_strlen. 3511 35122011-02-18 Janus Weil <janus@gcc.gnu.org> 3513 3514 PR fortran/47789 3515 * primary.c (gfc_match_structure_constructor): Handle empty parent 3516 types. 3517 35182011-02-18 Tobias Burnus 3519 3520 PR fortran/47775 3521 * trans-expr.c (arrayfunc_assign_needs_temporary): Use 3522 esym to check whether the specific procedure returns an 3523 allocatable or pointer. 3524 35252011-02-18 Michael Matz <matz@suse.de> 3526 3527 PR fortran/45586 3528 * gfortran.h (struct gfc_component): Add norestrict_decl member. 3529 * trans.h (struct lang_type): Add nonrestricted_type member. 3530 * trans-expr.c (gfc_conv_component_ref): Search fields with correct 3531 parent type. 3532 * trans-types.c (mirror_fields, gfc_nonrestricted_type): New. 3533 (gfc_sym_type): Use it. 3534 35352011-02-18 Janus Weil <janus@gcc.gnu.org> 3536 3537 PR fortran/47768 3538 * resolve.c (resolve_transfer): Reject variables with procedure pointer 3539 components. 3540 35412011-02-18 Janus Weil <janus@gcc.gnu.org> 3542 3543 PR fortran/47767 3544 * gfortran.h (gfc_check_access): Removed prototype. 3545 (gfc_check_symbol_access): Added prototype. 3546 * module.c (gfc_check_access): Renamed to 'check_access', made static. 3547 (gfc_check_symbol_access): New function, basically a shortcut for 3548 'check_access'. 3549 (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use 3550 'gfc_check_symbol_access'. 3551 (write_operator,write_module): Renamed 'gfc_check_access'. 3552 * resolve.c (resolve_fl_procedure,resolve_fl_derived, 3553 resolve_fl_namelist,resolve_symbol,resolve_fntype): Use 3554 'gfc_check_symbol_access'. 3555 35562011-02-16 Janus Weil <janus@gcc.gnu.org> 3557 3558 PR fortran/47745 3559 * class.c (gfc_build_class_symbol): Set 'class_ok' attribute. 3560 * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into 3561 'gfc_build_class_symbol'. 3562 (gfc_match_decl_type_spec): Reject unlimited polymorphism. 3563 * interface.c (matching_typebound_op): Check for 'class_ok' attribute. 3564 * match.c (select_type_set_tmp): Move setting of 'class_ok' into 3565 'gfc_build_class_symbol'. 3566 * primary.c (gfc_variable_attr): Check for 'class_ok' attribute. 3567 35682011-02-15 Steven G. Kargl <kargl@gcc.gnu.org> 3569 3570 PR fortran/47633 3571 . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue. 3572 35732011-02-14 Janus Weil <janus@gcc.gnu.org> 3574 3575 PR fortran/47730 3576 * parse.c (gfc_build_block_ns): Commit 'block@' symbol. 3577 35782011-02-14 Janus Weil <janus@gcc.gnu.org> 3579 3580 PR fortran/47728 3581 * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic 3582 arrays. 3583 * primary.c (gfc_match_varspec): Avoid ICE for invalid class 3584 declaration. 3585 35862011-02-14 Janus Weil <janus@gcc.gnu.org> 3587 3588 PR fortran/47349 3589 * interface.c (get_expr_storage_size): Handle derived-type components. 3590 35912011-02-13 Tobias Burnus <burnus@net-b.de> 3592 3593 PR fortran/47569 3594 * interface.c (compare_parameter): Avoid ICE with 3595 character components. 3596 35972011-02-12 Janus Weil <janus@gcc.gnu.org> 3598 3599 * class.c (gfc_build_class_symbol): Reject polymorphic arrays. 3600 * decl.c (build_sym,build_struct,attr_decl1): Use return value of 3601 'gfc_build_class_symbol'. 3602 36032011-02-12 Michael Matz <matz@suse.de> 3604 Janus Weil <janus@gcc.gnu.org> 3605 Tobias Burnus <burnus@net-b.de> 3606 3607 PR fortran/45586 3608 * trans-expr.c (conv_parent_component_references): Avoid unintendent 3609 skipping of parent compounds. 3610 36112011-02-11 Tobias Burnus <burnus@net-b.de> 3612 3613 PR fortran/47550 3614 * resolve.c (resolve_formal_arglist): PURE with VALUE 3615 and no INTENT: Add -std= diagnostics. 3616 36172011-02-09 Janus Weil <janus@gcc.gnu.org> 3618 3619 PR fortran/47352 3620 * resolve.c (resolve_procedure_interface): If interface has a result 3621 variable, copy the typespec and set result pointer to self. 3622 36232011-02-09 Janus Weil <janus@gcc.gnu.org> 3624 3625 PR fortran/47463 3626 * resolve.c (resolve_typebound_subroutine): Remove erroneous line. 3627 36282011-02-09 Janus Weil <janus@gcc.gnu.org> 3629 3630 PR fortran/47637 3631 * trans-decl.c (init_intent_out_dt): Handle CLASS arguments. 3632 36332011-02-08 Jerry DeLisle <jvdelisle@gcc.gnu.org> 3634 3635 * io.c (match_io_element): Do not set dt if not inquire. 3636 36372011-02-08 Janus Weil <janus@gcc.gnu.org> 3638 3639 PR fortran/45290 3640 * expr.c (gfc_check_assign_symbol): Reject pointers as pointer 3641 initialization target. 3642 36432011-02-07 Janne Blomqvist <jb@gcc.gnu.org> 3644 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3645 3646 * gfortran.texi (Thread-safety): texinfo styling fixes. 3647 * intrinsic.texi: Likewise. 3648 36492011-02-06 Janne Blomqvist <jb@gcc.gnu.org> 3650 3651 * gfortran.texi (Compiler Characteristics): Add reference to 3652 thread-safety section. 3653 36542011-02-06 Janne Blomqvist <jb@gcc.gnu.org> 3655 3656 * gfortran.texi (Thread-safety): New section. 3657 * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety. 3658 (GETENV): Likewise. 3659 (GET_ENVIRONMENT_VARIABLE): Likewise. 3660 (SYSTEM): Likewise. 3661 36622011-02-06 Paul Thomas <pault@gcc.gnu.org> 3663 3664 PR fortran/47592 3665 * trans-stmt.c (gfc_trans_allocate): For deferred character 3666 length allocations with SOURCE, store to the values and string 3667 length to avoid calculating twice. Replace gfc_start_block 3668 with gfc_init_block to avoid unnecessary contexts and to keep 3669 declarations of temporaries where they should be. Tidy up the 3670 code a bit. 3671 36722011-02-05 Janne Blomqvist <jb@gcc.gnu.org> 3673 3674 PR fortran/42434 3675 * intrinsic.texi (SYSTEM_CLOCK): Update documentation. 3676 36772011-02-02 Janus Weil <janus@gcc.gnu.org> 3678 Paul Thomas <pault@gcc.gnu.org> 3679 3680 PR fortran/47082 3681 * trans-expr.c (gfc_trans_class_init_assign): Add call to 3682 gfc_get_derived_type. 3683 * module.c (read_cleanup): Do not use unique_symtrees for vtabs 3684 or vtypes. 3685 36862011-02-02 Janus Weil <janus@gcc.gnu.org> 3687 3688 PR fortran/47572 3689 * resolve.c (resolve_fl_variable): Handle polymorphic allocatables. 3690 36912011-02-01 Janus Weil <janus@gcc.gnu.org> 3692 3693 PR fortran/47565 3694 * trans-expr.c (gfc_conv_structure): Handle constructors for procedure 3695 pointer components with allocatable result. 3696 36972011-01-31 Janus Weil <janus@gcc.gnu.org> 3698 3699 PR fortran/47455 3700 * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers 3701 with pointer or allocatable result. 3702 37032011-01-31 Paul Thomas <pault@gcc.gnu.org> 3704 3705 PR fortran/47519 3706 * trans-stmt.c (gfc_trans_allocate): Improve handling of 3707 deferred character lengths with SOURCE. 3708 * iresolve.c (gfc_resolve_repeat): Calculate character 3709 length from source length and ncopies. 3710 * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE 3711 expressions for ALLOCATE. 3712 37132011-01-31 Janus Weil <janus@gcc.gnu.org> 3714 3715 PR fortran/47463 3716 * resolve.c (resolve_typebound_subroutine): Bug fix for the case of 3717 an argument of a typebound assignment being a component. 3718 37192011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3720 3721 * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use 3722 LD_STATIC_OPTION, LD_DYNAMIC_OPTION. 3723 37242011-01-31 Tobias Burnus <burnus@net-b.de> 3725 3726 PR fortran/47042 3727 * resolve.c (resolve_fl_procedure): Reject stmt functions 3728 with pointer/allocatable attribute. 3729 37302011-01-31 Tobias Burnus <burnus@net-b.de> 3731 3732 PR fortran/47042 3733 * interface.c (gfc_procedure_use): Add explicit interface check for 3734 pointer/allocatable functions. 3735 37362011-01-30 Paul Thomas <pault@gcc.gnu.org> 3737 3738 PR fortran/47523 3739 * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op 3740 expr and is assigned to a deferred character length scalar, 3741 make sure that the function is called before reallocation, 3742 so that the length is available. Include procedure pointer 3743 and procedure pointer component rhs as well. 3744 3745 PR fortran/45170 3746 PR fortran/35810 3747 PR fortran/47350 3748 * gfortran.dg/allocatable_function_5.f90: New test not added by 3749 mistake on 2011-01-28. 3750 37512011-01-29 Tobias Burnus <burnus@net-b.de> 3752 3753 PR fortran/47531 3754 * check.c (gfc_check_shape): Support kind argument in SHAPE. 3755 * intrinsic.c (add_functions): Ditto. 3756 * resolve.c (gfc_resolve_shape): Ditto. 3757 * simplify.c (gfc_simplify_shape): Ditto. 3758 * intrinsic.h (gfc_check_shape, gfc_resolve_shape, 3759 gfc_simplify_shape): Update prototypes. 3760 * intrinisc.text (SHAPE): Document kind argument. 3761 37622011-01-28 Tobias Burnus <burnus@net-b.de> 3763 3764 PR fortran/47507 3765 * resolve.c (resolve_formal_arglist): Allow arguments with VALUE 3766 attribute also without INTENT. 3767 37682011-01-28 Tobias Burnus <burnus@net-b.de> 3769 3770 * gfortran.texi (Fortran 2003 status): Mention support for 3771 nonconstant namelist variables. 3772 37732011-01-28 Paul Thomas <pault@gcc.gnu.org> 3774 Tobias Burnus <burnus@gcc.gnu.org> 3775 3776 PR fortran/45170 3777 PR fortran/35810 3778 PR fortran/47350 3779 * interface.c (compare_actual_formal): An allocatable or pointer 3780 deferred length actual is only allowed if the formal argument 3781 is also deferred length. Clean up whitespace. 3782 * trans-expr.c (gfc_conv_procedure_call): Pass string length for 3783 deferred character length formal arguments by reference. Do the 3784 same for function results. 3785 (gfc_trans_pointer_assignment): Do not do runtime check of lhs 3786 and rhs character lengths, if deferred length lhs. In this case 3787 set the lhs character length to that of the rhs. 3788 (gfc_conv_string_parameter): Remove assert that string length is 3789 an integer type. 3790 (is_scalar_reallocatable_lhs): New function. 3791 (alloc_scalar_allocatable_for_assignment): New function. 3792 (gfc_trans_assignment_1): Call above new function. If the rhs is 3793 a deferred character length itself, makes ure that the function 3794 is called before reallocation, so that the length is available. 3795 (gfc_trans_asssignment): Remove error about assignment to 3796 deferred length character variables. 3797 * gfortran.texi: Update entry about (re)allocation on 3798 assignment. 3799 * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred 3800 length character variables. 3801 * module.c (mio_typespec): Transfer deferred characteristic. 3802 * trans-types.c (gfc_get_function_type): New code to generate 3803 hidden typelist, so that those character lengths that are 3804 passed by reference get the right type. 3805 * resolve.c (resolve_contained_fntype): Supress error for 3806 deferred character length functions. 3807 (resolve_function, resolve_fl_procedure) The same. 3808 (check_symbols): Remove the error that support for 3809 entity with deferred type parameter is not yet implemented. 3810 (resolve_fl_derived): The same. 3811 match.c (alloc_opt_list): Allow MOLD for deferred length object. 3812 * trans-decl.c (gfc_get_symbol_decl): For deferred character 3813 length dummies, generate a local variable for string length. 3814 (create_function_arglist): Hidden length can be a pointer. 3815 (gfc_trans_deferred_vars): For deferred character length 3816 results and dummies, assign the string length to the local 3817 variable from the hidden argument on entry and the other way 3818 round on exit, as appropriate. 3819 38202011-01-27 Tobias Burnus <burnus@net-b.de> 3821 3822 PR fortran/47474 3823 * trans-decl.c (gfc_generate_function_code): Fix init 3824 of allocatable result variable with allocatable components. 3825 38262011-01-27 Tobias Burnus <burnus@net-b.de> 3827 3828 PR fortran/47472 3829 * options.c (gfc_handle_module_path_options): Save 3830 module path without trailing slash as include path. 3831 38322011-01-25 Tobias Burnus <burnus@net-b.de> 3833 3834 PR fortran/47448 3835 * interface.c (gfc_check_operator_interface): Fix 3836 defined-assignment check. 3837 38382011-01-23 Tobias Burnus <burnus@net-b.de> 3839 3840 PR fortran/47421 3841 * trans-decl.c (gfc_trans_deferred_vars): Do not nullify 3842 scalar allocatable dummy arguments. 3843 38442011-01-22 Thomas Koenig <tkoenig@gcc.gnu.org> 3845 3846 PR fortran/38536 3847 * resolve.c (gfc_iso_c_func_interface): For C_LOC, 3848 check for array sections followed by component references 3849 which are illegal. Also check for coindexed arguments. 3850 38512011-01-22 Tobias Burnus <burnus@net-b.de> 3852 3853 PR fortran/47399 3854 * primary.c (gfc_match_varspec): Relax gcc_assert to allow for 3855 PARAMETER TBP. 3856 38572011-01-21 Tobias Burnus <burnus@net-b.de> 3858 3859 PR fortran/47394 3860 * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check): 3861 Use defined instead of magic number exit status codes. 3862 * scanner.c (include_line, gfc_new_file): Ditto. 3863 38642011-01-21 Tobias Burnus <burnus@net-b.de> 3865 3866 PR fortran/47377 3867 * expr.c (gfc_check_pointer_assign): Reject expr data-targets 3868 without pointer attribute. 3869 38702011-01-18 Janus Weil <janus@gcc.gnu.org> 3871 3872 PR fortran/47240 3873 * resolve.c (expression_rank): Fix rank of procedure poiner components. 3874 * trans-expr.c (gfc_conv_procedure_call): Take care of procedure 3875 pointer components as actual arguments. 3876 38772011-01-17 Jakub Jelinek <jakub@redhat.com> 3878 3879 PR fortran/47331 3880 * gfortran.h (struct gfc_omp_saved_state): New type. 3881 (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes. 3882 * resolve.c (resolve_global_procedure): Call it around gfc_resolve 3883 call. 3884 * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New 3885 functions. 3886 38872011-01-17 Tobias Burnus <burnus@net-b.de> 3888 3889 PR fortran/47327 3890 * invoke.texi (Options to request or suppress errors 3891 and warnings): Fix cross link. 3892 38932011-01-15 Tobias Burnus <burnus@net-b.de> 3894 3895 * gfortran.texi: Update Fortran 2003 Status section. 3896 3897 PR fortran/47177 3898 * invoke.texi: Add missing "-E" to the -dM example. 3899 39002011-01-13 Tobias Burnus <burnus@net-b.de> 3901 3902 PR fortran/47268 3903 * intrinsic.texi (get_command_argument, get_environment_variable): 3904 Mark arguments as optional in the Arguments section. 3905 39062011-01-13 Kai Tietz <kai.tietz@onevision.com> 3907 Tobias Burnus <burnus@net-b.de> 3908 3909 PR fortran/47260 3910 * trans-decl.c (gfc_get_extern_function_decl, 3911 build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before 3912 calling decl_attributes. 3913 39142011-01-13 Tobias Burnus <burnus@net-b.de> 3915 Mikael Morin <mikael@gcc.gnu.org> 3916 3917 PR fortran/45848 3918 PR fortran/47204 3919 * gfortran.h (gfc_code): Move union ext's case_list into 3920 the struct block. 3921 * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list 3922 by "block.". 3923 * frontend-passes.c (gfc_code_walker): Ditto. 3924 * match.c (gfc_match_goto, gfc_match_call, gfc_match_case, 3925 gfc_match_type_is, gfc_match_class_is): Ditto. 3926 * resolve.c (resolve_select, resolve_select_type): Ditto. 3927 * st.c (gfc_free_statement): Ditto. 3928 * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select, 3929 gfc_trans_character_select): Ditto. 3930 * parse.c (resolve_all_program_units): For error recovery, avoid 3931 segfault is proc_name is NULL. 3932 39332011-01-11 Paul Thomas <pault@gcc.gnu.org> 3934 3935 PR fortran/47051 3936 * trans-array.c (gfc_alloc_allocatable_for_assignment): Change 3937 to be standard compliant by testing for shape rather than size 3938 before skipping reallocation. Improve comments. 3939 39402011-01-09 Janus Weil <janus@gcc.gnu.org> 3941 3942 PR fortran/47224 3943 * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece 3944 of code. 3945 39462011-01-09 Thomas Koenig <tkoenig@gcc.gnu.org> 3947 3948 PR fortran/38536 3949 * resolve.c (is_scalar_expr_ptr): For a substring reference, 3950 use gfc_dep_compare_expr to compare start and end expession. 3951 Add FIXME for using gfc_deb_compare_expr elsewhere. 3952 39532011-01-09 Janus Weil <janus@gcc.gnu.org> 3954 3955 PR fortran/46313 3956 * class.c (get_unique_type_string): Make type name start with upper 3957 case letter. 3958 39592011-01-08 Thomas Koenig <tkoenig@gcc.gnu.org> 3960 3961 PR fortran/46405 3962 * invoke.texi: Mention -ffree-line-length-none and 3963 -ffixed-line-length-none for preprocessing. 3964 39652011-01-08 Paul Thomas <pault@gcc.gnu.org> 3966 3967 PR fortran/46896 3968 * trans-expr.c (gfc_conv_procedure_call): With a non-copying 3969 procedure argument (eg TRANSPOSE) use a temporary if there is 3970 any chance of aliasing due to host or use association. 3971 (arrayfunc_assign_needs_temporary): Correct logic for function 3972 results and do not use a temporary for implicitly PURE 3973 variables. Use a temporary for Cray pointees. 3974 * symbol.c (gfc_add_save): Explicit SAVE not compatible with 3975 implicit pureness of containing procedure. 3976 * decl.c (match_old_style_init, gfc_match_data): Where decl 3977 would fail in PURE procedure, set implicit_pure to zero. 3978 * gfortran.h: Add implicit_pure to structure symbol_attr and 3979 add prototype for function gfc_implicit_pure. 3980 * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context): 3981 Where decl would fail in PURE procedure, reset implicit_pure. 3982 * io.c (match_vtag, gfc_match_open, gfc_match_close, 3983 gfc_match_print, gfc_match_inquire, gfc_match_wait): The same. 3984 * match.c (gfc_match_critical, gfc_match_stopcode, 3985 sync_statement, gfc_match_allocate, gfc_match_deallocate): The 3986 same. 3987 * parse.c (decode_omp_directive): The same. 3988 (parse_contained): If not PURE, set implicit pure attribute. 3989 * resolve.c (resolve_formal_arglist, resolve_structure_cons, 3990 resolve_function, resolve_ordinary_assign): The same. 3991 (gfc_implicit_pure): New function. 3992 * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE 3993 to ab_attribute enum and use it in this function. 3994 39952011-01-08 Thomas Koenig <tkoenig@gcc.gnu.org> 3996 3997 PR fortran/45777 3998 * symbol.c (gfc_symbols_could_alias): Strip gfc_ prefix, 3999 make static and move in front of its only caller, to ... 4000 * trans-array.c (symbols_could_alias): ... here. 4001 Pass information about pointer and target status as 4002 arguments. Allocatable arrays don't alias anything 4003 unless they have the POINTER attribute. 4004 (gfc_could_be_alias): Keep track of pointer and target 4005 status when following references. Also check if typespecs 4006 of components match those of other components or symbols. 4007 40082011-01-07 Tobias Burnus <burnus@net-b.de> 4009 4010 PR fortran/41580 4011 * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab. 4012 * intrinsic.c (add_functions): Use simplify functions for 4013 EXTENDS_TYPE_OF and SAME_TYPE_AS. 4014 * intrinsic.h (gfc_simplify_extends_type_of, 4015 gfc_simplify_same_type_as): New prototypes. 4016 * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of, 4017 gfc_simplify_same_type_as): New functions. 4018 40192011-01-07 Janus Weil <janus@gcc.gnu.org> 4020 4021 PR fortran/47189 4022 PR fortran/47194 4023 * gfortran.h (gfc_lval_expr_from_sym): Moved prototype. 4024 * class.c (gfc_class_null_initializer): Initialize _vptr to declared 4025 type. 4026 * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c. 4027 * resolve.c (resolve_deallocate_expr): _data component will be added 4028 at translation stage. 4029 * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c. 4030 * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type. 4031 40322011-01-06 Daniel Franke <franke.daniel@gmail.com> 4033 4034 PR fortran/33117 4035 PR fortran/46478 4036 * parse.c (parse_interface): Remove check for procedure types. 4037 * interface.c (check_interface0): Verify that procedures are 4038 either all SUBROUTINEs or all FUNCTIONs. 4039 40402011-01-05 Janus Weil <janus@gcc.gnu.org> 4041 4042 PR fortran/47180 4043 * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure 4044 'vtab' is initialized). 4045 40462011-01-05 Janus Weil <janus@gcc.gnu.org> 4047 4048 PR fortran/47180 4049 * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer 4050 assignment, set the _vptr component to the declared type. 4051 40522011-01-05 Thomas Koenig <tkoenig@gcc.gnu.org> 4053 4054 PR fortran/46017 4055 * resolve.c (resolve_allocate_deallocate): Follow references to 4056 check for duplicate occurence of allocation/deallocation objects. 4057 40582011-01-05 Janus Weil <janus@gcc.gnu.org> 4059 4060 PR fortran/47024 4061 * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component 4062 of polymorphic allocatables according to their declared type. 4063 40642011-01-04 Janus Weil <janus@gcc.gnu.org> 4065 4066 PR fortran/46448 4067 * class.c (gfc_find_derived_vtab): Set the module field for the copying 4068 routine to make sure it receives module name mangling. 4069 40702011-01-03 Jakub Jelinek <jakub@redhat.com> 4071 4072 * gfortranspec.c (lang_specific_driver): Update copyright notice 4073 dates. 4074 40752011-01-03 Janus Weil <janus@gcc.gnu.org> 4076 4077 * intrinsic.texi (LEADZ): Fix example. 4078 40792011-01-02 Janus Weil <janus@gcc.gnu.org> 4080 4081 PR fortran/46408 4082 * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_ 4083 routine. 4084 4085 4086Copyright (C) 2011 Free Software Foundation, Inc. 4087 4088Copying and distribution of this file, with or without modification, 4089are permitted in any medium without royalty provided the copyright 4090notice and this notice are preserved. 4091