https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118896
--- Comment #1 from Mikael Morin <mikael at gcc dot gnu.org> --- Draft patch: diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc index 4ae22a5584d..95d39e837e9 100644 --- a/gcc/fortran/trans-decl.cc +++ b/gcc/fortran/trans-decl.cc @@ -2085,7 +2085,8 @@ gfc_get_symbol_decl (gfc_symbol * sym) if (sym->attr.vtab || def_init) { DECL_ARTIFICIAL (decl) = 1; - if (def_init && sym->value) + if (sym->attr.vtab + || (def_init && sym->value)) TREE_READONLY (decl) = 1; }