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;
}