diff options
author | Andre Vehreschild <vehre@gcc.gnu.org> | 2025-03-17 08:24:04 +0100 |
---|---|---|
committer | Andre Vehreschild <vehre@gcc.gnu.org> | 2025-03-19 14:55:59 +0100 |
commit | 9a13dc48a3ac3282aaf9a77516b4f02faa60e393 (patch) | |
tree | bbc6667b99f1313987a97b49d3174fb959eca66d /gcc/fortran | |
parent | d50171bc07006dfb56cae487d72913e5d2567716 (diff) | |
download | gcc-9a13dc48a3ac3282aaf9a77516b4f02faa60e393.zip gcc-9a13dc48a3ac3282aaf9a77516b4f02faa60e393.tar.gz gcc-9a13dc48a3ac3282aaf9a77516b4f02faa60e393.tar.bz2 |
Fortran: Fix comp call in associate [PR119272]
PR fortran/119272
gcc/fortran/ChangeLog:
* resolve.cc (resolve_compcall): Postpone error report when
symbol is not resolved yet for component call resolve.
gcc/testsuite/ChangeLog:
* gfortran.dg/associate_74.f90: New test.
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/resolve.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc index ddd9827..b9c469a 100644 --- a/gcc/fortran/resolve.cc +++ b/gcc/fortran/resolve.cc @@ -7351,8 +7351,9 @@ resolve_compcall (gfc_expr* e, const char **name) /* Check that's really a FUNCTION. */ if (!e->value.compcall.tbp->function) { - gfc_error ("%qs at %L should be a FUNCTION", - e->value.compcall.name, &e->where); + if (e->symtree && e->symtree->n.sym->resolve_symbol_called) + gfc_error ("%qs at %L should be a FUNCTION", e->value.compcall.name, + &e->where); return false; } |