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