xlat: Generate redn_wrapper fn definitions for mainchare redn targets too
authorRamprasad Venkataraman <ramv@illinois.edu>
Fri, 21 Oct 2011 17:39:01 +0000 (12:39 -0500)
committerRamprasad Venkataraman <ramv@illinois.edu>
Fri, 21 Oct 2011 17:39:01 +0000 (12:39 -0500)
Mystifyingly, the typed reductions example code would not build because the
generated code contained declarations, but no definitions, of the redn_wrapper
functions. It turns out this behavior could be toggled by changing the
reduction root from a mainchare to a regular chare. Some investigation with
Phil's help seemed to indicate that the genCall to generate the redn_wrapper
definition could not be reached for mainchares because of an incomplete if
condition. Fix.

src/xlat-i/xi-symbol.C

index a583ec51377ddd652611691996caad3a08fd8a32..5f401159a23dd344e620864d10be2512cd0d74e4 100644 (file)
@@ -4515,7 +4515,7 @@ void Entry::genDefs(XStr& str)
   } else
     genChareDefs(str);
 
-  if (container->isChare() || container->isForElement()) {
+  if (container->isMainChare() || container->isChare() || container->isForElement()) {
       if (isReductionTarget()) {
           XStr retStr; retStr<<retType;
           str << retType << " " << indexName(); //makeDecl(retStr, 1)