Skip to content

Commit 72e5222

Browse files
committed
Correctly handle local variables across regions where address was taken
1 parent 9f2b3fa commit 72e5222

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

tools/flang2/flang2exe/outliner.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1647,11 +1647,13 @@ loadUplevelArgsForRegion(SPTR uplevel, SPTR taskAllocSptr, int count,
16471647

16481648
if (do_load) {
16491649
if (based) {
1650-
PARREFLOADP(based, 1);
1650+
/* PARREFLOAD is set if ADDRTKN of based was false */
1651+
PARREFLOADP(based, !ADDRTKNG(based));
16511652
ADDRTKNP(based, 1);
16521653
} else
16531654
{
1654-
PARREFLOADP(sptr, 1);
1655+
/* PARREFLOAD is set if ADDRTKN of sptr was false */
1656+
PARREFLOADP(sptr, !ADDRTKNG(sptr));
16551657
/* prevent optimizer to remove store instruction */
16561658
ADDRTKNP(sptr, 1);
16571659
}

0 commit comments

Comments
 (0)