@bronevet Wait, I think the diff is not very helpful. setLatticePost is called after the transferDFState. Here is what the code looks like
      // <<<<<<<<<<<<<<<<<<< TRANSFER FUNCTION <<<<<<<<<<<<<<<<<<<
      modified = transferDFState(part, *c, sgn, *state, dfInfoPost, ultimateParts) || modified;
      // >>>>>>>>>>>>>>>>>>> TRANSFER FUNCTION >>>>>>>>>>>>>>>>>>>

       // some debug printing code

      // If this is the first CFGNode within this Part, save dfInfoPost in NodeState
      if(c==v.begin()) {
        // Save dfInfoPost in the NodeState   
        setLatticePost(state, dfInfoPost, firstVisit);
      } 

Earlier this setLatticePost was outside the for loop which means when we try to unionLatticeMaps for subsequent cfgn, the post state itself was never updated. By moving this inside the loop, the post state is updated by the first cfgn after transfer and the subsequent cfgn union the info by calling unionLatticeMaps