diff options
author | Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> | 2012-05-13 04:52:32 -0600 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2012-05-13 12:52:32 +0200 |
commit | 8ae1ec924d6775e4ed3dab5546ff8344b63321ee (patch) | |
tree | a3bff2c8461bdb75f783900d38a4aa797b862fe1 /gcc/fortran/resolve.c | |
parent | bf4c7d4a02e79fd43131865dbc104286130273ea (diff) | |
download | gcc-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.c | 2 |
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); |