aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.cc
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@baylibre.com>2024-03-11 22:38:33 +0100
committerThomas Schwinge <tschwinge@baylibre.com>2024-03-11 22:38:33 +0100
commit4235574518bd016f208b97f6f497978c31771e12 (patch)
tree06362f23752d180e7ce4e6407787beba9634505c /gcc/fortran/resolve.cc
parent2cd7fb664ce9617c90b65b399423d330e1a78068 (diff)
parent0d9b4e8647ff01c3d3a782ab26684ca5a7c2f527 (diff)
downloadgcc-4235574518bd016f208b97f6f497978c31771e12.zip
gcc-4235574518bd016f208b97f6f497978c31771e12.tar.gz
gcc-4235574518bd016f208b97f6f497978c31771e12.tar.bz2
Merge commit '46595ce72e5855189e3c60a140c3ca5aaddfb58c^' into HEAD
Diffstat (limited to 'gcc/fortran/resolve.cc')
-rw-r--r--gcc/fortran/resolve.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index 1042b8c..861f69a 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -13326,6 +13326,7 @@ resolve_fl_var_and_proc (gfc_symbol *sym, int mp_flag)
&& sym->ts.u.derived
&& !sym->attr.select_type_temporary
&& !UNLIMITED_POLY (sym)
+ && CLASS_DATA (sym)
&& CLASS_DATA (sym)->ts.u.derived
&& !gfc_type_is_extensible (CLASS_DATA (sym)->ts.u.derived))
{
@@ -16068,7 +16069,8 @@ resolve_symbol (gfc_symbol *sym)
specification_expr = saved_specification_expr;
}
- if (sym->ts.type == BT_CLASS && sym->attr.class_ok && sym->ts.u.derived)
+ if (sym->ts.type == BT_CLASS && sym->attr.class_ok && sym->ts.u.derived
+ && CLASS_DATA (sym))
{
as = CLASS_DATA (sym)->as;
class_attr = CLASS_DATA (sym)->attr;