aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/misc.c
diff options
context:
space:
mode:
authorLouis Krupp <louis.krupp@zoho.com>2018-01-16 01:09:11 +0000
committerLouis Krupp <lkrupp@gcc.gnu.org>2018-01-16 01:09:11 +0000
commit75a3c61ae44b7820baf7946c3ddf3632adedcccf (patch)
treebc36aeb6e8b943718802996c56770e959baf1a07 /gcc/fortran/misc.c
parentc662b64cf93dbb8b0ef52acc9cc241afb2d6f221 (diff)
downloadgcc-75a3c61ae44b7820baf7946c3ddf3632adedcccf.zip
gcc-75a3c61ae44b7820baf7946c3ddf3632adedcccf.tar.gz
gcc-75a3c61ae44b7820baf7946c3ddf3632adedcccf.tar.bz2
re PR fortran/82257 (f951: Internal compiler error segmentation fault)
2018-01-15 Louis Krupp <louis.krupp@zoho.com> PR fortran/82257 * interface.c (compare_rank): Don't try to retrieve CLASS_DATA from symbol marked unlimited polymorphic. * resolve.c (resolve_structure_cons): Likewise. * misc.c (gfc_typename): Don't dereference derived->components if it's NULL. 2018-01-15 Louis Krupp <louis.krupp@zoho.com> PR fortran/82257 * gfortran.dg/unlimited_polymorphic_28.f90: New test. From-SVN: r256720
Diffstat (limited to 'gcc/fortran/misc.c')
-rw-r--r--gcc/fortran/misc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/misc.c b/gcc/fortran/misc.c
index 80d282e..ec1f548 100644
--- a/gcc/fortran/misc.c
+++ b/gcc/fortran/misc.c
@@ -156,7 +156,8 @@ gfc_typename (gfc_typespec *ts)
sprintf (buffer, "TYPE(%s)", ts->u.derived->name);
break;
case BT_CLASS:
- ts = &ts->u.derived->components->ts;
+ if (ts->u.derived->components)
+ ts = &ts->u.derived->components->ts;
if (ts->u.derived->attr.unlimited_polymorphic)
sprintf (buffer, "CLASS(*)");
else