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

--- Comment #2 from anlauf at gcc dot gnu.org ---
Reduced testcase, rank 1, no pointer or target needed:

program test
  implicit none
  integer, dimension(4) :: dim_1 = 42
  print*, 'lbound', lbound(dim_1), 'ubound', ubound(dim_1)
  print*, ''
  print *, "call assumed_rank( dim_1 )"
  call assumed_rank( dim_1 )
  print *, "call assumed_rank((dim_1))"
  call assumed_rank((dim_1))
contains
  subroutine assumed_rank(dataset)
    integer, intent(in), dimension(..) :: dataset
    print*,   'outside select rank'
    print*,   'lbound', lbound(dataset), 'ubound', ubound(dataset)
    select rank (dataset)
    rank (1)
      print*, 'inside  select rank'
      print*, 'lbound', lbound(dataset), 'ubound', ubound(dataset)
    end select
    print*, ''
  end subroutine assumed_rank
end program test

This prints:

 lbound           1 ubound           4

 call assumed_rank( dim_1 )
 outside select rank
 lbound           1 ubound           4
 inside  select rank
 lbound           1 ubound           4

 call assumed_rank((dim_1))
 outside select rank
 lbound           1 ubound           4
 inside  select rank
 lbound           0 ubound           3

Reply via email to