summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/volatile8.f90
blob: b97b8519b23c8ee876632fbd5f48cc24d0419fc6 (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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
! Check for compatibily of actual arguments
! with dummy arguments marked as volatile
! 
! Contributed by Steven Correll.
!
! PR fortran/30520

! { dg-do compile }

   subroutine s8()
    implicit none
    interface
      subroutine sub8(dummy8)
        integer, volatile, dimension(3) :: dummy8
      end subroutine sub8
      subroutine sub8a(dummy8a)
        integer, volatile, dimension(:) :: dummy8a
      end subroutine sub8a
    end interface
    integer, dimension(8) :: a
    call sub8 (a(1:5:2)) ! { dg-error "Array-section actual argument" }
    call sub8a(a(1:5:2))
  end subroutine s8 

  subroutine s9(s9dummy)
    implicit none
    integer, dimension(:) :: s9dummy
    interface
      subroutine sub9(dummy9)
        integer, volatile, dimension(3) :: dummy9
      end subroutine sub9
      subroutine sub9a(dummy9a)
        integer, volatile, dimension(:) :: dummy9a
      end subroutine sub9a
    end interface
    integer, dimension(9) :: a
    call sub9 (s9dummy) ! { dg-error "Assumed-shape actual argument" }
    call sub9a(s9dummy)
  end subroutine s9 

  subroutine s10()
    implicit none
    interface
      subroutine sub10(dummy10)
        integer, volatile, dimension(3) :: dummy10
      end subroutine sub10
      subroutine sub10a(dummy10a)
        integer, volatile, dimension(:) :: dummy10a
      end subroutine sub10a
      subroutine sub10b(dummy10b)
        integer, volatile, dimension(:), pointer :: dummy10b
      end subroutine sub10b
    end interface
    integer, dimension(:), pointer :: a
    call sub10 (a) ! { dg-error "Pointer-array actual argument" }
    call sub10a(a)
    call sub10b(a)
  end subroutine s10