Message ID | 55AE40B2.5070307@sfr.fr |
---|---|
State | New |
Headers | show |
Hi Mikael, This looks fine to me - OK for trunk. Thanks for the patch Paul On 21 July 2015 at 14:53, Mikael Morin <mikael.morin@sfr.fr> wrote: > Hello, > > The fix for PR61831 committed recently [1] introduced/uncovered a NULLL > pointer dereference with iso_varying_string, because a generic symbol (which > has a NULL result) is used as procedure symbol, instead of the specific one. > Fixed by using esym if it's available. > > Regression-tested on x86_64-linux. OK for trunk? > > Mikael > > [1]: https://gcc.gnu.org/ml/gcc-patches/2015-06/msg01389.html >
Index: trans-array.c =================================================================== --- trans-array.c (révision 225979) +++ trans-array.c (copie de travail) @@ -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)