1*81418a27Smrg2009-12-29 Janus Weil <janus@gcc.gnu.org> 2*81418a27Smrg 3*81418a27Smrg PR fortran/42517 4*81418a27Smrg * invoke.texi: Document the interference of 5*81418a27Smrg -fcheck=recursion and -fopenmp. 6*81418a27Smrg * trans-decl.c (gfc_generate_function_code): Disable -fcheck=recursion 7*81418a27Smrg when used with -fopenmp. 8*81418a27Smrg 9*81418a27Smrg2009-12-28 Janus Weil <janus@gcc.gnu.org> 10*81418a27Smrg 11*81418a27Smrg PR fortran/42353 12*81418a27Smrg * symbol.c (gfc_find_derived_vtab): Make vtabs and vtypes private. 13*81418a27Smrg 14*81418a27Smrg2009-12-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 15*81418a27Smrg Daniel Kraft <d@domob.eu> 16*81418a27Smrg 17*81418a27Smrg PR fortran/22552 18*81418a27Smrg * lang.opt (Wimplicit-procedure): New option. 19*81418a27Smrg * gfortran.h (struct gfc_option_t): New member `warn_implicit_procedure' 20*81418a27Smrg * options.c (gfc_handle_option): Handle -Wimplicit-procedure. 21*81418a27Smrg * interface.c (gfc_procedure_use): Warn about procedure never 22*81418a27Smrg explicitly declared if requested by the new flag. 23*81418a27Smrg * invoke.texi: Document new flag -Wimplicit-procedure. 24*81418a27Smrg 25*81418a27Smrg2009-12-17 Janus Weil <janus@gcc.gnu.org> 26*81418a27Smrg 27*81418a27Smrg PR fortran/42144 28*81418a27Smrg * trans-expr.c (select_class_proc): Skip abstract base types. 29*81418a27Smrg 30*81418a27Smrg2009-12-16 Kazu Hirata <kazu@codesourcery.com> 31*81418a27Smrg 32*81418a27Smrg * gfc-internals.texi, gfortran.texi, invoke.texi: Fix typos. 33*81418a27Smrg Follow spelling conventions. 34*81418a27Smrg 35*81418a27Smrg2009-12-15 Tobias Burnus <burnus@net-b.de> 36*81418a27Smrg Daniel Franke <franke.daniel@gmail.com> 37*81418a27Smrg 38*81418a27Smrg PR fortran/41235 39*81418a27Smrg * resolve.c (resolve_global_procedure): Add check for 40*81418a27Smrg presence of an explicit interface for nonconstant, 41*81418a27Smrg nonassumed character-length functions. 42*81418a27Smrg (resolve_fl_procedure): Remove check for nonconstant 43*81418a27Smrg character-length functions. 44*81418a27Smrg 45*81418a27Smrg2009-12-14 Daniel Franke <franke.daniel@gmail.com> 46*81418a27Smrg 47*81418a27Smrg PR fortran/42354 48*81418a27Smrg * expr.c (check_init_expr): Do not check for specification functions. 49*81418a27Smrg 50*81418a27Smrg2009-12-11 Janus Weil <janus@gcc.gnu.org> 51*81418a27Smrg 52*81418a27Smrg PR fortran/42257 53*81418a27Smrg * module.c (write_dt_extensions): Check for accessibility. 54*81418a27Smrg 55*81418a27Smrg2009-12-11 Daniel Franke <franke.daniel@gmail.com> 56*81418a27Smrg 57*81418a27Smrg PR fortran/40290 58*81418a27Smrg * expr.c (gfc_type_convert_binary): Added warn-on-conversion flag, 59*81418a27Smrg passed on to gfc_convert_type_warn() instead of gfc_convert_type(); 60*81418a27Smrg enabled warnings on all callers but ... 61*81418a27Smrg * arith.c (eval_intrinsic): Disabled warnings on implicit type 62*81418a27Smrg conversion. 63*81418a27Smrg * gfortran.h gfc_type_convert_binary): Adjusted prototype. 64*81418a27Smrg 65*81418a27Smrg2009-12-11 Janus Weil <janus@gcc.gnu.org> 66*81418a27Smrg 67*81418a27Smrg PR fortran/42335 68*81418a27Smrg * symbol.c (select_type_insert_tmp): Add an extra check for 69*81418a27Smrg error recovery. 70*81418a27Smrg 71*81418a27Smrg2009-12-10 Daniel Franke <franke.daniel@gmail.com> 72*81418a27Smrg 73*81418a27Smrg PR fortran/40287 74*81418a27Smrg * iresolve.c (resolve_mask_arg): Disabled warning on conversion 75*81418a27Smrg to LOGICAL(1). 76*81418a27Smrg 77*81418a27Smrg2009-12-10 Daniel Franke <franke.daniel@gmail.com> 78*81418a27Smrg 79*81418a27Smrg PR fortran/41369 80*81418a27Smrg * parse.c (match_deferred_characteristics): Removed check for empty 81*81418a27Smrg types in function return values. 82*81418a27Smrg 83*81418a27Smrg2009-12-10 Daniel Franke <franke.daniel@gmail.com> 84*81418a27Smrg 85*81418a27Smrg PR fortran/34402 86*81418a27Smrg * expr.c (check_alloc_comp_init): New. 87*81418a27Smrg (check_init_expr): Verify that allocatable components 88*81418a27Smrg are not data-initalized. 89*81418a27Smrg 90*81418a27Smrg2008-12-08 Daniel Kraft <d@domob.eu> 91*81418a27Smrg 92*81418a27Smrg PR fortran/41177 93*81418a27Smrg * gfortran.h (struct symbol_attribute): New flag `class_pointer'. 94*81418a27Smrg * symbol.c (gfc_build_class_symbol): Set the new flag. 95*81418a27Smrg * resolve.c (update_compcall_arglist): Remove wrong check for 96*81418a27Smrg non-scalar base-object. 97*81418a27Smrg (check_typebound_baseobject): Add the correct version here as well 98*81418a27Smrg as some 'not implemented' message check in the old case. 99*81418a27Smrg (resolve_typebound_procedure): Check that the passed-object dummy 100*81418a27Smrg argument is scalar, non-pointer and non-allocatable as it should be. 101*81418a27Smrg 102*81418a27Smrg2009-12-08 Tobias Burnus <burnus@net-b.de> 103*81418a27Smrg 104*81418a27Smrg PR fortran/40961 105*81418a27Smrg PR fortran/40377 106*81418a27Smrg * gfortran.texi (Non-Fortran Main Program): Add 107*81418a27Smrg _gfortran_set_fpe documentation. 108*81418a27Smrg (Interoperability with C): Mention array storage order. 109*81418a27Smrg 110*81418a27Smrg2009-12-07 Daniel Franke <franke.daniel@gmail.com> 111*81418a27Smrg 112*81418a27Smrg PR fortran/41940 113*81418a27Smrg * match.c (gfc_match_allocate): Improved error message for 114*81418a27Smrg allocatable scalars that are allocated with a shape. 115*81418a27Smrg 116*81418a27Smrg2009-12-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 117*81418a27Smrg 118*81418a27Smrg PR other/40302 119*81418a27Smrg * arith.c: Remove HAVE_mpc* checks throughout. 120*81418a27Smrg * expr.c: Likewise. 121*81418a27Smrg * gfortran.h: Likewise. 122*81418a27Smrg * resolve.c: Likewise. 123*81418a27Smrg * simplify.c: Likewise. 124*81418a27Smrg * target-memory.c: Likewise. 125*81418a27Smrg * target-memory.h: Likewise. 126*81418a27Smrg 127*81418a27Smrg2009-12-06 Daniel Franke <franke.daniel@gmail.com> 128*81418a27Smrg 129*81418a27Smrg PR fortran/40904 130*81418a27Smrg * intrinsics.texi: Fixed description of COUNT. 131*81418a27Smrg 132*81418a27Smrg2009-12-01 Janne Blomqvist <jb@gcc.gnu.org> 133*81418a27Smrg 134*81418a27Smrg PR fortran/42131 135*81418a27Smrg * trans-stmt.c (gfc_trans_do): Sign test using ternary operator. 136*81418a27Smrg 137*81418a27Smrg2009-11-30 Janus Weil <janus@gcc.gnu.org> 138*81418a27Smrg 139*81418a27Smrg PR fortran/42053 140*81418a27Smrg * resolve.c (resolve_select_type): Check for duplicate CLASS IS blocks. 141*81418a27Smrg 142*81418a27Smrg2009-11-30 Janus Weil <janus@gcc.gnu.org> 143*81418a27Smrg 144*81418a27Smrg PR fortran/41631 145*81418a27Smrg * decl.c (gfc_match_derived_decl): Set extension level. 146*81418a27Smrg * gfortran.h (symbol_attribute): Expand 'extension' bit field to 8 bit. 147*81418a27Smrg * iresolve.c (gfc_resolve_extends_type_of): Return value of 148*81418a27Smrg 'is_extension_of' has kind=4. 149*81418a27Smrg * match.c (select_type_set_tmp,gfc_match_class_is): Create temporary 150*81418a27Smrg for CLASS IS blocks. 151*81418a27Smrg * module.c (MOD_VERSION): Bump module version. 152*81418a27Smrg (ab_attribute,attr_bits): Remove AB_EXTENSION. 153*81418a27Smrg (mio_symbol_attribute): Handle expanded 'extension' field. 154*81418a27Smrg * resolve.c (resolve_select_type): Implement CLASS IS blocks. 155*81418a27Smrg (resolve_fl_variable_derived): Show correct type name. 156*81418a27Smrg * symbol.c (gfc_build_class_symbol): Set extension level. 157*81418a27Smrg 158*81418a27Smrg2009-11-30 Janus Weil <janus@gcc.gnu.org> 159*81418a27Smrg 160*81418a27Smrg * intrinsic.h (gfc_resolve_extends_type_of): Add prototype. 161*81418a27Smrg * intrinsic.c (add_functions): Use 'gfc_resolve_extends_type_of'. 162*81418a27Smrg * iresolve.c (gfc_resolve_extends_type_of): New function, which 163*81418a27Smrg replaces the call to EXTENDS_TYPE_OF by the library function 164*81418a27Smrg 'is_extension_of' and modifies the arguments. 165*81418a27Smrg * trans-intrinsic.c (gfc_conv_extends_type_of): Removed. 166*81418a27Smrg (gfc_conv_intrinsic_function): FOR EXTENDS_TYPE_OF, don't call 167*81418a27Smrg gfc_conv_extends_type_of but gfc_conv_intrinsic_funcall. 168*81418a27Smrg 169*81418a27Smrg2009-11-30 Paul Thomas <pault@gcc.gnu.org> 170*81418a27Smrg Janus Weil <janus@gcc.gnu.org> 171*81418a27Smrg 172*81418a27Smrg * decl.c (encapsulate_class_symbol): Replaced by 173*81418a27Smrg 'gfc_build_class_symbol'. 174*81418a27Smrg (build_sym,build_struct): Call 'gfc_build_class_symbol'. 175*81418a27Smrg (gfc_match_derived_decl): Replace vindex by hash_value. 176*81418a27Smrg * dump-parse-tree.c (show_symbol): Replace vindex by hash_value. 177*81418a27Smrg * gfortran.h (symbol_attribute): Add field 'vtab'. 178*81418a27Smrg (gfc_symbol): Replace vindex by hash_value. 179*81418a27Smrg (gfc_class_esym_list): Ditto. 180*81418a27Smrg (gfc_get_derived_type,gfc_build_class_symbol,gfc_find_derived_vtab): 181*81418a27Smrg New prototypes. 182*81418a27Smrg * module.c (mio_symbol): Replace vindex by hash_value. 183*81418a27Smrg * resolve.c (vindex_expr): Rename to 'hash_value_expr'. 184*81418a27Smrg (resolve_class_compcall,resolve_class_typebound_call): Renamed 185*81418a27Smrg 'vindex_expr'. 186*81418a27Smrg (resolve_select_type): Replace $vindex by $vptr->$hash. 187*81418a27Smrg * symbol.c (gfc_add_save): Handle vtab symbols. 188*81418a27Smrg (gfc_type_compatible): Rewrite. 189*81418a27Smrg (gfc_build_class_symbol): New function which replaces 190*81418a27Smrg 'encapsulate_class_symbol'. 191*81418a27Smrg (gfc_find_derived_vtab): New function to set up a vtab symbol for a 192*81418a27Smrg derived type. 193*81418a27Smrg * trans-decl.c (gfc_create_module_variable): Handle vtab symbols. 194*81418a27Smrg * trans-expr.c (select_class_proc): Replace vindex by hash_value. 195*81418a27Smrg (gfc_conv_derived_to_class): New function to construct a temporary 196*81418a27Smrg CLASS variable from a derived type expression. 197*81418a27Smrg (gfc_conv_procedure_call): Call 'gfc_conv_derived_to_class'. 198*81418a27Smrg (gfc_conv_structure): Initialize the $extends and $size fields of 199*81418a27Smrg vtab symbols. 200*81418a27Smrg (gfc_trans_class_assign): Replace $vindex by $vptr. Remove the $size 201*81418a27Smrg assignment. 202*81418a27Smrg * trans-intrinsic.c (gfc_conv_same_type_as): Replace $vindex by 203*81418a27Smrg $vptr->$hash, and replace vindex by hash_value. 204*81418a27Smrg * trans-stmt.c (gfc_trans_allocate): Insert $vptr references, replace 205*81418a27Smrg $vindex by $vptr. Remove the $size assignment. 206*81418a27Smrg * trans-types.c (gfc_get_derived_type): Make it non-static. 207*81418a27Smrg 208*81418a27Smrg2009-11-30 Thomas Koenig <tkoenig@gcc.gnu.org> 209*81418a27Smrg 210*81418a27Smrg PR fortran/42131 211*81418a27Smrg * trans-stmt.c (gfc_trans_do): Calculate loop count 212*81418a27Smrg without if statements. 213*81418a27Smrg 214*81418a27Smrg2009-11-28 Jakub Jelinek <jakub@redhat.com> 215*81418a27Smrg 216*81418a27Smrg * trans-common.c (create_common): Remove unused offset variable. 217*81418a27Smrg * io.c (gfc_match_wait): Remove unused loc variable. 218*81418a27Smrg * trans-openmp.c (gfc_trans_omp_clauses): Remove unused old_clauses 219*81418a27Smrg variable. 220*81418a27Smrg (gfc_trans_omp_do): Remove unused outermost variable. 221*81418a27Smrg * iresolve.c (gfc_resolve_alarm_sub, gfc_resolve_fseek_sub): Remove 222*81418a27Smrg unused status variable. 223*81418a27Smrg * module.c (number_use_names): Remove unused c variable. 224*81418a27Smrg (load_derived_extensions): Remove unused nuse variable. 225*81418a27Smrg * trans-expr.c (gfc_conv_substring): Remove unused var variable. 226*81418a27Smrg * trans-types.c (gfc_get_array_descr_info): Remove unused offset_off 227*81418a27Smrg variable. 228*81418a27Smrg * matchexp.c (match_primary): Remove unused where variable. 229*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_bound): Remove unused cond2 230*81418a27Smrg variable. 231*81418a27Smrg (gfc_conv_intrinsic_sizeof): Remove unused source variable. 232*81418a27Smrg (gfc_conv_intrinsic_transfer): Remove unused stride variable. 233*81418a27Smrg (gfc_conv_intrinsic_function): Remove unused isym variable. 234*81418a27Smrg * arith.c (gfc_hollerith2real, gfc_hollerith2complex, 235*81418a27Smrg gfc_hollerith2logical): Remove unused len variable. 236*81418a27Smrg * parse.c (parse_derived): Remove unused derived_sym variable. 237*81418a27Smrg * decl.c (variable_decl): Remove unused old_locus variable. 238*81418a27Smrg * resolve.c (check_class_members): Remove unused tbp_sym variable. 239*81418a27Smrg (resolve_ordinary_assign): Remove unused assign_proc variable. 240*81418a27Smrg (resolve_equivalence): Remove unused value_name variable. 241*81418a27Smrg * data.c (get_array_index): Remove unused re variable. 242*81418a27Smrg * trans-array.c (gfc_conv_array_transpose): Remove unused src_info 243*81418a27Smrg variable. 244*81418a27Smrg (gfc_conv_resolve_dependencies): Remove unused aref and temp_dim 245*81418a27Smrg variables. 246*81418a27Smrg (gfc_conv_loop_setup): Remove unused dim and len variables. 247*81418a27Smrg (gfc_walk_variable_expr): Remove unused head variable. 248*81418a27Smrg * match.c (match_typebound_call): Remove unused var variable. 249*81418a27Smrg * intrinsic.c (gfc_convert_chartype): Remove unused from_ts variable. 250*81418a27Smrg 251*81418a27Smrg2009-11-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> 252*81418a27Smrg 253*81418a27Smrg PR fortran/41807 254*81418a27Smrg * trans-const.c (gfc_conv_const): Set se->expr to a constant on error. 255*81418a27Smrg 256*81418a27Smrg2009-11-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> 257*81418a27Smrg 258*81418a27Smrg PR fortran/41278 259*81418a27Smrg * trans-array.c (gfc_conv_array_transpose): Delete unnecessary assert. 260*81418a27Smrg 261*81418a27Smrg2009-11-26 Janus Weil <janus@gcc.gnu.org> 262*81418a27Smrg 263*81418a27Smrg PR fortran/42048 264*81418a27Smrg PR fortran/42167 265*81418a27Smrg * gfortran.h (gfc_is_function_return_value): New prototype. 266*81418a27Smrg * match.c (gfc_match_call): Use new function 267*81418a27Smrg 'gfc_is_function_return_value'. 268*81418a27Smrg * primary.c (gfc_is_function_return_value): New function to check if a 269*81418a27Smrg symbol is the return value of an encompassing function. 270*81418a27Smrg (match_actual_arg,gfc_match_rvalue,match_variable): Use new function 271*81418a27Smrg 'gfc_is_function_return_value'. 272*81418a27Smrg * resolve.c (resolve_common_blocks,resolve_actual_arglist): Ditto. 273*81418a27Smrg 274*81418a27Smrg2009-11-25 Jakub Jelinek <jakub@redhat.com> 275*81418a27Smrg 276*81418a27Smrg PR fortran/42162 277*81418a27Smrg * trans-openmp.c (gfc_trans_omp_do): When dovar isn't a VAR_DECL, 278*81418a27Smrg don't use simple loop and handle clauses properly. 279*81418a27Smrg 280*81418a27Smrg2009-11-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> 281*81418a27Smrg 282*81418a27Smrg PR fortran/42008 283*81418a27Smrg * decl.c (variable_decl): Do not error on initialization within a 284*81418a27Smrg derived type specification of a pure procedure. 285*81418a27Smrg 286*81418a27Smrg2009-11-24 Janus Weil <janus@gcc.gnu.org> 287*81418a27Smrg 288*81418a27Smrg PR fortran/42045 289*81418a27Smrg * resolve.c (resolve_actual_arglist): Make sure procedure pointer 290*81418a27Smrg actual arguments are resolved correctly. 291*81418a27Smrg (resolve_function): An EXPR_FUNCTION which is a procedure pointer 292*81418a27Smrg component, has already been resolved. 293*81418a27Smrg (resolve_fl_derived): Procedure pointer components should not be 294*81418a27Smrg implicitly typed. 295*81418a27Smrg 296*81418a27Smrg2009-11-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> 297*81418a27Smrg 298*81418a27Smrg PR fortran/41807 299*81418a27Smrg * trans-const.c (gfc_conv_const): Fix typo in comment. Replace assert 300*81418a27Smrg with error message if not constant. 301*81418a27Smrg * resolve.c (next_data_value): Delete check for constant. 302*81418a27Smrg 303*81418a27Smrg2009-11-20 Janus Weil <janus@gcc.gnu.org> 304*81418a27Smrg 305*81418a27Smrg * intrinsic.texi (C_F_PROCPOINTER): Remove obsolete comment. 306*81418a27Smrg 307*81418a27Smrg2009-11-20 Paul Thomas <pault@gcc.gnu.org> 308*81418a27Smrg Janus Weil <janus@gcc.gnu.org> 309*81418a27Smrg 310*81418a27Smrg PR fortran/42104 311*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): If procedure pointer 312*81418a27Smrg component call, use the component's 'always_explicit' attr 313*81418a27Smrg for array arguments. 314*81418a27Smrg 315*81418a27Smrg2009-11-19 Janus Weil <janus@gcc.gnu.org> 316*81418a27Smrg 317*81418a27Smrg * trans-expr.c (conv_isocbinding_procedure): New function. 318*81418a27Smrg (gfc_conv_procedure_call): Move ISO_C_BINDING stuff to 319*81418a27Smrg separate function. 320*81418a27Smrg 321*81418a27Smrg2009-11-19 Tobias Burnus <burnus@net-b.de> 322*81418a27Smrg 323*81418a27Smrg * gfortran.texi (Interoperable Subroutines and Functions): Fix 324*81418a27Smrg example. 325*81418a27Smrg 326*81418a27Smrg2009-11-18 Janus Weil <janus@gcc.gnu.org> 327*81418a27Smrg 328*81418a27Smrg PR fortran/42072 329*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer 330*81418a27Smrg dummies which are passed to C_F_PROCPOINTER. 331*81418a27Smrg 332*81418a27Smrg2009-11-18 Alexandre Oliva <aoliva@redhat.com> 333*81418a27Smrg 334*81418a27Smrg * module.c (mio_f2k_derived): Initialize op. 335*81418a27Smrg 336*81418a27Smrg2009-11-15 Janus Weil <janus@gcc.gnu.org> 337*81418a27Smrg 338*81418a27Smrg PR fortran/42048 339*81418a27Smrg * match.c (gfc_match_call): If we're inside a function with derived 340*81418a27Smrg type return value, allow calling a TBP of the result variable. 341*81418a27Smrg 342*81418a27Smrg2009-11-12 Tobias Burnus <burnus@net-b.de> 343*81418a27Smrg 344*81418a27Smrg * intrinsic.texi (XOR): Refer also to .NEQV. 345*81418a27Smrg (ISO_FORTRAN_ENV): State which parameters are F2008. 346*81418a27Smrg 347*81418a27Smrg2009-11-11 Janus Weil <janus@gcc.gnu.org> 348*81418a27Smrg 349*81418a27Smrg PR fortran/41978 350*81418a27Smrg * resolve.c (resolve_ref): Take care of procedure pointer component 351*81418a27Smrg references. 352*81418a27Smrg 353*81418a27Smrg2009-11-06 Jerry DeLisle <jvdelisle@gcc.gnu.org> 354*81418a27Smrg 355*81418a27Smrg PR fortran/41909 356*81418a27Smrg * resolve.c (is_illegal_recursion): Return false if sym is program. 357*81418a27Smrg 358*81418a27Smrg2009-11-06 Steven G. Kargl <kargl@gcc.gnu.org> 359*81418a27Smrg 360*81418a27Smrg * resolve.c (check_typebound_override): Remove duplicate "in" in error 361*81418a27Smrg message. 362*81418a27Smrg 363*81418a27Smrg2009-11-05 Steven G. Kargl <kargl@gcc.gnu.org> 364*81418a27Smrg 365*81418a27Smrg PR fortran/41918 366*81418a27Smrg * fortran/trans-decl.c: Silence intent(out) warning for derived type 367*81418a27Smrg dummy arguments with default initialization. 368*81418a27Smrg 369*81418a27Smrg2009-11-05 Janus Weil <janus@gcc.gnu.org> 370*81418a27Smrg 371*81418a27Smrg PR fortran/41556 372*81418a27Smrg * interface.c (matching_typebound_op,gfc_extend_assign): Handle CLASS 373*81418a27Smrg variables. 374*81418a27Smrg 375*81418a27Smrg2009-11-05 Janus Weil <janus@gcc.gnu.org> 376*81418a27Smrg 377*81418a27Smrg PR fortran/41556 378*81418a27Smrg PR fortran/41873 379*81418a27Smrg * resolve.c (resolve_function,resolve_call): Prevent abstract interfaces 380*81418a27Smrg from being called, but allow deferred type-bound procedures with 381*81418a27Smrg abstract interface. 382*81418a27Smrg 383*81418a27Smrg2009-11-04 Tobias Burnus <burnus@gcc.gnu.org> 384*81418a27Smrg Janus Weil <janus@gcc.gnu.org> 385*81418a27Smrg 386*81418a27Smrg PR fortran/41556 387*81418a27Smrg PR fortran/41937 388*81418a27Smrg * interface.c (gfc_check_operator_interface): Handle CLASS arguments. 389*81418a27Smrg * resolve.c (resolve_allocate_expr): Handle allocatable components of 390*81418a27Smrg CLASS variables. 391*81418a27Smrg 392*81418a27Smrg2009-11-04 Richard Guenther <rguenther@suse.de> 393*81418a27Smrg 394*81418a27Smrg * options.c (gfc_post_options): Rely on common code processing 395*81418a27Smrg LTO options. Only enable -fwhole-file here. 396*81418a27Smrg 397*81418a27Smrg2009-11-03 Tobias Burnus <burnus@net-b.de> 398*81418a27Smrg 399*81418a27Smrg PR fortran/41907 400*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Fix presence check 401*81418a27Smrg for optional arguments. 402*81418a27Smrg 403*81418a27Smrg2009-11-01 Tobias Burnus <burnus@net-b.de> 404*81418a27Smrg 405*81418a27Smrg PR fortran/41872 406*81418a27Smrg * trans-decl.c (gfc_trans_deferred_vars): Do not nullify 407*81418a27Smrg autodeallocated allocatable scalars at the end of scope. 408*81418a27Smrg (gfc_generate_function_code): Fix indention. 409*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): For allocatable 410*81418a27Smrg scalars, fix calling by reference and autodeallocating 411*81418a27Smrg of intent out variables. 412*81418a27Smrg 413*81418a27Smrg2009-11-01 Tobias Burnus <burnus@net-b.de> 414*81418a27Smrg 415*81418a27Smrg PR fortran/41850 416*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Deallocate intent-out 417*81418a27Smrg variables only when present. Remove unneccessary present check. 418*81418a27Smrg 419*81418a27Smrg2009-10-29 Tobias Burnus <burnus@net-b.de> 420*81418a27Smrg 421*81418a27Smrg PR fortran/41777 422*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call,gfc_conv_expr_reference): 423*81418a27Smrg Use for generic EXPR_FUNCTION the attributes of the specific 424*81418a27Smrg function. 425*81418a27Smrg 426*81418a27Smrg2009-10-29 Janne Blomqvist <jb@gcc.gnu.org> 427*81418a27Smrg 428*81418a27Smrg PR fortran/41860 429*81418a27Smrg * resolve.c (apply_default_init_local): Treat -fno-automatic as if 430*81418a27Smrg var was saved. 431*81418a27Smrg 432*81418a27Smrg2009-10-28 Rafael Avila de Espindola <espindola@google.com> 433*81418a27Smrg 434*81418a27Smrg * trans-common.c (create_common): Set TREE_PUBLIC to false on 435*81418a27Smrg fake variables. 436*81418a27Smrg 437*81418a27Smrg2009-10-26 Janus Weil <janus@gcc.gnu.org> 438*81418a27Smrg 439*81418a27Smrg PR fortran/41714 440*81418a27Smrg * trans.c (gfc_trans_code): Remove call to 441*81418a27Smrg 'tree_annotate_all_with_location'. Location should already be set. 442*81418a27Smrg * trans-openmp.c (gfc_trans_omp_workshare): Ditto. 443*81418a27Smrg * trans-stmt.c (gfc_trans_allocate): Do correct data initialization for 444*81418a27Smrg CLASS variables with SOURCE tag, plus some cleanup. 445*81418a27Smrg 446*81418a27Smrg2009-10-24 Janus Weil <janus@gcc.gnu.org> 447*81418a27Smrg Paul Thomas <pault@gcc.gnu.org> 448*81418a27Smrg 449*81418a27Smrg PR fortran/41784 450*81418a27Smrg * module.c (load_derived_extensions): Skip symbols which are not being 451*81418a27Smrg loaded. 452*81418a27Smrg 453*81418a27Smrg2009-10-24 Paul Thomas <pault@gcc.gnu.org> 454*81418a27Smrg 455*81418a27Smrg PR fortran/41772 456*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Stop'extent' 457*81418a27Smrg from going negative. 458*81418a27Smrg 459*81418a27Smrg2009-10-23 Janus Weil <janus@gcc.gnu.org> 460*81418a27Smrg 461*81418a27Smrg PR fortran/41800 462*81418a27Smrg * trans-expr.c (gfc_trans_scalar_assign): Handle CLASS variables. 463*81418a27Smrg 464*81418a27Smrg2009-10-23 Janus Weil <janus@gcc.gnu.org> 465*81418a27Smrg 466*81418a27Smrg PR fortran/41758 467*81418a27Smrg * match.c (conformable_arrays): Move to resolve.c. 468*81418a27Smrg (gfc_match_allocate): Don't resolve SOURCE expr yet, and move some 469*81418a27Smrg checks to resolve_allocate_expr. 470*81418a27Smrg * resolve.c (conformable_arrays): Moved here from match.c. 471*81418a27Smrg (resolve_allocate_expr): Moved some checks here from gfc_match_allocate. 472*81418a27Smrg (resolve_code): Resolve SOURCE tag for ALLOCATE expressions. 473*81418a27Smrg 474*81418a27Smrg2009-10-22 Janus Weil <janus@gcc.gnu.org> 475*81418a27Smrg 476*81418a27Smrg PR fortran/41781 477*81418a27Smrg * resolve.c (resolve_codes): Don't clear 'cs_base' for BLOCK constructs, 478*81418a27Smrg to make sure labels are treated correctly. 479*81418a27Smrg * symbol.c (gfc_get_st_label): Create labels in the right namespace. 480*81418a27Smrg For BLOCK constructs go into the parent namespace. 481*81418a27Smrg 482*81418a27Smrg2009-10-21 Janus Weil <janus@gcc.gnu.org> 483*81418a27Smrg 484*81418a27Smrg PR fortran/41706 485*81418a27Smrg PR fortran/41766 486*81418a27Smrg * match.c (select_type_set_tmp): Set flavor for temporary. 487*81418a27Smrg * resolve.c (resolve_class_typebound_call): Correctly resolve actual 488*81418a27Smrg arguments. 489*81418a27Smrg 490*81418a27Smrg2009-10-20 Paul Thomas <pault@gcc.gnu.org> 491*81418a27Smrg 492*81418a27Smrg PR fortran/41706 493*81418a27Smrg * resolve.c (resolve_arg_exprs): New function. 494*81418a27Smrg (resolve_class_compcall): Call the above. 495*81418a27Smrg (resolve_class_typebound_call): The same. 496*81418a27Smrg 497*81418a27Smrg2009-10-19 Janus Weil <janus@gcc.gnu.org> 498*81418a27Smrg 499*81418a27Smrg PR fortran/41586 500*81418a27Smrg * parse.c (parse_derived): Correctly set 'alloc_comp' and 'pointer_comp' 501*81418a27Smrg for CLASS variables. 502*81418a27Smrg * trans-array.c (structure_alloc_comps): Handle deallocation and 503*81418a27Smrg nullification of allocatable scalar components. 504*81418a27Smrg * trans-decl.c (gfc_get_symbol_decl): Remember allocatable scalars for 505*81418a27Smrg automatic deallocation. 506*81418a27Smrg (gfc_trans_deferred_vars): Automatically deallocate allocatable scalars. 507*81418a27Smrg 508*81418a27Smrg2009-10-19 Tobias Burnus <burnus@net-b.de> 509*81418a27Smrg Steven G. Kargl <kargl@gcc.gnu.org> 510*81418a27Smrg 511*81418a27Smrg PR fortran/41755 512*81418a27Smrg * symbol.c (gfc_undo_symbols): Add NULL check. 513*81418a27Smrg * match.c (gfc_match_equivalence): Add check for 514*81418a27Smrg missing comma. 515*81418a27Smrg 516*81418a27Smrg2009-10-19 Richard Guenther <rguenther@suse.de> 517*81418a27Smrg 518*81418a27Smrg PR fortran/41494 519*81418a27Smrg * trans-expr.c (gfc_trans_scalar_assign): Do not call 520*81418a27Smrg gfc_evaluate_now. 521*81418a27Smrg 522*81418a27Smrg2009-10-17 Janus Weil <janus@gcc.gnu.org> 523*81418a27Smrg Paul Thomas <pault@gcc.gnu.org> 524*81418a27Smrg 525*81418a27Smrg PR fortran/41608 526*81418a27Smrg * decl.c (gfc_match_data_decl): Add BT_CLASS for undefined type 527*81418a27Smrg and empty type errors. 528*81418a27Smrg * parse.c (gfc_build_block_ns): Only set recursive if parent ns 529*81418a27Smrg has a proc_name. 530*81418a27Smrg 531*81418a27Smrg PR fortran/41629 532*81418a27Smrg PR fortran/41618 533*81418a27Smrg PR fortran/41587 534*81418a27Smrg * gfortran.h : Add class_ok bitfield to symbol_attr. 535*81418a27Smrg * decl.c (build_sym): Set attr.class_ok if dummy, pointer or 536*81418a27Smrg allocatable. 537*81418a27Smrg (build_struct): Use gfc_try 't' to carry errors past the call 538*81418a27Smrg to encapsulate_class_symbol. 539*81418a27Smrg (attr_decl1): For a CLASS object, apply the new attribute to 540*81418a27Smrg the data component. 541*81418a27Smrg * match.c (gfc_match_select_type): Set attr.class_ok for an 542*81418a27Smrg assigned selector. 543*81418a27Smrg * resolve.c (resolve_fl_variable_derived): Check a CLASS object 544*81418a27Smrg is dummy, pointer or allocatable by testing the class_ok and 545*81418a27Smrg the use_assoc attribute. 546*81418a27Smrg 547*81418a27Smrg2009-10-16 Janus Weil <janus@gcc.gnu.org> 548*81418a27Smrg 549*81418a27Smrg PR fortran/41719 550*81418a27Smrg * resolve.c (resolve_ordinary_assign): Reject intrinsic assignments 551*81418a27Smrg to polymorphic variables. 552*81418a27Smrg 553*81418a27Smrg2009-10-16 Paul Thomas <pault@gcc.gnu.org> 554*81418a27Smrg 555*81418a27Smrg PR fortran/41648 556*81418a27Smrg PR fortran/41656 557*81418a27Smrg * trans-expr.c (select_class_proc): Convert the expression for the 558*81418a27Smrg vindex, carried on the first member of the esym list. 559*81418a27Smrg * gfortran.h : Add the vindex field to the esym_list structure. 560*81418a27Smrg and eliminate the class_object field. 561*81418a27Smrg * resolve.c (check_class_members): Remove the setting of the 562*81418a27Smrg class_object field. 563*81418a27Smrg (vindex_expr): New function. 564*81418a27Smrg (get_class_from_expr): New function. 565*81418a27Smrg (resolve_class_compcall): Call the above to find the ultimate 566*81418a27Smrg class or derived component. If derived, do not generate the 567*81418a27Smrg esym list. Add and expression for the vindex to the esym list 568*81418a27Smrg by calling the above. 569*81418a27Smrg (resolve_class_typebound_call): The same. 570*81418a27Smrg 571*81418a27Smrg2009-10-15 Steven G. Kargl <kargl@gcc.gnu.org> 572*81418a27Smrg 573*81418a27Smrg PR fortran/41712 574*81418a27Smrg * intrinsic.texi: Explicitly state that ETIME and DTIME take 575*81418a27Smrg REAL(4) arguments. Fix nearby typographically errors where 576*81418a27Smrg /leq was used instead of \leq. 577*81418a27Smrg 578*81418a27Smrg2009-10-13 Janus Weil <janus@gcc.gnu.org> 579*81418a27Smrg 580*81418a27Smrg PR fortran/41581 581*81418a27Smrg * decl.c (encapsulate_class_symbol): Add new component '$size'. 582*81418a27Smrg * resolve.c (resolve_allocate_expr): Move CLASS handling to 583*81418a27Smrg gfc_trans_allocate. 584*81418a27Smrg (resolve_class_assign): Replaced by gfc_trans_class_assign. 585*81418a27Smrg (resolve_code): Remove calls to resolve_class_assign. 586*81418a27Smrg * trans.c (gfc_trans_code): Use new function gfc_trans_class_assign. 587*81418a27Smrg * trans-expr.c (get_proc_ptr_comp): Fix a memory leak. 588*81418a27Smrg (gfc_conv_procedure_call): For CLASS dummies, set the 589*81418a27Smrg $size component. 590*81418a27Smrg (gfc_trans_class_assign): New function, replacing resolve_class_assign. 591*81418a27Smrg * trans-stmt.h (gfc_trans_class_assign): New prototype. 592*81418a27Smrg * trans-stmt.c (gfc_trans_allocate): Use correct size when allocating 593*81418a27Smrg CLASS variables. Do proper initialization. Move some code here from 594*81418a27Smrg resolve_allocate_expr. 595*81418a27Smrg 596*81418a27Smrg2009-10-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> 597*81418a27Smrg 598*81418a27Smrg PR fortran/38439 599*81418a27Smrg * io.c (check_format): Fix locus for error messages and fix a comment. 600*81418a27Smrg 601*81418a27Smrg2009-10-11 Paul Thomas <pault@gcc.gnu.org> 602*81418a27Smrg 603*81418a27Smrg PR fortran/41583 604*81418a27Smrg * decl.c (hash_value): New function. 605*81418a27Smrg (gfc_match_derived_decl): Call it. 606*81418a27Smrg 607*81418a27Smrg2009-10-09 Janus Weil <janus@gcc.gnu.org> 608*81418a27Smrg 609*81418a27Smrg PR fortran/41585 610*81418a27Smrg * decl.c (build_struct): Bugfix for CLASS components. 611*81418a27Smrg 612*81418a27Smrg2009-10-09 Tobias Burnus <burnus@net-b.de> 613*81418a27Smrg 614*81418a27Smrg PR fortran/41582 615*81418a27Smrg * decl.c (encapsulate_class_symbol): Save attr.abstract. 616*81418a27Smrg * resolve.c (resolve_allocate_expr): Reject class allocate 617*81418a27Smrg without typespec or source=. 618*81418a27Smrg * trans-stmt.c (gfc_trans_allocate): Change gfc_warning 619*81418a27Smrg into gfc_error for "not yet implemented". 620*81418a27Smrg 621*81418a27Smrg2009-10-09 Janus Weil <janus@gcc.gnu.org> 622*81418a27Smrg 623*81418a27Smrg PR fortran/41579 624*81418a27Smrg * gfortran.h (gfc_select_type_stack): New struct, to be used as a stack 625*81418a27Smrg for SELECT TYPE statements. 626*81418a27Smrg (select_type_stack): New global variable. 627*81418a27Smrg (type_selector,select_type_tmp): Removed. 628*81418a27Smrg * match.c (type_selector,type_selector): Removed. 629*81418a27Smrg (select_type_stack): New variable, serving as a stack for 630*81418a27Smrg SELECT TYPE statements. 631*81418a27Smrg (select_type_push,select_type_set_tmp): New functions. 632*81418a27Smrg (gfc_match_select_type): Call select_type_push. 633*81418a27Smrg (gfc_match_type_is): Call select_type_set_tmp. 634*81418a27Smrg * parse.c (select_type_pop): New function. 635*81418a27Smrg (parse_select_type_block): Call select_type_pop. 636*81418a27Smrg * symbol.c (select_type_insert_tmp): New function. 637*81418a27Smrg (gfc_find_sym_tree): Call select_type_insert_tmp. 638*81418a27Smrg 639*81418a27Smrg2009-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 640*81418a27Smrg 641*81418a27Smrg * arith.c (arith_power): Use mpc_pow_z. 642*81418a27Smrg * gfortran.h (HAVE_mpc_pow_z): Define. 643*81418a27Smrg 644*81418a27Smrg2009-10-07 Daniel Kraft <d@domob.eu> 645*81418a27Smrg 646*81418a27Smrg PR fortran/41615 647*81418a27Smrg * resolve.c (resolve_contained_fntype): Clarify error message for 648*81418a27Smrg invalid assumed-length character result on module procedures. 649*81418a27Smrg 650*81418a27Smrg2009-10-07 Janus Weil <janus@gcc.gnu.org> 651*81418a27Smrg 652*81418a27Smrg * expr.c (gfc_check_pointer_assign): Do the correct type checking when 653*81418a27Smrg CLASS variables are involved. 654*81418a27Smrg * match.c (gfc_match_select_type): Parse associate-name in SELECT TYPE 655*81418a27Smrg statements, and set up a local namespace for the SELECT TYPE block. 656*81418a27Smrg * parse.h (gfc_build_block_ns): New prototype. 657*81418a27Smrg * parse.c (parse_select_type_block): Return from local namespace to its 658*81418a27Smrg parent after SELECT TYPE block. 659*81418a27Smrg (gfc_build_block_ns): New function for setting up the local namespace 660*81418a27Smrg for a BLOCK construct. 661*81418a27Smrg (parse_block_construct): Use gfc_build_block_ns. 662*81418a27Smrg * resolve.c (resolve_select_type): Insert assignment for the selector 663*81418a27Smrg variable, in case an associate-name is given, and put the SELECT TYPE 664*81418a27Smrg statement inside a BLOCK. 665*81418a27Smrg (resolve_code): Call resolve_class_assign after checking the assignment. 666*81418a27Smrg * symbol.c (gfc_find_sym_tree): Moved some code here from 667*81418a27Smrg gfc_get_ha_sym_tree. 668*81418a27Smrg (gfc_get_ha_sym_tree): Moved some code to gfc_find_sym_tree. 669*81418a27Smrg 670*81418a27Smrg2009-10-07 Paul Thomas <pault@gcc.gnu.org> 671*81418a27Smrg 672*81418a27Smrg PR fortran/41613 673*81418a27Smrg * resolve.c (check_class_members): Reset compcall.assign. 674*81418a27Smrg 675*81418a27Smrg2009-10-05 Paul Thomas <pault@gcc.gnu.org> 676*81418a27Smrg 677*81418a27Smrg * trans-expr.c (select_class_proc): New function. 678*81418a27Smrg (conv_function_val): Deal with class methods and call above. 679*81418a27Smrg * symbol.c (gfc_type_compatible): Treat case where both ts1 and 680*81418a27Smrg ts2 are BT_CLASS. 681*81418a27Smrg gfortran.h : Add structure gfc_class_esym_list and include in 682*81418a27Smrg the structure gfc_expr. 683*81418a27Smrg * module.c (load_derived_extensions): New function. 684*81418a27Smrg (read_module): Call above. 685*81418a27Smrg (write_dt_extensions): New function. 686*81418a27Smrg (write_derived_extensions): New function. 687*81418a27Smrg (write_module): Use the above. 688*81418a27Smrg * resolve.c (resolve_typebound_call): Add a function expression 689*81418a27Smrg for class methods. This carries the chain of symbols for the 690*81418a27Smrg dynamic dispatch in select_class_proc. 691*81418a27Smrg (resolve_compcall): Add second, boolean argument to indicate if 692*81418a27Smrg a function is being handled. 693*81418a27Smrg (check_members): New function. 694*81418a27Smrg (check_class_members): New function. 695*81418a27Smrg (resolve_class_compcall): New function. 696*81418a27Smrg (resolve_class_typebound_call): New function. 697*81418a27Smrg (gfc_resolve_expr): Call above for component calls.. 698*81418a27Smrg 699*81418a27Smrg2009-10-05 Daniel Kraft <d@domob.eu> 700*81418a27Smrg 701*81418a27Smrg PR fortran/41403 702*81418a27Smrg * trans-stmt.c (gfc_trans_goto): Ignore statement list on assigned goto 703*81418a27Smrg if it is present. 704*81418a27Smrg 705*81418a27Smrg2009-10-03 Richard Guenther <rguenther@suse.de> 706*81418a27Smrg 707*81418a27Smrg * options.c (gfc_post_options): Handle -flto and -fwhopr. 708*81418a27Smrg 709*81418a27Smrg2009-10-02 Tobias Burnus <burnus@net-b.de> 710*81418a27Smrg 711*81418a27Smrg PR fortran/41479 712*81418a27Smrg * trans-decl.c (gfc_init_default_dt): Check for presence of 713*81418a27Smrg the argument only if it is optional or in entry master. 714*81418a27Smrg (init_intent_out_dt): Ditto; call gfc_init_default_dt 715*81418a27Smrg for all derived types with initializers. 716*81418a27Smrg 717*81418a27Smrg2009-10-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 718*81418a27Smrg 719*81418a27Smrg PR fortran/33197 720*81418a27Smrg * gfortran.h (HAVE_mpc_arc): Define. 721*81418a27Smrg * simplify.c (gfc_simplify_acos): Handle complex acos. 722*81418a27Smrg (gfc_simplify_acosh): Likewise for acosh. 723*81418a27Smrg (gfc_simplify_asin): Likewise for asin. 724*81418a27Smrg (gfc_simplify_asinh): Likewise for asinh. 725*81418a27Smrg (gfc_simplify_atan): Likewise for atan. 726*81418a27Smrg (gfc_simplify_atanh): Likewise for atanh. 727*81418a27Smrg 728*81418a27Smrg2009-10-01 Tobias Burnus <burnus@net-b.de> 729*81418a27Smrg 730*81418a27Smrg PR fortran/41515 731*81418a27Smrg * decl.c (do_parm): Call add_init_expr_to_sym. 732*81418a27Smrg 733*81418a27Smrg2009-09-30 Dennis Wassel <dennis.wassel@gmail.com> 734*81418a27Smrg 735*81418a27Smrg * gcc/fortran/trans-array.c (gfc_trans_array_bound_check): Improved 736*81418a27Smrg bounds checking error messages. (gfc_conv_array_ref): Likewise. 737*81418a27Smrg (gfc_conv_ss_startstride): Likewise. 738*81418a27Smrg 739*81418a27Smrg2009-09-30 Janus Weil <janus@gcc.gnu.org> 740*81418a27Smrg 741*81418a27Smrg * resolve.c (check_typebound_baseobject): Don't check for 742*81418a27Smrg abstract types for CLASS. 743*81418a27Smrg (resolve_class_assign): Adapt for RHS being a CLASS. 744*81418a27Smrg * trans-intrinsic.c (gfc_conv_associated): Add component ref 745*81418a27Smrg if expr is a CLASS. 746*81418a27Smrg 747*81418a27Smrg2009-09-30 Janus Weil <janus@gcc.gnu.org> 748*81418a27Smrg 749*81418a27Smrg * check.c (gfc_check_same_type_as): New function for checking 750*81418a27Smrg SAME_TYPE_AS and EXTENDS_TYPE_OF. 751*81418a27Smrg * decl.c (encapsulate_class_symbol): Set ABSTRACT attribute for class 752*81418a27Smrg container, if the contained type has it. Add an initializer for the 753*81418a27Smrg class container. 754*81418a27Smrg (add_init_expr_to_sym): Handle BT_CLASS. 755*81418a27Smrg (vindex_counter): New counter for setting vindices. 756*81418a27Smrg (gfc_match_derived_decl): Set vindex for all derived types, not only 757*81418a27Smrg those which are being extended. 758*81418a27Smrg * expr.c (gfc_check_assign_symbol): Handle NULL initialization of class 759*81418a27Smrg pointers. 760*81418a27Smrg * gfortran.h (gfc_isym_id): New values GFC_ISYM_SAME_TYPE_AS and 761*81418a27Smrg GFC_ISYM_EXTENDS_TYPE_OF. 762*81418a27Smrg (gfc_type_is_extensible): New prototype. 763*81418a27Smrg * intrinsic.h (gfc_check_same_type_as): New prototype. 764*81418a27Smrg * intrinsic.c (add_functions): Add SAME_TYPE_AS and EXTENDS_TYPE_OF. 765*81418a27Smrg * primary.c (gfc_expr_attr): Handle CLASS-valued functions. 766*81418a27Smrg * resolve.c (resolve_structure_cons): Handle BT_CLASS. 767*81418a27Smrg (type_is_extensible): Make non-static and rename to 768*81418a27Smrg 'gfc_type_is_extensible. 769*81418a27Smrg (resolve_select_type): Renamed type_is_extensible. 770*81418a27Smrg (resolve_class_assign): Handle NULL pointers. 771*81418a27Smrg (resolve_fl_variable_derived): Renamed type_is_extensible. 772*81418a27Smrg (resolve_fl_derived): Ditto. 773*81418a27Smrg * trans-expr.c (gfc_trans_subcomponent_assign): Handle NULL 774*81418a27Smrg initialization of class pointer components. 775*81418a27Smrg (gfc_conv_structure): Handle BT_CLASS. 776*81418a27Smrg * trans-intrinsic.c (gfc_conv_same_type_as,gfc_conv_extends_type_of): 777*81418a27Smrg New functions. 778*81418a27Smrg (gfc_conv_intrinsic_function): Handle SAME_TYPE_AS and EXTENDS_TYPE_OF. 779*81418a27Smrg 780*81418a27Smrg2009-09-30 Janus Weil <janus@gcc.gnu.org> 781*81418a27Smrg 782*81418a27Smrg * gfortran.h (type_selector, select_type_tmp): New global variables. 783*81418a27Smrg * match.c (type_selector, select_type_tmp): New global variables, 784*81418a27Smrg used for SELECT TYPE statements. 785*81418a27Smrg (gfc_match_select_type): Better error handling. Remember selector. 786*81418a27Smrg (gfc_match_type_is): Create temporary variable. 787*81418a27Smrg * module.c (ab_attribute): New value 'AB_IS_CLASS'. 788*81418a27Smrg (attr_bits): New string. 789*81418a27Smrg (mio_symbol_attribute): Handle 'is_class'. 790*81418a27Smrg * resolve.c (resolve_select_type): Insert pointer assignment statement, 791*81418a27Smrg to assign temporary to selector. 792*81418a27Smrg * symbol.c (gfc_get_ha_sym_tree): Replace selector by a temporary 793*81418a27Smrg in SELECT TYPE statements. 794*81418a27Smrg 795*81418a27Smrg2009-09-30 Janus Weil <janus@gcc.gnu.org> 796*81418a27Smrg 797*81418a27Smrg * dump-parse-tree.c (show_code_node): Renamed 'alloc_list'. 798*81418a27Smrg * gfortran.h (gfc_code): Rename 'alloc_list'. Add member 'ts'. 799*81418a27Smrg (gfc_expr_to_initialize): New prototype. 800*81418a27Smrg * match.c (alloc_opt_list): Correctly check type compatibility. 801*81418a27Smrg Renamed 'alloc_list'. 802*81418a27Smrg (dealloc_opt_list): Renamed 'alloc_list'. 803*81418a27Smrg * resolve.c (expr_to_initialize): Rename to 'gfc_expr_to_initialize' 804*81418a27Smrg and make it non-static. 805*81418a27Smrg (resolve_allocate_expr): Set vindex for CLASS variables correctly. 806*81418a27Smrg Move initialization code to gfc_trans_allocate. Renamed 'alloc_list'. 807*81418a27Smrg (resolve_allocate_deallocate): Renamed 'alloc_list'. 808*81418a27Smrg (check_class_pointer_assign): Rename to 'resolve_class_assign'. Change 809*81418a27Smrg argument type. Adjust to work with ordinary assignments. 810*81418a27Smrg (resolve_code): Call 'resolve_class_assign' for ordinary assignments. 811*81418a27Smrg Renamed 'check_class_pointer_assign'. 812*81418a27Smrg * st.c (gfc_free_statement): Renamed 'alloc_list'. 813*81418a27Smrg * trans-stmt.c (gfc_trans_allocate): Renamed 'alloc_list'. Handle 814*81418a27Smrg size determination and initialization of CLASS variables. Bugfix for 815*81418a27Smrg ALLOCATE statements with default initialization and SOURCE block. 816*81418a27Smrg (gfc_trans_deallocate): Renamed 'alloc_list'. 817*81418a27Smrg 818*81418a27Smrg2009-09-30 Paul Thomas <pault@gcc.gnu.org> 819*81418a27Smrg 820*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Convert a derived 821*81418a27Smrg type actual to a class object if the formal argument is a 822*81418a27Smrg class. 823*81418a27Smrg 824*81418a27Smrg2009-09-30 Janus Weil <janus@gcc.gnu.org> 825*81418a27Smrg 826*81418a27Smrg PR fortran/40996 827*81418a27Smrg * decl.c (build_struct): Handle allocatable scalar components. 828*81418a27Smrg * expr.c (gfc_add_component_ref): Correctly set typespec of expression, 829*81418a27Smrg after inserting component reference. 830*81418a27Smrg * match.c (gfc_match_type_is,gfc_match_class_is): Make sure that no 831*81418a27Smrg variables are being used uninitialized. 832*81418a27Smrg * primary.c (gfc_match_varspec): Handle CLASS array components. 833*81418a27Smrg * resolve.c (resolve_select_type): Transform EXEC_SELECT_TYPE to 834*81418a27Smrg EXEC_SELECT. 835*81418a27Smrg * trans-array.c (structure_alloc_comps,gfc_trans_deferred_array): 836*81418a27Smrg Handle allocatable scalar components. 837*81418a27Smrg * trans-expr.c (gfc_conv_component_ref): Ditto. 838*81418a27Smrg * trans-types.c (gfc_get_derived_type): Ditto. 839*81418a27Smrg 840*81418a27Smrg2009-09-30 Janus Weil <janus@gcc.gnu.org> 841*81418a27Smrg 842*81418a27Smrg * decl.c (encapsulate_class_symbol): Modify names of class container 843*81418a27Smrg components by prefixing with '$'. 844*81418a27Smrg (gfc_match_end): Handle COMP_SELECT_TYPE. 845*81418a27Smrg * expr.c (gfc_add_component_ref): Modify names of class container 846*81418a27Smrg components by prefixing with '$'. 847*81418a27Smrg * gfortran.h (gfc_statement): Add ST_SELECT_TYPE, ST_TYPE_IS and 848*81418a27Smrg ST_CLASS_IS. 849*81418a27Smrg (gfc_case): New field 'ts'. 850*81418a27Smrg (gfc_exec_op): Add EXEC_SELECT_TYPE. 851*81418a27Smrg (gfc_type_is_extension_of): New prototype. 852*81418a27Smrg * match.h (gfc_match_select_type,gfc_match_type_is,gfc_match_class_is): 853*81418a27Smrg New prototypes. 854*81418a27Smrg * match.c (match_derived_type_spec): New function. 855*81418a27Smrg (match_type_spec): Use 'match_derived_type_spec'. 856*81418a27Smrg (match_case_eos): Modify error message. 857*81418a27Smrg (gfc_match_select_type): New function. 858*81418a27Smrg (gfc_match_case): Modify error message. 859*81418a27Smrg (gfc_match_type_is): New function. 860*81418a27Smrg (gfc_match_class_is): Ditto. 861*81418a27Smrg * parse.h (gfc_compile_state): Add COMP_SELECT_TYPE. 862*81418a27Smrg * parse.c (decode_statement): Handle SELECT TYPE, TYPE IS and CLASS IS 863*81418a27Smrg statements. 864*81418a27Smrg (next_statement): Handle ST_SELECT_TYPE. 865*81418a27Smrg (gfc_ascii_statement): Handle ST_SELECT_TYPE, ST_TYPE_IS, ST_CLASS_IS. 866*81418a27Smrg (parse_select_type_block): New function. 867*81418a27Smrg (parse_executable): Handle ST_SELECT_TYPE. 868*81418a27Smrg * resolve.c (resolve_deallocate_expr): Handle BT_CLASS. Modify names of 869*81418a27Smrg class container components by prefixing with '$'. 870*81418a27Smrg (resolve_allocate_expr): Ditto. 871*81418a27Smrg (resolve_select_type): New function. 872*81418a27Smrg (gfc_resolve_blocks): Handle EXEC_SELECT_TYPE. 873*81418a27Smrg (check_class_pointer_assign): Modify names of class container 874*81418a27Smrg components by prefixing with '$'. 875*81418a27Smrg (resolve_code): Ditto. 876*81418a27Smrg * st.c (gfc_free_statement): Ditto. 877*81418a27Smrg * symbol.c (gfc_type_is_extension_of): New function. 878*81418a27Smrg (gfc_type_compatible): Use 'gfc_type_is_extension_of', plus a bugfix. 879*81418a27Smrg * trans.c (gfc_trans_code): Handel EXEC_SELECT_TYPE. 880*81418a27Smrg 881*81418a27Smrg2009-09-30 Janus Weil <janus@gcc.gnu.org> 882*81418a27Smrg Paul Thomas <pault@gcc.gnu.org> 883*81418a27Smrg 884*81418a27Smrg * check.c (gfc_check_move_alloc): Arguments don't have to be arrays. 885*81418a27Smrg The second argument needs to be type-compatible with the first (not the 886*81418a27Smrg other way around, which makes a difference for CLASS entities). 887*81418a27Smrg * decl.c (encapsulate_class_symbol): New function. 888*81418a27Smrg (build_sym,build_struct): Handle BT_CLASS, call 889*81418a27Smrg 'encapsulate_class_symbol'. 890*81418a27Smrg (gfc_match_decl_type_spec): Remove warning, use BT_CLASS. 891*81418a27Smrg (gfc_match_derived_decl): Set vindex; 892*81418a27Smrg * expr.c (gfc_add_component_ref): New function. 893*81418a27Smrg (gfc_copy_expr,gfc_check_pointer_assign,gfc_check_assign_symbol): 894*81418a27Smrg Handle BT_CLASS. 895*81418a27Smrg * dump-parse-tree.c (show_symbol): Print vindex. 896*81418a27Smrg * gfortran.h (bt): New basic type BT_CLASS. 897*81418a27Smrg (symbol_attribute): New field 'is_class'. 898*81418a27Smrg (gfc_typespec): Remove field 'is_class'. 899*81418a27Smrg (gfc_symbol): New field 'vindex'. 900*81418a27Smrg (gfc_get_ultimate_derived_super_type): New prototype. 901*81418a27Smrg (gfc_add_component_ref): Ditto. 902*81418a27Smrg * interface.c (gfc_compare_derived_types): Pointer equality check 903*81418a27Smrg moved here from gfc_compare_types. 904*81418a27Smrg (gfc_compare_types): Handle BT_CLASS and use 905*81418a27Smrg gfc_type_compatible. 906*81418a27Smrg * match.c (gfc_match_allocate,gfc_match_deallocate,gfc_match_call): 907*81418a27Smrg Handle BT_CLASS. 908*81418a27Smrg * misc.c (gfc_clear_ts): Removed is_class. 909*81418a27Smrg (gfc_basic_typename,gfc_typename): Handle BT_CLASS. 910*81418a27Smrg * module.c (bt_types,mio_typespec): Handle BT_CLASS. 911*81418a27Smrg (mio_symbol): Handle vindex. 912*81418a27Smrg * primary.c (gfc_match_varspec,gfc_variable_attr): Handle BT_CLASS. 913*81418a27Smrg * resolve.c (find_array_spec,check_typebound_baseobject): 914*81418a27Smrg Handle BT_CLASS. 915*81418a27Smrg (resolve_ppc_call,resolve_expr_ppc): Don't call 'gfc_is_proc_ptr_comp' 916*81418a27Smrg inside 'gcc_assert'. 917*81418a27Smrg (resolve_deallocate_expr,resolve_allocate_expr): Handle BT_CLASS. 918*81418a27Smrg (check_class_pointer_assign): New function. 919*81418a27Smrg (resolve_code): Handle BT_CLASS, call check_class_pointer_assign. 920*81418a27Smrg (resolve_fl_var_and_proc,type_is_extensible,resolve_fl_variable_derived, 921*81418a27Smrg resolve_fl_variable): Handle BT_CLASS. 922*81418a27Smrg (check_generic_tbp_ambiguity): Add special case. 923*81418a27Smrg (resolve_typebound_procedure,resolve_fl_derived): Handle BT_CLASS. 924*81418a27Smrg * symbol.c (gfc_get_ultimate_derived_super_type): New function. 925*81418a27Smrg (gfc_type_compatible): Handle BT_CLASS. 926*81418a27Smrg * trans-expr.c (conv_parent_component_references): Handle CLASS 927*81418a27Smrg containers. 928*81418a27Smrg (gfc_conv_initializer): Handle BT_CLASS. 929*81418a27Smrg * trans-types.c (gfc_typenode_for_spec,gfc_get_derived_type): 930*81418a27Smrg Handle BT_CLASS. 931*81418a27Smrg 932*81418a27Smrg2009-09-29 Daniel Kraft <d@domob.eu> 933*81418a27Smrg 934*81418a27Smrg PR fortran/39626 935*81418a27Smrg * gfortran.h (enum gfc_statement): Add ST_BLOCK and ST_END_BLOCK. 936*81418a27Smrg (struct gfc_namespace): Convert flags to bit-fields and add flag 937*81418a27Smrg `construct_entities' for use with BLOCK constructs. 938*81418a27Smrg (enum gfc_exec_code): Add EXEC_BLOCK. 939*81418a27Smrg (struct gfc_code): Add namespace field to union for EXEC_BLOCK. 940*81418a27Smrg * match.h (gfc_match_block): New prototype. 941*81418a27Smrg * parse.h (enum gfc_compile_state): Add COMP_BLOCK. 942*81418a27Smrg * trans.h (gfc_process_block_locals): New prototype. 943*81418a27Smrg (gfc_trans_deferred_vars): Made public, new prototype. 944*81418a27Smrg * trans-stmt.h (gfc_trans_block_construct): New prototype. 945*81418a27Smrg * decl.c (gfc_match_end): Handle END BLOCK correctly. 946*81418a27Smrg (gfc_match_intent): Error if inside of BLOCK. 947*81418a27Smrg (gfc_match_optional), (gfc_match_value): Ditto. 948*81418a27Smrg * match.c (gfc_match_block): New routine. 949*81418a27Smrg * parse.c (decode_statement): Handle BLOCK statement. 950*81418a27Smrg (case_exec_markers): Add ST_BLOCK. 951*81418a27Smrg (case_end): Add ST_END_BLOCK. 952*81418a27Smrg (gfc_ascii_statement): Handle ST_BLOCK and ST_END_BLOCK. 953*81418a27Smrg (parse_spec): Check for statements not allowed inside of BLOCK. 954*81418a27Smrg (parse_block_construct): New routine. 955*81418a27Smrg (parse_executable): Parse BLOCKs. 956*81418a27Smrg (parse_progunit): Disallow CONTAINS in BLOCK constructs. 957*81418a27Smrg * resolve.c (is_illegal_recursion): Find real container procedure and 958*81418a27Smrg don't get confused by BLOCK constructs. 959*81418a27Smrg (resolve_block_construct): New routine. 960*81418a27Smrg (gfc_resolve_blocks), (resolve_code): Handle EXEC_BLOCK. 961*81418a27Smrg * st.c (gfc_free_statement): Handle EXEC_BLOCK statements. 962*81418a27Smrg * trans-decl.c (saved_local_decls): New static variable. 963*81418a27Smrg (add_decl_as_local): New routine. 964*81418a27Smrg (gfc_finish_var_decl): Add variable as local if inside BLOCK. 965*81418a27Smrg (gfc_trans_deferred_vars): Make public. 966*81418a27Smrg (gfc_process_block_locals): New routine. 967*81418a27Smrg * trans-stmt.c (gfc_trans_block_construct): New routine. 968*81418a27Smrg * trans.c (gfc_trans_code): Handle EXEC_BLOCK statements. 969*81418a27Smrg 970*81418a27Smrg2009-09-28 Jerry DeLisle <jvdelisle@gcc.gnu.org> 971*81418a27Smrg 972*81418a27Smrg PR fortran/35862 973*81418a27Smrg * io.c (format_token): Add enumerators for rounding format specifiers. 974*81418a27Smrg (format_lex): Tokenize the rounding format specifiers. 975*81418a27Smrg (gfc_match_open): Enable rounding modes in OPEN statement. 976*81418a27Smrg 977*81418a27Smrg2009-09-28 Richard Henderson <rth@redhat.com> 978*81418a27Smrg 979*81418a27Smrg * f95-lang.c (gfc_init_builtin_functions): Update call to 980*81418a27Smrg build_common_builtin_nodes. 981*81418a27Smrg 982*81418a27Smrg2009-09-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 983*81418a27Smrg 984*81418a27Smrg * simplify.c (gfc_simplify_acos, gfc_simplify_acosh, 985*81418a27Smrg gfc_simplify_asin, gfc_simplify_asinh, gfc_simplify_atan, 986*81418a27Smrg gfc_simplify_atanh): Fix error message. 987*81418a27Smrg 988*81418a27Smrg2009-09-24 Steven G. Kargl <kargl@gcc.gnu.org> 989*81418a27Smrg 990*81418a27Smrg PR fortran/41459 991*81418a27Smrg * error.c(gfc_warning_now): Move warnings_are_errors test to 992*81418a27Smrg after actual emitting of the warning. 993*81418a27Smrg * parse.c (next_free): Improve error locus printing. 994*81418a27Smrg (next_fixed): Change gfc_warn to gfc_warning_now, and improve 995*81418a27Smrg locus reporting. 996*81418a27Smrg 997*81418a27Smrg2009-09-16 Michael Matz <matz@suse.de> 998*81418a27Smrg 999*81418a27Smrg PR fortran/41212 1000*81418a27Smrg * trans.h (struct lang_type): Remove nontarget_type member. 1001*81418a27Smrg * trans.c (gfc_add_modify): Don't access it. 1002*81418a27Smrg * trans-decl.c (gfc_finish_var_decl): Don't allocate and set it, 1003*81418a27Smrg instead set DECL_RESTRICTED_P on affected decls. 1004*81418a27Smrg 1005*81418a27Smrg2009-09-14 Richard Henderson <rth@redhat.com> 1006*81418a27Smrg 1007*81418a27Smrg * f95-lang.c (gfc_init_builtin_functions): Update call to 1008*81418a27Smrg build_common_builtin_nodes. 1009*81418a27Smrg (gfc_maybe_initialize_eh): Don't call 1010*81418a27Smrg default_init_unwind_resume_libfunc. 1011*81418a27Smrg 1012*81418a27Smrg2009-09-13 Richard Guenther <rguenther@suse.de> 1013*81418a27Smrg Rafael Avila de Espindola <espindola@google.com> 1014*81418a27Smrg 1015*81418a27Smrg * f95-lang.c (gfc_maybe_initialize_eh): Do not init 1016*81418a27Smrg eh_personality_libfunc. 1017*81418a27Smrg 1018*81418a27Smrg2009-09-11 Janus Weil <janus@gcc.gnu.org> 1019*81418a27Smrg 1020*81418a27Smrg PR fortran/41242 1021*81418a27Smrg * resolve.c (resolve_ordinary_assign): Don't call resolve_code, 1022*81418a27Smrg to avoid that subsequent codes are resolved more than once. 1023*81418a27Smrg (resolve_code): Make sure that type-bound assignment operators are 1024*81418a27Smrg resolved correctly. 1025*81418a27Smrg 1026*81418a27Smrg 1027*81418a27Smrg2009-09-10 Steven G. Kargl <kargl@gcc.gnu.org> 1028*81418a27Smrg 1029*81418a27Smrg PR fortran/31292 1030*81418a27Smrg * fortran/decl.c(gfc_match_modproc): Check that module procedures 1031*81418a27Smrg from a module can USEd in module procedure statements in other 1032*81418a27Smrg program units. Update locus for better error message display. 1033*81418a27Smrg Detect intrinsic procedures in module procedure statements. 1034*81418a27Smrg 1035*81418a27Smrg2009-09-09 Richard Guenther <rguenther@suse.de> 1036*81418a27Smrg 1037*81418a27Smrg PR fortran/41297 1038*81418a27Smrg * trans-expr.c (gfc_trans_scalar_assign): Correct typo that 1039*81418a27Smrg left 'tmp' unused in derived type assignment. 1040*81418a27Smrg 1041*81418a27Smrg2009-09-07 Thomas Koenig <tkoenig@gcc.gnu.org> 1042*81418a27Smrg 1043*81418a27Smrg PR fortran/41197 1044*81418a27Smrg * resolve_c (resolve_allocate_deallocate): Complain 1045*81418a27Smrg if stat or errmsg varaible is an array. 1046*81418a27Smrg 1047*81418a27Smrg2009-09-05 Paul Thomas <pault@gcc.gnu.org> 1048*81418a27Smrg 1049*81418a27Smrg PR fortran/41258 1050*81418a27Smrg * primary.c (gfc_match_varspec): Do not look for typebound 1051*81418a27Smrg procedures unless the derived type has a f2k_derived namespace. 1052*81418a27Smrg 1053*81418a27Smrg2009-09-03 Diego Novillo <dnovillo@google.com> 1054*81418a27Smrg 1055*81418a27Smrg * f95-lang.c (lang_hooks): Remove const qualifier. 1056*81418a27Smrg 1057*81418a27Smrg2009-09-01 Richard Guenther <rguenther@suse.de> 1058*81418a27Smrg 1059*81418a27Smrg * f95-lang.c (gfc_mark_addressable): Remove. 1060*81418a27Smrg (LANG_HOOKS_MARK_ADDRESSABLE): Likewise. 1061*81418a27Smrg 1062*81418a27Smrg2009-08-31 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1063*81418a27Smrg 1064*81418a27Smrg PR fortran/39229 1065*81418a27Smrg * scanner.c (next_char): Fix typo in comment. 1066*81418a27Smrg (gfc_get_char_literal): Warn if truncate flag is set for both fixed and 1067*81418a27Smrg free form source, adjusting error locus as needed. 1068*81418a27Smrg * parse.c (next_fixed): Clear the truncate flag. 1069*81418a27Smrg (next_statement): Remove truncate warning. 1070*81418a27Smrg 1071*81418a27Smrg2009-08-31 Janus Weil <janus@gcc.gnu.org> 1072*81418a27Smrg Paul Thomas <pault@gcc.gnu.org> 1073*81418a27Smrg 1074*81418a27Smrg PR fortran/40940 1075*81418a27Smrg * array.c (gfc_match_array_constructor): Rename gfc_match_type_spec. 1076*81418a27Smrg * decl.c (gfc_match_type_spec): Rename to gfc_match_decl_type_spec, 1077*81418a27Smrg and reject CLASS with -std=f95. 1078*81418a27Smrg (gfc_match_implicit, gfc_match_data_decl,gfc_match_prefix, 1079*81418a27Smrg match_procedure_interface): Rename gfc_match_type_spec. 1080*81418a27Smrg * gfortran.h (gfc_type_compatible): Add prototype. 1081*81418a27Smrg * match.h (gfc_match_type_spec): Rename to gfc_match_decl_type_spec. 1082*81418a27Smrg * match.c (match_intrinsic_typespec): Rename to match_type_spec, and 1083*81418a27Smrg add handling of derived types. 1084*81418a27Smrg (gfc_match_allocate): Rename match_intrinsic_typespec and check 1085*81418a27Smrg type compatibility of derived types. 1086*81418a27Smrg * symbol.c (gfc_type_compatible): New function to check if two types 1087*81418a27Smrg are compatible. 1088*81418a27Smrg 1089*81418a27Smrg2009-08-31 Janus Weil <janus@gcc.gnu.org> 1090*81418a27Smrg 1091*81418a27Smrg PR fortran/40996 1092*81418a27Smrg * check.c (gfc_check_allocated): Implement allocatable scalars. 1093*81418a27Smrg * resolve.c (resolve_allocate_expr,resolve_fl_var_and_proc): Ditto. 1094*81418a27Smrg * trans-intrinsic.c (gfc_conv_allocated): Ditto. 1095*81418a27Smrg 1096*81418a27Smrg2009-08-30 Daniel Kraft <d@domob.eu> 1097*81418a27Smrg 1098*81418a27Smrg PR fortran/37425 1099*81418a27Smrg * dump-parse-tree.c (show_typebound_proc): Renamed from `show_typebound' 1100*81418a27Smrg and accept gfc_typebound_proc and name instead of the symtree, needed 1101*81418a27Smrg for intrinsic operator output. 1102*81418a27Smrg (show_typebound_symtree): New method calling `show_typebound_proc'. 1103*81418a27Smrg (show_f2k_derived): Output type-bound operators also. 1104*81418a27Smrg (show_symbol): Moved output of `Procedure bindings:' label to 1105*81418a27Smrg `show_f2k_derived'. 1106*81418a27Smrg * gfortran.texi (Fortran 2003 status): Mention support of 1107*81418a27Smrg array-constructors with explicit type specification, type-bound 1108*81418a27Smrg procedures/operators, type extension, ABSTRACT types and DEFERRED. 1109*81418a27Smrg Link to Fortran 2003 wiki page. 1110*81418a27Smrg (Fortran 2008 status): Fix typo. Link to Fortran 2008 wiki page. 1111*81418a27Smrg * gfc-internals.texi (Type-bound Procedures): Document the new 1112*81418a27Smrg members/attributes of gfc_expr.value.compcall used for type-bound 1113*81418a27Smrg operators. 1114*81418a27Smrg (Type-bound Operators): New section documenting their internals. 1115*81418a27Smrg 1116*81418a27Smrg2009-08-27 Janus Weil <janus@gcc.gnu.org> 1117*81418a27Smrg 1118*81418a27Smrg PR fortran/40869 1119*81418a27Smrg * expr.c (gfc_check_pointer_assign): Enable interface check for 1120*81418a27Smrg pointer assignments involving procedure pointer components. 1121*81418a27Smrg * gfortran.h (gfc_compare_interfaces): Modified prototype. 1122*81418a27Smrg * interface.c (gfc_compare_interfaces): Add argument 'name2', to be 1123*81418a27Smrg used instead of s2->name. Don't rely on the proc_pointer attribute, 1124*81418a27Smrg but instead on the flags handed to this function. 1125*81418a27Smrg (check_interface1,compare_parameter): Add argument for 1126*81418a27Smrg gfc_compare_interfaces. 1127*81418a27Smrg * resolve.c (check_generic_tbp_ambiguity): Ditto. 1128*81418a27Smrg 1129*81418a27Smrg2009-08-27 Daniel Kraft <d@domob.eu> 1130*81418a27Smrg 1131*81418a27Smrg PR fortran/37425 1132*81418a27Smrg * gfortran.h (gfc_expr): Optionally store base-object in compcall value 1133*81418a27Smrg and add a new flag to distinguish assign-calls generated. 1134*81418a27Smrg (gfc_find_typebound_proc): Add locus argument. 1135*81418a27Smrg (gfc_find_typebound_user_op), (gfc_find_typebound_intrinsic_op): Ditto. 1136*81418a27Smrg (gfc_extend_expr): Return if failure was by a real error. 1137*81418a27Smrg * interface.c (matching_typebound_op): New routine. 1138*81418a27Smrg (build_compcall_for_operator): New routine. 1139*81418a27Smrg (gfc_extend_expr): Handle type-bound operators, some clean-up and 1140*81418a27Smrg return if failure was by a real error or just by not finding an 1141*81418a27Smrg appropriate operator definition. 1142*81418a27Smrg (gfc_extend_assign): Handle type-bound assignments. 1143*81418a27Smrg * module.c (MOD_VERSION): Incremented. 1144*81418a27Smrg (mio_intrinsic_op): New routine. 1145*81418a27Smrg (mio_full_typebound_tree): New routine to make typebound-procedures IO 1146*81418a27Smrg code reusable for type-bound user operators. 1147*81418a27Smrg (mio_f2k_derived): IO of type-bound operators. 1148*81418a27Smrg * primary.c (gfc_match_varspec): Initialize new fields in gfc_expr and 1149*81418a27Smrg pass locus to gfc_find_typebound_proc. 1150*81418a27Smrg * resolve.c (resolve_operator): Only output error about no matching 1151*81418a27Smrg interface if gfc_extend_expr did not already fail with an error. 1152*81418a27Smrg (extract_compcall_passed_object): Use specified base-object if present. 1153*81418a27Smrg (update_compcall_arglist): Handle ignore_pass field. 1154*81418a27Smrg (resolve_ordinary_assign): Update to handle extended code for 1155*81418a27Smrg type-bound assignments, too. 1156*81418a27Smrg (resolve_code): Handle EXEC_ASSIGN_CALL statement code. 1157*81418a27Smrg (resolve_tb_generic_targets): Pass locus to gfc_find_typebound_proc. 1158*81418a27Smrg (resolve_typebound_generic), (resolve_typebound_procedure): Ditto. 1159*81418a27Smrg (resolve_typebound_intrinsic_op), (resolve_typebound_user_op): Ditto. 1160*81418a27Smrg (ensure_not_abstract_walker), (resolve_fl_derived): Ditto. 1161*81418a27Smrg (resolve_typebound_procedures): Remove not-implemented error. 1162*81418a27Smrg (resolve_typebound_call): Handle assign-call flag. 1163*81418a27Smrg * symbol.c (find_typebound_proc_uop): New argument to pass locus for 1164*81418a27Smrg error message about PRIVATE, verify that a found procedure is not marked 1165*81418a27Smrg as erraneous. 1166*81418a27Smrg (gfc_find_typebound_intrinsic_op): Ditto. 1167*81418a27Smrg (gfc_find_typebound_proc), (gfc_find_typebound_user_op): New locus arg. 1168*81418a27Smrg 1169*81418a27Smrg2009-08-22 Bud Davis <bdavis9659@sbcglobal.net> 1170*81418a27Smrg 1171*81418a27Smrg PR fortran/28093 1172*81418a27Smrg * io.c: reverted previous patch. 1173*81418a27Smrg 1174*81418a27Smrg2009-08-25 Janne Blomqvist <jb@gcc.gnu.org> 1175*81418a27Smrg 1176*81418a27Smrg * gfortran.texi: Fix ENCODE example. 1177*81418a27Smrg 1178*81418a27Smrg2009-08-25 Janus Weil <janus@gcc.gnu.org> 1179*81418a27Smrg 1180*81418a27Smrg PR fortran/41139 1181*81418a27Smrg * primary.c (gfc_match_varspec): Make sure EXPR_PPC is only used for 1182*81418a27Smrg calls to procedure pointer components, other references to procedure 1183*81418a27Smrg pointer components are EXPR_VARIABLE. 1184*81418a27Smrg * resolve.c (resolve_actual_arglist): Bugfix (there can be calls without 1185*81418a27Smrg actual arglist). 1186*81418a27Smrg * trans-expr.c (gfc_get_proc_ptr_comp): Renamed to 'get_proc_ptr_comp', 1187*81418a27Smrg removed argument 'se' and made static. Avoid inserting a temporary 1188*81418a27Smrg variable for calling the PPC. 1189*81418a27Smrg (conv_function_val): Renamed gfc_get_proc_ptr_comp. 1190*81418a27Smrg (gfc_conv_procedure_call): Distinguish functions returning a procedure 1191*81418a27Smrg pointer from calls to a procedure pointer. Distinguish calls to 1192*81418a27Smrg procedure pointer components from procedure pointer components as 1193*81418a27Smrg actual arguments. 1194*81418a27Smrg * trans-stmt.h (gfc_get_proc_ptr_comp): Make it static. 1195*81418a27Smrg 1196*81418a27Smrg2009-08-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1197*81418a27Smrg 1198*81418a27Smrg PR fortran/41162 1199*81418a27Smrg * io.c (check_format): Fix to not error on slash after P. Fix some 1200*81418a27Smrg error loci. 1201*81418a27Smrg 1202*81418a27Smrg2009-08-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1203*81418a27Smrg 1204*81418a27Smrg PR fortran/41154 1205*81418a27Smrg * io.c (check_format): Fix to not error on right paren after P. 1206*81418a27Smrg 1207*81418a27Smrg2009-08-24 Aldy Hernandez <aldyh@redhat.com> 1208*81418a27Smrg 1209*81418a27Smrg PR fortran/40660 1210*81418a27Smrg * trans-io.c (build_dt): Pass UNKNOWN_LOCATION to build_call_expr_loc. 1211*81418a27Smrg (transfer_array_desc): Same. 1212*81418a27Smrg 1213*81418a27Smrg2009-08-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1214*81418a27Smrg 1215*81418a27Smrg PR fortran/35754 1216*81418a27Smrg * io.c (check_format): Add checks for comma and the allowed 1217*81418a27Smrg format specifiers after the 'P' specifier. Fix typo in error message 1218*81418a27Smrg and adjust locus. 1219*81418a27Smrg 1220*81418a27Smrg2009-08-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1221*81418a27Smrg 1222*81418a27Smrg PR fortran/37446 1223*81418a27Smrg * io.c (enum format_token): Change FMT_EXT to FMT_EN and FMT_ES. 1224*81418a27Smrg (format_lex): Likewise. 1225*81418a27Smrg (token_to_string): New function. 1226*81418a27Smrg (check_format): Use the new tokens and the new function. Add 1227*81418a27Smrg check for positive width. 1228*81418a27Smrg 1229*81418a27Smrg2009-08-22 Steven G. Kargl <kargl@gcc.gnu.org> 1230*81418a27Smrg 1231*81418a27Smrg * fortran/decl.c: Disallow procedure pointers with -std=f95. 1232*81418a27Smrg 1233*81418a27Smrg2009-08-22 Steven K. kargl <kargl@gcc.gnu.org> 1234*81418a27Smrg Paul Thomas <pault@gcc.gnu.org> 1235*81418a27Smrg 1236*81418a27Smrg * fortran/decl.c (match_char_spec): Rename to gfc_match_char_spec, 1237*81418a27Smrg and remove static. 1238*81418a27Smrg * fortran/gfortran.h: Add *expr3 entity to gfc_code. Add prototype 1239*81418a27Smrg for gfc_match_char_spec. 1240*81418a27Smrg * fortran/trans-stmt.c (gfc_trans_allocate): Translate the SOURCE= 1241*81418a27Smrg tag. 1242*81418a27Smrg * fortran/match.c (match_intrinsic_typespec): New function to match 1243*81418a27Smrg F2003 intrinsic-type-spec. 1244*81418a27Smrg (conformable_arrays): New function. Check SOURCE= and 1245*81418a27Smrg allocation-object are conformable. 1246*81418a27Smrg (gfc_match_allocate): Use new functions. Match SOURCE= tag. 1247*81418a27Smrg 1248*81418a27Smrg2009-08-22 Bud Davis <bdavis9659@sbcglobal.net> 1249*81418a27Smrg 1250*81418a27Smrg PR fortran/28093 1251*81418a27Smrg * io.c : added variable to store original len of fmt 1252*81418a27Smrg * io.c (check_format): Consume H items using next_char 1253*81418a27Smrg in both modes to handle consecutive single quotes. 1254*81418a27Smrg Test for extra characters in fmt, issue warning. 1255*81418a27Smrg 1256*81418a27Smrg2009-08-21 Janus Weil <janus@gcc.gnu.org> 1257*81418a27Smrg 1258*81418a27Smrg PR fortran/41106 1259*81418a27Smrg * primary.c (gfc_variable_attr): Make it work also on EXPR_FUNCTION. 1260*81418a27Smrg (gfc_expr_attr): Use gfc_variable_attr for procedure pointer components. 1261*81418a27Smrg * resolve.c (resolve_fl_derived): Handle CHARACTER-valued procedure 1262*81418a27Smrg pointer components. 1263*81418a27Smrg * trans-expr.c (gfc_conv_component_ref): Ditto. 1264*81418a27Smrg (gfc_conv_variable): Ditto. 1265*81418a27Smrg (gfc_conv_procedure_call): Ditto. 1266*81418a27Smrg (gfc_trans_pointer_assignment): Ditto. 1267*81418a27Smrg * trans-types.c (gfc_get_derived_type): Ditto. 1268*81418a27Smrg 1269*81418a27Smrg2009-08-20 Tobias Schlüter <tobi@gcc.gnu.org> 1270*81418a27Smrg 1271*81418a27Smrg * trans-stmt.c (gfc_trans_do): Add a few missing folds. 1272*81418a27Smrg 1273*81418a27Smrg2009-08-20 Michael Matz <matz@suse.de> 1274*81418a27Smrg 1275*81418a27Smrg PR fortran/41126 1276*81418a27Smrg * trans-expr.c (gfc_conv_string_tmp): Check type compatibility 1277*81418a27Smrg instead of equality. 1278*81418a27Smrg 1279*81418a27Smrg2009-08-20 Janus Weil <janus@gcc.gnu.org> 1280*81418a27Smrg 1281*81418a27Smrg PR fortran/41121 1282*81418a27Smrg * resolve.c (resolve_symbol): Don't resolve formal_ns of intrinsic 1283*81418a27Smrg procedures. 1284*81418a27Smrg 1285*81418a27Smrg2009-08-18 Michael Matz <matz@suse.de> 1286*81418a27Smrg 1287*81418a27Smrg * trans-expr.c (gfc_conv_substring): Don't evaluate casted decl early, 1288*81418a27Smrg change order of length calculation to (end - start) + 1. 1289*81418a27Smrg (gfc_get_interface_mapping_array): Adjust call to 1290*81418a27Smrg gfc_get_nodesc_array_type. 1291*81418a27Smrg * trans-array.c (gfc_trans_create_temp_array, 1292*81418a27Smrg gfc_build_constant_array_constructor, gfc_conv_expr_descriptor): Ditto. 1293*81418a27Smrg * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto. 1294*81418a27Smrg * trans.c (gfc_add_modify): Assignment between base type and nontarget 1295*81418a27Smrg type are equal enough. 1296*81418a27Smrg (gfc_call_malloc): Use prvoid_type_node for return value of 1297*81418a27Smrg __builtin_malloc. 1298*81418a27Smrg (gfc_allocate_with_status): Ditto. 1299*81418a27Smrg * trans-types.c (gfc_array_descriptor_base): Double size of this array. 1300*81418a27Smrg (gfc_init_types): Build prvoid_type_node. 1301*81418a27Smrg (gfc_build_array_type): New bool parameter "restricted". 1302*81418a27Smrg (gfc_get_nodesc_array_type): Ditto, build restrict qualified pointers, 1303*81418a27Smrg if it's true. 1304*81418a27Smrg (gfc_get_array_descriptor_base): Ditto. 1305*81418a27Smrg (gfc_get_array_type_bounds): Ditto. 1306*81418a27Smrg (gfc_sym_type): Use symbol attributes to feed calls to above functions. 1307*81418a27Smrg (gfc_get_derived_type): Ditto. 1308*81418a27Smrg * trans.h (struct lang_type): Add nontarget_type member. 1309*81418a27Smrg * trans-types.h (prvoid_type_node): Declare. 1310*81418a27Smrg (gfc_get_array_type_bounds, gfc_get_nodesc_array_type): Declare new 1311*81418a27Smrg parameter. 1312*81418a27Smrg * trans-decl.c (gfc_finish_var_decl): Give scalars that can't be 1313*81418a27Smrg aliased a type with a different alias set than the base type. 1314*81418a27Smrg (gfc_build_dummy_array_decl): Adjust call to gfc_get_nodesc_array_type. 1315*81418a27Smrg 1316*81418a27Smrg2009-08-18 Janus Weil <janus@gcc.gnu.org> 1317*81418a27Smrg Paul Thomas <pault@gcc.gnu.org> 1318*81418a27Smrg 1319*81418a27Smrg PR fortran/40870 1320*81418a27Smrg * trans-types.c (gfc_get_ppc_type): Include formal args in backend_decl 1321*81418a27Smrg using the interface symbol. Character types are returned by reference. 1322*81418a27Smrg (gfc_get_derived_type): Prevent infinite recursion loop 1323*81418a27Smrg if a PPC has a derived-type formal arg. 1324*81418a27Smrg 1325*81418a27Smrg2008-08-17 Paul Thomas <pault@gcc.gnu.org> 1326*81418a27Smrg 1327*81418a27Smrg PR fortran/41062 1328*81418a27Smrg * trans-decl.c (gfc_trans_use_stmts): Keep going through use 1329*81418a27Smrg list if symbol is not use associated. 1330*81418a27Smrg 1331*81418a27Smrg2009-08-17 Daniel Kraft <d@domob.eu> 1332*81418a27Smrg 1333*81418a27Smrg PR fortran/37425 1334*81418a27Smrg * resolve.c (get_checked_tb_operator_target): New routine to do checks 1335*81418a27Smrg on type-bound operators in common between intrinsic and user operators. 1336*81418a27Smrg (resolve_typebound_intrinsic_op): Call it. 1337*81418a27Smrg (resolve_typebound_user_op): Ditto. 1338*81418a27Smrg 1339*81418a27Smrg2009-08-17 Jerry DeLisle <jvdelisle@gcc.gnu.org> 1340*81418a27Smrg 1341*81418a27Smrg PR fortran/41075 1342*81418a27Smrg * scanner.c (gfc_next_char_literal): Add comment to improve 1343*81418a27Smrg readability. 1344*81418a27Smrg * io.c (enum format_token): Add FMT_STAR. (format_lex): Add case 1345*81418a27Smrg for '*'. (check_format): Check for left paren after '*'. Change 1346*81418a27Smrg format checks to use %L to improve format string error locus. 1347*81418a27Smrg 1348*81418a27Smrg2009-08-17 Janus Weil <janus@gcc.gnu.org> 1349*81418a27Smrg 1350*81418a27Smrg PR fortran/40877 1351*81418a27Smrg * array.c (gfc_resolve_character_array_constructor): Add NULL argument 1352*81418a27Smrg to gfc_new_charlen. 1353*81418a27Smrg * decl.c (add_init_expr_to_sym,variable_decl,match_char_spec, 1354*81418a27Smrg gfc_match_implicit): Ditto. 1355*81418a27Smrg * expr.c (simplify_const_ref): Fix memory leak. 1356*81418a27Smrg (gfc_simplify_expr): Add NULL argument to gfc_new_charlen. 1357*81418a27Smrg * gfortran.h (gfc_new_charlen): Modified prototype. 1358*81418a27Smrg * iresolve.c (check_charlen_present,gfc_resolve_char_achar): Add NULL 1359*81418a27Smrg argument to gfc_new_charlen. 1360*81418a27Smrg * module.c (mio_charlen): Ditto. 1361*81418a27Smrg * resolve.c (gfc_resolve_substring_charlen, 1362*81418a27Smrg gfc_resolve_character_operator,fixup_charlen): Ditto. 1363*81418a27Smrg (resolve_fl_derived,resolve_symbol): Add argument to gfc_charlen. 1364*81418a27Smrg * symbol.c (gfc_new_charlen): Add argument 'old_cl' (to make a copy of 1365*81418a27Smrg an existing charlen). 1366*81418a27Smrg (gfc_set_default_type,generate_isocbinding_symbol): Fix memory leak. 1367*81418a27Smrg (gfc_copy_formal_args_intr): Add NULL argument to gfc_new_charlen. 1368*81418a27Smrg * trans-decl.c (create_function_arglist): Fix memory leak. 1369*81418a27Smrg 1370*81418a27Smrg2009-08-17 Richard Guenther <rguenther@suse.de> 1371*81418a27Smrg 1372*81418a27Smrg * trans-expr.c (gfc_trans_scalar_assign): Replace hack with 1373*81418a27Smrg more proper hack. 1374*81418a27Smrg 1375*81418a27Smrg2009-08-15 Tobias Burnus <burnus@net-b.de> 1376*81418a27Smrg 1377*81418a27Smrg PR fortran/41080 1378*81418a27Smrg * gfortranspec.c (lookup_option): Remove gfortran-specific 1379*81418a27Smrg version of -dumpversion. 1380*81418a27Smrg 1381*81418a27Smrg2009-08-14 Janus Weil <janus@gcc.gnu.org> 1382*81418a27Smrg 1383*81418a27Smrg PR fortran/41070 1384*81418a27Smrg * resolve.c (resolve_structure_cons): Make sure that ts.u.derived is 1385*81418a27Smrg only used if type is BT_DERIVED. 1386*81418a27Smrg 1387*81418a27Smrg2009-08-13 Janus Weil <janus@gcc.gnu.org> 1388*81418a27Smrg 1389*81418a27Smrg PR fortran/40941 1390*81418a27Smrg * gfortran.h (gfc_typespec): Put 'derived' and 'cl' into union. 1391*81418a27Smrg * decl.c (build_struct): Make sure 'cl' is only used 1392*81418a27Smrg if type is BT_CHARACTER. 1393*81418a27Smrg * symbol.c (gfc_set_default_type): Ditto. 1394*81418a27Smrg * resolve.c (resolve_symbol, resolve_fl_derived): Ditto. 1395*81418a27Smrg (resolve_equivalence,resolve_equivalence_derived): Make sure 'derived' 1396*81418a27Smrg is only used if type is BT_DERIVED. 1397*81418a27Smrg * trans-io.c (transfer_expr): Make sure 'derived' is only used if type 1398*81418a27Smrg is BT_DERIVED or BT_INTEGER (special case: C_PTR/C_FUNPTR). 1399*81418a27Smrg * array.c: Mechanical replacements to accomodate union in gfc_typespec. 1400*81418a27Smrg * check.c: Ditto. 1401*81418a27Smrg * data.c: Ditto. 1402*81418a27Smrg * decl.c: Ditto. 1403*81418a27Smrg * dump-parse-tree.c: Ditto. 1404*81418a27Smrg * expr.c: Ditto. 1405*81418a27Smrg * interface.c: Ditto. 1406*81418a27Smrg * iresolve.c: Ditto. 1407*81418a27Smrg * match.c: Ditto. 1408*81418a27Smrg * misc.c: Ditto. 1409*81418a27Smrg * module.c: Ditto. 1410*81418a27Smrg * openmp.c: Ditto. 1411*81418a27Smrg * parse.c: Ditto. 1412*81418a27Smrg * primary.c: Ditto. 1413*81418a27Smrg * resolve.c: Ditto. 1414*81418a27Smrg * simplify.c: Ditto. 1415*81418a27Smrg * symbol.c: Ditto. 1416*81418a27Smrg * target-memory.c: Ditto. 1417*81418a27Smrg * trans-array.c: Ditto. 1418*81418a27Smrg * trans-common.c: Ditto. 1419*81418a27Smrg * trans-const.c: Ditto. 1420*81418a27Smrg * trans-decl.c: Ditto. 1421*81418a27Smrg * trans-expr.c: Ditto. 1422*81418a27Smrg * trans-intrinsic.c: Ditto. 1423*81418a27Smrg * trans-io.c: Ditto. 1424*81418a27Smrg * trans-stmt.c: Ditto. 1425*81418a27Smrg * trans-types.c: Ditto. 1426*81418a27Smrg 1427*81418a27Smrg2009-08-13 Janus Weil <janus@gcc.gnu.org> 1428*81418a27Smrg 1429*81418a27Smrg PR fortran/40995 1430*81418a27Smrg * resolve.c (resolve_symbol): Move some checking code to 1431*81418a27Smrg resolve_intrinsic, and call this from here. 1432*81418a27Smrg (resolve_intrinsic): Some checking code moved here from resolve_symbol. 1433*81418a27Smrg Make sure each intrinsic is only resolved once. 1434*81418a27Smrg 1435*81418a27Smrg2009-08-12 Tobias Burnus <burnus@net-b.de> 1436*81418a27Smrg 1437*81418a27Smrg PR fortran/41034 1438*81418a27Smrg * symbol.c (gfc_copy_attr): Merge bits instead of replace 1439*81418a27Smrg bits in gfc_copy_attr. 1440*81418a27Smrg * gfc_check_pointer_assign (gfc_check_pointer_assign): 1441*81418a27Smrg Initialize ext_attr bits by zero. 1442*81418a27Smrg 1443*81418a27Smrg2009-08-11 Richard Guenther <rguenther@suse.de> 1444*81418a27Smrg 1445*81418a27Smrg * trans-types.c (gfc_get_derived_type): Do not clear TYPE_CANONICAL. 1446*81418a27Smrg 1447*81418a27Smrg2009-08-11 Janus Weil <janus@gcc.gnu.org> 1448*81418a27Smrg 1449*81418a27Smrg PR fortran/41022 1450*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer 1451*81418a27Smrg components as actual arguments. 1452*81418a27Smrg 1453*81418a27Smrg2009-08-10 Daniel Kraft <d@domob.eu> 1454*81418a27Smrg 1455*81418a27Smrg PR fortran/37425 1456*81418a27Smrg * gfortran.h (struct gfc_namespace): New fields tb_uop_root and tb_op. 1457*81418a27Smrg (gfc_find_typebound_user_op): New routine. 1458*81418a27Smrg (gfc_find_typebound_intrinsic_op): Ditto. 1459*81418a27Smrg (gfc_check_operator_interface): Now public routine. 1460*81418a27Smrg * decl.c (gfc_match_generic): Match OPERATOR(X) or ASSIGNMENT(=). 1461*81418a27Smrg * interface.c (check_operator_interface): Made public, renamed to 1462*81418a27Smrg `gfc_check_operator_interface' accordingly and hand in the interface 1463*81418a27Smrg as gfc_symbol rather than gfc_interface so it is useful for type-bound 1464*81418a27Smrg operators, too. Return boolean result. 1465*81418a27Smrg (gfc_check_interfaces): Adapt call to `check_operator_interface'. 1466*81418a27Smrg * symbol.c (gfc_get_namespace): Initialize new field `tb_op'. 1467*81418a27Smrg (gfc_free_namespace): Free `tb_uop_root'-based tree. 1468*81418a27Smrg (find_typebound_proc_uop): New helper function. 1469*81418a27Smrg (gfc_find_typebound_proc): Use it. 1470*81418a27Smrg (gfc_find_typebound_user_op): New method. 1471*81418a27Smrg (gfc_find_typebound_intrinsic_op): Ditto. 1472*81418a27Smrg * resolve.c (resolve_tb_generic_targets): New helper function. 1473*81418a27Smrg (resolve_typebound_generic): Use it. 1474*81418a27Smrg (resolve_typebound_intrinsic_op), (resolve_typebound_user_op): New. 1475*81418a27Smrg (resolve_typebound_procedures): Resolve operators, too. 1476*81418a27Smrg (check_uop_procedure): New, code from gfc_resolve_uops. 1477*81418a27Smrg (gfc_resolve_uops): Moved main code to new `check_uop_procedure'. 1478*81418a27Smrg 1479*81418a27Smrg2009-08-10 Janus Weil <janus@gcc.gnu.org> 1480*81418a27Smrg 1481*81418a27Smrg PR fortran/40940 1482*81418a27Smrg * decl.c (gfc_match_type_spec): Match CLASS statement and warn about 1483*81418a27Smrg missing polymorphism. 1484*81418a27Smrg * gfortran.h (gfc_typespec): Add field 'is_class'. 1485*81418a27Smrg * misc.c (gfc_clear_ts): Initialize 'is_class' to zero. 1486*81418a27Smrg * resolve.c (type_is_extensible): New function to check if a derived 1487*81418a27Smrg type is extensible. 1488*81418a27Smrg (resolve_fl_variable_derived): Add error checks for CLASS variables. 1489*81418a27Smrg (resolve_typebound_procedure): Disallow non-polymorphic passed-object 1490*81418a27Smrg dummy arguments, turning warning into error. 1491*81418a27Smrg (resolve_fl_derived): Use 'type_is_extensible'. Disallow non-polymorphic 1492*81418a27Smrg passed-object dummy arguments for procedure pointer components, 1493*81418a27Smrg turning warning into error. Add error check for CLASS components. 1494*81418a27Smrg 1495*81418a27Smrg2009-08-05 Tobias Burnus <burnus@net-b.de> 1496*81418a27Smrg 1497*81418a27Smrg PR fortran/40955 1498*81418a27Smrg * gfortran.h (ext_attr_id_t): Add typedef for this enum. 1499*81418a27Smrg (gfc_add_ext_attribute): Use it. 1500*81418a27Smrg * decl.c (gfc_match_gcc_attributes): Ditto. 1501*81418a27Smrg * expr.c (gfc_check_pointer_assign): Ditto. 1502*81418a27Smrg * symbol.c (gfc_add_ext_attribute): Ditto. 1503*81418a27Smrg (gfc_copy_attr): Copy also ext_attr. 1504*81418a27Smrg * resolve.c (resolve_fl_derived,resolve_symbol): Ditto. 1505*81418a27Smrg * module.c (mio_symbol_attribute): Save ext_attr in the mod file. 1506*81418a27Smrg 1507*81418a27Smrg2009-08-05 Tobias Burnus <burnus@net-b.de> 1508*81418a27Smrg 1509*81418a27Smrg PR fortran/40969 1510*81418a27Smrg Revert: 1511*81418a27Smrg 2009-08-04 Tobias Burnus <burnus@net-b.de> 1512*81418a27Smrg 1513*81418a27Smrg PR fortran/40949 1514*81418a27Smrg * trans-types.c (gfc_get_function_type): Fix typelist of 1515*81418a27Smrg functions without argument. 1516*81418a27Smrg 1517*81418a27Smrg2009-08-05 Paul Thomas <pault@gcc.gnu.org> 1518*81418a27Smrg 1519*81418a27Smrg PR fortran/40847 1520*81418a27Smrg * iresolve.c (gfc_resolve_transfer): Correct error in 'mold' 1521*81418a27Smrg character length for case where length expresson is NULL. 1522*81418a27Smrg 1523*81418a27Smrg2009-08-04 Tobias Burnus <burnus@net-b.de> 1524*81418a27Smrg 1525*81418a27Smrg PR fortran/40949 1526*81418a27Smrg * trans-types.c (gfc_get_function_type): Fix typelist of 1527*81418a27Smrg functions without argument. 1528*81418a27Smrg 1529*81418a27Smrg2009-08-04 Paul Thomas <pault@gcc.gnu.org> 1530*81418a27Smrg 1531*81418a27Smrg PR fortran/40875 1532*81418a27Smrg * decl.c (add_init_expr_to_sym): Character symbols can only be 1533*81418a27Smrg initialized with character expressions. 1534*81418a27Smrg 1535*81418a27Smrg2009-08-02 Janus Weil <janus@gcc.gnu.org> 1536*81418a27Smrg 1537*81418a27Smrg PR fortran/40881 1538*81418a27Smrg * decl.c (match_char_length): Warn about old-style character length 1539*81418a27Smrg declarations. 1540*81418a27Smrg * match.c (match_arithmetic_if,gfc_match_if): Modify warning message 1541*81418a27Smrg for arithmetic if. 1542*81418a27Smrg (gfc_match_goto): Warn about computed gotos. 1543*81418a27Smrg (gfc_match_return): Warn about alternate return. 1544*81418a27Smrg (gfc_match_st_function): Warn about statement functions. 1545*81418a27Smrg * resolve.c (resolve_fl_procedure): Modify warning message for 1546*81418a27Smrg assumed-length character functions. 1547*81418a27Smrg 1548*81418a27Smrg2009-08-01 Paul Thomas <pault@gcc.gnu.org> 1549*81418a27Smrg 1550*81418a27Smrg PR fortran/40011 1551*81418a27Smrg * error.c : Add static flag 'warnings_not_errors'. 1552*81418a27Smrg (gfc_error): If 'warnings_not_errors' is set, branch to code 1553*81418a27Smrg from gfc_warning. 1554*81418a27Smrg (gfc_clear_error): Reset 'warnings_not_errors'. 1555*81418a27Smrg (gfc_errors_to_warnings): New function. 1556*81418a27Smrg * options.c (gfc_post_options): If pedantic and flag_whole_file 1557*81418a27Smrg change the latter to a value of 2. 1558*81418a27Smrg * parse.c (parse_module): Add module namespace to gsymbol. 1559*81418a27Smrg (resolve_all_program_units): New function. 1560*81418a27Smrg (clean_up_modules): New function. 1561*81418a27Smrg (translate_all_program_units): New function. 1562*81418a27Smrg (gfc_parse_file): If whole_file, do not clean up module right 1563*81418a27Smrg away and add derived types to namespace derived types. In 1564*81418a27Smrg addition, call the three new functions above. 1565*81418a27Smrg * resolve.c (not_in_recursive): New function. 1566*81418a27Smrg (not_entry_self_reference): New function. 1567*81418a27Smrg (resolve_global_procedure): Symbol must not be IFSRC_UNKNOWN, 1568*81418a27Smrg procedure must not be in the course of being resolved and 1569*81418a27Smrg must return false for the two new functions. Pack away the 1570*81418a27Smrg current derived type list before calling gfc_resolve for the 1571*81418a27Smrg gsymbol namespace. It is unconditionally an error if the ranks 1572*81418a27Smrg of the reference and ther procedure do not match. Convert 1573*81418a27Smrg errors to warnings during call to gfc_procedure_use if not 1574*81418a27Smrg pedantic or legacy. 1575*81418a27Smrg (gfc_resolve): Set namespace resolved flag to -1 during 1576*81418a27Smrg resolution and store current cs_base. 1577*81418a27Smrg * trans-decl.c (gfc_get_symbol_decl): If whole_file compilation 1578*81418a27Smrg substitute a use associated variable, if it is available in a 1579*81418a27Smrg gsymbolnamespace. 1580*81418a27Smrg (gfc_get_extern_function_decl): If the procedure is use assoc, 1581*81418a27Smrg do not attempt to find it in a gsymbol because it could be an 1582*81418a27Smrg interface. If the symbol exists in a module namespace, return 1583*81418a27Smrg its backend_decl. 1584*81418a27Smrg * trans-expr.c (gfc_trans_scalar_assign): If a derived type 1585*81418a27Smrg assignment, set the rhs TYPE_MAIN_VARIANT to that of the rhs. 1586*81418a27Smrg * trans-types.c (copy_dt_decls_ifequal): Add 'from_gsym' as a 1587*81418a27Smrg boolean argument. Copy component backend_decls directly if the 1588*81418a27Smrg components are derived types and from_gsym is true. 1589*81418a27Smrg (gfc_get_derived_type): If whole_file copy the derived type from 1590*81418a27Smrg the module if it is use associated, otherwise, if can be found 1591*81418a27Smrg in another gsymbol namespace, use the existing derived type as 1592*81418a27Smrg the TYPE_CANONICAL and build normally. 1593*81418a27Smrg * gfortran.h : Add derived_types and resolved fields to 1594*81418a27Smrg gfc_namespace. Include prototype for gfc_errors_to_warnings. 1595*81418a27Smrg 1596*81418a27Smrg2009-07-29 Tobias Burnus <burnus@net-b.de> 1597*81418a27Smrg 1598*81418a27Smrg PR fortran/40898 1599*81418a27Smrg * trans-types.c (gfc_get_function_type): Do not add hidden 1600*81418a27Smrg string-length argument for BIND(C) procedures. 1601*81418a27Smrg * trans-decl.c (create_function_arglist): Skip over nonexisting 1602*81418a27Smrg string-length arguments for BIND(C) procedures. 1603*81418a27Smrg 1604*81418a27Smrg2009-07-28 Jakub Jelinek <jakub@redhat.com> 1605*81418a27Smrg 1606*81418a27Smrg PR fortran/40878 1607*81418a27Smrg * openmp.c (gfc_match_omp_clauses): Use gfc_error_now instead of 1608*81418a27Smrg gfc_error to diagnose invalid COLLAPSE arguments. 1609*81418a27Smrg 1610*81418a27Smrg2009-07-28 Janus Weil <janus@gcc.gnu.org> 1611*81418a27Smrg 1612*81418a27Smrg PR fortran/40882 1613*81418a27Smrg * trans-types.c (gfc_get_ppc_type): For derived types, directly use the 1614*81418a27Smrg backend_decl, instead of calling gfc_typenode_for_spec, to avoid 1615*81418a27Smrg infinte loop. 1616*81418a27Smrg (gfc_get_derived_type): Correctly handle PPCs returning derived types, 1617*81418a27Smrg avoiding infinite recursion. 1618*81418a27Smrg 1619*81418a27Smrg2009-07-27 Janus Weil <janus@gcc.gnu.org> 1620*81418a27Smrg 1621*81418a27Smrg PR fortran/40848 1622*81418a27Smrg * interface.c (gfc_compare_interfaces): Call 'count_types_test' before 1623*81418a27Smrg 'generic_correspondence', and only if checking a generic interface. 1624*81418a27Smrg 1625*81418a27Smrg2009-07-27 Tobias Burnus <burnus@net-b.de> 1626*81418a27Smrg 1627*81418a27Smrg PR fortran/40851 1628*81418a27Smrg * resolve.c (resolve_symbol): Do not initialize pointer derived-types. 1629*81418a27Smrg * trans-decl.c (init_intent_out_dt): Ditto. 1630*81418a27Smrg (generate_local_decl): No need to set attr.referenced for DT pointers. 1631*81418a27Smrg 1632*81418a27Smrg2009-07-26 Tobias Burnus <burnus@net-b.de> 1633*81418a27Smrg 1634*81418a27Smrg PR fortran/33197 1635*81418a27Smrg * intrinsic.c (make_generic): Remove assert as "atan" can be 1636*81418a27Smrg both ISYM_ATAN and ISYM_ATAN2. 1637*81418a27Smrg (add_functions): Add two-argument variant of ATAN. 1638*81418a27Smrg * intrinsic.h (gfc_check_atan_2): Add check for it. 1639*81418a27Smrg * intrinsic.texi (ATAN2): Correct and enhance description. 1640*81418a27Smrg (ATAN): Describe two-argument variant of ATAN. 1641*81418a27Smrg 1642*81418a27Smrg2009-07-25 Tobias Burnus <burnus@net-b.de> 1643*81418a27Smrg Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1644*81418a27Smrg 1645*81418a27Smrg PR fortran/33197 1646*81418a27Smrg * intrinsic.c (add_functions): Support complex arguments for 1647*81418a27Smrg acos,acosh,asin,asinh,atan,atanh. 1648*81418a27Smrg * invoke.texi (ACOS,ACOSH,ASIN,ASINH,ATAN,ATANH): Support 1649*81418a27Smrg complex arguments. 1650*81418a27Smrg * simplify.c (gfc_simplify_acos,gfc_simplify_acosh, 1651*81418a27Smrg gfc_simplify_asin,gfc_simplify_asinh,gfc_simplify_atan, 1652*81418a27Smrg gfc_simplify_atanh,gfc_simplify_atan,gfc_simplify_asinh, 1653*81418a27Smrg gfc_simplify_acosh,gfc_simplify_atanh): Support 1654*81418a27Smrg complex arguments. 1655*81418a27Smrg 1656*81418a27Smrg2009-07-25 Richard Guenther <rguenther@suse.de> 1657*81418a27Smrg 1658*81418a27Smrg PR fortran/40005 1659*81418a27Smrg * trans-types.c (gfc_get_array_type_bounds): Use 1660*81418a27Smrg build_distinct_type_copy with a proper TYPE_CANONICAL and 1661*81418a27Smrg re-use the type-decl of the original type. 1662*81418a27Smrg * trans-decl.c (build_entry_thunks): Signal cgraph we may not 1663*81418a27Smrg garbage collect. 1664*81418a27Smrg (create_main_function): Likewise. 1665*81418a27Smrg (gfc_generate_function_code): Likewise. 1666*81418a27Smrg * trans-expr.c (gfc_trans_subcomponent_assign): Do not use 1667*81418a27Smrg fold_convert on record types. 1668*81418a27Smrg 1669*81418a27Smrg2009-07-25 Janus Weil <janus@gcc.gnu.org> 1670*81418a27Smrg 1671*81418a27Smrg PR fortran/39630 1672*81418a27Smrg * decl.c (match_ppc_decl): Implement the PASS attribute for procedure 1673*81418a27Smrg pointer components. 1674*81418a27Smrg (match_binding_attributes): Ditto. 1675*81418a27Smrg * gfortran.h (gfc_component): Add member 'tb'. 1676*81418a27Smrg (gfc_typebound_proc): Add member 'ppc' and make 'pass_arg' const. 1677*81418a27Smrg * module.c (MOD_VERSION): Bump module version. 1678*81418a27Smrg (binding_ppc): New string constants. 1679*81418a27Smrg (mio_component): Only use formal args if component is a procedure 1680*81418a27Smrg pointer and add 'tb' member. 1681*81418a27Smrg (mio_typebound_proc): Include pass_arg and take care of procedure 1682*81418a27Smrg pointer components. 1683*81418a27Smrg * resolve.c (update_arglist_pass): Add argument 'name' and take care of 1684*81418a27Smrg optional arguments. 1685*81418a27Smrg (extract_ppc_passed_object): New function, analogous to 1686*81418a27Smrg extract_compcall_passed_object, but for procedure pointer components. 1687*81418a27Smrg (update_ppc_arglist): New function, analogous to 1688*81418a27Smrg update_compcall_arglist, but for procedure pointer components. 1689*81418a27Smrg (resolve_typebound_generic_call): Added argument to update_arglist_pass. 1690*81418a27Smrg (resolve_ppc_call, resolve_expr_ppc): Take care of PASS attribute. 1691*81418a27Smrg (resolve_fl_derived): Check the PASS argument for procedure pointer 1692*81418a27Smrg components. 1693*81418a27Smrg * symbol.c (verify_bind_c_derived_type): Reject procedure pointer 1694*81418a27Smrg components in BIND(C) types. 1695*81418a27Smrg 1696*81418a27Smrg2009-07-24 Janus Weil <janus@gcc.gnu.org> 1697*81418a27Smrg 1698*81418a27Smrg PR fortran/40822 1699*81418a27Smrg * array.c (gfc_resolve_character_array_constructor): Use new function 1700*81418a27Smrg gfc_new_charlen. 1701*81418a27Smrg * decl.c (add_init_expr_to_sym,variable_decl,match_char_spec, 1702*81418a27Smrg gfc_match_implicit): Ditto. 1703*81418a27Smrg * expr.c (gfc_simplify_expr): Ditto. 1704*81418a27Smrg * gfortran.h (gfc_new_charlen): New prototype. 1705*81418a27Smrg * iresolve.c (check_charlen_present,gfc_resolve_char_achar): Use new 1706*81418a27Smrg function gfc_new_charlen. 1707*81418a27Smrg * module.c (mio_charlen): Ditto. 1708*81418a27Smrg * resolve.c (gfc_resolve_substring_charlen, 1709*81418a27Smrg gfc_resolve_character_operator,fixup_charlen,resolve_fl_derived, 1710*81418a27Smrg resolve_symbol): Ditto. 1711*81418a27Smrg * symbol.c (gfc_new_charlen): New function to create a new gfc_charlen 1712*81418a27Smrg structure and add it to a namespace. 1713*81418a27Smrg (gfc_copy_formal_args_intr): Make sure ts.cl is present 1714*81418a27Smrg for CHARACTER variables. 1715*81418a27Smrg 1716*81418a27Smrg2009-07-24 Jakub Jelinek <jakub@redhat.com> 1717*81418a27Smrg 1718*81418a27Smrg PR fortran/40643 1719*81418a27Smrg PR fortran/31067 1720*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc, 1721*81418a27Smrg gfc_conv_intrinsic_minmaxval): Handle Infinities and NaNs properly, 1722*81418a27Smrg optimize. 1723*81418a27Smrg * trans-array.c (gfc_trans_scalarized_loop_end): No longer static. 1724*81418a27Smrg * trans-array.h (gfc_trans_scalarized_loop_end): New prototype. 1725*81418a27Smrg 1726*81418a27Smrg2009-07-23 Jakub Jelinek <jakub@redhat.com> 1727*81418a27Smrg 1728*81418a27Smrg PR fortran/40839 1729*81418a27Smrg * io.c (gfc_resolve_dt): Add LOC argument. Fail if 1730*81418a27Smrg dt->io_unit is NULL. Return FAILURE after issuing error about 1731*81418a27Smrg negative UNIT number. 1732*81418a27Smrg (match_io_element): Don't segfault if current_dt->io_unit is NULL. 1733*81418a27Smrg * gfortran.h (gfc_resolve_dt): Adjust prototype. 1734*81418a27Smrg * resolve.c (resolve_code): Adjust caller. 1735*81418a27Smrg 1736*81418a27Smrg2009-07-22 Paul Thomas <pault@gcc.gnu.org> 1737*81418a27Smrg 1738*81418a27Smrg PR fortran/40796 1739*81418a27Smrg * trans-decl.c (generate_local_decl): Unreferenced result 1740*81418a27Smrg variables with allocatable components should be treated like 1741*81418a27Smrg INTENT_OUT dummy variables. 1742*81418a27Smrg 1743*81418a27Smrg2009-07-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1744*81418a27Smrg 1745*81418a27Smrg * trans.h (gfc_set_decl_assembler_name): New prototype. 1746*81418a27Smrg * trans-decl.c (gfc_set_decl_assembler_name): New function. 1747*81418a27Smrg (gfc_get_symbol_decl, gfc_get_extern_function_decl, 1748*81418a27Smrg build_function_decl): Use gfc_set_decl_assembler_name instead of 1749*81418a27Smrg SET_DECL_ASSEMBLER_NAME. 1750*81418a27Smrg * trans-common.c (build_common_decl): Use 1751*81418a27Smrg gfc_set_decl_assembler_name instead of SET_DECL_ASSEMBLER_NAME. 1752*81418a27Smrg 1753*81418a27Smrg2009-07-21 Richard Guenther <rguenther@suse.de> 1754*81418a27Smrg 1755*81418a27Smrg PR fortran/40726 1756*81418a27Smrg * trans-decl.c (gfc_get_extern_function_decl): Do not set 1757*81418a27Smrg DECL_IS_MALLOC for pointer valued functions. 1758*81418a27Smrg (build_function_decl): The same. 1759*81418a27Smrg 1760*81418a27Smrg2009-07-19 Steven G. Kargl <kargl@gcc.gnu.org> 1761*81418a27Smrg 1762*81418a27Smrg PR fortran/40727 1763*81418a27Smrg * fortran/check.c (gfc_check_cmplx, gfc_check_dcmplx): Add check that 1764*81418a27Smrg the optional second argument isn't of COMPLEX type. 1765*81418a27Smrg 1766*81418a27Smrg2009-07-17 Richard Guenther <rguenther@suse.de> 1767*81418a27Smrg 1768*81418a27Smrg PR c/40401 1769*81418a27Smrg * f95-lang.c (gfc_be_parse_file): Do not finalize the CU here. 1770*81418a27Smrg * trans-decl.c (gfc_gimplify_function): Remove. 1771*81418a27Smrg (build_entry_thunks): Do not gimplify here. 1772*81418a27Smrg (create_main_function): Likewise. 1773*81418a27Smrg (gfc_generate_function_code): Likewise. 1774*81418a27Smrg 1775*81418a27Smrg2009-07-17 Aldy Hernandez <aldyh@redhat.com> 1776*81418a27Smrg Manuel López-Ibáñez <manu@gcc.gnu.org> 1777*81418a27Smrg 1778*81418a27Smrg PR 40435 1779*81418a27Smrg * trans-expr.c, trans-array.c, trans-openmp.c, trans-stmt.c, 1780*81418a27Smrg trans.c, trans-io.c, trans-decl.c, trans-intrinsic.c: Add location 1781*81418a27Smrg argument to fold_{unary,binary,ternary}, fold_build[123], 1782*81418a27Smrg build_call_expr, build_size_arg, build_fold_addr_expr, 1783*81418a27Smrg build_call_array, non_lvalue, size_diffop, 1784*81418a27Smrg fold_build1_initializer, fold_build2_initializer, 1785*81418a27Smrg fold_build3_initializer, fold_build_call_array, 1786*81418a27Smrg fold_build_call_array_initializer, fold_single_bit_test, 1787*81418a27Smrg omit_one_operand, omit_two_operands, invert_truthvalue, 1788*81418a27Smrg fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref, 1789*81418a27Smrg combine_comparisons, fold_builtin_*, fold_call_expr, 1790*81418a27Smrg build_range_check, maybe_fold_offset_to_address, round_up, 1791*81418a27Smrg round_down. 1792*81418a27Smrg 1793*81418a27Smrg2009-07-15 Janus Weil <janus@gcc.gnu.org> 1794*81418a27Smrg 1795*81418a27Smrg PR fortran/40743 1796*81418a27Smrg * resolve.c (resolve_symbol): Don't resolve the formal namespace of a 1797*81418a27Smrg contained procedure. 1798*81418a27Smrg 1799*81418a27Smrg2009-07-14 Taras Glek <tglek@mozilla.com> 1800*81418a27Smrg Rafael Espindola <espindola@google.com> 1801*81418a27Smrg 1802*81418a27Smrg * Make-lang.in (fortran.install-plugin): New target for 1803*81418a27Smrg installing plugin headers. 1804*81418a27Smrg 1805*81418a27Smrg2009-07-13 H.J. Lu <hongjiu.lu@intel.com> 1806*81418a27Smrg 1807*81418a27Smrg * module.c (mio_symbol): Remove the unused variable, formal. 1808*81418a27Smrg 1809*81418a27Smrg2009-07-13 Janus Weil <janus@gcc.gnu.org> 1810*81418a27Smrg 1811*81418a27Smrg PR fortran/40646 1812*81418a27Smrg * module.c (mio_symbol): If the symbol has formal arguments, 1813*81418a27Smrg the formal namespace will be present. 1814*81418a27Smrg * resolve.c (resolve_actual_arglist): Correctly handle 'called' 1815*81418a27Smrg procedure pointer components as actual arguments. 1816*81418a27Smrg (resolve_fl_derived,resolve_symbol): Make sure the formal namespace 1817*81418a27Smrg is present. 1818*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Correctly handle the formal 1819*81418a27Smrg arguments of procedure pointer components. 1820*81418a27Smrg 1821*81418a27Smrg2009-07-12 Tobias Burnus <burnus@net-b.de> 1822*81418a27Smrg Philippe Marguinaud <philippe.marguinaud@meteo.fr> 1823*81418a27Smrg 1824*81418a27Smrg PR fortran/40588 1825*81418a27Smrg * primary.c (match_charkind_name): Fix condition for $ matching. 1826*81418a27Smrg 1827*81418a27Smrg PR libfortran/22423 1828*81418a27Smrg * libgfortran.h: Typedef the GFC_DTYPE_* enum. 1829*81418a27Smrg 1830*81418a27Smrg2009-07-11 Tobias Burnus <burnus@net-b.de> 1831*81418a27Smrg 1832*81418a27Smrg PR fortran/33197 1833*81418a27Smrg * check.c (gfc_check_fn_rc2008): New function. 1834*81418a27Smrg * intrinsic.h (gfc_check_fn_rc2008): New prototype. 1835*81418a27Smrg * intrinsic.c (add_functions): Add complex tan, cosh, sinh, 1836*81418a27Smrg and tanh. 1837*81418a27Smrg 1838*81418a27Smrg2009-07-10 Paul Thomas <pault@gcc.gnu.org> 1839*81418a27Smrg 1840*81418a27Smrg PR fortran/39334 1841*81418a27Smrg * primary.c (match_kind_param): Return MATCH_NO if the symbol 1842*81418a27Smrg has no value. 1843*81418a27Smrg 1844*81418a27Smrg2008-07-09 Paul Thomas <pault@gcc.gnu.org> 1845*81418a27Smrg 1846*81418a27Smrg PR fortran/40629 1847*81418a27Smrg * resolve.c (check_host_association): Use the existing 1848*81418a27Smrg accessible symtree and treat function expressions with 1849*81418a27Smrg symbols that have procedure flavor. 1850*81418a27Smrg 1851*81418a27Smrg2009-07-09 Janus Weil <janus@gcc.gnu.org> 1852*81418a27Smrg 1853*81418a27Smrg PR fortran/40646 1854*81418a27Smrg * dump-parse-tree.c (show_expr): Renamed 'is_proc_ptr_comp'. 1855*81418a27Smrg * expr.c (is_proc_ptr_comp): Renamed to 'gfc_is_proc_ptr_comp'. 1856*81418a27Smrg (gfc_check_pointer_assign): Renamed 'is_proc_ptr_comp'. 1857*81418a27Smrg (replace_comp,gfc_expr_replace_comp): New functions, analogous 1858*81418a27Smrg to 'replace_symbol' and 'gfc_expr_replace_symbol', just with components 1859*81418a27Smrg instead of symbols. 1860*81418a27Smrg * gfortran.h (gfc_expr_replace_comp): New prototype. 1861*81418a27Smrg (is_proc_ptr_comp): Renamed to 'gfc_is_proc_ptr_comp'. 1862*81418a27Smrg * interface.c (compare_actual_formal): Renamed 'is_proc_ptr_comp'. 1863*81418a27Smrg * match.c (gfc_match_pointer_assignment): Ditto. 1864*81418a27Smrg * primary.c (gfc_match_varspec): Handle array-valued procedure pointers 1865*81418a27Smrg and procedure pointer components. Renamed 'is_proc_ptr_comp'. 1866*81418a27Smrg * resolve.c (resolve_fl_derived): Correctly handle interfaces with 1867*81418a27Smrg RESULT statement, and handle array-valued procedure pointer components. 1868*81418a27Smrg (resolve_actual_arglist,resolve_ppc_call,resolve_expr_ppc): Renamed 1869*81418a27Smrg 'is_proc_ptr_comp'. 1870*81418a27Smrg * trans-array.c (gfc_walk_function_expr): Ditto. 1871*81418a27Smrg * trans-decl.c (gfc_get_symbol_decl): Security check for presence of 1872*81418a27Smrg ns->proc_name. 1873*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Handle array-valued procedure 1874*81418a27Smrg pointer components. Renamed 'is_proc_ptr_comp'. 1875*81418a27Smrg (conv_function_val,gfc_trans_arrayfunc_assign): Renamed 1876*81418a27Smrg 'is_proc_ptr_comp'. 1877*81418a27Smrg (gfc_get_proc_ptr_comp): Do not modify the argument 'e', but instead 1878*81418a27Smrg make a copy of it. 1879*81418a27Smrg * trans-io.c (gfc_trans_transfer): Handle array-valued procedure 1880*81418a27Smrg pointer components. 1881*81418a27Smrg 1882*81418a27Smrg2009-07-09 Tobias Burnus <burnus@net-b.de> 1883*81418a27Smrg 1884*81418a27Smrg PR fortran/40604 1885*81418a27Smrg * intrinsic.c (gfc_convert_type_warn): Set sym->result. 1886*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer 1887*81418a27Smrg for optional arguments. 1888*81418a27Smrg 1889*81418a27Smrg2009-07-08 Tobias Burnus <burnus@net-b.de> 1890*81418a27Smrg 1891*81418a27Smrg PR fortran/40675 1892*81418a27Smrg * simplify.c (gfc_simplify_sign): Handle signed zero correctly. 1893*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_sign): Support 1894*81418a27Smrg -fno-sign-zero. 1895*81418a27Smrg * invoke.texi (-fno-sign-zero): Add text regarding SIGN intrinsic. 1896*81418a27Smrg 1897*81418a27Smrg2008-07-08 Paul Thomas <pault@gcc.gnu.org> 1898*81418a27Smrg 1899*81418a27Smrg PR fortran/40591 1900*81418a27Smrg * decl.c (match_procedure_interface): Correct the association 1901*81418a27Smrg or creation of the interface procedure's symbol. 1902*81418a27Smrg 1903*81418a27Smrg2009-07-04 Jakub Jelinek <jakub@redhat.com> 1904*81418a27Smrg 1905*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): For integer 1906*81418a27Smrg maxloc initialize limit to -huge-1 rather than just -huge. 1907*81418a27Smrg 1908*81418a27Smrg2009-07-04 Janus Weil <janus@gcc.gnu.org> 1909*81418a27Smrg 1910*81418a27Smrg PR fortran/40593 1911*81418a27Smrg * interface.c (compare_actual_formal): Take care of proc-pointer-valued 1912*81418a27Smrg functions as actual arguments. 1913*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Ditto. 1914*81418a27Smrg * resolve.c (resolve_specific_f0): Use the correct ts. 1915*81418a27Smrg 1916*81418a27Smrg2009-07-02 Michael Matz <matz@suse.de> 1917*81418a27Smrg 1918*81418a27Smrg PR fortran/32131 1919*81418a27Smrg * trans-array.c (gfc_conv_descriptor_stride_get): Return 1920*81418a27Smrg constant one for strides in the first dimension of ALLOCATABLE 1921*81418a27Smrg arrays. 1922*81418a27Smrg 1923*81418a27Smrg2009-06-30 Janus Weil <janus@gcc.gnu.org> 1924*81418a27Smrg 1925*81418a27Smrg PR fortran/40594 1926*81418a27Smrg * trans-types.c (gfc_get_derived_type): Bugfix, reverting one hunk from 1927*81418a27Smrg r147206. 1928*81418a27Smrg 1929*81418a27Smrg2009-06-29 Tobias Burnus <burnus@net-b.de> 1930*81418a27Smrg 1931*81418a27Smrg PR fortran/40580 1932*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Add -fcheck=pointer check. 1933*81418a27Smrg * libgfortran.h: Add GFC_RTCHECK_POINTER. 1934*81418a27Smrg * invoke.texi (-fcheck): Document new pointer option. 1935*81418a27Smrg * options.c (gfc_handle_runtime_check_option): Handle pointer option. 1936*81418a27Smrg 1937*81418a27Smrg * gfortran.texi (C Binding): Improve wording. 1938*81418a27Smrg * iso-c-binding.def: Remove obsolete comment. 1939*81418a27Smrg 1940*81418a27Smrg2009-06-29 Paul Thomas <pault@gcc.gnu.org> 1941*81418a27Smrg 1942*81418a27Smrg PR fortran/40551 1943*81418a27Smrg * dependency.h : Add second bool* argument to prototype of 1944*81418a27Smrg gfc_full_array_ref_p. 1945*81418a27Smrg * dependency.c (gfc_full_array_ref_p): If second argument is 1946*81418a27Smrg present, return true if last dimension of reference is an 1947*81418a27Smrg element or has unity stride. 1948*81418a27Smrg * trans-array.c : Add NULL second argument to references to 1949*81418a27Smrg gfc_full_array_ref_p. 1950*81418a27Smrg * trans-expr.c : The same, except for; 1951*81418a27Smrg (gfc_trans_arrayfunc_assign): Return fail if lhs reference 1952*81418a27Smrg is not a full array or a contiguous section. 1953*81418a27Smrg 1954*81418a27Smrg2009-06-28 Tobias Burnus <burnus@net-b.de> 1955*81418a27Smrg Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1956*81418a27Smrg 1957*81418a27Smrg PR fortran/34112 1958*81418a27Smrg * symbol.c (gfc_add_ext_attribute): New function. 1959*81418a27Smrg (gfc_get_sym_tree): New argument allow_subroutine. 1960*81418a27Smrg (gfc_get_symbol,gfc_get_ha_sym_tree,gen_cptr_param,gen_fptr_param 1961*81418a27Smrg gen_shape_param,generate_isocbinding_symbol): Use it. 1962*81418a27Smrg * decl.c (find_special): New argument allow_subroutine. 1963*81418a27Smrg (add_init_expr_to_sym,add_hidden_procptr_result,attr_decl1, 1964*81418a27Smrg match_procedure_in_type,gfc_match_final_decl): Use it. 1965*81418a27Smrg (gfc_match_gcc_attributes): New function. 1966*81418a27Smrg * gfortran.texi (Mixed-Language Programming): New section 1967*81418a27Smrg "GNU Fortran Compiler Directives". 1968*81418a27Smrg * gfortran.h (ext_attr_t): New struct. 1969*81418a27Smrg (symbol_attributes): Use it. 1970*81418a27Smrg (gfc_add_ext_attribute): New prototype. 1971*81418a27Smrg (gfc_get_sym_tree): Update pototype. 1972*81418a27Smrg * expr.c (gfc_check_pointer_assign): Check whether call 1973*81418a27Smrg convention is the same. 1974*81418a27Smrg * module.c (import_iso_c_binding_module, create_int_parameter, 1975*81418a27Smrg use_iso_fortran_env_module): Update gfc_get_sym_tree call. 1976*81418a27Smrg * scanner.c (skip_gcc_attribute): New function. 1977*81418a27Smrg (skip_free_comments,skip_fixed_comments): Use it. 1978*81418a27Smrg (gfc_next_char_literal): Support !GCC$ lines. 1979*81418a27Smrg * resolve.c (check_host_association): Update 1980*81418a27Smrg gfc_get_sym_tree call. 1981*81418a27Smrg * match.c (gfc_match_sym_tree,gfc_match_call): Update 1982*81418a27Smrg gfc_get_sym_tree call. 1983*81418a27Smrg * trans-decl.c (add_attributes_to_decl): New function. 1984*81418a27Smrg (gfc_get_symbol_decl,get_proc_pointer_decl, 1985*81418a27Smrg gfc_get_extern_function_decl,build_function_decl: Use it. 1986*81418a27Smrg * match.h (gfc_match_gcc_attributes): Add prototype. 1987*81418a27Smrg * parse.c (decode_gcc_attribute): New function. 1988*81418a27Smrg (next_free,next_fixed): Support !GCC$ lines. 1989*81418a27Smrg * primary.c (match_actual_arg,check_for_implicit_index, 1990*81418a27Smrg gfc_match_rvalue,gfc_match_rvalue): Update 1991*81418a27Smrg gfc_get_sym_tree call. 1992*81418a27Smrg 1993*81418a27Smrg2009-06-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1994*81418a27Smrg 1995*81418a27Smrg * gfortran.h: Define HAVE_mpc_pow. 1996*81418a27Smrg * arith.c (complex_reciprocal, complex_pow): If HAVE_mpc_pow, 1997*81418a27Smrg don't define these functions. 1998*81418a27Smrg (arith_power): If HAVE_mpc_pow, use mpc_pow. 1999*81418a27Smrg 2000*81418a27Smrg2009-06-26 Janus Weil <janus@gcc.gnu.org> 2001*81418a27Smrg 2002*81418a27Smrg PR fortran/39997 2003*81418a27Smrg PR fortran/40541 2004*81418a27Smrg * decl.c (add_hidden_procptr_result): Copy the typespec to the hidden 2005*81418a27Smrg result. 2006*81418a27Smrg * expr.c (gfc_check_pointer_assign): Enable interface check for 2007*81418a27Smrg procedure pointer assignments where the rhs is a function returning a 2008*81418a27Smrg procedure pointer. 2009*81418a27Smrg * resolve.c (resolve_symbol): If an external procedure with unspecified 2010*81418a27Smrg return type can not be implicitly typed, it must be a subroutine. 2011*81418a27Smrg 2012*81418a27Smrg2009-06-24 Janus Weil <janus@gcc.gnu.org> 2013*81418a27Smrg 2014*81418a27Smrg PR fortran/40427 2015*81418a27Smrg * gfortran.h (gfc_component): New member 'formal_ns'. 2016*81418a27Smrg (gfc_copy_formal_args_ppc,void gfc_ppc_use): New. 2017*81418a27Smrg * interface.c (gfc_ppc_use): New function, analogous to 2018*81418a27Smrg gfc_procedure_use, but for procedure pointer components. 2019*81418a27Smrg * module.c (MOD_VERSION): Bump module version. 2020*81418a27Smrg (mio_component): Treat formal arguments. 2021*81418a27Smrg (mio_formal_arglist): Changed argument from gfc_symbol to 2022*81418a27Smrg gfc_formal_arglist. 2023*81418a27Smrg (mio_symbol): Changed argument of mio_formal_arglist. 2024*81418a27Smrg * resolve.c (resolve_ppc_call,resolve_expr_ppc): Call gfc_ppc_use, 2025*81418a27Smrg to check actual arguments and treat formal args correctly. 2026*81418a27Smrg (resolve_fl_derived): Copy formal args of procedure pointer components 2027*81418a27Smrg from their interface. 2028*81418a27Smrg * symbol.c (gfc_copy_formal_args_ppc): New function, analogous to 2029*81418a27Smrg gfc_copy_formal_args, but for procedure pointer components. 2030*81418a27Smrg 2031*81418a27Smrg2009-06-22 Janus Weil <janus@gcc.gnu.org> 2032*81418a27Smrg 2033*81418a27Smrg PR fortran/37254 2034*81418a27Smrg PR fortran/39850 2035*81418a27Smrg * interface.c (compare_parameter): Set implicit type for function 2036*81418a27Smrg actual arguments with BT_UNKNOWN. 2037*81418a27Smrg 2038*81418a27Smrg2009-06-22 Tobias Burnus <burnus@net-b.de> 2039*81418a27Smrg 2040*81418a27Smrg PR fortran/40472 2041*81418a27Smrg PR fortran/50520 2042*81418a27Smrg * simplify.c (gfc_simplify_spread): Fix the case that source= 2043*81418a27Smrg is a scalar. 2044*81418a27Smrg 2045*81418a27Smrg2009-06-22 Paul Thomas <pault@gcc.gnu.org> 2046*81418a27Smrg 2047*81418a27Smrg PR fortran/40443 2048*81418a27Smrg * interface.c (gfc_search_interface): Hold back a match to an 2049*81418a27Smrg elementary procedure until all other possibilities are 2050*81418a27Smrg exhausted. 2051*81418a27Smrg 2052*81418a27Smrg2009-06-22 Paul Thomas <pault@gcc.gnu.org> 2053*81418a27Smrg 2054*81418a27Smrg PR fortran/40472 2055*81418a27Smrg * simplify.c (gfc_simplify_spread): Restrict the result size to 2056*81418a27Smrg the limit for an array constructor. 2057*81418a27Smrg 2058*81418a27Smrg2009-06-21 Janus Weil <janus@gcc.gnu.org> 2059*81418a27Smrg 2060*81418a27Smrg PR fortran/39850 2061*81418a27Smrg * interface.c (gfc_compare_interfaces): Take care of implicit typing 2062*81418a27Smrg when checking the function attribute. Plus another bugfix. 2063*81418a27Smrg (compare_parameter): Set attr.function and attr.subroutine according 2064*81418a27Smrg to the usage of a procedure as actual argument. 2065*81418a27Smrg 2066*81418a27Smrg2009-06-20 Tobias Burnus <burnus@net-b.de> 2067*81418a27Smrg 2068*81418a27Smrg PR fortran/40452 2069*81418a27Smrg * trans-decl.c (add_argument_checking): Disable bounds check 2070*81418a27Smrg for allowed argument storage association. 2071*81418a27Smrg 2072*81418a27Smrg2009-06-19 Paul Thomas <pault@gcc.gnu.org> 2073*81418a27Smrg 2074*81418a27Smrg PR fortran/40440 2075*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Do not deallocate 2076*81418a27Smrg allocatable components if the argument is a pointer. 2077*81418a27Smrg 2078*81418a27Smrg2009-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2079*81418a27Smrg 2080*81418a27Smrg * gfortran.h (gfc_expr): Use mpc_t to represent complex numbers. 2081*81418a27Smrg 2082*81418a27Smrg * arith.c, dump-parse-tree.c, expr.c, module.c, resolve.c, 2083*81418a27Smrg simplify.c, target-memory.c, target-memory.h, trans-const.c, 2084*81418a27Smrg trans-expr.c: Convert to mpc_t throughout. 2085*81418a27Smrg 2086*81418a27Smrg2009-06-19 Ian Lance Taylor <iant@google.com> 2087*81418a27Smrg 2088*81418a27Smrg * cpp.c (struct gfc_cpp_option_data): Give this struct, used for 2089*81418a27Smrg the global variable gfc_cpp_option, a name. 2090*81418a27Smrg 2091*81418a27Smrg2009-06-19 Janus Weil <janus@gcc.gnu.org> 2092*81418a27Smrg 2093*81418a27Smrg PR fortran/40450 2094*81418a27Smrg * trans-expr.c (gfc_conv_procedure_call): Only add an extra addr_expr 2095*81418a27Smrg to a procedure pointer actual argument, if it is not itself a 2096*81418a27Smrg dummy arg. 2097*81418a27Smrg 2098*81418a27Smrg2009-06-18 Janus Weil <janus@gcc.gnu.org> 2099*81418a27Smrg 2100*81418a27Smrg PR fortran/40451 2101*81418a27Smrg * resolve.c (resolve_contained_fntype): Prevent implicit typing for 2102*81418a27Smrg procedures with explicit interface. 2103*81418a27Smrg * symbol.c (gfc_check_function_type): Ditto. 2104*81418a27Smrg 2105*81418a27Smrg2009-06-16 Ian Lance Taylor <iant@google.com> 2106*81418a27Smrg 2107*81418a27Smrg * decl.c (build_struct): Rewrite loop over constructor elements. 2108*81418a27Smrg 2109*81418a27Smrg2009-06-16 Janus Weil <janus@gcc.gnu.org> 2110*81418a27Smrg 2111*81418a27Smrg PR fortran/36947 2112*81418a27Smrg PR fortran/40039 2113*81418a27Smrg * expr.c (gfc_check_pointer_assign): Call 'gfc_compare_interfaces' with 2114*81418a27Smrg error message. 2115*81418a27Smrg * gfortran.h (gfc_compare_interfaces): Additional argument. 2116*81418a27Smrg * interface.c (operator_correspondence): Removed. 2117*81418a27Smrg (gfc_compare_interfaces): Additional argument to return error message. 2118*81418a27Smrg Directly use the code from 'operator_correspondence' instead of calling 2119*81418a27Smrg the function. Check for OPTIONAL. Some rearrangements. 2120*81418a27Smrg (check_interface1): Call 'gfc_compare_interfaces' without error message. 2121*81418a27Smrg (compare_parameter): Call 'gfc_compare_interfaces' with error message. 2122*81418a27Smrg * resolve.c (check_generic_tbp_ambiguity): Call 'gfc_compare_interfaces' 2123*81418a27Smrg without error message. 2124*81418a27Smrg 2125*81418a27Smrg2009-06-16 Tobias Burnus <burnus@net-b.de> 2126*81418a27Smrg 2127*81418a27Smrg PR fortran/40383 2128*81418a27Smrg * trans-decl.c (create_function_arglist): Copy formal charlist to 2129*81418a27Smrg have a proper passed_length for -fcheck=bounds. 2130*81418a27Smrg 2131*81418a27Smrg2009-06-12 Steven G. Kargl <kargls@comcast.net> 2132*81418a27Smrg 2133*81418a27Smrg * arith.c (gfc_enum_initializer): Move function ... 2134*81418a27Smrg * decl.c: ... here. Remove gfc_ prefix and make static. 2135*81418a27Smrg (enumerator_decl): Update function call. 2136*81418a27Smrg * gfortran.h: Remove gfc_enum_initializer prototype. 2137*81418a27Smrg 2138*81418a27Smrg2009-06-12 Aldy Hernandez <aldyh@redhat.com> 2139*81418a27Smrg 2140*81418a27Smrg * trans-array.c (gfc_trans_allocate_array_storage): Pass 2141*81418a27Smrg location on down. 2142*81418a27Smrg (gfc_trans_array_constructor_value): Same. 2143*81418a27Smrg (gfc_trans_scalarized_loop_end): Same. 2144*81418a27Smrg (gfc_conv_ss_startstride): Same. 2145*81418a27Smrg (gfc_trans_g77_array): Same. 2146*81418a27Smrg (gfc_trans_dummy_array_bias): Same. 2147*81418a27Smrg (gfc_conv_array_parameter): Same. 2148*81418a27Smrg (structure_alloc_comps): Same. 2149*81418a27Smrg * trans-expr.c (gfc_conv_function_call): Same. 2150*81418a27Smrg (fill_with_spaces): Same. 2151*81418a27Smrg (gfc_trans_string_copy): Same. 2152*81418a27Smrg (gfc_trans_scalar_assign): Same. 2153*81418a27Smrg * trans-stmt.c (gfc_trans_goto): Same. 2154*81418a27Smrg (gfc_trans_if_1): Same. 2155*81418a27Smrg (gfc_trans_simple_do): Same. 2156*81418a27Smrg (gfc_trans_do): Same. 2157*81418a27Smrg (gfc_trans_do_while): Same. 2158*81418a27Smrg (gfc_trans_logical_select): Same. 2159*81418a27Smrg (gfc_trans_select): Same. 2160*81418a27Smrg (gfc_trans_forall_loop): Same. 2161*81418a27Smrg (gfc_trans_nested_forall_loop): Same. 2162*81418a27Smrg (generate_loop_for_temp_to_lhs): Same. 2163*81418a27Smrg (generate_loop_for_rhs_to_temp): Same. 2164*81418a27Smrg (gfc_trans_forall_1): Same. 2165*81418a27Smrg (gfc_trans_where_assign): Same. 2166*81418a27Smrg (gfc_trans_where_3): Same. 2167*81418a27Smrg (gfc_trans_allocate): Same. 2168*81418a27Smrg * trans.c (gfc_finish_block): Same. 2169*81418a27Smrg (gfc_trans_runtime_check): Same. 2170*81418a27Smrg (gfc_call_malloc): Same. 2171*81418a27Smrg (gfc_allocate_with_status): Same. 2172*81418a27Smrg (gfc_call_free): Same. 2173*81418a27Smrg (gfc_deallocate_with_status): Same. 2174*81418a27Smrg (gfc_call_realloc): Same. 2175*81418a27Smrg (gfc_trans_code): Same. 2176*81418a27Smrg * trans-decl.c (gfc_init_default_dt): Same. 2177*81418a27Smrg (gfc_generate_constructors): Same. 2178*81418a27Smrg * trans-io.c (gfc_trans_io_runtime_check): Same. 2179*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Same. 2180*81418a27Smrg (gfc_conv_intrinsic_fdate): Same. 2181*81418a27Smrg (gfc_conv_intrinsic_ttynam): Same. 2182*81418a27Smrg (gfc_conv_intrinsic_minmax): Same. 2183*81418a27Smrg (gfc_conv_intrinsic_minmax_char): Same. 2184*81418a27Smrg (gfc_conv_intrinsic_anyall): Same. 2185*81418a27Smrg (gfc_conv_intrinsic_count): Same. 2186*81418a27Smrg (gfc_conv_intrinsic_arith): Same. 2187*81418a27Smrg (gfc_conv_intrinsic_minmaxloc): Same. 2188*81418a27Smrg (gfc_conv_intrinsic_minmaxval): Same. 2189*81418a27Smrg (gfc_conv_intrinsic_rrspacing): Same. 2190*81418a27Smrg (gfc_conv_intrinsic_array_transfer): Same. 2191*81418a27Smrg (gfc_conv_intrinsic_trim): Same. 2192*81418a27Smrg (gfc_conv_intrinsic_repeat): Same. 2193*81418a27Smrg 2194*81418a27Smrg2009-06-12 Janus Weil <janus@gcc.gnu.org> 2195*81418a27Smrg 2196*81418a27Smrg PR fortran/40176 2197*81418a27Smrg * resolve.c (resolve_symbol): Additional error check, preventing an 2198*81418a27Smrg infinite loop. 2199*81418a27Smrg 2200*81418a27Smrg2009-06-11 Paul Thomas <pault@gcc.gnu.org> 2201*81418a27Smrg 2202*81418a27Smrg PR fortran/40402 2203*81418a27Smrg * resolve.c (next_data_value): It is an error if the value is 2204*81418a27Smrg not constant. 2205*81418a27Smrg 2206*81418a27Smrg2009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2207*81418a27Smrg 2208*81418a27Smrg PR fortran/38718 2209*81418a27Smrg * intrinsic.c (add_functions): Add simplifiers for ISNAN, 2210*81418a27Smrg IS_IOSTAT_END and IS_IOSTAT_EOR. 2211*81418a27Smrg * intrinsic.h (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor, 2212*81418a27Smrg gfc_simplify_isnan): New prototypes. 2213*81418a27Smrg * intrinsic.c (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor, 2214*81418a27Smrg gfc_simplify_isnan): New functions. 2215*81418a27Smrg 2216*81418a27Smrg2009-06-11 Jakub Jelinek <jakub@redhat.com> 2217*81418a27Smrg 2218*81418a27Smrg * interface.c (fold_unary): Rename to... 2219*81418a27Smrg (fold_unary_intrinsic): ... this. 2220*81418a27Smrg (gfc_extend_expr): Adjust caller. 2221*81418a27Smrg (gfc_match_generic_spec): Likewise. Initialize *op to INTRINSIC_NONE 2222*81418a27Smrg to avoid warnings. 2223*81418a27Smrg * expr.c (gfc_simplify_expr): Initialize start and end before calling 2224*81418a27Smrg gfc_extract_int. 2225*81418a27Smrg 2226*81418a27Smrg2009-06-10 Dave Korn <dave.korn.cygwin@gmail.com> 2227*81418a27Smrg 2228*81418a27Smrg * trans-decl.c (create_main_function): Don't build main decl twice. 2229*81418a27Smrg 2230*81418a27Smrg2009-06-09 Tobias Burnus <burnus@net-b.de> 2231*81418a27Smrg 2232*81418a27Smrg * trans-decl.c (gfc_generate_function_code): Use gfc_option.rtcheck 2233*81418a27Smrg instead of flag_bounds_check. 2234*81418a27Smrg * intrinsic.texi (ISO_FORTRAN_ENV): Document INT{8,16,32,64} and 2235*81418a27Smrg REAL{32,64,128}. 2236*81418a27Smrg 2237*81418a27Smrg2009-06-08 Paul Thomas <pault@gcc.gnu.org> 2238*81418a27Smrg 2239*81418a27Smrg * trans-array.h : Replace prototypes for 2240*81418a27Smrg gfc_conv_descriptor_offset, gfc_conv_descriptor_stride, 2241*81418a27Smrg gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound with new 2242*81418a27Smrg prototypes of the same names with _get or _set appended. 2243*81418a27Smrg * trans-array.c : Make the originals of the above static and 2244*81418a27Smrg new functions for the _get and _set functions. Update all the 2245*81418a27Smrg references to these descriptor access functions. 2246*81418a27Smrg * trans-expr.c : Update references to the above descriptor 2247*81418a27Smrg access functions. 2248*81418a27Smrg * trans-intrinsic.c : The same. 2249*81418a27Smrg * trans-openmp.c : The same. 2250*81418a27Smrg * trans-stmt.c : The same. 2251*81418a27Smrg 2252*81418a27Smrg2009-06-08 Alexandre Oliva <aoliva@redhat.com> 2253*81418a27Smrg 2254*81418a27Smrg * options.c (gfc_post_options): Disable dump_parse_tree 2255*81418a27Smrg during -fcompare-debug-second. 2256*81418a27Smrg 2257*81418a27Smrg2009-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2258*81418a27Smrg 2259*81418a27Smrg PR fortran/40008 2260*81418a27Smrg * gfortran.h (gfc_open): Add newunit expression to structure. 2261*81418a27Smrg * io.c (io_tag): Add new unit tag and fix whitespace. 2262*81418a27Smrg (match_open_element): Add matching for newunit. 2263*81418a27Smrg (gfc_free_open): Free the newunit expression. 2264*81418a27Smrg (gfc_resolve_open): Add newunit to resolution and check constraints. 2265*81418a27Smrg (gfc_resolve_close): Add check for non-negative unit. 2266*81418a27Smrg (gfc_resolve_filepos): Likewise. 2267*81418a27Smrg (gfc_resolve_dt): Likewise. 2268*81418a27Smrg * trans-io.c (set_parameter_value): Build runtime checks for unit 2269*81418a27Smrg numbers within range of kind=4 integer. (gfc_trans_open) Set the 2270*81418a27Smrg newunit parameter. 2271*81418a27Smrg * ioparm.def (IOPARM): Define the newunit parameter as a pointer 2272*81418a27Smrg to GFC_INTEGER_4, pint4. 2273*81418a27Smrg 2274*81418a27Smrg2009-06-07 Daniel Franke <franke.daniel@gmail.com> 2275*81418a27Smrg 2276*81418a27Smrg PR fortran/25104 2277*81418a27Smrg PR fortran/29962 2278*81418a27Smrg * array.c (gfc_append_constructor): Added NULL-check. 2279*81418a27Smrg * check.c (gfc_check_spread): Check DIM. 2280*81418a27Smrg (gfc_check_unpack): Check that the ARRAY arguments provides enough 2281*81418a27Smrg values for MASK. 2282*81418a27Smrg * intrinsic.h (gfc_simplify_spread): New prototype. 2283*81418a27Smrg (gfc_simplify_unpack): Likewise. 2284*81418a27Smrg * intrinsic.c (add_functions): Added new simplifier callbacks. 2285*81418a27Smrg * simplify.c (gfc_simplify_spread): New. 2286*81418a27Smrg (gfc_simplify_unpack): New. 2287*81418a27Smrg * expr.c (check_transformational): Allow additional transformational 2288*81418a27Smrg intrinsics in initialization expression. 2289*81418a27Smrg 2290*81418a27Smrg2009-06-07 Daniel Franke <franke.daniel@gmail.com> 2291*81418a27Smrg 2292*81418a27Smrg PR fortran/25104 2293*81418a27Smrg PR fortran/29962 2294*81418a27Smrg * check.c (gfc_check_all_any): Check rank of DIM. 2295*81418a27Smrg (gfc_check_count): Likewise. 2296*81418a27Smrg * intrinsic.h (gfc_simplify_all): New prototype. 2297*81418a27Smrg (gfc_simplify_any): Likewise. 2298*81418a27Smrg (gfc_simplify_count): Likewise. 2299*81418a27Smrg (gfc_simplify_sum): Likewise. 2300*81418a27Smrg (gfc_simplify_product): Likewise. 2301*81418a27Smrg * intrinsic.c (add_functions): Added new simplifier callbacks. 2302*81418a27Smrg * simplify.c (transformational_result): New. 2303*81418a27Smrg (simplify_transformation_to_scalar): New. 2304*81418a27Smrg (simplify_transformation_to_array): New. 2305*81418a27Smrg (gfc_count): New. 2306*81418a27Smrg (gfc_simplify_all): New. 2307*81418a27Smrg (gfc_simplify_any): New. 2308*81418a27Smrg (gfc_simplify_count): New. 2309*81418a27Smrg (gfc_simplify_sum): New. 2310*81418a27Smrg (gfc_simplify_product): New. 2311*81418a27Smrg * expr.c (check_transformational): Allow additional transformational 2312*81418a27Smrg intrinsics in initialization expression. 2313*81418a27Smrg 2314*81418a27Smrg2009-06-07 Daniel Franke <franke.daniel@gmail.com> 2315*81418a27Smrg 2316*81418a27Smrg * check.c (dim_rank_check): Return SUCCESS if DIM=NULL. 2317*81418a27Smrg (gfc_check_lbound): Removed (now) redundant check for DIM=NULL. 2318*81418a27Smrg (gfc_check_minloc_maxloc): Likewise. 2319*81418a27Smrg (check_reduction): Likewise. 2320*81418a27Smrg (gfc_check_size): Likewise. 2321*81418a27Smrg (gfc_check_ubound): Likewise. 2322*81418a27Smrg (gfc_check_cshift): Added missing shape-conformance checks. 2323*81418a27Smrg (gfc_check_eoshift): Likewise. 2324*81418a27Smrg * gfortran.h (gfc_check_conformance): Modified prototype to printf-style. 2325*81418a27Smrg * expr.c (gfc_check_conformance): Accept error-message chunks in 2326*81418a27Smrg printf-style. Changed all callers. 2327*81418a27Smrg 2328*81418a27Smrg 2329*81418a27Smrg2009-06-07 Daniel Franke <franke.daniel@gmail.com> 2330*81418a27Smrg 2331*81418a27Smrg PR fortran/25104 2332*81418a27Smrg PR fortran/29962 2333*81418a27Smrg * intrinsic.h (gfc_simplify_dot_product): New prototype. 2334*81418a27Smrg (gfc_simplify_matmul): Likewise. 2335*81418a27Smrg (gfc_simplify_transpose): Likewise. 2336*81418a27Smrg * intrinsic.c (add_functions): Added new simplifier callbacks. 2337*81418a27Smrg * simplify.c (init_result_expr): New. 2338*81418a27Smrg (compute_dot_product): New. 2339*81418a27Smrg (gfc_simplify_dot_product): New. 2340*81418a27Smrg (gfc_simplify_matmul): New. 2341*81418a27Smrg (gfc_simplify_transpose): New. 2342*81418a27Smrg * expr.c (check_transformational): Allow transformational intrinsics 2343*81418a27Smrg with simplifier in initialization expression. 2344*81418a27Smrg 2345*81418a27Smrg2009-06-06 Daniel Franke <franke.daniel@gmail.com> 2346*81418a27Smrg 2347*81418a27Smrg PR fortran/37203 2348*81418a27Smrg * simplify.c (gfc_simplify_reshape): Fixed reshaping of empty arrays 2349*81418a27Smrg without padding. 2350*81418a27Smrg 2351*81418a27Smrg2009-06-06 Daniel Franke <franke.daniel@gmail.com> 2352*81418a27Smrg 2353*81418a27Smrg PR fortran/32890 2354*81418a27Smrg * intrinsic.h (gfc_simplify_pack): New prototype. 2355*81418a27Smrg * intrinsic.c (add_functions): Added 2356*81418a27Smrg simplifier-callback to PACK. 2357*81418a27Smrg * simplify.c (is_constant_array_expr): Moved 2358*81418a27Smrg to beginning of file. 2359*81418a27Smrg (gfc_simplify_pack): New. 2360*81418a27Smrg * check.c (gfc_check_pack): Check that VECTOR has enough elements. 2361*81418a27Smrg Added safeguards for empty arrays. 2362*81418a27Smrg 2363*81418a27Smrg2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2364*81418a27Smrg 2365*81418a27Smrg * simplify.c (call_mpc_func): Use mpc_realref/mpc_imagref 2366*81418a27Smrg instead of MPC_RE/MPC_IM. 2367*81418a27Smrg 2368*81418a27Smrg2009-06-05 Alexandre Oliva <aoliva@redhat.com> 2369*81418a27Smrg 2370*81418a27Smrg * trans-decl.c (gfc_build_qualified_array): Don't skip generation 2371*81418a27Smrg of range types. 2372*81418a27Smrg * trans.h (struct lang_type): Add base_decls. 2373*81418a27Smrg (GFC_TYPE_ARRAY_BASE_DECL): New. 2374*81418a27Smrg * trans-types.c (gfc_get_array_type_bounds): Initialize base decls 2375*81418a27Smrg proactively and excessively. 2376*81418a27Smrg (gfc_get_array_descr_info): Use existing base decls if available. 2377*81418a27Smrg 2378*81418a27Smrg2009-06-04 Daniel Franke <franke.daniel@gmail.com> 2379*81418a27Smrg 2380*81418a27Smrg PR fortran/37203 2381*81418a27Smrg * check.c (gfc_check_reshape): Additional checks for the 2382*81418a27Smrg SHAPE and ORDER arguments. 2383*81418a27Smrg * simplify.c (gfc_simplify_reshape): Converted argument checks 2384*81418a27Smrg to asserts. 2385*81418a27Smrg 2386*81418a27Smrg2009-06-03 Tobias Burnus <burnus@net-b.de> 2387*81418a27Smrg 2388*81418a27Smrg * gfortran.texi: Add mixed-language programming, mention 2389*81418a27Smrg varying string lengths, some clean up of introduction parts. 2390*81418a27Smrg * intrinsic.texi (instrinsic modules): Create @menu for subsections. 2391*81418a27Smrg (ISO_C_BINDING): Support ISOCBINDING_INT_FAST128_T. 2392*81418a27Smrg * libgfortran.h: Comment to rember to keep gfortran.texi in sync. 2393*81418a27Smrg * iso-c-binding.def: Support ISOCBINDING_INT_FAST128_T. 2394*81418a27Smrg 2395*81418a27Smrg2009-06-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2396*81418a27Smrg Tobias Burnus <burnus@net-b.de> 2397*81418a27Smrg 2398*81418a27Smrg * iso-c-binding.def: Use INTMAX_TYPE instead of intmax_type_node. 2399*81418a27Smrg * trans-types.c (init_c_interop_kinds): Remove intmax_type_node. 2400*81418a27Smrg 2401*81418a27Smrg2009-06-03 Alexandre Oliva <aoliva@redhat.com> 2402*81418a27Smrg 2403*81418a27Smrg * module.c (mio_f2k_derived): Initialize cur. 2404*81418a27Smrg 2405*81418a27Smrg2009-06-01 Tobias Burnus <burnus@net-b.de> 2406*81418a27Smrg 2407*81418a27Smrg PR fortran/40309 2408*81418a27Smrg * trans-decl.c (gfc_sym_identifier): Use "MAIN__" for PROGRAM "main". 2409*81418a27Smrg (create_main_function): Set main_identifier_node. 2410*81418a27Smrg 2411*81418a27Smrg2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2412*81418a27Smrg 2413*81418a27Smrg PR fortran/40019 2414*81418a27Smrg * trans-types.c (gfc_build_uint_type): Make nonstatic. 2415*81418a27Smrg * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New prototypes. 2416*81418a27Smrg * trans-types.h (gfc_build_uint_type): Add prototype. 2417*81418a27Smrg * trans-decl.c (gfc_build_intrinsic_function_decls): Build 2418*81418a27Smrg gfor_fndecl_clz128 and gfor_fndecl_ctz128. 2419*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_leadz, 2420*81418a27Smrg gfc_conv_intrinsic_trailz): Call the right builtins or library 2421*81418a27Smrg functions, and cast arguments to unsigned types first. 2422*81418a27Smrg * simplify.c (gfc_simplify_leadz): Deal with negative arguments. 2423*81418a27Smrg 2424*81418a27Smrg2009-05-27 Ian Lance Taylor <iant@google.com> 2425*81418a27Smrg 2426*81418a27Smrg * Make-lang.in (gfortran$(exeext)): Change $(COMPILER) to 2427*81418a27Smrg $(LINKER). 2428*81418a27Smrg (f951$(exeext)): Likewise. 2429*81418a27Smrg 2430*81418a27Smrg2009-05-27 Tobias Burnus <burnus@net-b.de> 2431*81418a27Smrg 2432*81418a27Smrg PR fortran/40270 2433*81418a27Smrg * trans-decl.c (create_main_function): Mark MAIN__ and 2434*81418a27Smrg argc/argv as TREE_USED and push/pop function_decl context 2435*81418a27Smrg if needed. 2436*81418a27Smrg 2437*81418a27Smrg2009-05-26 Tobias Burnus <burnus@net-b.de> 2438*81418a27Smrg 2439*81418a27Smrg PR fortran/39178 2440*81418a27Smrg * gfortranspec.c (lang_specific_driver): Stop linking 2441*81418a27Smrg libgfortranbegin. 2442*81418a27Smrg * trans-decl.c (gfc_build_builtin_function_decls): Stop 2443*81418a27Smrg making MAIN__ publicly visible. 2444*81418a27Smrg (gfc_build_builtin_function_decls): Add 2445*81418a27Smrg gfor_fndecl_set_args. 2446*81418a27Smrg (create_main_function) New function. 2447*81418a27Smrg (gfc_generate_function_code): Use it. 2448*81418a27Smrg 2449*81418a27Smrg2009-05-26 Tobias Burnus <burnus@net-b.de> 2450*81418a27Smrg 2451*81418a27Smrg PR fortran/40246 2452*81418a27Smrg * match.c (gfc_match_nullify): NULLify freed pointer. 2453*81418a27Smrg 2454*81418a27Smrg2009-05-26 Ian Lance Taylor <iant@google.com> 2455*81418a27Smrg 2456*81418a27Smrg * Make-lang.in (gfortranspec.o): Use $(COMPILER). 2457*81418a27Smrg (gfortran$(exeext), f951$(exeext), fortran/cpp.o): Likewise. 2458*81418a27Smrg 2459*81418a27Smrg2009-05-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2460*81418a27Smrg 2461*81418a27Smrg * gfortran.h (GFC_MPC_RND_MODE): New. 2462*81418a27Smrg * simplify.c (call_mpc_func): New helper function. 2463*81418a27Smrg (gfc_simplify_cos, gfc_simplify_exp, gfc_simplify_log, 2464*81418a27Smrg gfc_simplify_sin, gfc_simplify_sqrt): Add MPC support. 2465*81418a27Smrg 2466*81418a27Smrg2009-05-25 Janus Weil <janus@gcc.gnu.org> 2467*81418a27Smrg 2468*81418a27Smrg PR fortran/40176 2469*81418a27Smrg * primary.c (gfc_match_varspec): Handle procedure pointer components 2470*81418a27Smrg with array return value. 2471*81418a27Smrg * resolve.c (resolve_expr_ppc): Ditto. 2472*81418a27Smrg (resolve_symbol): Make sure the interface of a procedure pointer has 2473*81418a27Smrg been resolved. 2474*81418a27Smrg * trans-array.c (gfc_walk_function_expr): Handle procedure pointer 2475*81418a27Smrg components with array return value. 2476*81418a27Smrg * trans-expr.c (gfc_conv_component_ref,gfc_conv_procedure_call, 2477*81418a27Smrg gfc_trans_arrayfunc_assign): Ditto. 2478*81418a27Smrg (gfc_trans_pointer_assignment): Handle procedure pointer assignments, 2479*81418a27Smrg where the rhs is a dummy argument. 2480*81418a27Smrg * trans-types.c (gfc_get_ppc_type,gfc_get_derived_type): Handle 2481*81418a27Smrg procedure pointer components with array return value. 2482*81418a27Smrg 2483*81418a27Smrg2009-05-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2484*81418a27Smrg Dominique Dhumieres 2485*81418a27Smrg 2486*81418a27Smrg PR fortran/35732 2487*81418a27Smrg PR fortran/39872 2488*81418a27Smrg * trans-array.c (gfc_conv_ss_startstride): Add one to index. 2489*81418a27Smrg 2490*81418a27Smrg2009-05-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2491*81418a27Smrg 2492*81418a27Smrg PR fortran/40195 2493*81418a27Smrg * module.c (read_md5_from_module_file): Close file before returning. 2494*81418a27Smrg 2495*81418a27Smrg2009-05-18 Janus Weil <janus@gcc.gnu.org> 2496*81418a27Smrg 2497*81418a27Smrg PR fortran/40164 2498*81418a27Smrg * primary.c (gfc_match_rvalue): Handle procedure pointer components in 2499*81418a27Smrg arrays. 2500*81418a27Smrg * resolve.c (resolve_ppc_call,resolve_expr_ppc): Resolve component and 2501*81418a27Smrg array references. 2502*81418a27Smrg (resolve_fl_derived): Procedure pointer components are not required to 2503*81418a27Smrg have constant array bounds in their return value. 2504*81418a27Smrg 2505*81418a27Smrg2009-05-18 Janus Weil <janus@gcc.gnu.org> 2506*81418a27Smrg 2507*81418a27Smrg * intrinsic.c (add_sym): Fix my last commit (r147655), 2508*81418a27Smrg which broke bootstrap. 2509*81418a27Smrg 2510*81418a27Smrg2009-05-18 Richard Guenther <rguenther@suse.de> 2511*81418a27Smrg 2512*81418a27Smrg PR fortran/40168 2513*81418a27Smrg * trans-expr.c (gfc_trans_zero_assign): For local array 2514*81418a27Smrg destinations use an assignment from an empty constructor. 2515*81418a27Smrg 2516*81418a27Smrg2009-05-18 Janus Weil <janus@gcc.gnu.org> 2517*81418a27Smrg 2518*81418a27Smrg PR fortran/36947 2519*81418a27Smrg PR fortran/40039 2520*81418a27Smrg * expr.c (gfc_check_pointer_assign): Check intents when comparing 2521*81418a27Smrg interfaces. 2522*81418a27Smrg * gfortran.h (typedef struct gfc_intrinsic_arg): Add 'intent' member. 2523*81418a27Smrg (gfc_compare_interfaces): Additional argument. 2524*81418a27Smrg * interface.c (operator_correspondence): Add check for equality of 2525*81418a27Smrg intents, and new argument 'intent_check'. 2526*81418a27Smrg (gfc_compare_interfaces): New argument 'intent_check', which is passed 2527*81418a27Smrg on to operator_correspondence. 2528*81418a27Smrg (check_interface1): Don't check intents when comparing interfaces. 2529*81418a27Smrg (compare_parameter): Do check intents when comparing interfaces. 2530*81418a27Smrg * intrinsic.c (add_sym): Add intents for arguments of intrinsic 2531*81418a27Smrg procedures. 2532*81418a27Smrg (add_sym_1,add_sym_1s,add_sym_1m,add_sym_2,add_sym_2s,add_sym_3, 2533*81418a27Smrg add_sym_3ml,add_sym_3red,add_sym_3s,add_sym_4): Use INTENT_IN by 2534*81418a27Smrg default. 2535*81418a27Smrg (add_sym_1_intent,add_sym_1s_intent,add_sym_2s_intent,add_sym_3s_intent) 2536*81418a27Smrg : New functions to add intrinsic symbols, specifying custom intents. 2537*81418a27Smrg (add_sym_4s,add_sym_5s): Add new arguments to specify intents. 2538*81418a27Smrg (add_functions,add_subroutines): Add intents for various intrinsics. 2539*81418a27Smrg * resolve.c (check_generic_tbp_ambiguity): Don't check intents when 2540*81418a27Smrg comparing interfaces. 2541*81418a27Smrg * symbol.c (gfc_copy_formal_args_intr): Copy intent. 2542*81418a27Smrg 2543*81418a27Smrg2009-05-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2544*81418a27Smrg 2545*81418a27Smrg * iso-fortran-env.def: Define INT8, INT16, INT32, INT64, REAL32, 2546*81418a27Smrg REAL64 and REAL128. 2547*81418a27Smrg * gfortran.h (gfc_get_int_kind_from_width_isofortranenv, 2548*81418a27Smrg gfc_get_real_kind_from_width_isofortranenv): New prototypes. 2549*81418a27Smrg * iso-c-binding.def: Update definitions for the INT*_T, 2550*81418a27Smrg INT_LEAST*_T and INT_FAST*_T named parameters. 2551*81418a27Smrg * trans-types.c (get_typenode_from_name, get_int_kind_from_name, 2552*81418a27Smrg gfc_get_real_kind_from_width_isofortranenv): New functions. 2553*81418a27Smrg 2554*81418a27Smrg2009-05-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2555*81418a27Smrg 2556*81418a27Smrg PR fortran/36260 2557*81418a27Smrg * intrinsic.c (add_functions, add_subroutines): Fix argument 2558*81418a27Smrg names and wrap long lines. 2559*81418a27Smrg * intrinsic.texi: Fix documentation and argument names of 2560*81418a27Smrg LOG_GAMMA, DATAN2, DBESJN, DTIME, ETIME, FSTAT, STAT, LSTAT, 2561*81418a27Smrg GET_COMMAND, IDATE, LTIME, MOVE_ALLOC, NINT, OR, PRODUCT, 2562*81418a27Smrg SUM, RAND, RANDOM_SEED, REAL, SELECTED_INT_KIND, 2563*81418a27Smrg SELECTED_REAL_KIND and XOR. 2564*81418a27Smrg 2565*81418a27Smrg2009-05-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2566*81418a27Smrg 2567*81418a27Smrg PR fortran/33197 2568*81418a27Smrg * intrinsic.c (add_functions): Use ERFC_SCALED simplification. 2569*81418a27Smrg * intrinsic.h (gfc_simplify_erfc_scaled): New prototype. 2570*81418a27Smrg * simplify.c (fullprec_erfc_scaled, asympt_erfc_scaled, 2571*81418a27Smrg gfc_simplify_erfc_scaled): New functions. 2572*81418a27Smrg 2573*81418a27Smrg2009-05-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2574*81418a27Smrg 2575*81418a27Smrg PR fortran/31243 2576*81418a27Smrg * resolve.c (resolve_substring): Don't allow too large substring 2577*81418a27Smrg indexes. 2578*81418a27Smrg (gfc_resolve_substring_charlen): Fix typo. 2579*81418a27Smrg (gfc_resolve_character_operator): Fix typo. 2580*81418a27Smrg (resolve_charlen): Catch unreasonably large string lengths. 2581*81418a27Smrg * simplify.c (gfc_simplify_len): Don't error out on LEN 2582*81418a27Smrg range checks. 2583*81418a27Smrg 2584*81418a27Smrg2009-05-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2585*81418a27Smrg 2586*81418a27Smrg PR fortran/36031 2587*81418a27Smrg * decl.c (set_enum_kind): Use global short-enums flag. 2588*81418a27Smrg * gfortran.h (gfc_option_t): Remove short_enums flag. 2589*81418a27Smrg * lang.opt (-fshort-enums): Refer to C documentation. 2590*81418a27Smrg * options.c (gfc_init_options, gfc_handle_option): Use global 2591*81418a27Smrg short-enums flag. 2592*81418a27Smrg 2593*81418a27Smrg2009-05-15 Tobias Burnus <burnus@net-b.de> 2594*81418a27Smrg 2595*81418a27Smrg PR fortran/39352 2596*81418a27Smrg * f95-lang.c: Add gfc_maybe_initialize_eh. 2597*81418a27Smrg * gfortran.h: Add gfc_maybe_initialize_eh prototype. 2598*81418a27Smrg * Make-lang.in: Add new .h dendencies for f95-lang.c 2599*81418a27Smrg * openmp.c (resolve_omp_do): Call gfc_maybe_initialize_eh. 2600*81418a27Smrg * misc.c (gfc_free): Avoid #define trickery for free. 2601*81418a27Smrg 2602*81418a27Smrg2009-05-14 Steven G. Kargl <kargl@gcc.gnu.org> 2603*81418a27Smrg 2604*81418a27Smrg * dump-parse-tree.c (show_code_node): Add ERRMSG to the dumping 2605*81418a27Smrg of allocate and deallocate statements. 2606*81418a27Smrg 2607*81418a27Smrg2009-05-14 Ian Lance Taylor <iant@google.com> 2608*81418a27Smrg 2609*81418a27Smrg * decl.c (match_attr_spec): Change d to unsigned int. 2610*81418a27Smrg * dump-parse-tree.c (show_namespace): Change op to int. Add cast. 2611*81418a27Smrg * interface.c (gfc_check_interfaces): Change i to int. Add casts. 2612*81418a27Smrg * module.c (read_module): Change i to int. Add cast. 2613*81418a27Smrg (write_module): Change i to int. 2614*81418a27Smrg * symbol.c (gfc_get_namespace): Change in to int. 2615*81418a27Smrg (gfc_free_namespace): Change i to int. 2616*81418a27Smrg * trans-io.c (gfc_build_io_library_fndecls): Change ptype to 2617*81418a27Smrg unsigned int. Add cast. 2618*81418a27Smrg * trans-types.c (gfc_init_kinds): Change mode to unsigned int. 2619*81418a27Smrg Add casts. 2620*81418a27Smrg 2621*81418a27Smrg2009-05-14 Daniel Kraft <d@domob.eu> 2622*81418a27Smrg 2623*81418a27Smrg PR fortran/40045 2624*81418a27Smrg * dump-parse-tree.c (show_typebound): Fix missing adaption to new 2625*81418a27Smrg type-bound procedure storage structure. 2626*81418a27Smrg 2627*81418a27Smrg2009-05-14 Janus Weil <janus@gcc.gnu.org> 2628*81418a27Smrg 2629*81418a27Smrg PR fortran/39996 2630*81418a27Smrg * decl.c (gfc_match_function_decl): Use gfc_add_type. 2631*81418a27Smrg * symbol.c (gfc_add_type): Better checking for duplicate types in 2632*81418a27Smrg function declarations. And: Always give an error for duplicte types, 2633*81418a27Smrg not just a warning with -std=gnu. 2634*81418a27Smrg 2635*81418a27Smrg2009-05-14 Jakub Jelinek <jakub@redhat.com> 2636*81418a27Smrg 2637*81418a27Smrg PR fortran/39865 2638*81418a27Smrg * io.c (resolve_tag_format): CHARACTER array in FMT= argument 2639*81418a27Smrg isn't an extension. Reject non-CHARACTER array element of 2640*81418a27Smrg assumed shape or pointer or assumed size array. 2641*81418a27Smrg * trans-array.c (array_parameter_size): New function. 2642*81418a27Smrg (gfc_conv_array_parameter): Add size argument. Call 2643*81418a27Smrg array_parameter_size if it is non-NULL. 2644*81418a27Smrg * trans-array.h (gfc_conv_array_parameter): Adjust prototype. 2645*81418a27Smrg * trans-expr.c (gfc_conv_function_call, gfc_trans_arrayfunc_assign): 2646*81418a27Smrg Adjust callers. 2647*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_loc): Likewise. 2648*81418a27Smrg * trans-io.c (gfc_convert_array_to_string): Rewritten. 2649*81418a27Smrg 2650*81418a27Smrg2009-05-13 Steven G. Kargl <kargl@gcc.gnu.org> 2651*81418a27Smrg 2652*81418a27Smrg * gfortran.h (gfc_code): Rename struct member expr to expr1. 2653*81418a27Smrg * openmp.c (resolve_omp_atomic): Update expr to expr1. 2654*81418a27Smrg * interface.c (gfc_extend_assign): Ditto. 2655*81418a27Smrg * trans-expr.c (gfc_conv_expr_reference, gfc_trans_assignment, 2656*81418a27Smrg gfc_trans_init_assign): Ditto. 2657*81418a27Smrg * dump-parse-tree.c (show_code_node): Ditto. 2658*81418a27Smrg * trans-openmp.c (gfc_trans_omp_atomic): Ditto. 2659*81418a27Smrg * trans-stmt.c ( gfc_trans_label_assign, gfc_trans_goto, gfc_trans_call, 2660*81418a27Smrg gfc_trans_return, gfc_trans_pause, gfc_trans_stop, gfc_trans_if_1, 2661*81418a27Smrg gfc_trans_arithmetic_if, gfc_trans_do_while, gfc_trans_integer_select, 2662*81418a27Smrg gfc_trans_logical_select, gfc_trans_character_select 2663*81418a27Smrg forall_make_variable_temp, check_forall_dependencies 2664*81418a27Smrg gfc_trans_forall_1, gfc_trans_where_2, gfc_trans_where_3 2665*81418a27Smrg gfc_trans_where, gfc_trans_allocate, gfc_trans_deallocate): Ditto. 2666*81418a27Smrg * io.c (match_io_element, gfc_match_inquire): Ditto. 2667*81418a27Smrg * resolve.c (resolve_typebound_call, resolve_ppc_call, 2668*81418a27Smrg resolve_allocate_expr, resolve_allocate_deallocate, resolve_select, 2669*81418a27Smrg resolve_transfer, resolve_where, gfc_resolve_assign_in_forall, 2670*81418a27Smrg gfc_resolve_blocks, resolve_code, build_init_assign): Ditto. 2671*81418a27Smrg * st.c (gfc_free_statement): Ditto. 2672*81418a27Smrg * match.c (gfc_match_assignment, gfc_match_pointer_assignment, 2673*81418a27Smrg match_arithmetic_if, gfc_match_if, gfc_match_elseif 2674*81418a27Smrg gfc_match_stopcode, gfc_match_assign, gfc_match_goto, 2675*81418a27Smrg gfc_match_nullify, match_typebound_call, gfc_match_call 2676*81418a27Smrg gfc_match_select, match_simple_where, gfc_match_where 2677*81418a27Smrg gfc_match_elsewhere, match_simple_forall, gfc_match_forall): Ditto. 2678*81418a27Smrg * trans-io.c (gfc_trans_transfer): Ditto. 2679*81418a27Smrg * parse.c (parse_where_block, parse_if_block): Ditto. 2680*81418a27Smrg 2681*81418a27Smrg2009-05-13 Steven G. Kargl <kargl@gcc.gnu.org> 2682*81418a27Smrg 2683*81418a27Smrg * gfortran.h (gfc_code): Rename struct member label to label1. 2684*81418a27Smrg * dump-parse-tree.c (show_code_node): Update symbol. 2685*81418a27Smrg * trans-stmt.c (gfc_trans_label_assign, gfc_trans_goto, 2686*81418a27Smrg gfc_trans_arithmetic_if): Ditto. 2687*81418a27Smrg * resolve.c (gfc_resolve_blocks, resolve_code): Ditto. 2688*81418a27Smrg * match.c (match_arithmetic_if, gfc_match_if, gfc_reference_st_label, 2689*81418a27Smrg gfc_match_assign, gfc_match_goto): Ditto. 2690*81418a27Smrg * parse.c (parse_do_block): Ditto. 2691*81418a27Smrg 2692*81418a27Smrg2009-05-13 Tobias Burnus <burnus@net-b.de> 2693*81418a27Smrg 2694*81418a27Smrg PR fortran/34153 2695*81418a27Smrg * gfortran.h (gfc_exec_op): Add EXEC_END_PROCEDURE. 2696*81418a27Smrg * dump-parse-tree.c (show_code_node): Use EXEC_END_PROCEDURE. 2697*81418a27Smrg * trans.c (gfc_trans_code): Ditto. 2698*81418a27Smrg * resolve.c (resolve_code): Ditto. 2699*81418a27Smrg * st.c (gfc_free_statement): Ditto. 2700*81418a27Smrg * parse.c (accept_statement): Ditto. 2701*81418a27Smrg 2702*81418a27Smrg2009-05-12 Tobias Burnus <burnus@net-b.de> 2703*81418a27Smrg 2704*81418a27Smrg PR fortran/40110 2705*81418a27Smrg * decl.c (gfc_match_kind_spec): Turn C kind error into a warning. 2706*81418a27Smrg 2707*81418a27Smrg2009-05-11 Steve Ellcey <sje@cup.hp.com> 2708*81418a27Smrg 2709*81418a27Smrg * resolve.c (check_host_association): Initialize tail. 2710*81418a27Smrg 2711*81418a27Smrg2009-05-11 Janus Weil <janus@gcc.gnu.org> 2712*81418a27Smrg 2713*81418a27Smrg PR fortran/40089 2714*81418a27Smrg * resolve.c (resolve_fl_derived): Only return FAILURE if 2715*81418a27Smrg gfc_notify_std fails. 2716*81418a27Smrg 2717*81418a27Smrg2009-05-10 Ian Lance Taylor <iant@google.com> 2718*81418a27Smrg 2719*81418a27Smrg * gfortran.h (enum gfc_omp_sched_kind): New enum, broken out of 2720*81418a27Smrg gfc_omp_clauses. 2721*81418a27Smrg (enum gfc_omp_default_sharing): Likewise. 2722*81418a27Smrg * module.c (enum gfc_rsym_state): New enum, broken out of 2723*81418a27Smrg pointer_info. 2724*81418a27Smrg (enum gfc_wsym_state): Likewise. 2725*81418a27Smrg * parse.c (enum state_order): New enum, broken out of st_state. 2726*81418a27Smrg 2727*81418a27Smrg2009-05-10 Paul Thomas <pault@gcc.gnu.org> 2728*81418a27Smrg 2729*81418a27Smrg PR fortran/40018 2730*81418a27Smrg * trans-array.c (gfc_trans_array_constructor_value): Fold 2731*81418a27Smrg convert numeric constants. 2732*81418a27Smrg (gfc_build_constant_array_constructor): The same. 2733*81418a27Smrg 2734*81418a27Smrg2009-05-10 Paul Thomas <pault@gcc.gnu.org> 2735*81418a27Smrg 2736*81418a27Smrg PR fortran/38863 2737*81418a27Smrg * trans-expr.c (gfc_conv_operator_assign): Remove function. 2738*81418a27Smrg * trans.h : Remove prototype for gfc_conv_operator_assign. 2739*81418a27Smrg * trans-stmt.c (gfc_conv_elemental_dependencies): Initialize 2740*81418a27Smrg derivde types with intent(out). 2741*81418a27Smrg (gfc_trans_call): Add mask, count1 and invert arguments. Add 2742*81418a27Smrg code to use mask for WHERE assignments. 2743*81418a27Smrg (gfc_trans_forall_1): Use new arguments for gfc_trans_call. 2744*81418a27Smrg (gfc_trans_where_assign): The gfc_symbol argument is replaced 2745*81418a27Smrg by the corresponding code. If this has a resolved_sym, then 2746*81418a27Smrg gfc_trans_call is called. The call to gfc_conv_operator_assign 2747*81418a27Smrg is removed. 2748*81418a27Smrg (gfc_trans_where_2): Change the last argument in the call to 2749*81418a27Smrg gfc_trans_where_assign. 2750*81418a27Smrg * trans-stmt.h : Modify prototype for gfc_trans_call. 2751*81418a27Smrg * trans.c (gfc_trans_code): Use new args for gfc_trans_call. 2752*81418a27Smrg 2753*81418a27Smrg2009-05-08 Janus Weil <janus@gcc.gnu.org> 2754*81418a27Smrg 2755*81418a27Smrg PR fortran/39876 2756*81418a27Smrg * intrinsic.c (gfc_is_intrinsic): Do not add the EXTERNAL attribute if 2757*81418a27Smrg the symbol is a module procedure. 2758*81418a27Smrg 2759*81418a27Smrg2009-05-08 Tobias Burnus <burnus@net-b.de> 2760*81418a27Smrg 2761*81418a27Smrg * invoke.texi: Add do/recursion to the -fcheck= summary. 2762*81418a27Smrg 2763*81418a27Smrg2009-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2764*81418a27Smrg 2765*81418a27Smrg PR fortran/38830 2766*81418a27Smrg * gfortran.texi: Document that we don't support variable FORMAT 2767*81418a27Smrg expressions. 2768*81418a27Smrg 2769*81418a27Smrg2009-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2770*81418a27Smrg 2771*81418a27Smrg PR fortran/39576 2772*81418a27Smrg * error.c (error_print): Add missing break statement. 2773*81418a27Smrg 2774*81418a27Smrg2009-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2775*81418a27Smrg 2776*81418a27Smrg PR fortran/36382 2777*81418a27Smrg * invoke.texi: Document that -fdollar-ok does not allow $ to be 2778*81418a27Smrg used in IMPLICIT statement. 2779*81418a27Smrg 2780*81418a27Smrg2009-05-06 Janus Weil <janus@gcc.gnu.org> 2781*81418a27Smrg Paul Thomas <pault@gcc.gnu.org> 2782*81418a27Smrg 2783*81418a27Smrg PR fortran/39630 2784*81418a27Smrg * decl.c (match_procedure_interface): New function to match the 2785*81418a27Smrg interface for a PROCEDURE statement. 2786*81418a27Smrg (match_procedure_decl): Call match_procedure_interface. 2787*81418a27Smrg (match_ppc_decl): New function to match the declaration of a 2788*81418a27Smrg procedure pointer component. 2789*81418a27Smrg (gfc_match_procedure): Call match_ppc_decl. 2790*81418a27Smrg (match_binding_attributes): Add new argument 'ppc' and handle the 2791*81418a27Smrg POINTER attribute for procedure pointer components. 2792*81418a27Smrg (match_procedure_in_type,gfc_match_generic): Added new argument to 2793*81418a27Smrg match_binding_attributes. 2794*81418a27Smrg * dump-parse-tree.c (show_expr,show_components,show_code_node): Handle 2795*81418a27Smrg procedure pointer components. 2796*81418a27Smrg * expr.c (free_expr0,gfc_copy_expr,gfc_simplify_expr): Handle EXPR_PPC. 2797*81418a27Smrg (gfc_check_pointer_assign): Handle procedure pointer components, but no 2798*81418a27Smrg full checking yet. 2799*81418a27Smrg (is_proc_ptr_comp): New function to determine if an expression is a 2800*81418a27Smrg procedure pointer component. 2801*81418a27Smrg * gfortran.h (expr_t): Add EXPR_PPC. 2802*81418a27Smrg (symbol_attribute): Add new member 'proc_pointer_comp'. 2803*81418a27Smrg (gfc_component): Add new member 'formal'. 2804*81418a27Smrg (gfc_exec_op): Add EXEC_CALL_PPC. 2805*81418a27Smrg (gfc_get_default_type): Changed first argument. 2806*81418a27Smrg (is_proc_ptr_comp): Add prototype. 2807*81418a27Smrg (gfc_match_varspec): Add new argument. 2808*81418a27Smrg * interface.c (compare_actual_formal): Handle procedure pointer 2809*81418a27Smrg components. 2810*81418a27Smrg * match.c (gfc_match_pointer_assignment,match_typebound_call): Handle 2811*81418a27Smrg procedure pointer components. 2812*81418a27Smrg * module.c (mio_expr): Handle EXPR_PPC. 2813*81418a27Smrg * parse.c (parse_derived): Handle procedure pointer components. 2814*81418a27Smrg * primary.c (gfc_match_varspec): Add new argument 'ppc_arg' and handle 2815*81418a27Smrg procedure pointer components. 2816*81418a27Smrg (gfc_variable_attr): Handle procedure pointer components. 2817*81418a27Smrg (gfc_match_rvalue): Added new argument to gfc_match_varspec and changed 2818*81418a27Smrg first argument of gfc_get_default_type. 2819*81418a27Smrg (match_variable): Added new argument to gfc_match_varspec. 2820*81418a27Smrg * resolve.c (resolve_entries,set_type,resolve_fl_parameter): Changed 2821*81418a27Smrg first argument of gfc_get_default_type. 2822*81418a27Smrg (resolve_structure_cons,resolve_actual_arglist): Handle procedure 2823*81418a27Smrg pointer components. 2824*81418a27Smrg (resolve_ppc_call): New function to resolve a call to a procedure 2825*81418a27Smrg pointer component (subroutine). 2826*81418a27Smrg (resolve_expr_ppc): New function to resolve a call to a procedure 2827*81418a27Smrg pointer component (function). 2828*81418a27Smrg (gfc_resolve_expr): Handle EXPR_PPC. 2829*81418a27Smrg (resolve_code): Handle EXEC_CALL_PPC. 2830*81418a27Smrg (resolve_fl_derived): Copy the interface for a procedure pointer 2831*81418a27Smrg component. 2832*81418a27Smrg (resolve_symbol): Fix overlong line. 2833*81418a27Smrg * st.c (gfc_free_statement): Handle EXEC_CALL_PPC. 2834*81418a27Smrg * symbol.c (gfc_get_default_type): Changed first argument. 2835*81418a27Smrg (gfc_set_default_type): Changed first argument of gfc_get_default_type. 2836*81418a27Smrg (gfc_add_component): Initialize ts.type to BT_UNKNOWN. 2837*81418a27Smrg * trans.h (gfc_conv_function_call): Renamed. 2838*81418a27Smrg * trans.c (gfc_trans_code): Handle EXEC_CALL_PPC. 2839*81418a27Smrg * trans-expr.c (gfc_conv_component_ref): Ditto. 2840*81418a27Smrg (gfc_conv_function_val): Rename to 'conv_function_val', add new 2841*81418a27Smrg argument 'expr' and handle procedure pointer components. 2842*81418a27Smrg (gfc_conv_operator_assign): Renamed gfc_conv_function_val. 2843*81418a27Smrg (gfc_apply_interface_mapping_to_expr): Handle EXPR_PPC. 2844*81418a27Smrg (gfc_conv_function_call): Rename to 'gfc_conv_procedure_call', add new 2845*81418a27Smrg argument 'expr' and handle procedure pointer components. 2846*81418a27Smrg (gfc_get_proc_ptr_comp): New function to get the backend decl for a 2847*81418a27Smrg procedure pointer component. 2848*81418a27Smrg (gfc_conv_function_expr): Renamed gfc_conv_function_call. 2849*81418a27Smrg (gfc_conv_structure): Handle procedure pointer components. 2850*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_funcall, 2851*81418a27Smrg conv_generic_with_optional_char_arg): Renamed gfc_conv_function_call. 2852*81418a27Smrg * trans-stmt.h (gfc_get_proc_ptr_comp): Add prototype. 2853*81418a27Smrg * trans-stmt.c (gfc_trans_call): Renamed gfc_conv_function_call. 2854*81418a27Smrg * trans-types.h (gfc_get_ppc_type): Add prototype. 2855*81418a27Smrg * trans-types.c (gfc_get_ppc_type): New function to build a tree node 2856*81418a27Smrg for a procedure pointer component. 2857*81418a27Smrg (gfc_get_derived_type): Handle procedure pointer components. 2858*81418a27Smrg 2859*81418a27Smrg2009-05-06 Tobias Burnus <burnus@net-b.de> 2860*81418a27Smrg 2861*81418a27Smrg PR fortran/40041 2862*81418a27Smrg * resolve.c (resolve_symbol): Print no warning for implicitly 2863*81418a27Smrg typed intrinsic functions. 2864*81418a27Smrg 2865*81418a27Smrg2009-05-05 Janus Weil <janus@gcc.gnu.org> 2866*81418a27Smrg 2867*81418a27Smrg PR fortran/39998 2868*81418a27Smrg * expr.c (gfc_check_pointer_assign): Check for statement functions and 2869*81418a27Smrg internal procedures in procedure pointer assignments. 2870*81418a27Smrg 2871*81418a27Smrg2009-04-28 Janus Weil <janus@gcc.gnu.org> 2872*81418a27Smrg 2873*81418a27Smrg PR fortran/39946 2874*81418a27Smrg * resolve.c (resolve_symbol): Correctly copy the interface of a 2875*81418a27Smrg PROCEDURE statement if the interface involves a RESULT variable. 2876*81418a27Smrg 2877*81418a27Smrg2009-04-28 Janus Weil <janus@gcc.gnu.org> 2878*81418a27Smrg 2879*81418a27Smrg PR fortran/39930 2880*81418a27Smrg PR fortran/39931 2881*81418a27Smrg * expr.c (gfc_check_pointer_assign): Correctly detect if the left hand 2882*81418a27Smrg side is a pointer. 2883*81418a27Smrg * parse.c (gfc_fixup_sibling_symbols): Don't check for ambiguity. 2884*81418a27Smrg 2885*81418a27Smrg2009-04-28 Paul Thomas <pault@gcc.gnu.org> 2886*81418a27Smrg 2887*81418a27Smrg PR fortran/39879 2888*81418a27Smrg * trans_expr.c (gfc_conv_procedure_call): Deep copy a derived 2889*81418a27Smrg type parentheses argument if it is a variable with allocatable 2890*81418a27Smrg components. 2891*81418a27Smrg 2892*81418a27Smrg2009-04-27 Ian Lance Taylor <iant@google.com> 2893*81418a27Smrg 2894*81418a27Smrg * trans-intrinsic.c (DEFINE_MATH_BUILTIN): Add casts to enum 2895*81418a27Smrg type. 2896*81418a27Smrg * trans-io.c (st_parameter_field): Add casts to enum type. 2897*81418a27Smrg 2898*81418a27Smrg2009-04-26 Steven G. Kargl <kargl@gcc.gnu.org> 2899*81418a27Smrg 2900*81418a27Smrg PR fortran/39893 2901*81418a27Smrg fortran/data.c (gfc_assign_data_value): If the lvalue is an 2902*81418a27Smrg assumed character length entity in a data statement, then 2903*81418a27Smrg return FAILURE to prevent segmentation fault. 2904*81418a27Smrg 2905*81418a27Smrg2009-04-26 Jakub Jelinek <jakub@redhat.com> 2906*81418a27Smrg 2907*81418a27Smrg * trans-decl.c: Include pointer-set.h. 2908*81418a27Smrg (nonlocal_dummy_decl_pset, tree nonlocal_dummy_decls): New variables. 2909*81418a27Smrg (gfc_nonlocal_dummy_array_decl): New function. 2910*81418a27Smrg (gfc_get_symbol_decl): Call it for non-local dummy args with saved 2911*81418a27Smrg descriptor. 2912*81418a27Smrg (gfc_get_symbol_decl): Set DECL_BY_REFERENCE when needed. 2913*81418a27Smrg (gfc_generate_function_code): Initialize nonlocal_dummy_decl{s,_pset}, 2914*81418a27Smrg chain it to outermost block's vars, destroy it afterwards. 2915*81418a27Smrg * Make-lang.in (trans-decl.o): Depend on pointer-set.h. 2916*81418a27Smrg 2917*81418a27Smrg2009-04-25 Janus Weil <janus@gcc.gnu.org> 2918*81418a27Smrg 2919*81418a27Smrg PR fortran/39688 2920*81418a27Smrg * decl.c (gfc_match_import): Use 'sym->name' instead of 'name'. 2921*81418a27Smrg They differ if the symbol has been use-renamed. 2922*81418a27Smrg 2923*81418a27Smrg2009-04-24 Ian Lance Taylor <iant@google.com> 2924*81418a27Smrg 2925*81418a27Smrg * gfortran.h (enum gfc_symbol_type): New named enum type, broken 2926*81418a27Smrg out of struct gfc_symbol. 2927*81418a27Smrg (struct gfc_symbol): Use enum gfc_symbol_type. 2928*81418a27Smrg (enum gfc_array_ref_dimen_type): New named enum type, broken out 2929*81418a27Smrg of struct gfc_array_ref). 2930*81418a27Smrg (struct gfc_array_ref): Use enum gfc_array_ref_dimen_type. 2931*81418a27Smrg (mod_pointee_as): Update declaration. 2932*81418a27Smrg * decl.c (add_global_entry): Change type to enum gfc_symbol_type. 2933*81418a27Smrg (gfc_mod_pointee_as): Change return type to "match". 2934*81418a27Smrg * module.c (mio_array_ref): Add cast to enum type. 2935*81418a27Smrg (mio_symbol): Likewise. 2936*81418a27Smrg * resolve.c (resolve_global_procedure): Change type to enum 2937*81418a27Smrg gfc_symbol_type. 2938*81418a27Smrg * trans-io.c (gfc_build_st_parameter): Change type to unsigned 2939*81418a27Smrg int. 2940*81418a27Smrg 2941*81418a27Smrg2009-04-24 Daniel Kraft <d@domob.eu> 2942*81418a27Smrg 2943*81418a27Smrg * gfortran.h (gfc_get_typebound_proc): Removed as macro, now a function. 2944*81418a27Smrg (struct gfc_symtree): Moved "typebound" member inside union. 2945*81418a27Smrg (struct gfc_namespace): Add "tb_sym_root" as new symtree to sort out 2946*81418a27Smrg type-bound procedures there. 2947*81418a27Smrg (gfc_get_tbp_symtree): New procedure. 2948*81418a27Smrg * symbol.c (tentative_tbp_list): New global. 2949*81418a27Smrg (gfc_get_namespace): NULL new "tb_sym_root" member. 2950*81418a27Smrg (gfc_new_symtree): Removed initialization of "typebound" member. 2951*81418a27Smrg (gfc_undo_symbols): Process list of tentative tbp's. 2952*81418a27Smrg (gfc_commit_symbols): Ditto. 2953*81418a27Smrg (free_tb_tree): New method. 2954*81418a27Smrg (gfc_free_namespace): Call it. 2955*81418a27Smrg (gfc_get_typebound_proc): New method. 2956*81418a27Smrg (gfc_get_tbp_symtree): New method. 2957*81418a27Smrg (gfc_find_typebound_proc): Adapt to structural changes of gfc_symtree 2958*81418a27Smrg and gfc_namespace with regards to tbp's. 2959*81418a27Smrg * dump-parse-tree.c (show_typebound): Ditto. 2960*81418a27Smrg * primary.c (gfc_match_varspec): Ditto. Don't reference tbp-symbol 2961*81418a27Smrg as it isn't a symbol any longer. 2962*81418a27Smrg * module.c (mio_typebound_symtree): Adapt to changes. 2963*81418a27Smrg (mio_typebound_proc): Ditto, create symtrees using "gfc_get_tbp_symtree" 2964*81418a27Smrg rather than "gfc_get_sym_tree". 2965*81418a27Smrg (mio_f2k_derived): Ditto. 2966*81418a27Smrg * decl.c (match_procedure_in_type): Ditto. 2967*81418a27Smrg (gfc_match_generic): Ditto. Don't reference tbp-symbol. 2968*81418a27Smrg * resolve.c (check_typebound_override): Adapt to changes. 2969*81418a27Smrg (resolve_typebound_generic): Ditto. 2970*81418a27Smrg (resolve_typebound_procedures): Ditto. 2971*81418a27Smrg (ensure_not_abstract_walker): Ditto. 2972*81418a27Smrg (ensure_not_abstract): Ditto. 2973*81418a27Smrg (resolve_typebound_procedure): Ditto, ignore erraneous symbols (for 2974*81418a27Smrg instance, through removed tentative ones). 2975*81418a27Smrg * gfc-internals.texi (Type-bound procedures): Document changes. 2976*81418a27Smrg 2977*81418a27Smrg2009-04-24 Janus Weil <janus@gcc.gnu.org> 2978*81418a27Smrg 2979*81418a27Smrg PR fortran/39861 2980*81418a27Smrg PR fortran/39864 2981*81418a27Smrg * symbol.c (gfc_copy_formal_args_intr): Set attr.flavor and attr.dummy 2982*81418a27Smrg for the formal arguments. 2983*81418a27Smrg 2984*81418a27Smrg2009-04-21 Taras Glek <tglek@mozilla.com> 2985*81418a27Smrg 2986*81418a27Smrg * f95-lang.c: Update GTY annotations to new syntax. 2987*81418a27Smrg * trans-intrinsic.c: Likewise. 2988*81418a27Smrg * trans-io.c: Likewise. 2989*81418a27Smrg * trans.h: Likewise. 2990*81418a27Smrg 2991*81418a27Smrg2009-04-22 Janus Weil <janus@gcc.gnu.org> 2992*81418a27Smrg 2993*81418a27Smrg PR fortran/39735 2994*81418a27Smrg * decl.c (add_hidden_procptr_result): Bugfix for procptr results. 2995*81418a27Smrg (match_procedure_decl): Set if_source. 2996*81418a27Smrg * expr.c (gfc_check_pointer_assign): Bugfix: Return after error. 2997*81418a27Smrg And: Check interface also for IFSRC_UNKNOWN (return type may be known). 2998*81418a27Smrg * gfortran.h (typedef enum ifsrc): Remove IFSRC_USAGE, 2999*81418a27Smrg add documentation. Rename copy_formal_args and copy_formal_args_intr. 3000*81418a27Smrg * interface.c (gfc_compare_interfaces): Check for return types, 3001*81418a27Smrg handle IFSRC_UNKNOWN. 3002*81418a27Smrg (compare_intr_interfaces,compare_actual_formal_intr): Obsolete, removed. 3003*81418a27Smrg (gfc_procedure_use): Modified handling of intrinsics. 3004*81418a27Smrg * intrinsic.c (add_functions): Bugfix for "dim". 3005*81418a27Smrg * resolve.c (resolve_intrinsic): New function to resolve intrinsics, 3006*81418a27Smrg which copies the interface from isym to sym. 3007*81418a27Smrg (resolve_procedure_expression,resolve_function): Use new function 3008*81418a27Smrg 'resolve_intrinsic'. 3009*81418a27Smrg (resolve_symbol): Add function attribute for externals with return type 3010*81418a27Smrg and use new function 'resolve_intrinsic'. 3011*81418a27Smrg * symbol.c (ifsrc_types): Remove string for IFSRC_USAGE. 3012*81418a27Smrg (copy_formal_args): Renamed to gfc_copy_formal_args. 3013*81418a27Smrg (copy_formal_args_intr): Renamed to gfc_copy_formal_args_intr. 3014*81418a27Smrg * trans-const.c (gfc_conv_const_charlen): Handle cl==NULL. 3015*81418a27Smrg 3016*81418a27Smrg2009-04-21 Joseph Myers <joseph@codesourcery.com> 3017*81418a27Smrg 3018*81418a27Smrg * ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004, 3019*81418a27Smrg ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008, 3020*81418a27Smrg ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add 3021*81418a27Smrg copyright and license notices. 3022*81418a27Smrg * ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, 3023*81418a27Smrg ChangeLog-2008: Correct dates. 3024*81418a27Smrg 3025*81418a27Smrg2009-04-20 Tobias Burnus <burnus@net-b.de> 3026*81418a27Smrg 3027*81418a27Smrg PR fortran/39811 3028*81418a27Smrg * scanner.c (load_line): Fix bogus "&" compile-time diagnostic. 3029*81418a27Smrg 3030*81418a27Smrg2009-04-20 Paul Thomas <pault@gcc.gnu.org> 3031*81418a27Smrg 3032*81418a27Smrg PR fortran/39800 3033*81418a27Smrg * resolve.c (is_sym_host_assoc): New function. 3034*81418a27Smrg (resolve_fl_derived): Call it when checking PRIVATE components 3035*81418a27Smrg of PUBLIC derived types. Change gfc_error to a gfc_notify_std 3036*81418a27Smrg with std=f2003. 3037*81418a27Smrg (resolve_fl_namelist): Call it twice to check for host 3038*81418a27Smrg association. 3039*81418a27Smrg 3040*81418a27Smrg2009-04-20 Ian Lance Taylor <iant@google.com> 3041*81418a27Smrg 3042*81418a27Smrg * module.c (import_iso_c_binding_module): Add casts to enum type. 3043*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Change op to enum 3044*81418a27Smrg tree_code. 3045*81418a27Smrg (gfc_conv_intrinsic_anyall): Likewise. 3046*81418a27Smrg (gfc_conv_intrinsic_arith): Likewise. 3047*81418a27Smrg (gfc_conv_intrinsic_minmaxloc): Likewise. 3048*81418a27Smrg (gfc_conv_intrinsic_minmaxval): Likewise. 3049*81418a27Smrg (gfc_conv_intrinsic_bitop): Likewise. 3050*81418a27Smrg (gfc_conv_intrinsic_singlebitop): Likewise. 3051*81418a27Smrg (gfc_conv_intrinsic_strcmp): Likewise. 3052*81418a27Smrg 3053*81418a27Smrg2009-04-20 Vasilis Liaskovitis <vliaskov@gmail.com> 3054*81418a27Smrg Jakub Jelinek <jakub@redhat.com> 3055*81418a27Smrg 3056*81418a27Smrg PR fortran/35423 3057*81418a27Smrg * trans.h (OMPWS_WORKSHARE_FLAG, OMPWS_CURR_SINGLEUNIT, 3058*81418a27Smrg OMPWS_SCALARIZER_WS, OMPWS_NOWAIT): Define. 3059*81418a27Smrg (ompws_flags): New extern decl. 3060*81418a27Smrg * trans-array.c (gfc_trans_scalarized_loop_end): Build OMP_FOR 3061*81418a27Smrg for the outer dimension if ompws_flags allow it. 3062*81418a27Smrg * trans.c (gfc_generate_code): Clear ompws_flags. 3063*81418a27Smrg * trans-expr.c (gfc_trans_assignment_1): Allow worksharing 3064*81418a27Smrg array assignments inside of !$omp workshare. 3065*81418a27Smrg * trans-stmt.c (gfc_trans_where_3): Similarly for where statements 3066*81418a27Smrg and constructs. 3067*81418a27Smrg * trans-openmp.c (ompws_flags): New variable. 3068*81418a27Smrg (gfc_trans_omp_workshare): Rewritten. 3069*81418a27Smrg 3070*81418a27Smrg2009-04-11 Daniel Kraft <d@domob.eu> 3071*81418a27Smrg 3072*81418a27Smrg PR fortran/37746 3073*81418a27Smrg * gfortran.h (struct gfc_charlen): New field "passed_length" to store 3074*81418a27Smrg the actual passed string length for dummy arguments. 3075*81418a27Smrg * trans-decl.c (gfc_create_string_length): Formatting fixes and added 3076*81418a27Smrg assertion, moved a local variable into the innermost block it is needed. 3077*81418a27Smrg (create_function_arglist): Removed TODO about the check being 3078*81418a27Smrg implemented and initialize cl->passed_length here. 3079*81418a27Smrg (add_argument_checking): New method. 3080*81418a27Smrg (gfc_generate_function_code): Call the argument checking method. 3081*81418a27Smrg 3082*81418a27Smrg2009-04-11 Janus Weil <janus@gcc.gnu.org> 3083*81418a27Smrg 3084*81418a27Smrg PR fortran/39692 3085*81418a27Smrg * symbol.c (check_conflict): Reject procedure pointers for -std=f95. 3086*81418a27Smrg 3087*81418a27Smrg2009-04-11 Daniel Franke <franke.daniel@gmail.com> 3088*81418a27Smrg 3089*81418a27Smrg * resolve.c (resolve_global_procedure): Enable whole-file checking for 3090*81418a27Smrg procedures that are declared later in the file. 3091*81418a27Smrg 3092*81418a27Smrg2009-04-10 Paolo Bonzini <bonzini@gnu.org> 3093*81418a27Smrg 3094*81418a27Smrg PR middle-end/39701 3095*81418a27Smrg * trans.c (gfc_allocate_with_status): Fix type mismatches 3096*81418a27Smrg on "pstat == 0". 3097*81418a27Smrg 3098*81418a27Smrg2009-04-10 Daniel Franke <franke.daniel@gmail.com> 3099*81418a27Smrg 3100*81418a27Smrg PR fortran/38709 3101*81418a27Smrg * expr.c (find_array_section): Leave early on zero-sized arrays. 3102*81418a27Smrg 3103*81418a27Smrg2009-04-09 Janus Weil <janus@gcc.gnu.org> 3104*81418a27Smrg 3105*81418a27Smrg PR fortran/36704 3106*81418a27Smrg * decl.c (add_hidden_procptr_result): New function for handling 3107*81418a27Smrg procedure pointer return values by adding a hidden result variable. 3108*81418a27Smrg (variable_decl,match_procedure_decl,gfc_match_function_decl, 3109*81418a27Smrg gfc_match_subroutine,gfc_match_end,attr_decl1): Handle procedure pointer 3110*81418a27Smrg return values. 3111*81418a27Smrg * parse.c (parse_interface): Add EXTERNAL attribute only after 3112*81418a27Smrg FUNCTION/SUBROUTINE declaration is complete. 3113*81418a27Smrg * primary.c (replace_hidden_procptr_result): New function for replacing 3114*81418a27Smrg function symbol by hidden result variable. 3115*81418a27Smrg (gfc_match_rvalue,match_variable): Replace symbol by hidden result 3116*81418a27Smrg variable. 3117*81418a27Smrg * resolve.c (resolve_contained_fntype,resolve_function,resolve_variable, 3118*81418a27Smrg resolve_symbol): Allow for procedure pointer function results. 3119*81418a27Smrg (resolve_fl_procedure): Conflict detection moved here from 3120*81418a27Smrg 'check_conflict'. 3121*81418a27Smrg * symbol.c (gfc_check_function_type): Allow for procedure pointer 3122*81418a27Smrg function results. 3123*81418a27Smrg (check_conflict): Move some conflict detection to resolution stage. 3124*81418a27Smrg * trans-types.c (gfc_sym_type,gfc_get_function_type): Handle hidden 3125*81418a27Smrg result variables. 3126*81418a27Smrg 3127*81418a27Smrg2009-04-08 Jakub Jelinek <jakub@redhat.com> 3128*81418a27Smrg 3129*81418a27Smrg * trans-types.c (gfc_init_types): Ensure gfc_integer_types doesn't 3130*81418a27Smrg contain TYPE_STRING_FLAG types. 3131*81418a27Smrg 3132*81418a27Smrg2009-04-08 Janne Blomqvist <jb@gcc.gnu.org> 3133*81418a27Smrg 3134*81418a27Smrg PR fortran/39670 3135*81418a27Smrg * invoke.texi (fdollar-ok): Fix typo. 3136*81418a27Smrg 3137*81418a27Smrg2009-04-08 Daniel Franke <franke.daniel@gmail.com> 3138*81418a27Smrg 3139*81418a27Smrg PR fortran/39670 3140*81418a27Smrg * invoke.texi (fdollar-ok): Clarify limitations. 3141*81418a27Smrg 3142*81418a27Smrg2009-04-08 Paul Thomas <pault@gcc.gnu.org> 3143*81418a27Smrg 3144*81418a27Smrg PR fortran/38863 3145*81418a27Smrg * trans-array.c (gfc_trans_deferred_array): Return if this 3146*81418a27Smrg is a result variable. 3147*81418a27Smrg 3148*81418a27Smrg2009-04-07 Janus Weil <janus@gcc.gnu.org> 3149*81418a27Smrg 3150*81418a27Smrg PR fortran/38152 3151*81418a27Smrg * trans-decl.c (gfc_get_symbol_decl): Correctly set decl location for 3152*81418a27Smrg procedure pointer decls. 3153*81418a27Smrg 3154*81418a27Smrg2009-04-07 Janus Weil <janus@gcc.gnu.org> 3155*81418a27Smrg 3156*81418a27Smrg PR fortran/38290 3157*81418a27Smrg * expr.c (gfc_check_pointer_assign): Enable interface check for 3158*81418a27Smrg procedure pointers. 3159*81418a27Smrg * gfortran.h: Add copy_formal_args_intr. 3160*81418a27Smrg * interface.c (gfc_compare_interfaces): Call gfc_compare_intr_interfaces 3161*81418a27Smrg if second argument is an intrinsic. 3162*81418a27Smrg (compare_intr_interfaces): Correctly set attr.function, attr.subroutine 3163*81418a27Smrg and ts. 3164*81418a27Smrg (compare_parameter): Call gfc_compare_interfaces also for intrinsics. 3165*81418a27Smrg * resolve.c (resolve_specific_f0,resolve_specific_s0): Don't resolve 3166*81418a27Smrg intrinsic interfaces here. Must happen earlier. 3167*81418a27Smrg (resolve_symbol): Resolution of intrinsic interfaces moved here from 3168*81418a27Smrg resolve_specific_..., and formal args are now copied from intrinsic 3169*81418a27Smrg interfaces. 3170*81418a27Smrg * symbol.c (copy_formal_args_intr): New function to copy the formal 3171*81418a27Smrg arguments from an intinsic procedure. 3172*81418a27Smrg 3173*81418a27Smrg2009-04-06 Paul Thomas <pault@gcc.gnu.org> 3174*81418a27Smrg 3175*81418a27Smrg PR fortran/38863 3176*81418a27Smrg * dependency.c (ref_same_as_full_array): New function. 3177*81418a27Smrg (gfc_dep_resolver): Call it. 3178*81418a27Smrg 3179*81418a27Smrg2009-04-06 Janus Weil <janus@gcc.gnu.org> 3180*81418a27Smrg 3181*81418a27Smrg PR fortran/39414 3182*81418a27Smrg * decl.c (match_procedure_decl): Fix double declaration problems with 3183*81418a27Smrg PROCEDURE statements. 3184*81418a27Smrg * symbol.c (gfc_add_type): Ditto. 3185*81418a27Smrg 3186*81418a27Smrg2009-04-06 Paul Thomas <pault@gcc.gnu.org> 3187*81418a27Smrg 3188*81418a27Smrg PR fortran/36091 3189*81418a27Smrg * trans-array.c (gfc_conv_array_ref): If the symbol has the 3190*81418a27Smrg temporary attribute use the array_spec for the bounds. 3191*81418a27Smrg * gfortran.h : Add the temporary field to the structure 3192*81418a27Smrg 'symbol_attribute'. 3193*81418a27Smrg * trans-stmt.c (forall_make_variable_temp): Set the symbol's 3194*81418a27Smrg temporary attribute. 3195*81418a27Smrg 3196*81418a27Smrg2009-04-05 Daniel Franke <franke.daniel@gmail.com> 3197*81418a27Smrg 3198*81418a27Smrg PR fortran/29458 3199*81418a27Smrg * trans-array.c (gfc_trans_array_constructor_value): Shadow 3200*81418a27Smrg implied do-loop variable to avoid spurious middle-end warnings. 3201*81418a27Smrg 3202*81418a27Smrg2009-04-04 Tobias Burnus <burnus@net-b.de> 3203*81418a27Smrg 3204*81418a27Smrg PR fortran/39577 3205*81418a27Smrg * trans-decl.c (gfc_generate_function_code): Move recursive 3206*81418a27Smrg check to the right position. 3207*81418a27Smrg 3208*81418a27Smrg2009-04-04 Paul Thomas <pault@gcc.gnu.org> 3209*81418a27Smrg 3210*81418a27Smrg PR fortran/37614 3211*81418a27Smrg * trans-common.c (translate_common): Do not offset the whole 3212*81418a27Smrg coomon block. 3213*81418a27Smrg 3214*81418a27Smrg2009-04-03 Tobias Burnus <burnus@net-b.de> 3215*81418a27Smrg 3216*81418a27Smrg PR fortran/39594 3217*81418a27Smrg * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol 3218*81418a27Smrg if it is not a procedure pointer. 3219*81418a27Smrg * primary.c (match_actual_arg): Ditto. 3220*81418a27Smrg 3221*81418a27Smrg2009-03-31 Joseph Myers <joseph@codesourcery.com> 3222*81418a27Smrg 3223*81418a27Smrg PR preprocessor/15638 3224*81418a27Smrg * cpp.c (cb_cpp_error): Handle CPP_DL_FATAL. 3225*81418a27Smrg 3226*81418a27Smrg2009-03-30 Steven G. Kargl <kargls@comcast.net> 3227*81418a27Smrg 3228*81418a27Smrg PR fortran/38389 3229*81418a27Smrg * trans-stmt.c(gfc_trans_allocate): Add translation of ERRMSG. 3230*81418a27Smrg (gfc_trans_deallocate): Add translation of ERRMSG. Remove stale 3231*81418a27Smrg comments. Minor whitespace cleanup. 3232*81418a27Smrg * resolve.c(is_scalar_expr_ptr): Whitespace cleanup. 3233*81418a27Smrg (resolve_deallocate_expr (gfc_expr *e): Update error message. 3234*81418a27Smrg (resolve_allocate_expr): Remove dead code. Update error message. 3235*81418a27Smrg Move error checking to ... 3236*81418a27Smrg (resolve_allocate_deallocate): ... here. Add additional error 3237*81418a27Smrg checking for STAT, ERRMSG, and allocate-objects. 3238*81418a27Smrg * match.c(gfc_match_allocate,gfc_match_deallocate): Parse ERRMSG. 3239*81418a27Smrg Check for redundant uses of STAT and ERRMSG. Reword error message 3240*81418a27Smrg and add checking for pointer, allocatable, and proc_pointer attributes. 3241*81418a27Smrg 3242*81418a27Smrg2009-03-30 Paul Thomas <pault@gcc.gnu.org> 3243*81418a27Smrg 3244*81418a27Smrg PR fortran/22571 3245*81418a27Smrg PR fortran/26227 3246*81418a27Smrg PR fortran/24886 3247*81418a27Smrg * symbol.c : Add gfc_global_ns_list. 3248*81418a27Smrg * decl.c (add_global_entry): Set the namespace ('ns') field. 3249*81418a27Smrg * gfortran.h : Add the resolved field to gfc_namespace. Add the 3250*81418a27Smrg namespace ('ns') field to gfc_gsymbol. Add flag_whole_file to 3251*81418a27Smrg gfc_option_t. Add the prototype for gfc_free_dt_list. 3252*81418a27Smrg * lang.opt : Add the whole-file option. 3253*81418a27Smrg * invoke.texi : Document the whole-file option. 3254*81418a27Smrg * resolve.c (resolve_global_procedure): If the fwhole-file 3255*81418a27Smrg option is set, reorder gsymbols to ensure that translation is 3256*81418a27Smrg in the right order. Resolve the gsymbol's namespace if that 3257*81418a27Smrg has not occurred and then check interfaces. 3258*81418a27Smrg (resolve_function): Move call to resolve_global_procedure. 3259*81418a27Smrg (resolve_call): The same. 3260*81418a27Smrg (resolve_codes): Store the current labels_obstack. 3261*81418a27Smrg (gfc_resolve) : Return if the namespace is already resolved. 3262*81418a27Smrg trans-decl.c (gfc_get_extern_function_decl): If the whole_file 3263*81418a27Smrg option is selected, use the backend_decl of a gsymbol, if it is 3264*81418a27Smrg available. 3265*81418a27Smrg parse.c (add_global_procedure, add_global_program): If the flag 3266*81418a27Smrg whole-file is set, add the namespace to the gsymbol. 3267*81418a27Smrg (gfc_parse_file): On -fwhole-file, put procedure namespaces on 3268*81418a27Smrg the global namespace list. Rearrange to do resolution of all 3269*81418a27Smrg the procedures in a file, followed by their translation. 3270*81418a27Smrg * options.c (gfc_init_options): Add -fwhole-file. 3271*81418a27Smrg (gfc_handle_option): The same. 3272*81418a27Smrg 3273*81418a27Smrg2009-03-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 3274*81418a27Smrg 3275*81418a27Smrg * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL 3276*81418a27Smrg family of intrinsics instead of BUILT_IN_INF family. 3277*81418a27Smrg * trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use 3278*81418a27Smrg BUILT_IN_HUGE_VAL instead of BUILT_IN_INF. 3279*81418a27Smrg 3280*81418a27Smrg2009-03-30 Jakub Jelinek <jakub@redhat.com> 3281*81418a27Smrg 3282*81418a27Smrg * trans-types.c (gfc_sym_type, gfc_return_by_reference): For 3283*81418a27Smrg sym->attr.result check sym->ns->proc_name->attr.is_bind_c. 3284*81418a27Smrg 3285*81418a27Smrg2009-03-30 Joseph Myers <joseph@codesourcery.com> 3286*81418a27Smrg 3287*81418a27Smrg PR rtl-optimization/323 3288*81418a27Smrg * options.c (gfc_post_options): Set 3289*81418a27Smrg flag_excess_precision_cmdline. Give an error for 3290*81418a27Smrg -fexcess-precision=standard for processors where the option is 3291*81418a27Smrg significant. 3292*81418a27Smrg 3293*81418a27Smrg2009-03-29 Joseph Myers <joseph@codesourcery.com> 3294*81418a27Smrg 3295*81418a27Smrg PR preprocessor/34695 3296*81418a27Smrg * cpp.c (cb_cpp_error): New. 3297*81418a27Smrg (gfc_cpp_post_options): Don't set cpp_option->inhibit_warnings. 3298*81418a27Smrg Don't check cpp_errors (cpp_in). 3299*81418a27Smrg (gfc_cpp_init_0): Set cb->error. 3300*81418a27Smrg 3301*81418a27Smrg2009-03-29 Steven G. Kargl <kargl@gcc.gnu.org> 3302*81418a27Smrg 3303*81418a27Smrg PR fortran/38823 3304*81418a27Smrg * gfortran.h: Add ARITH_PROHIBIT to arith enum. 3305*81418a27Smrg expr.c (gfc_match_init_expr): Add global variable init_flag to 3306*81418a27Smrg flag matching an initialization expression. 3307*81418a27Smrg (check_intrinsic_op): Move no longer reachable error message to ... 3308*81418a27Smrg * arith.c (arith_power): ... here. Remove gfc_ prefix in 3309*81418a27Smrg gfc_arith_power. Use init_flag. Allow constant folding of x**y 3310*81418a27Smrg when y is REAL or COMPLEX. 3311*81418a27Smrg (eval_intrinsic): Remove restriction that y in x**y must be INTEGER 3312*81418a27Smrg for constant folding. 3313*81418a27Smrg * gfc_power: Update gfc_arith_power to arith_power 3314*81418a27Smrg 3315*81418a27Smrg2009-03-29 Daniel Kraft <d@domob.eu> 3316*81418a27Smrg 3317*81418a27Smrg PR fortran/37423 3318*81418a27Smrg * gfortran.h (struct gfc_typebound_proc): Added new flag "deferred" and 3319*81418a27Smrg added a comment explaining DEFERRED binding handling. 3320*81418a27Smrg * decl.c (match_binding_attributes): Really match DEFERRED attribute. 3321*81418a27Smrg (match_procedure_in_type): Really match PROCEDURE(interface) syntax 3322*81418a27Smrg and do some validity checks for DEFERRED and this construct. 3323*81418a27Smrg * module.c (binding_overriding): New string constant for DEFERRED. 3324*81418a27Smrg (mio_typebound_proc): Module-IO DEFERRED flag. 3325*81418a27Smrg * resolve.c (check_typebound_override): Ensure that a non-DEFERRED 3326*81418a27Smrg binding is not overridden by a DEFERRED one. 3327*81418a27Smrg (resolve_typebound_procedure): Allow abstract interfaces as targets 3328*81418a27Smrg for DEFERRED bindings. 3329*81418a27Smrg (ensure_not_abstract_walker), (ensure_not_abstract): New methods. 3330*81418a27Smrg (resolve_fl_derived): Use new "ensure_not_abstract" method for 3331*81418a27Smrg non-ABSTRACT types extending ABSTRACT ones to ensure each DEFERRED 3332*81418a27Smrg binding is overridden. 3333*81418a27Smrg (check_typebound_baseobject): New method. 3334*81418a27Smrg (resolve_compcall), (resolve_typebound_call): Check base-object of 3335*81418a27Smrg the type-bound procedure call. 3336*81418a27Smrg * gfc-internals.texi (Type-bound procedures): Document a little bit 3337*81418a27Smrg about internal handling of DEFERRED bindings. 3338*81418a27Smrg 3339*81418a27Smrg2009-03-29 Tobias Schlüter <tobi@gcc.gnu.org> 3340*81418a27Smrg 3341*81418a27Smrg PR fortran/38507 3342*81418a27Smrg * gfortran.h (gfc_st_label): Fix comment. 3343*81418a27Smrg (gfc_exec_op): Add statement code EXEC_END_BLOCK for end of block. 3344*81418a27Smrg * parse.c (accept_statement): Use EXEC_END_BLOCK for END IF and 3345*81418a27Smrg END SELECT with labels. 3346*81418a27Smrg (check_do_closure): Fix formatting. 3347*81418a27Smrg (parse_do_block): Fix typo in error message. 3348*81418a27Smrg * resolve.c (code_stack): Remove tail member. Update comment to 3349*81418a27Smrg new use of reachable_labels. 3350*81418a27Smrg (reachable_labels): Rename to ... 3351*81418a27Smrg (find_reachable_labels): ... this. Overhaul. Update preceding 3352*81418a27Smrg comment. 3353*81418a27Smrg (resolve_branch): Fix comment preceding function. Rewrite. 3354*81418a27Smrg (resolve_code): Update call to find_reachable_labels. Add code to 3355*81418a27Smrg deal with EXEC_END_BLOCK. 3356*81418a27Smrg * st.c (gfc_free_statement): Add code to deal with EXEC_END_BLOCK. 3357*81418a27Smrg Add 2009 to copyright years. 3358*81418a27Smrg * trans.c (gfc_trans_code): Likewise on both counts. 3359*81418a27Smrg 3360*81418a27Smrg2009-03-31 Paul Thomas <pault@gcc.gnu.org> 3361*81418a27Smrg 3362*81418a27Smrg PR fortran/38917 3363*81418a27Smrg * expr.c (gfc_check_assign): Allow pointer components when 3364*81418a27Smrg checking for NULL. 3365*81418a27Smrg 3366*81418a27Smrg PR fortran/38918 3367*81418a27Smrg * resolve.c (check_data_variable): Treat pointer arrays with 3368*81418a27Smrg scalars. 3369*81418a27Smrg 3370*81418a27Smrg2009-03-31 Paul Thomas <pault@gcc.gnu.org> 3371*81418a27Smrg 3372*81418a27Smrg PR fortran/38915 3373*81418a27Smrg * trans-expr.c (gfc_trans_assignment_1): Ensure temporaries 3374*81418a27Smrg have a string_length. 3375*81418a27Smrg 3376*81418a27Smrg2009-03-28 Tobias Burnus <burnus@net-b.de> 3377*81418a27Smrg 3378*81418a27Smrg PR fortran/34656 3379*81418a27Smrg * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do): 3380*81418a27Smrg Add GFC_RTCHECK_DO support. 3381*81418a27Smrg * option.c (gfc_handle_runtime_check_option): Enable GFC_RTCHECK_DO. 3382*81418a27Smrg * invoke.texi (-fcheck): Document "do" option. 3383*81418a27Smrg 3384*81418a27Smrg2009-03-28 Paul Thomas <pault@gcc.gnu.org> 3385*81418a27Smrg 3386*81418a27Smrg PR fortran/38538 3387*81418a27Smrg * trans-array.c (get_elemental_fcn_charlen): Remove. 3388*81418a27Smrg (get_array_charlen): New function to replace previous. 3389*81418a27Smrg 3390*81418a27Smrg2009-03-28 Paul Thomas <pault@gcc.gnu.org> 3391*81418a27Smrg 3392*81418a27Smrg PR fortran/38765 3393*81418a27Smrg * parse.c (parse_derived): Do not break on finding pointer, 3394*81418a27Smrg allocatable or private components. 3395*81418a27Smrg 3396*81418a27Smrg2009-03-28 Tobias Burnus <burnus@net-b.de> 3397*81418a27Smrg 3398*81418a27Smrg PR fortran/32626 3399*81418a27Smrg * option.c (gfc_handle_runtime_check_option): Enable recursion check. 3400*81418a27Smrg * trans-decl.c (gfc_generate_function_code): Add recursion check. 3401*81418a27Smrg * invoke.texi (-fcheck): Add recursive option. 3402*81418a27Smrg 3403*81418a27Smrg2009-03-28 Tobias Burnus <burnus@net-b.de> 3404*81418a27Smrg 3405*81418a27Smrg PR fortran/38432 3406*81418a27Smrg * resolve.c (gfc_resolve_iterator): Add zero-loop warning. 3407*81418a27Smrg 3408*81418a27Smrg2009-03-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3409*81418a27Smrg Paul Thomas <pault@gcc.gnu.org> 3410*81418a27Smrg Tobias Burnus <burnus@net-b.de> 3411*81418a27Smrg 3412*81418a27Smrg * gfortran.h (gfc_option_t): Add rtcheck. 3413*81418a27Smrg * lang.opt: New option -fcheck. 3414*81418a27Smrg * libgfortran.h: Add GFC_RTCHECK_* constants. 3415*81418a27Smrg * invoke.texi: Document -fcheck. 3416*81418a27Smrg * options.c (gfc_handle_runtime_check_option): New function. 3417*81418a27Smrg (gfc_init_options,gfc_post_options,gfc_handle_option): 3418*81418a27Smrg Add -fcheck option. 3419*81418a27Smrg 3420*81418a27Smrg2009-03-27 Richard Guenther <rguenther@suse.de> 3421*81418a27Smrg 3422*81418a27Smrg * trans-array.c (gfc_conv_descriptor_data_addr): Use 3423*81418a27Smrg gfc_build_addr_expr instead of build_fold_addr_expr. 3424*81418a27Smrg (gfc_trans_allocate_array_storage, gfc_trans_array_constructor_value, 3425*81418a27Smrg gfc_trans_constant_array_constructor, gfc_conv_array_data, 3426*81418a27Smrg gfc_conv_expr_descriptor, gfc_conv_array_parameter): Likewise. 3427*81418a27Smrg * trans-expr.c (gfc_conv_missing_dummy, gfc_conv_variable, 3428*81418a27Smrg gfc_conv_function_val, gfc_conv_operator_assign, 3429*81418a27Smrg gfc_conv_subref_array_arg, gfc_conv_function_call, 3430*81418a27Smrg gfc_conv_expr_reference, gfc_trans_scalar_assign): Likewise. 3431*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_exponent, 3432*81418a27Smrg gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate, 3433*81418a27Smrg gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax_char, 3434*81418a27Smrg gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_spacing, 3435*81418a27Smrg gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_set_exponent, 3436*81418a27Smrg gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer, 3437*81418a27Smrg gfc_conv_intrinsic_si_kind, gfc_conv_intrinsic_trim): Likewise. 3438*81418a27Smrg * trans-io.c (gfc_trans_io_runtime_check, set_parameter_ref, 3439*81418a27Smrg gfc_convert_array_to_string, gfc_trans_open, gfc_trans_close, 3440*81418a27Smrg build_filepos, gfc_trans_inquire, gfc_trans_wait, 3441*81418a27Smrg nml_get_addr_expr, transfer_namelist_element, build_dt, 3442*81418a27Smrg gfc_trans_dt_end, transfer_array_component, transfer_expr, 3443*81418a27Smrg transfer_array_desc, gfc_trans_transfer): Likewise. 3444*81418a27Smrg * trans-stmt.c (gfc_trans_allocate, gfc_trans_deallocate): Likewise. 3445*81418a27Smrg * trans.c (gfc_build_addr_expr): Mark the base of the address 3446*81418a27Smrg TREE_ADDRESSABLE. 3447*81418a27Smrg 3448*81418a27Smrg2009-03-27 Tobias Burnus <burnus@net-b.de> 3449*81418a27Smrg 3450*81418a27Smrg * gfortran.h (enum init_local_real.): Add GFC_INIT_REAL_SNAN. 3451*81418a27Smrg (gfc_expr): Add is_snan. 3452*81418a27Smrg * trans-const.c (gfc_conv_mpfr_to_tree): Support SNaN. 3453*81418a27Smrg (gfc_conv_constant_to_tree): Update call to gfc_conv_mpfr_to_tree. 3454*81418a27Smrg * trans-const.h (gfc_conv_mpfr_to_tree): Update prototype. 3455*81418a27Smrg * resolve.c (build_default_init_expr): Update call. 3456*81418a27Smrg * target-memory.c (encode_float): Ditto. 3457*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod, 3458*81418a27Smrg 3459*81418a27Smrg2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3460*81418a27Smrg 3461*81418a27Smrg * lang.opt: Unify help texts for -I, -Wconversion, -d, -fopenmp, 3462*81418a27Smrg and -fpreprocessed. 3463*81418a27Smrg 3464*81418a27Smrg2009-03-06 Alexandre Oliva <aoliva@redhat.com> 3465*81418a27Smrg 3466*81418a27Smrg * simplify.c (gfc_simplify_transfer): Zero-initialize the 3467*81418a27Smrg buffer. 3468*81418a27Smrg 3469*81418a27Smrg2009-02-27 Tobias Burnus <burnus@net-b.de> 3470*81418a27Smrg 3471*81418a27Smrg PR fortran/39309 3472*81418a27Smrg * module.c (read_md5_from_module_file): Add missing quote. 3473*81418a27Smrg 3474*81418a27Smrg2009-02-27 Tobias Burnus <burnus@net-b.de> 3475*81418a27Smrg 3476*81418a27Smrg PR fortran/39309 3477*81418a27Smrg * module.c (read_md5_from_module_file): Include mod version 3478*81418a27Smrg in had-changed test. 3479*81418a27Smrg 3480*81418a27Smrg2009-02-26 Paul Thomas <pault@gcc.gnu.org> 3481*81418a27Smrg 3482*81418a27Smrg PR fortran/39295 3483*81418a27Smrg * interface.c (compare_type_rank_if): Return 1 if the symbols 3484*81418a27Smrg are the same and deal with external procedures where one is 3485*81418a27Smrg identified to be a function or subroutine by usage but the 3486*81418a27Smrg other is not. 3487*81418a27Smrg 3488*81418a27Smrg2009-02-26 Paul Thomas <pault@gcc.gnu.org> 3489*81418a27Smrg 3490*81418a27Smrg PR fortran/39292 3491*81418a27Smrg * trans-array.c (gfc_conv_array_initializer): Convert all 3492*81418a27Smrg expressions rather than ICEing. 3493*81418a27Smrg 3494*81418a27Smrg2009-02-21 Thomas Koenig <tkoenig@gcc.gnu.org> 3495*81418a27Smrg 3496*81418a27Smrg PR fortran/38914 3497*81418a27Smrg * array.c (ref_dimen_size): Rename to gfc_ref_dimen_size, 3498*81418a27Smrg make global. Change function name in error messages. 3499*81418a27Smrg (ref_size): Change ref_dimen_size to gfc_ref_dimen_size. 3500*81418a27Smrg (gfc_array_ref_shape): Likewise. 3501*81418a27Smrg * gfortran.h: Add prototype for gfc_ref_dimen_size. 3502*81418a27Smrg * simplify.c (simplify_bound_dim): Add ref argument. 3503*81418a27Smrg If the reference isn't a full array, return one for 3504*81418a27Smrg the lower bound and the extent for the upper bound. 3505*81418a27Smrg (simplify_bound): For array sections, take as from the 3506*81418a27Smrg argument. Add reference to all to simplify_bound_dim. 3507*81418a27Smrg 3508*81418a27Smrg2009-02-19 Daniel Franke <franke.daniel@gmail.com> 3509*81418a27Smrg 3510*81418a27Smrg * scanner.c (load_line): At end of line, skip '\r' without setting 3511*81418a27Smrg the truncation flag. 3512*81418a27Smrg 3513*81418a27Smrg2009-02-18 Daniel Kraft <d@domob.eu> 3514*81418a27Smrg 3515*81418a27Smrg * gfortran.texi: New chapter about compiler characteristics. 3516*81418a27Smrg (Compiler Characteristics): Document KIND type parameters here. 3517*81418a27Smrg 3518*81418a27Smrg2009-02-18 Tobias Burnus <burnus@net-b.de> 3519*81418a27Smrg 3520*81418a27Smrg * intrinsic.texi (MALLOC): Make example more portable. 3521*81418a27Smrg 3522*81418a27Smrg2009-02-13 Mikael Morin <mikael@gcc.gnu.org> 3523*81418a27Smrg 3524*81418a27Smrg PR fortran/38259 3525*81418a27Smrg * module.c (gfc_dump_module,gfc_use_module): Add module 3526*81418a27Smrg version number. 3527*81418a27Smrg 3528*81418a27Smrg2009-02-13 Paul Thomas <pault@gcc.gnu.org> 3529*81418a27Smrg 3530*81418a27Smrg PR fortran/36703 3531*81418a27Smrg PR fortran/36528 3532*81418a27Smrg * trans-expr.c (gfc_conv_function_val): Stabilize Cray-pointer 3533*81418a27Smrg function references to ensure that a valid expression is used. 3534*81418a27Smrg (gfc_conv_function_call): Pass Cray pointers to procedures. 3535*81418a27Smrg 3536*81418a27Smrg2009-02-03 Jakub Jelinek <jakub@redhat.com> 3537*81418a27Smrg 3538*81418a27Smrg * gfortranspec.c (lang_specific_driver): Update copyright notice 3539*81418a27Smrg dates. 3540*81418a27Smrg 3541*81418a27Smrg2009-01-28 Paul Thomas <pault@gcc.gnu.org> 3542*81418a27Smrg 3543*81418a27Smrg PR fortran/38852 3544*81418a27Smrg PR fortran/39006 3545*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use the array 3546*81418a27Smrg descriptor ubound for UBOUND, when the array lbound == 1. 3547*81418a27Smrg 3548*81418a27Smrg2009-01-27 Daniel Kraft <d@domob.eu> 3549*81418a27Smrg 3550*81418a27Smrg PR fortran/38883 3551*81418a27Smrg * trans-stmt.c (gfc_conv_elemental_dependencies): Create temporary 3552*81418a27Smrg for the real type needed to make it work for subcomponent-references. 3553*81418a27Smrg 3554*81418a27Smrg2009-01-21 Daniel Kraft <d@domob.eu> 3555*81418a27Smrg 3556*81418a27Smrg * trans-stmt.c (gfc_conv_elemental_dependencies): Cleaned up comment. 3557*81418a27Smrg 3558*81418a27Smrg2009-01-20 Paul Thomas <pault@gcc.gnu.org> 3559*81418a27Smrg 3560*81418a27Smrg PR fortran/38907 3561*81418a27Smrg * resolve.c (check_host_association): Remove the matching to 3562*81418a27Smrg correct an incorrect host association and use manipulation of 3563*81418a27Smrg the expression instead. 3564*81418a27Smrg 3565*81418a27Smrg2009-01-20 Tobias Burnus <burnus@net-b.de> 3566*81418a27Smrg 3567*81418a27Smrg * invoke.texi (RANGE): RANGE also takes INTEGER arguments. 3568*81418a27Smrg 3569*81418a27Smrg2009-01-19 Mikael Morin <mikael@gcc.gnu.org> 3570*81418a27Smrg 3571*81418a27Smrg PR fortran/38859 3572*81418a27Smrg * simplify.c (simplify_bound): Don't use array specification 3573*81418a27Smrg if variable or component has subsequent references. 3574*81418a27Smrg 3575*81418a27Smrg2009-01-17 Paul Thomas <pault@gcc.gnu.org> 3576*81418a27Smrg 3577*81418a27Smrg PR fortran/38657 3578*81418a27Smrg * module.c (write_common_0): Add argument 'this_module' and 3579*81418a27Smrg check that non-use associated common blocks are written first. 3580*81418a27Smrg (write_common): Call write_common_0 twice, once with true and 3581*81418a27Smrg then with false. 3582*81418a27Smrg 3583*81418a27Smrg2009-01-17 Paul Thomas <pault@gcc.gnu.org> 3584*81418a27Smrg 3585*81418a27Smrg PR fortran/34955 3586*81418a27Smrg * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Has 3587*81418a27Smrg been absorbed into gfc_conv_intrinsic_transfer. All 3588*81418a27Smrg references to it in trans-intrinsic.c have been changed 3589*81418a27Smrg accordingly. PR fixed by using a temporary for scalar 3590*81418a27Smrg character transfer, when the source is shorter than the 3591*81418a27Smrg destination. 3592*81418a27Smrg 3593*81418a27Smrg2009-01-17 Paul Thomas <pault@gcc.gnu.org> 3594*81418a27Smrg 3595*81418a27Smrg PR fortran/38657 3596*81418a27Smrg * module.c (write_common_0): Revert patch of 2009-01-05. 3597*81418a27Smrg 3598*81418a27Smrg2009-01-16 Janus Weil <janus@gcc.gnu.org> 3599*81418a27Smrg 3600*81418a27Smrg PR fortran/38152 3601*81418a27Smrg * expr.c (gfc_check_pointer_assign): Allow use-associated procedure 3602*81418a27Smrg pointers as lvalue. 3603*81418a27Smrg * trans-decl.c (get_proc_pointer_decl,gfc_create_module_variable): 3604*81418a27Smrg Enable procedure pointers as module variables. 3605*81418a27Smrg 3606*81418a27Smrg2009-01-14 Steven G. Kargl <kargl@gcc.gnu.org> 3607*81418a27Smrg 3608*81418a27Smrg * ChangeLog-2007: Clean out svn merge droppings. 3609*81418a27Smrg 3610*81418a27Smrg2009-01-10 Paul Thomas <pault@gcc.gnu.org> 3611*81418a27Smrg 3612*81418a27Smrg PR fortran/38763 3613*81418a27Smrg * target-memory.c (encode_derived): Encode NULL. 3614*81418a27Smrg 3615*81418a27Smrg2009-01-10 Paul Thomas <pault@gcc.gnu.org> 3616*81418a27Smrg 3617*81418a27Smrg PR fortran/38765 3618*81418a27Smrg * resolve.c (check_host_association): Use the symtree name to 3619*81418a27Smrg search for a potential contained procedure, since this is the 3620*81418a27Smrg name by which it would be referenced. 3621*81418a27Smrg 3622*81418a27Smrg2009-01-06 Thomas Koenig <tkoenig@gcc.gnu.org> 3623*81418a27Smrg 3624*81418a27Smrg PR fortran/38220 3625*81418a27Smrg * interface.c (gfc_procedure_use): Don't warn about functions 3626*81418a27Smrg from ISO_C_BINDING. 3627*81418a27Smrg * symbol.c (generate_isocbinding_symbol): Mark c_loc and 3628*81418a27Smrg c_funloc as pure. 3629*81418a27Smrg 3630*81418a27Smrg2009-01-05 Paul Thomas <pault@gcc.gnu.org> 3631*81418a27Smrg 3632*81418a27Smrg PR fortran/38657 3633*81418a27Smrg * module.c (write_common_0): Use the name of the symtree rather 3634*81418a27Smrg than the common block, to determine if the common has been 3635*81418a27Smrg written. 3636*81418a27Smrg 3637*81418a27Smrg2009-01-05 Daniel Franke <franke.daniel@gmail.com> 3638*81418a27Smrg 3639*81418a27Smrg PR fortran/37159 3640*81418a27Smrg * check.c (gfc_check_random_seed): Added size check for GET 3641*81418a27Smrg dummy argument, reworded error messages to follow common pattern. 3642*81418a27Smrg 3643*81418a27Smrg2009-01-05 Thomas Koenig <tkoenig@gcc.gnu.org> 3644*81418a27Smrg 3645*81418a27Smrg PR fortran/38672 3646*81418a27Smrg * trans-types.c (gfc_get_derived_type): Check for the 3647*81418a27Smrg presence of derived->ns->proc_name before 3648*81418a27Smrg accessing derived->ns->proc_name->attr.flavor . 3649*81418a27Smrg * resolve.c (resolve_symbol): Likewise. 3650*81418a27Smrg 3651*81418a27Smrg2009-01-05 Paul Thomas <pault@gcc.gnu.org> 3652*81418a27Smrg 3653*81418a27Smrg PR fortran/38665 3654*81418a27Smrg * gfortran.h : Add bit to gfc_expr 'user_operator' 3655*81418a27Smrg * interface.c (gfc_extend_expr): Set the above if the operator 3656*81418a27Smrg is substituted by a function. 3657*81418a27Smrg * resolve.c (check_host_association): Return if above is set. 3658*81418a27Smrg 3659*81418a27Smrg2009-01-04 Mikael Morin <mikael@gcc.gnu.org> 3660*81418a27Smrg 3661*81418a27Smrg PR fortran/35681 3662*81418a27Smrg * ChangeLog-2008: Fix function name. 3663*81418a27Smrg 3664*81418a27Smrg PR fortran/38487 3665*81418a27Smrg * dependency.c (gfc_check_argument_var_dependency): 3666*81418a27Smrg Move the check for pointerness inside the if block 3667*81418a27Smrg so that it doesn't affect the return value. 3668*81418a27Smrg 3669*81418a27Smrg PR fortran/38669 3670*81418a27Smrg * trans-stmt.c (gfc_trans_call): 3671*81418a27Smrg Add the dependency code after the loop bounds calculation one. 3672*81418a27Smrg 3673*81418a27Smrg2009-01-04 Daniel Franke <franke.daniel@gmail.com> 3674*81418a27Smrg 3675*81418a27Smrg * intrinsic.c (do_simplify): Removed already implemented TODO. 3676*81418a27Smrg 3677*81418a27Smrg2009-01-04 Daniel Franke <franke.daniel@gmail.com> 3678*81418a27Smrg 3679*81418a27Smrg PR fortran/38718 3680*81418a27Smrg * simplify.c (gfc_simplify_merge): New. 3681*81418a27Smrg * intrinsic.h (gfc_simplify_merge): New prototype. 3682*81418a27Smrg * intrinsic.c (add_functions): Added simplification for MERGE. 3683*81418a27Smrg 3684*81418a27Smrg2009-01-04 Mikael Morin <mikael@gcc.gnu.org> 3685*81418a27Smrg 3686*81418a27Smrg PR fortran/38536 3687*81418a27Smrg * gfortran.h (gfc_is_data_pointer): Added prototype 3688*81418a27Smrg * resolve.c (gfc_iso_c_func_interface): 3689*81418a27Smrg Use gfc_is_data_pointer to test for pointer attribute. 3690*81418a27Smrg * dependency.c (gfc_is_data_pointer): 3691*81418a27Smrg Support pointer-returning functions. 3692*81418a27Smrg 3693*81418a27Smrg2009-01-03 Daniel Franke <franke.daniel@gmail.com> 3694*81418a27Smrg 3695*81418a27Smrg * symbol.c (save_symbol): Don't SAVE function results. 3696*81418a27Smrg 3697*81418a27Smrg2009-01-03 Paul Thomas <pault@gcc.gnu.org> 3698*81418a27Smrg 3699*81418a27Smrg PR fortran/38594 3700*81418a27Smrg * resolve.c (resolve_call): When searching for proper host 3701*81418a27Smrg association, use symtree rather than symbol. For everything 3702*81418a27Smrg except generic subroutines, substitute the symtree in the call 3703*81418a27Smrg rather than the symbol. 3704*81418a27Smrg 3705*81418a27Smrg 3706*81418a27SmrgCopyright (C) 2009 Free Software Foundation, Inc. 3707*81418a27Smrg 3708*81418a27SmrgCopying and distribution of this file, with or without modification, 3709*81418a27Smrgare permitted in any medium without royalty provided the copyright 3710*81418a27Smrgnotice and this notice are preserved. 3711