Moved from PR 40011 comment 40 into an extra PR. Joost reported that the
following ICEs in gfc_create_module_variable, at fortran/trans-decl.c:3386

The failing assert is:

      gcc_assert (TYPE_CONTEXT (decl) == NULL_TREE
                  || TYPE_CONTEXT (decl) == sym->ns->proc_name->backend_decl);

debugging shows:

p sym->backend_decl->type.context
$6 = (tree) 0x2aaaacba85c0
p sym->ns->proc_name->backend_decl->type.context
$7 = (tree) 0x0

where:
(gdb) p sym->ns->proc_name->name
$2 = 0x2aaaacc37e70 "ep_types"
(gdb) p sym->name
$3 = 0x2aaaacc5e588 "replica_env_type"


MODULE replica_types
  TYPE replica_env_type
  END TYPE replica_env_type
CONTAINS
  SUBROUTINE rep_env_create(rep_env, para_env, input, nrep, prep,&
       sync_v,keep_wf_history,row_force)
  END SUBROUTINE rep_env_create
  SUBROUTINE rep_envs_add_rep_env(rep_env)
    TYPE(replica_env_type), POINTER          :: rep_env
  END SUBROUTINE rep_envs_add_rep_env
END MODULE replica_types
MODULE ep_types
  USE replica_types
  TYPE ep_env_type
     TYPE(replica_env_type), POINTER :: mol_envs
  END TYPE ep_env_type
  TYPE ep_env_p_type
     TYPE(ep_env_type), POINTER :: ep_env
  END TYPE ep_env_p_type
  TYPE(ep_env_p_type), DIMENSION(:), POINTER :: ep_envs
CONTAINS
  SUBROUTINE ep_force_release()
  END SUBROUTINE ep_force_release
END MODULE ep_types


-- 
           Summary: -fwhole-file: ICE in gfc_create_module_variable, at
                    fortran/trans-decl.c:3386
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: burnus at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43450

Reply via email to