diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/storage_size_1.f08')
-rw-r--r-- | gcc/testsuite/gfortran.dg/storage_size_1.f08 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/storage_size_1.f08 b/gcc/testsuite/gfortran.dg/storage_size_1.f08 new file mode 100644 index 00000000000..ade9dfc30b0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/storage_size_1.f08 @@ -0,0 +1,31 @@ +! { dg-do run } +! +! PR 44649: [OOP] F2008: storage_size intrinsic +! +! Contributed by Janus Weil <janus@gcc.gnu.org> + +type :: t + integer(4) :: i + real(4) :: r +end type + +type,extends(t) :: t2 + integer(4) :: j +end type + +type(t) :: a +type(t), dimension(1:3) :: b +class(t), allocatable :: cp + +allocate(t2::cp) + +if (sizeof(a) /= 8) call abort() +if (storage_size(a) /= 64) call abort() + +if (sizeof(b) /= 24) call abort() +if (storage_size(b) /= 64) call abort() + +if (sizeof(cp) /= 8) call abort() +if (storage_size(cp) /= 96) call abort() + +end |