[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