https://gcc.gnu.org/g:c48991de146e5827e9c647f2176e4d51e80c36ff

commit c48991de146e5827e9c647f2176e4d51e80c36ff
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Thu May 15 19:29:10 2025 +0200

    Correction régression select_type_50

Diff:
---
 gcc/fortran/trans-expr.cc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index f4838f2d48c7..ba32bd9bfd07 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -830,7 +830,9 @@ gfc_conv_derived_to_class (gfc_se *parmse, gfc_expr *e, 
gfc_symbol *fsym,
   var = gfc_create_var (tmp, "class");
 
   /* Set the vptr.  */
-  if (opt_vptr_src)
+  if (parmse->class_container)
+    gfc_class_set_vptr (&parmse->pre, var, parmse->class_container);
+  else if (opt_vptr_src)
     gfc_class_set_vptr (&parmse->pre, var, opt_vptr_src);
   else
     gfc_reset_vptr (&parmse->pre, e, var);

Reply via email to