45 lines
1.5 KiB
Fortran
45 lines
1.5 KiB
Fortran
! Check that symbols without SAVE attribute from an EQUIVALENCE
|
|
! with at least one symbol being SAVEd (explicitly or implicitly)
|
|
! have implicit SAVE attribute.
|
|
!RUN: %flang_fc1 -fdebug-dump-symbols %s | FileCheck %s
|
|
|
|
subroutine test1()
|
|
! CHECK-LABEL: Subprogram scope: test1
|
|
! CHECK: i1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4) init:1_4
|
|
! CHECK: j1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
|
|
integer :: i1 = 1
|
|
integer :: j1
|
|
equivalence(i1,j1)
|
|
end subroutine test1
|
|
|
|
subroutine test2()
|
|
! CHECK-LABEL: Subprogram scope: test2
|
|
! CHECK: i1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4) init:1_4
|
|
! CHECK: j1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
|
|
integer :: i1 = 1
|
|
integer :: j1
|
|
equivalence(j1,i1)
|
|
end subroutine test2
|
|
|
|
subroutine test3()
|
|
! CHECK-LABEL: Subprogram scope: test3
|
|
! CHECK: i1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
|
|
! CHECK: j1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
|
|
! CHECK: k1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
|
|
integer :: i1
|
|
integer :: j1, k1
|
|
common /blk/ k1
|
|
save /blk/
|
|
equivalence(i1,j1,k1)
|
|
end subroutine test3
|
|
|
|
subroutine test4()
|
|
! CHECK-LABEL: Subprogram scope: test4
|
|
! CHECK: i1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4) init:1_4
|
|
! CHECK: j1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
|
|
! CHECK: k1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
|
|
integer :: i1 = 1
|
|
integer :: j1, k1
|
|
common /blk/ k1
|
|
equivalence(i1,j1,k1)
|
|
end subroutine test4
|