aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <aldot@gcc.gnu.org>2023-05-18 18:04:10 +0200
committerBernhard Reutner-Fischer <aldot@gcc.gnu.org>2023-05-19 20:45:39 +0200
commit05b7cc7daac8b3c275bbe85194e1bb4f6e29b19c (patch)
tree388b73d83986867033471c991c0fe5154dc55e35 /gcc/fortran
parentcddb6dd6668843db351807ab8d2ff7440109f39a (diff)
downloadgcc-05b7cc7daac8b3c275bbe85194e1bb4f6e29b19c.zip
gcc-05b7cc7daac8b3c275bbe85194e1bb4f6e29b19c.tar.gz
gcc-05b7cc7daac8b3c275bbe85194e1bb4f6e29b19c.tar.bz2
fortran: Use CLASS_DATA from gfortran.h
gcc/fortran/ChangeLog: * expr.cc (gfc_get_corank): Use CLASS_DATA from gfortran.h. * resolve.cc (resolve_component): Same. (resolve_fl_derived0): Same. * simplify.cc (gfc_simplify_extends_type_of): Same. (simplify_cobound): Same.
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/expr.cc6
-rw-r--r--gcc/fortran/resolve.cc6
-rw-r--r--gcc/fortran/simplify.cc20
3 files changed, 16 insertions, 16 deletions
diff --git a/gcc/fortran/expr.cc b/gcc/fortran/expr.cc
index 073fb56..d5cfbe0 100644
--- a/gcc/fortran/expr.cc
+++ b/gcc/fortran/expr.cc
@@ -5847,9 +5847,9 @@ gfc_get_corank (gfc_expr *e)
if (!gfc_is_coarray (e))
return 0;
- if (e->ts.type == BT_CLASS && e->ts.u.derived->components)
- corank = e->ts.u.derived->components->as
- ? e->ts.u.derived->components->as->corank : 0;
+ if (e->ts.type == BT_CLASS && CLASS_DATA (e))
+ corank = CLASS_DATA (e)->as
+ ? CLASS_DATA (e)->as->corank : 0;
else
corank = e->symtree->n.sym->as ? e->symtree->n.sym->as->corank : 0;
diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index c3cb352..5f1fc96 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -15187,7 +15187,7 @@ resolve_component (gfc_component *c, gfc_symbol *sym)
/* Check type-spec if this is not the parent-type component. */
if (((sym->attr.is_class
&& (!sym->components->ts.u.derived->attr.extension
- || c != sym->components->ts.u.derived->components))
+ || c != CLASS_DATA (sym->components)))
|| (!sym->attr.is_class
&& (!sym->attr.extension || c != sym->components)))
&& !sym->attr.vtype
@@ -15200,7 +15200,7 @@ resolve_component (gfc_component *c, gfc_symbol *sym)
component. */
if (super_type
&& ((sym->attr.is_class
- && c == sym->components->ts.u.derived->components)
+ && c == CLASS_DATA (sym->components))
|| (!sym->attr.is_class && c == sym->components))
&& strcmp (super_type->name, c->name) == 0)
c->attr.access = super_type->attr.access;
@@ -15446,7 +15446,7 @@ resolve_fl_derived0 (gfc_symbol *sym)
return false;
}
- c = (sym->attr.is_class) ? sym->components->ts.u.derived->components
+ c = (sym->attr.is_class) ? CLASS_DATA (sym->components)
: sym->components;
success = true;
diff --git a/gcc/fortran/simplify.cc b/gcc/fortran/simplify.cc
index a7b4784..6ba2040 100644
--- a/gcc/fortran/simplify.cc
+++ b/gcc/fortran/simplify.cc
@@ -3116,28 +3116,28 @@ gfc_simplify_extends_type_of (gfc_expr *a, gfc_expr *mold)
/* Return .false. if the dynamic type can never be an extension. */
if ((a->ts.type == BT_CLASS && mold->ts.type == BT_CLASS
&& !gfc_type_is_extension_of
- (mold->ts.u.derived->components->ts.u.derived,
- a->ts.u.derived->components->ts.u.derived)
+ (CLASS_DATA (mold)->ts.u.derived,
+ CLASS_DATA (a)->ts.u.derived)
&& !gfc_type_is_extension_of
- (a->ts.u.derived->components->ts.u.derived,
- mold->ts.u.derived->components->ts.u.derived))
+ (CLASS_DATA (a)->ts.u.derived,
+ CLASS_DATA (mold)->ts.u.derived))
|| (a->ts.type == BT_DERIVED && mold->ts.type == BT_CLASS
&& !gfc_type_is_extension_of
- (mold->ts.u.derived->components->ts.u.derived,
+ (CLASS_DATA (mold)->ts.u.derived,
a->ts.u.derived))
|| (a->ts.type == BT_CLASS && mold->ts.type == BT_DERIVED
&& !gfc_type_is_extension_of
(mold->ts.u.derived,
- a->ts.u.derived->components->ts.u.derived)
+ CLASS_DATA (a)->ts.u.derived)
&& !gfc_type_is_extension_of
- (a->ts.u.derived->components->ts.u.derived,
+ (CLASS_DATA (a)->ts.u.derived,
mold->ts.u.derived)))
return gfc_get_logical_expr (gfc_default_logical_kind, &a->where, false);
/* Return .true. if the dynamic type is guaranteed to be an extension. */
if (a->ts.type == BT_CLASS && mold->ts.type == BT_DERIVED
&& gfc_type_is_extension_of (mold->ts.u.derived,
- a->ts.u.derived->components->ts.u.derived))
+ CLASS_DATA (a)->ts.u.derived))
return gfc_get_logical_expr (gfc_default_logical_kind, &a->where, true);
return NULL;
@@ -4344,8 +4344,8 @@ simplify_cobound (gfc_expr *array, gfc_expr *dim, gfc_expr *kind, int upper)
return NULL;
/* Follow any component references. */
- as = (array->ts.type == BT_CLASS && array->ts.u.derived->components)
- ? array->ts.u.derived->components->as
+ as = (array->ts.type == BT_CLASS && CLASS_DATA (array))
+ ? CLASS_DATA (array)->as
: array->symtree->n.sym->as;
for (ref = array->ref; ref; ref = ref->next)
{