[gcc(refs/users/mikael/heads/refactor_descriptor_v05)] Correction régression dynamic_dispatch_11.f03
Mikael Morin
mikael@gcc.gnu.org
Fri Jun 13 14:49:36 GMT 2025
https://gcc.gnu.org/g:5a3b0ae51f90ebbc42e3af136f59efa7663313c9
commit 5a3b0ae51f90ebbc42e3af136f59efa7663313c9
Author: Mikael Morin <mikael@gcc.gnu.org>
Date: Tue Mar 11 12:17:15 2025 +0100
Correction régression dynamic_dispatch_11.f03
Resolve class symbol type.
Diff:
---
gcc/fortran/gfortran.h | 1 +
gcc/fortran/resolve.cc | 7 +++++++
gcc/fortran/trans-types.cc | 2 ++
3 files changed, 10 insertions(+)
diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
index 959a64515cdd..46d65ce1694f 100644
--- a/gcc/fortran/gfortran.h
+++ b/gcc/fortran/gfortran.h
@@ -3533,6 +3533,7 @@ void gfc_maybe_initialize_eh (void);
/* iresolve.cc */
const char * gfc_get_string (const char *, ...) ATTRIBUTE_PRINTF_1;
bool gfc_find_sym_in_expr (gfc_symbol *, gfc_expr *);
+void gfc_resolve_symbol (gfc_symbol *);
/* error.cc */
locus gfc_get_location_range (locus *, unsigned, locus *, unsigned, locus *);
diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index 7edddf4583a4..051d20fb8071 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -18130,6 +18130,13 @@ skip_interfaces:
}
+void
+gfc_resolve_symbol (gfc_symbol *sym)
+{
+ resolve_symbol (sym);
+}
+
+
/************* Resolve DATA statements *************/
static struct
diff --git a/gcc/fortran/trans-types.cc b/gcc/fortran/trans-types.cc
index 8d96a29a65c4..2a111af8c4ae 100644
--- a/gcc/fortran/trans-types.cc
+++ b/gcc/fortran/trans-types.cc
@@ -2876,6 +2876,8 @@ get_class_canonical_type (gfc_symbol *derived, int rank, int corank)
gfc_build_class_symbol (&ts, &attr, &pas);
gfc_find_symbol (class_name, ns, 0, &canonical_class);
+ if (canonical_class)
+ gfc_resolve_symbol (canonical_class);
return canonical_class;
}
More information about the Gcc-cvs
mailing list