aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorAlessandro Fanfarillo <fanfarillo.gcc@gmail.com>2012-05-13 04:52:32 -0600
committerTobias Burnus <burnus@gcc.gnu.org>2012-05-13 12:52:32 +0200
commit8ae1ec924d6775e4ed3dab5546ff8344b63321ee (patch)
treea3bff2c8461bdb75f783900d38a4aa797b862fe1 /gcc/fortran/resolve.c
parentbf4c7d4a02e79fd43131865dbc104286130273ea (diff)
downloadgcc-8ae1ec924d6775e4ed3dab5546ff8344b63321ee.zip
gcc-8ae1ec924d6775e4ed3dab5546ff8344b63321ee.tar.gz
gcc-8ae1ec924d6775e4ed3dab5546ff8344b63321ee.tar.bz2
re PR fortran/52158 (Regression on character function with gfortran 4.7)
2012-05-13 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> Tobias Burnus <burnus@net-b.de> PR fortran/52158 PR fortran/45170 PR fortran/49430 * resolve.c (resolve_fl_derived0): Deferred character length procedure components are supported. * trans-expr.c (gfc_conv_procedure_call): Handle TBP with deferred-length results. (gfc_string_to_single_character): Add a new check to prevent NULL read. (gfc_conv_procedure_call): Remove unuseful checks on symbol's attributes. Add new checks to prevent NULL read on string length. 2012-05-13 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> PR fortran/45170 * gfortran.dg/deferred_type_param_3.f90: New. * gfortran.dg/deferred_type_proc_pointer_1.f90: New. * gfortran.dg/deferred_type_proc_pointer_2.f90: New. Co-Authored-By: Tobias Burnus <burnus@net-b.de> From-SVN: r187436
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 4a07230..9814c14 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -11665,7 +11665,7 @@ resolve_fl_derived0 (gfc_symbol *sym)
for ( ; c != NULL; c = c->next)
{
/* See PRs 51550, 47545, 48654, 49050, 51075 - and 45170. */
- if (c->ts.type == BT_CHARACTER && c->ts.deferred)
+ if (c->ts.type == BT_CHARACTER && c->ts.deferred && !c->attr.function)
{
gfc_error ("Deferred-length character component '%s' at %L is not "
"yet supported", c->name, &c->loc);