https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102745
Bug ID: 102745 Summary: CLASS → TYPE check fails after RESHAPE Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: accepts-invalid, diagnostic Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org Target Milestone: --- Found when working on PR102689 Expected: * 'CLASS(t)' in the first error message * an error for passing CLASS(t) to TYPE(t2) in the call with RESHAPE. implicit none (type, external) type t end type t type, extends(t) :: t2 integer :: i end type t2 class(t), allocatable :: A(:), B(:,:,:) allocate (t2 :: A(100), B(10,10,1)) call bar(A) ! Rejected (with slightly odd message: Error: Type mismatch in argument ‘x’ at (1); passed CLASS(__class_MAIN___T_1_0a) to TYPE(t2) call bar(reshape(B, [size(B)])) ! Wrongly accepted contains subroutine bar(x) type(t2), intent(in) :: x(:) end end