1! { dg-do compile } 2! { dg-options "-fdump-tree-original" } 3! 4! PR fortran/56650 5! PR fortran/36437 6! 7module m 8 use iso_c_binding, only: c_sizeof, c_int 9 implicit none 10 11 integer(c_int), bind(C) :: MPI_Status_C_obj 12 integer,parameter :: MPI_STATUS_SIZE = c_sizeof(MPI_Status_C_obj) 13end module m 14 15module m2 16 use iso_c_binding, only: c_sizeof, c_int 17 implicit none 18 19 integer(c_int), bind(C) :: MPI_Status_C_obj2 20 integer,parameter :: MPI_STATUS_SIZE2 & 21 = c_sizeof(MPI_Status_C_obj2)*8/bit_size(0) 22end module m2 23 24subroutine test() 25 use m 26 use m2 27 integer :: m1test, m2test 28 m1test = MPI_STATUS_SIZE 29 m2test = MPI_STATUS_SIZE2 30end subroutine test 31 32type t 33 character(len=20) :: str 34end type t 35type(t):: x(5) 36integer :: iii, jjj 37iii = sizeof (x) ! 5*20 (whole size in bytes) 38jjj = storage_size (x) ! 8*20 (element size in bits) 39end 40 41! { dg-final { scan-tree-dump-times "m1test = 4;" 1 "original" } } 42! { dg-final { scan-tree-dump-times "m2test = 1;" 1 "original" } } 43! { dg-final { scan-tree-dump-times "iii = 100;" 1 "original" } } 44! { dg-final { scan-tree-dump-times "jjj = 160;" 1 "original" } } 45! { dg-final { cleanup-tree-dump "original" } } 46