! { dg-do compile } ! { dg-options "-fdump-tree-original" } ! subroutine test() implicit none integer :: i0, i1, i2, i3, i4 i0 = kind(STORAGE_SIZE(5)) i1 = kind(STORAGE_SIZE(5, kind=1)) i2 = kind(STORAGE_SIZE(5, kind=2)) i3 = kind(STORAGE_SIZE(5, kind=4)) i4 = kind(STORAGE_SIZE(5, kind=8)) end subroutine test subroutine test2(x) implicit none class(*) :: x integer :: j0, j1, j2, j3, j4 integer(1) :: k1 integer(2) :: k2 j0 = kind(STORAGE_SIZE(x)) j1 = kind(STORAGE_SIZE(x, kind=1)) j2 = kind(STORAGE_SIZE(x, kind=2)) j3 = kind(STORAGE_SIZE(x, kind=4)) j4 = kind(STORAGE_SIZE(x, kind=8)) k1 = STORAGE_SIZE(x, kind=1) k2 = STORAGE_SIZE(x, kind=2) end subroutine test2 ! { dg-final { scan-tree-dump-times "i0 = 4;" 1 "original" } } ! { dg-final { scan-tree-dump-times "i1 = 1;" 1 "original" } } ! { dg-final { scan-tree-dump-times "i2 = 2;" 1 "original" } } ! { dg-final { scan-tree-dump-times "i3 = 4;" 1 "original" } } ! { dg-final { scan-tree-dump-times "i4 = 8;" 1 "original" } } ! { dg-final { scan-tree-dump-times "j0 = 4;" 1 "original" } } ! { dg-final { scan-tree-dump-times "j1 = 1;" 1 "original" } } ! { dg-final { scan-tree-dump-times "j2 = 2;" 1 "original" } } ! { dg-final { scan-tree-dump-times "j3 = 4;" 1 "original" } } ! { dg-final { scan-tree-dump-times "j4 = 8;" 1 "original" } } ! { dg-final { scan-tree-dump-times "k1 = \\(integer\\(kind=1\\)\\)" 1 "original" } } ! { dg-final { scan-tree-dump-times "k2 = \\(integer\\(kind=2\\)\\)" 1 "original" } }