diff options
author | Tobias Burnus <burnus@net-b.de> | 2012-05-12 11:53:53 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2012-05-12 11:53:53 +0200 |
commit | dd9123310d0f4e6d7815d5c44f9c8c0e59521a6f (patch) | |
tree | 933fc64572ba82a7f17d058ef604c136a4519126 /gcc/fortran | |
parent | 3906795848d851fde84d9cc12067f153561bb11a (diff) | |
download | gcc-dd9123310d0f4e6d7815d5c44f9c8c0e59521a6f.zip gcc-dd9123310d0f4e6d7815d5c44f9c8c0e59521a6f.tar.gz gcc-dd9123310d0f4e6d7815d5c44f9c8c0e59521a6f.tar.bz2 |
re PR fortran/49110 (Deferred-length character result triggers (false positive) error for pure procedures)
2012-05-12 Tobias Burnus <burnus@net-b.de>
PR fortran/49110
PR fortran/52843
* resolve.c (resolve_fl_procedure): Don't regard
character(len=:) as character(*) in the diagnostic.
2012-05-12 Tobias Burnus <burnus@net-b.de>
PR fortran/49110
PR fortran/52843
* gfortran.dg/deferred_type_param_5.f90: New.
From-SVN: r187427
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index e761ef5..faffa29 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2012-05-12 Tobias Burnus <burnus@net-b.de> + + PR fortran/49110 + PR fortran/52843 + * resolve.c (resolve_fl_procedure): Don't regard + character(len=:) as character(*) in the diagnostic. + 2012-05-11 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/52537 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index b3a23ed..4a07230 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -10726,7 +10726,7 @@ resolve_fl_procedure (gfc_symbol *sym, int mp_flag) actual length; (ii) To declare a named constant; or (iii) External function - but length must be declared in calling scoping unit. */ if (sym->attr.function - && sym->ts.type == BT_CHARACTER + && sym->ts.type == BT_CHARACTER && !sym->ts.deferred && sym->ts.u.cl && sym->ts.u.cl->length == NULL) { if ((sym->as && sym->as->rank) || (sym->attr.pointer) |