1! { dg-do compile } 2! { dg-options "-fdump-tree-original" } 3! 4subroutine test() 5 implicit none 6 integer :: i0, i1, i2, i3, i4 7 i0 = kind(STORAGE_SIZE(5)) 8 i1 = kind(STORAGE_SIZE(5, kind=1)) 9 i2 = kind(STORAGE_SIZE(5, kind=2)) 10 i3 = kind(STORAGE_SIZE(5, kind=4)) 11 i4 = kind(STORAGE_SIZE(5, kind=8)) 12end subroutine test 13 14subroutine test2(x) 15 implicit none 16 class(*) :: x 17 integer :: j0, j1, j2, j3, j4 18 integer(1) :: k1 19 integer(2) :: k2 20 j0 = kind(STORAGE_SIZE(x)) 21 j1 = kind(STORAGE_SIZE(x, kind=1)) 22 j2 = kind(STORAGE_SIZE(x, kind=2)) 23 j3 = kind(STORAGE_SIZE(x, kind=4)) 24 j4 = kind(STORAGE_SIZE(x, kind=8)) 25 26 k1 = STORAGE_SIZE(x, kind=1) 27 k2 = STORAGE_SIZE(x, kind=2) 28end subroutine test2 29 30! { dg-final { scan-tree-dump-times "i0 = 4;" 1 "original" } } 31! { dg-final { scan-tree-dump-times "i1 = 1;" 1 "original" } } 32! { dg-final { scan-tree-dump-times "i2 = 2;" 1 "original" } } 33! { dg-final { scan-tree-dump-times "i3 = 4;" 1 "original" } } 34! { dg-final { scan-tree-dump-times "i4 = 8;" 1 "original" } } 35! { dg-final { scan-tree-dump-times "j0 = 4;" 1 "original" } } 36 37! { dg-final { scan-tree-dump-times "j1 = 1;" 1 "original" } } 38! { dg-final { scan-tree-dump-times "j2 = 2;" 1 "original" } } 39! { dg-final { scan-tree-dump-times "j3 = 4;" 1 "original" } } 40! { dg-final { scan-tree-dump-times "j4 = 8;" 1 "original" } } 41 42! { dg-final { scan-tree-dump-times "k1 = \\(integer\\(kind=1\\)\\)" 1 "original" } } 43! { dg-final { scan-tree-dump-times "k2 = \\(integer\\(kind=2\\)\\)" 1 "original" } } 44! { dg-final { cleanup-tree-dump "original" } } 45