aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorTobias Burnus <tobias@codesourcery.com>2020-12-17 10:39:09 +0100
committerTobias Burnus <tobias@codesourcery.com>2020-12-17 10:39:09 +0100
commitba9fa684053917a07bfa8f4742da0e196e72b9a2 (patch)
treec0f9d973ed27ff6aac1ee1d0391abbfff082e0dd /gcc/fortran/resolve.c
parentc09deceb534b82ce144af3a345dcb06ab5e49ba4 (diff)
downloadgcc-ba9fa684053917a07bfa8f4742da0e196e72b9a2.zip
gcc-ba9fa684053917a07bfa8f4742da0e196e72b9a2.tar.gz
gcc-ba9fa684053917a07bfa8f4742da0e196e72b9a2.tar.bz2
Fortran: Delay vtab generation until after parsing [PR92587]
gcc/fortran/ChangeLog: PR fortran/92587 * match.c (gfc_match_assignment): Move gfc_find_vtab call from here ... * resolve.c (gfc_resolve_code): ... to here. gcc/testsuite/ChangeLog: PR fortran/92587 * gfortran.dg/finalize_37.f90: New test.
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 05a5e43..1da7ba4 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -11896,6 +11896,9 @@ start:
if (!t)
break;
+ if (code->expr1->ts.type == BT_CLASS)
+ gfc_find_vtab (&code->expr2->ts);
+
/* Remove a GFC_ISYM_CAF_GET inserted for a coindexed variable on
the LHS. */
if (code->expr1->expr_type == EXPR_FUNCTION