From: Steven G. Kargl Date: Wed, 23 Nov 2016 21:44:05 +0000 (+0000) Subject: re PR fortran/78297 (ICE in finish_equivalences, at fortran/trans-common.c:1246) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=91c9fb42c0c9121b745779bb86e7ac6dae4363b7;p=gcc.git re PR fortran/78297 (ICE in finish_equivalences, at fortran/trans-common.c:1246) 2016-11-23 Steven G. Kargl PR fortran/78297 * trans-common.c (finish_equivalences): Do not dereference a NULL pointer. 2016-11-23 Steven G. Kargl PR fortran/78297 * gfortran.dg/pr78297.f90: New test. From-SVN: r242802 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index adeb08da896..e468a492881 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2016-11-23 Steven G. Kargl + + PR fortran/78297 + * trans-common.c (finish_equivalences): Do not dereference a NULL pointer. + 2016-11-23 Martin Jambor * f95-lang.c (DEF_HSA_BUILTIN): New macro. diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c index 3207105505d..7706809b4a2 100644 --- a/gcc/fortran/trans-common.c +++ b/gcc/fortran/trans-common.c @@ -1246,8 +1246,12 @@ finish_equivalences (gfc_namespace *ns) { c = gfc_get_common_head (); /* We've lost the real location, so use the location of the - enclosing procedure. */ - c->where = ns->proc_name->declared_at; + enclosing procedure. If we're in a BLOCK DATA block, then + use the location in the sym_root. */ + if (ns->proc_name) + c->where = ns->proc_name->declared_at; + else if (ns->is_block_data) + c->where = ns->sym_root->n.sym->declared_at; strcpy (c->name, z->module); } else diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6954431779b..77ada38e93b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-11-23 Steven G. Kargl + + PR fortran/78297 + * gfortran.dg/pr78297.f90: New test. + 2016-11-23 David Edelsohn * gcc.target/powerpc/builtins-3.c: Add -maltivec and -mvsx options. diff --git a/gcc/testsuite/gfortran.dg/pr78297.f90 b/gcc/testsuite/gfortran.dg/pr78297.f90 new file mode 100644 index 00000000000..9c3d1aaab5e --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr78297.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +module m + real :: a(2), b(2) + real :: c(2), d(2) + equivalence (a, b) + equivalence (c, d) + common /xcom/ a +end +block data + use m +end block data