• pault's avatar
    2005-01-26 Paul Thomas <pault@gcc.gnu.org> · 5e8cd291
    pault authored
    	PR fortran/25964
    	* resolve.c (resolve_function): Exclude statement functions from
    	global reference checking.
    
    	PR fortran/25084
    	PR fortran/20852
    	PR fortran/25085
    	PR fortran/25086
    	* resolve.c (resolve_function): Declare a gfc_symbol to replace the
    	references through the symtree to the symbol associated with the
    	function expresion. Give error on reference to an assumed character
    	length function is defined in an interface or an external function
    	that is not a dummy argument.
    	(resolve_symbol): Give error if an assumed character length function
    	is array-valued, pointer-valued, pure or recursive. Emit warning
    	that character(*) value functions are obsolescent in F95.
    
    	PR fortran/25416
    	* trans-expr.c (gfc_conv_function_call): The above patch to resolve.c
    	prevents any assumed character length function call from getting here
    	except intrinsics such as SPREAD. In this case, ensure that no
    	segfault occurs from referencing non-existent charlen->length->
    	expr_type and provide a backend_decl for the charlen from the charlen
    	of the first actual argument.
    
    	Cure temp name confusion.
    	* trans-expr.c (gfc_get_interface_mapping_array): Change name of
    	temporary from "parm" to "ifm" to avoid clash with temp coming from
    	trans-array.c.
    
    2005-01-26  Paul Thomas  <pault@gcc.gnu.org>
    
    	PR fortran/25964
    	* gfortran.dg/global_references_2.f90: New test.
    
    	PR fortran/25084
    	PR fortran/20852
    	PR fortran/25085
    	PR fortran/25086
    	* gfortran.dg/assumed_charlen_function_1.f90: New test.
    	* gfortran.dg/assumed_charlen_function_3.f90: New test.
    
    	PR fortran/25416
    	* gfortran.dg/assumed_charlen_function_2.f90: New test.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110269 138bc75d-0d04-0410-961f-82ee72b054a4
    5e8cd291
trans-expr.c 83.5 KB