| ! 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 |