https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54880
Dominique d'Humieres <dominiq at lps dot ens.fr> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #5 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
> One way to get rid of the error is to simply remove the assert that causes it
> (which was already constrained by Paul for PR43450). However, I'm not sure if
> that's justified.
The asserts were introduced at revision r139773 to solve a problem with COMMON
and DW_TAG_common_block (PRs 23057 and 29635). I fail to understand their
logic: why
TYPE_CONTEXT (decl) = sym->ns->proc_name->backend_decl;
if
TYPE_CONTEXT (decl) == sym->ns->proc_name->backend_decl?
Updated patch
--- ../_clean/gcc/fortran/trans-decl.c 2019-02-02 01:32:53.000000000 +0100
+++ gcc/fortran/trans-decl.c 2019-02-02 09:32:15.000000000 +0100
@@ -4975,14 +4975,6 @@ gfc_create_module_variable (gfc_symbol *
decl = sym->backend_decl;
gcc_assert (sym->ns->proc_name->attr.flavor == FL_MODULE);
- if (!sym->attr.use_assoc && !sym->attr.used_in_submodule)
- {
- gcc_assert (TYPE_CONTEXT (decl) == NULL_TREE
- || TYPE_CONTEXT (decl) ==
sym->ns->proc_name->backend_decl);
- gcc_assert (DECL_CONTEXT (TYPE_STUB_DECL (decl)) == NULL_TREE
- || DECL_CONTEXT (TYPE_STUB_DECL (decl))
- == sym->ns->proc_name->backend_decl);
- }
TYPE_CONTEXT (decl) = sym->ns->proc_name->backend_decl;
DECL_CONTEXT (TYPE_STUB_DECL (decl)) = sym->ns->proc_name->backend_decl;
gfc_module_add_decl (cur_module, TYPE_STUB_DECL (decl));
> At least it does not introduce any regressions in the testsuite.
Removing an assert cannot introduce any regression.