https://gcc.gnu.org/g:5af69f2a126d1bbdafa2adab4bc44c225462fcb3

commit 5af69f2a126d1bbdafa2adab4bc44c225462fcb3
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 fc34084d9238..58e5382b72c6 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