[Bug fortran/83076] [8 Regression] ICE in gfc_deallocate_scalar_with_status, at fortran/trans.c:1598

pault at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Nov 26 14:35:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83076

--- Comment #4 from Paul Thomas <pault at gcc dot gnu.org> ---
(In reply to Paul Thomas from comment #3)
> Yes, indeed it was the main part of my patch. I cannot see at the moment,
> though, why forcing the creation of a vtable is having this effect on caf in
> deallocate.
> 
> The call to gfc_caf_attr at trans-stmt.c:6644 is detecting that the
> component does not have attr.coarray_comp set so that is_coarray_array does
> not get set a few lines later and the wrong branch is taken at line 6661.
> Setting the latter flag in gdb at line 6651 allows the compilation to
> complete successfully.
> 
> Why a call to gfc_find_derived_vtab should have this effect is not evident
> to me at the moment. I'll take it though.
> 
> Thanks for the heads up, Jakub.
> 
> Paul

When I revert the patch for pr81447 (r254427) the testcase here compiles.
However, adding a class declaration triggers the same problem:

module m
   type t
      integer, pointer :: z
   end type
   class(t), allocatable :: c ! <= This triggers the same problem.
contains
   function f(x)
      type(t) :: x[*]
      if ( associated(x%z) ) deallocate(x%z)
   end
end

Hence, I would say that it is a pre-existing problem that has been exposed by
the fix for r254427 and is not really a regression.

Paul


More information about the Gcc-bugs mailing list