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

Paul Thomas <pault at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pault at gcc dot gnu.org

--- Comment #3 from Paul Thomas <pault at gcc dot gnu.org> ---
Created attachment 49743
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49743&action=edit
Fix for this PR and PR97723

This regtests and fixes both PRs

Paul

select_rank_5.f90:

! { dg-do run }
!
! Test the fixes for PR97723 and PR97694.
!
! Contributed by Martin  <ms...@gmx.net>
!
module mod
implicit none
private
public cssel

contains

function cssel(x) result(s)
   character(len=:), allocatable :: s
   class(*), dimension(..), optional, intent(in) :: x
   if (present(x)) then
      select rank (x)
      rank (0)
         s = '0' ! PR97723: ‘assign’ at (1) is not a function
                 ! PR97694: ICE in trans-stmt.c(trans_associate_var)
      rank (1)
         s = '1' ! PR97723: ‘assign’ at (1) is not a function
      rank default
         s = '?' ! PR97723: ‘assign’ at (1) is not a function
      end select
   else
      s = '-'
   end if
end function cssel

end module mod

program classstar_rank
use mod
implicit none

integer :: x
real, dimension(1:3) :: y
logical, dimension(1:2,1:2) :: z

if (any ([cssel(x),cssel(y),cssel(z),cssel()] .ne. ['0','1','?','-'])) stop 1

end program classstar_rank

Reply via email to