diff options
author | Tobias Burnus <tobias@codesourcery.com> | 2020-12-17 10:39:09 +0100 |
---|---|---|
committer | Tobias Burnus <tobias@codesourcery.com> | 2020-12-17 10:39:09 +0100 |
commit | ba9fa684053917a07bfa8f4742da0e196e72b9a2 (patch) | |
tree | c0f9d973ed27ff6aac1ee1d0391abbfff082e0dd /gcc/fortran/resolve.c | |
parent | c09deceb534b82ce144af3a345dcb06ab5e49ba4 (diff) | |
download | gcc-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.c | 3 |
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 |