Commit d1207938 by Harald Anlauf

PR fortran/95881 - ICE in resolve_symbol, at fortran/resolve.c:15175

Avoid NULL pointer dereference.

gcc/fortran/
	PR fortran/95881
	* resolve.c (resolve_symbol): Avoid NULL pointer dereference.

(cherry picked from commit 3cbc0fb39c84ae0a51a9a88649dccd105bf17d6e)
parent a047e180
...@@ -15173,6 +15173,7 @@ resolve_symbol (gfc_symbol *sym) ...@@ -15173,6 +15173,7 @@ resolve_symbol (gfc_symbol *sym)
if (flag_coarray == GFC_FCOARRAY_LIB && sym->ts.type == BT_CLASS if (flag_coarray == GFC_FCOARRAY_LIB && sym->ts.type == BT_CLASS
&& sym->ts.u.derived && CLASS_DATA (sym) && sym->ts.u.derived && CLASS_DATA (sym)
&& CLASS_DATA (sym)->attr.codimension && CLASS_DATA (sym)->attr.codimension
&& CLASS_DATA (sym)->ts.u.derived
&& (CLASS_DATA (sym)->ts.u.derived->attr.alloc_comp && (CLASS_DATA (sym)->ts.u.derived->attr.alloc_comp
|| CLASS_DATA (sym)->ts.u.derived->attr.pointer_comp)) || CLASS_DATA (sym)->ts.u.derived->attr.pointer_comp))
{ {
......
! { dg-do compile }
! { dg-options "-fcoarray=lib" }
! PR fortran/95881 - ICE in resolve_symbol, at fortran/resolve.c:15175
program p
type t
real, allocatable :: a[:]
end type t
class(t) :: x ! { dg-error "must be dummy, allocatable or pointer" }
allocate (x%a[*])
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment