! { dg-do compile } ! PR fortran/101536 - ICE in gfc_conv_expr_descriptor program p type s class(*), allocatable :: c end type type t class(*), allocatable :: c(:) end type t type u integer :: c(2) end type type(t) :: x x%c = [1,2,3,4] ! print *, size (x) print *, size (x%c) print *, size (x%c(1)) ! { dg-error "must be an array" } contains integer function f(x, y, z) class(t), allocatable :: x(:) class(u) :: y(:) class(s) :: z f = size (x) f = size (x(1)) ! { dg-error "must be an array" } f = size (y) f = size (y%c(1)) f = size (y(2)%c) f = size (y(2)%c(1)) ! { dg-error "must be an array" } f = size (z) ! { dg-error "must be an array" } f = size (z% c) ! { dg-error "must be an array" } end end