aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.dg/sizeof_2.f90
blob: 5f1928828060786098f5e42127d3ca121f11e3d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
! { dg-do compile }
!
! PR fortran/56650
! PR fortran/36437
!
subroutine foo(x, y)
  use iso_c_binding
  type(*) :: x
  integer :: y(*)
  integer(8) :: ii
  procedure() :: proc

  ii = sizeof (x) ! { dg-error "Assumed-type argument at .1. is not permitted as actual argument to the intrinsic sizeof" }
  ii = c_sizeof (x) ! { dg-error "Assumed-type argument at .1. is not permitted as actual argument to the intrinsic c_sizeof" }
  ii = storage_size (x) ! { dg-error "Assumed-type argument at .1. is not permitted as actual argument to the intrinsic storage_size" }

  ii = sizeof (y) ! { dg-error "shall not be an assumed-size array" }
  ii = c_sizeof (y) ! { dg-error "shall not be an assumed-size array" }
  ii = storage_size (y) ! okay, element-size is known

  ii = sizeof (proc) ! { dg-error "shall not be a procedure" }
  ii = c_sizeof (proc) ! { dg-error "Procedure unexpected as argument" }
  ii = storage_size (proc) ! { dg-error "shall not be a procedure" }
end