https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125690
--- Comment #3 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
Simple fix.
diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index 9d8e913a84a..ff97d3996ca 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -11540,7 +11540,7 @@ structure_alloc_comps (gfc_symbol * der_type, tree
decl, tree dest,
gfc_add_expr_to_block (&fnblock, tmp);
}
- if (c->attr.pdt_array || c->attr.pdt_string)
+ if (c->attr.pdt_array || (c->attr.pdt_string && !c->as))
{
tmp = comp;
if (c->attr.pdt_array)