summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/common_errors_1.f90
blob: 0d4e1beb3bf4c70b89616cb433697b22fbe264a7 (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
! { dg-do compile }
! Tests a number of error messages relating to derived type objects
! in common blocks.  Originally due to PR 33198

subroutine one
type a
   sequence
   integer :: i = 1
end type a
type(a) :: t ! { dg-error "Derived type variable .t. in COMMON at ... may not have default initializer" }
common /c/ t
end

subroutine first
type a
   integer :: i
   integer :: j
end type a
type(a) :: t  ! { dg-error "Derived type variable .t. in COMMON at ... has neither the SEQUENCE nor the BIND.C. attribute" }
common /c/ t
end

subroutine prime
type a
   sequence
   integer, allocatable :: i(:)
   integer :: j
end type a
type(a) :: t  ! { dg-error "Derived type variable .t. in COMMON at ... has an ultimate component that is allocatable" }
common /c/ t
end

subroutine source
parameter(x=0.) ! { dg-error "COMMON block .x. at ... is used as PARAMETER at ..." }
common /x/ i  ! { dg-error "COMMON block .x. at ... is used as PARAMETER at ..." }
intrinsic sin
common /sin/ j ! { dg-error "COMMON block .sin. at ... is also an intrinsic procedure" }
end subroutine source