diff options
author | Mikael Morin <mikael@gcc.gnu.org> | 2015-07-22 15:26:52 +0000 |
---|---|---|
committer | Mikael Morin <mikael@gcc.gnu.org> | 2015-07-22 15:26:52 +0000 |
commit | 252207bd03e4e0ba784aa60cdaa9f646ddcb3796 (patch) | |
tree | 6feb089ab741f2c76774c419e18c74b1122c02aa /gcc/fortran/trans-array.c | |
parent | bf976c5824620c9d581cebe75fee980d863bca15 (diff) | |
download | gcc-252207bd03e4e0ba784aa60cdaa9f646ddcb3796.zip gcc-252207bd03e4e0ba784aa60cdaa9f646ddcb3796.tar.gz gcc-252207bd03e4e0ba784aa60cdaa9f646ddcb3796.tar.bz2 |
Fix r225926's iso_varying_string ICE regression
PR fortran/61831
PR fortran/66929
gcc/fortran/
* trans-array.c (gfc_get_proc_ifc_for_expr): Use esym as procedure
symbol if available.
gcc/testsuite/
* gfortran.dg/generic_30.f90: New.
From-SVN: r226074
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r-- | gcc/fortran/trans-array.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index 1d5ddd0..c4cdbae 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -9166,7 +9166,11 @@ gfc_get_proc_ifc_for_expr (gfc_expr *procedure_ref) return NULL; /* Normal procedure case. */ - sym = procedure_ref->symtree->n.sym; + if (procedure_ref->expr_type == EXPR_FUNCTION + && procedure_ref->value.function.esym) + sym = procedure_ref->value.function.esym; + else + sym = procedure_ref->symtree->n.sym; /* Typebound procedure case. */ for (ref = procedure_ref->ref; ref; ref = ref->next) |