Slight tweak to allow sync methods taking void to work.
authorOrion Lawlor <olawlor@acm.org>
Tue, 11 Dec 2001 21:40:43 +0000 (21:40 +0000)
committerOrion Lawlor <olawlor@acm.org>
Tue, 11 Dec 2001 21:40:43 +0000 (21:40 +0000)
commitcaa0252cf34f24252eea4ee23184319d931e7eaa
treeb3507ae6fd51ba8066414c50800b276f49e355d3
parent48a5c5b98548a512adcce3cf479fb5a046f25e22
Slight tweak to allow sync methods taking void to work.
Previously, the generated code for the call function looked like:

{
  int impl_ref = CkGetRefNum(impl_msg), impl_src = CkGetSrcPe(impl_msg);
  void *impl_retMsg=(void *)   CkFreeSysMsg(impl_msg);
  impl_obj->testVoid();
  CkSendToFuture(impl_ref, impl_retMsg, impl_src);
}

which of course doesn't even compile because the CkFreeSysMsg is
in the wrong place. Now it looks like:

{
  int impl_ref = CkGetRefNum(impl_msg), impl_src = CkGetSrcPe(impl_msg);
  CkFreeSysMsg(impl_msg);
  void *impl_retMsg=(void *)   impl_obj->testVoid();
  CkSendToFuture(impl_ref, impl_retMsg, impl_src);
}
src/xlat-i/xi-symbol.C