diff options
Diffstat (limited to 'gcc/fortran/trans.c')
-rw-r--r-- | gcc/fortran/trans.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c index aa10fbb..153bab6 100644 --- a/gcc/fortran/trans.c +++ b/gcc/fortran/trans.c @@ -407,7 +407,12 @@ gfc_build_array_ref (tree base, tree offset, tree decl, tree vptr) if (vptr) span = gfc_vptr_size_get (vptr); else if (decl) - span = get_array_span (type, decl); + { + if (TREE_CODE (decl) == COMPONENT_REF) + span = gfc_conv_descriptor_span_get (decl); + else + span = get_array_span (type, decl); + } /* If a non-null span has been generated reference the element with pointer arithmetic. */ |