xref: /llvm-project/flang/test/Semantics/resolve121.f90 (revision e7b8e18fc359c0de380e89b27898d18913ca9c50)
1*e7b8e18fSSlava Zakharin! Check that symbols without SAVE attribute from an EQUIVALENCE
2*e7b8e18fSSlava Zakharin! with at least one symbol being SAVEd (explicitly or implicitly)
3*e7b8e18fSSlava Zakharin! have implicit SAVE attribute.
4*e7b8e18fSSlava Zakharin!RUN: %flang_fc1 -fdebug-dump-symbols %s | FileCheck %s
5*e7b8e18fSSlava Zakharin
6*e7b8e18fSSlava Zakharinsubroutine test1()
7*e7b8e18fSSlava Zakharin  ! CHECK-LABEL: Subprogram scope: test1
8*e7b8e18fSSlava Zakharin  ! CHECK: i1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4) init:1_4
9*e7b8e18fSSlava Zakharin  ! CHECK: j1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
10*e7b8e18fSSlava Zakharin  integer :: i1 = 1
11*e7b8e18fSSlava Zakharin  integer :: j1
12*e7b8e18fSSlava Zakharin  equivalence(i1,j1)
13*e7b8e18fSSlava Zakharinend subroutine test1
14*e7b8e18fSSlava Zakharin
15*e7b8e18fSSlava Zakharinsubroutine test2()
16*e7b8e18fSSlava Zakharin  ! CHECK-LABEL: Subprogram scope: test2
17*e7b8e18fSSlava Zakharin  ! CHECK: i1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4) init:1_4
18*e7b8e18fSSlava Zakharin  ! CHECK: j1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
19*e7b8e18fSSlava Zakharin  integer :: i1 = 1
20*e7b8e18fSSlava Zakharin  integer :: j1
21*e7b8e18fSSlava Zakharin  equivalence(j1,i1)
22*e7b8e18fSSlava Zakharinend subroutine test2
23*e7b8e18fSSlava Zakharin
24*e7b8e18fSSlava Zakharinsubroutine test3()
25*e7b8e18fSSlava Zakharin  ! CHECK-LABEL: Subprogram scope: test3
26*e7b8e18fSSlava Zakharin  ! CHECK: i1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
27*e7b8e18fSSlava Zakharin  ! CHECK: j1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
28*e7b8e18fSSlava Zakharin  ! CHECK: k1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
29*e7b8e18fSSlava Zakharin  integer :: i1
30*e7b8e18fSSlava Zakharin  integer :: j1, k1
31*e7b8e18fSSlava Zakharin  common /blk/ k1
32*e7b8e18fSSlava Zakharin  save /blk/
33*e7b8e18fSSlava Zakharin  equivalence(i1,j1,k1)
34*e7b8e18fSSlava Zakharinend subroutine test3
35*e7b8e18fSSlava Zakharin
36*e7b8e18fSSlava Zakharinsubroutine test4()
37*e7b8e18fSSlava Zakharin  ! CHECK-LABEL: Subprogram scope: test4
38*e7b8e18fSSlava Zakharin  ! CHECK: i1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4) init:1_4
39*e7b8e18fSSlava Zakharin  ! CHECK: j1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
40*e7b8e18fSSlava Zakharin  ! CHECK: k1, SAVE size=4 offset=0: ObjectEntity type: INTEGER(4)
41*e7b8e18fSSlava Zakharin  integer :: i1 = 1
42*e7b8e18fSSlava Zakharin  integer :: j1, k1
43*e7b8e18fSSlava Zakharin  common /blk/ k1
44*e7b8e18fSSlava Zakharin  equivalence(i1,j1,k1)
45*e7b8e18fSSlava Zakharinend subroutine test4
46