[Ad-dev] [openAD] #220: COMMON block symbol reference ambiguity in whirl
OpenAD
trac at mcs.anl.gov
Mon Jun 7 08:53:22 CDT 2010
#220: COMMON block symbol reference ambiguity in whirl
--------------------------+-------------------------------------------------
Reporter: utke | Owner: utke
Type: defect | Status: new
Priority: major | Milestone:
Component: OpenADFortTk | Keywords:
--------------------------+-------------------------------------------------
for the following situation:
subroutine foo ()
common /g/ v
...
call bar()
end subroutine
subroutine bar()
common /g/ v/
...
end subroutine
the global whirl symbol table has 2 entries for 'v' (and also 'g'),
one for each PU in which v is used.
The association is done via the base ST of 'v' first to its corresponding
'g' and then that one's corresponding base
symbol is either 'bar' or 'foo'.
Normally the uses of the different incarnations do not overlap.
However, the side effect analysis reports cumulative side
effects in "foo" including sideeffects of 'bar' on bar's version
of 'v' such that in foo now implicitly separate references
occur (for checkpointing code) of both 'v' instance and that
in turn leads to a duplication of the common block declaration
in the unparser because there is no logic that can turn
bar::v into the equivalent foo::v to avoid the bogus reference.
This will have to be fixed either in OpenADFortTk or in whirl2f.
--
Ticket URL: <https://trac.mcs.anl.gov/projects/openAD/ticket/220>
OpenAD <http://www.mcs.anl.gov/openad>
Bug tracking for OpenAD components
More information about the Ad-dev
mailing list