re PR fortran/64324 (Deferred character specific functions not permitted in generic operator interface) 2016-01-15 Paul Thomas <pault@gcc.gnu.org> PR fortran/64324 * resolve.c (check_uop_procedure): Prevent deferred length characters from being trapped by assumed length error. PR fortran/49630 PR fortran/54070 PR fortran/60593 PR fortran/60795 PR fortran/61147 PR fortran/64324 * trans-array.c (gfc_conv_scalarized_array_ref): Pass decl for function as well as variable expressions. (gfc_array_init_size): Add 'expr' as an argument. Use this to correctly set the descriptor dtype for deferred characters. (gfc_array_allocate): Add 'expr' to the call to 'gfc_array_init_size'. * trans.c (gfc_build_array_ref): Expand logic for setting span to include indirect references to character lengths. * trans-decl.c (gfc_get_symbol_decl): Ensure that deferred result char lengths that are PARM_DECLs are indirectly referenced both for directly passed and by reference. (create_function_arglist): If the length type is a pointer type then store the length as the 'passed_length' and make the char length an indirect reference to it. (gfc_trans_deferred_vars): If a character length has escaped being set as an indirect reference, return it via the 'passed length'. * trans-expr.c (gfc_conv_procedure_call): The length of deferred character length results is set TREE_STATIC and set to zero. (gfc_trans_assignment_1): Do not fix the rse string_length if it is a variable, a parameter or an indirect reference. Add the code to trap assignment of scalars to unallocated arrays. * trans-stmt.c (gfc_trans_allocate): Remove 'def_str_len' and all references to it. Instead, replicate the code to obtain a explicitly defined string length and provide a value before array allocation so that the dtype is correctly set. trans-types.c (gfc_get_character_type): If the character length is a pointer, use the indirect reference. 2016-01-15 Paul Thomas <pault@gcc.gnu.org> PR fortran/49630 * gfortran.dg/deferred_character_13.f90: New test for the fix of comment 3 of the PR. PR fortran/54070 * gfortran.dg/deferred_character_8.f90: New test * gfortran.dg/allocate_error_5.f90: New test PR fortran/60593 * gfortran.dg/deferred_character_10.f90: New test PR fortran/60795 * gfortran.dg/deferred_character_14.f90: New test PR fortran/61147 * gfortran.dg/deferred_character_11.f90: New test PR fortran/64324 * gfortran.dg/deferred_character_9.f90: New test From-SVN: r232450
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
ChangeLog | Loading commit data... | |
ChangeLog-2002 | Loading commit data... | |
ChangeLog-2003 | Loading commit data... | |
ChangeLog-2004 | Loading commit data... | |
ChangeLog-2005 | Loading commit data... | |
ChangeLog-2006 | Loading commit data... | |
ChangeLog-2007 | Loading commit data... | |
ChangeLog-2008 | Loading commit data... | |
ChangeLog-2009 | Loading commit data... | |
ChangeLog-2010 | Loading commit data... | |
ChangeLog-2011 | Loading commit data... | |
ChangeLog-2012 | Loading commit data... | |
ChangeLog-2013 | Loading commit data... | |
ChangeLog-2014 | Loading commit data... | |
ChangeLog-2015 | Loading commit data... | |
ChangeLog.ptr | Loading commit data... | |
Make-lang.in | Loading commit data... | |
arith.c | Loading commit data... | |
arith.h | Loading commit data... | |
array.c | Loading commit data... | |
bbt.c | Loading commit data... | |
check.c | Loading commit data... | |
class.c | Loading commit data... | |
config-lang.in | Loading commit data... | |
constructor.c | Loading commit data... | |
constructor.h | Loading commit data... | |
convert.c | Loading commit data... | |
cpp.c | Loading commit data... | |
cpp.h | Loading commit data... | |
data.c | Loading commit data... | |
data.h | Loading commit data... | |
decl.c | Loading commit data... | |
dependency.c | Loading commit data... | |
dependency.h | Loading commit data... | |
dump-parse-tree.c | Loading commit data... | |
error.c | Loading commit data... | |
expr.c | Loading commit data... | |
f95-lang.c | Loading commit data... | |
frontend-passes.c | Loading commit data... | |
gfc-diagnostic.def | Loading commit data... | |
gfc-internals.texi | Loading commit data... | |
gfortran.h | Loading commit data... | |
gfortran.texi | Loading commit data... | |
gfortranspec.c | Loading commit data... | |
interface.c | Loading commit data... | |
intrinsic.c | Loading commit data... | |
intrinsic.h | Loading commit data... | |
intrinsic.texi | Loading commit data... | |
invoke.texi | Loading commit data... | |
io.c | Loading commit data... | |
ioparm.def | Loading commit data... | |
iresolve.c | Loading commit data... | |
iso-c-binding.def | Loading commit data... | |
iso-fortran-env.def | Loading commit data... | |
lang-specs.h | Loading commit data... | |
lang.opt | Loading commit data... | |
libgfortran.h | Loading commit data... | |
match.c | Loading commit data... | |
match.h | Loading commit data... | |
matchexp.c | Loading commit data... | |
mathbuiltins.def | Loading commit data... | |
misc.c | Loading commit data... | |
module.c | Loading commit data... | |
openmp.c | Loading commit data... | |
options.c | Loading commit data... | |
parse.c | Loading commit data... | |
parse.h | Loading commit data... | |
primary.c | Loading commit data... | |
resolve.c | Loading commit data... | |
scanner.c | Loading commit data... | |
scanner.h | Loading commit data... | |
simplify.c | Loading commit data... | |
st.c | Loading commit data... | |
symbol.c | Loading commit data... | |
target-memory.c | Loading commit data... | |
target-memory.h | Loading commit data... | |
trans-array.c | Loading commit data... | |
trans-array.h | Loading commit data... | |
trans-common.c | Loading commit data... | |
trans-const.c | Loading commit data... | |
trans-const.h | Loading commit data... | |
trans-decl.c | Loading commit data... | |
trans-expr.c | Loading commit data... | |
trans-intrinsic.c | Loading commit data... | |
trans-io.c | Loading commit data... | |
trans-openmp.c | Loading commit data... | |
trans-stmt.c | Loading commit data... | |
trans-stmt.h | Loading commit data... | |
trans-types.c | Loading commit data... | |
trans-types.h | Loading commit data... | |
trans.c | Loading commit data... | |
trans.h | Loading commit data... | |
types.def | Loading commit data... |