blob: ddf9997cb87e699d934bc8761459b01413a8338a [file] [log] [blame]
! { dg-do compile }
! { dg-options "-fdump-tree-original" }
!
! PR fortran/56650
! PR fortran/36437
!
module m
use iso_c_binding, only: c_sizeof, c_int
implicit none
integer(c_int), bind(C) :: MPI_Status_C_obj
integer,parameter :: MPI_STATUS_SIZE = c_sizeof(MPI_Status_C_obj)
end module m
module m2
use iso_c_binding, only: c_sizeof, c_int
implicit none
integer(c_int), bind(C) :: MPI_Status_C_obj2
integer,parameter :: MPI_STATUS_SIZE2 &
= c_sizeof(MPI_Status_C_obj2)*8/bit_size(0)
end module m2
subroutine test()
use m
use m2
integer :: m1test, m2test
m1test = MPI_STATUS_SIZE
m2test = MPI_STATUS_SIZE2
end subroutine test
type t
character(len=20) :: str
end type t
type(t):: x(5)
integer :: iii, jjj
iii = sizeof (x) ! 5*20 (whole size in bytes)
jjj = storage_size (x) ! 8*20 (element size in bits)
end
! { dg-final { scan-tree-dump-times "m1test = 4;" 1 "original" } }
! { dg-final { scan-tree-dump-times "m2test = 1;" 1 "original" } }
! { dg-final { scan-tree-dump-times "iii = 100;" 1 "original" } }
! { dg-final { scan-tree-dump-times "jjj = 160;" 1 "original" } }