{-     
CS_cff (if e { goto l_i} else { goto l_j }) kenv l_k  = if (CE_cff e) {Si} else { Sj}
  where Si = CS_cff (goto l_i) kenv l_k
        Sj = CS_cff (goto l_i) kenv l_k
-}
cff_trans_stmt isReturnVoid localVars fargs ctxtName fname sw kenv l_k (AST.CBlockStmt (AST.CIf e trueStmt (Just falseStmt) nodeInfo)) =      
  let e' =  cff_trans_exp localVars fargs ctxtName e
      trueStmt' = cff_trans_stmt isReturnVoid localVars fargs ctxtName fname sw kenv l_k (AST.CBlockStmt trueStmt)
      falseStmt' = cff_trans_stmt isReturnVoid localVars fargs ctxtName fname sw kenv l_k (AST.CBlockStmt falseStmt)
  in [ AST.CBlockStmt (AST.CIf e' (AST.CCompound [] trueStmt' N.undefNode) (Just (AST.CCompound [] falseStmt' N.undefNode)) nodeInfo) ]
cff_trans_stmt isReturnVoid localVars fargs ctxtName fname sw kenv l_k (AST.CBlockStmt (AST.CIf e trueStmt (Just falseStmt) nodeInfo)) =      
  let e' =  cff_trans_exp localVars fargs ctxtName e
      trueStmt' = cff_trans_stmt isReturnVoid localVars fargs ctxtName fname sw kenv l_k (AST.CBlockStmt trueStmt)
      falseStmt' = cff_trans_stmt isReturnVoid localVars fargs ctxtName fname sw kenv l_k (AST.CBlockStmt falseStmt)
  in [ AST.CBlockStmt (AST.CIf e' (AST.CCompound [] trueStmt' N.undefNode) (Just (AST.CCompound [] falseStmt' N.undefNode)) nodeInfo) ]
cff_trans_stmt isReturnVoid localVars fargs ctxtName fname sw kenv l_k (AST.CBlockStmt (AST.CIf e trueStmt (Just falseStmt) nodeInfo)) =      
  let e' =  cff_trans_exp localVars fargs ctxtName e
      trueStmt' = cff_trans_stmt isReturnVoid localVars fargs ctxtName fname sw kenv l_k (AST.CBlockStmt trueStmt)
      falseStmt' = cff_trans_stmt isReturnVoid localVars fargs ctxtName fname sw kenv l_k (AST.CBlockStmt falseStmt)
  in [ AST.CBlockStmt (AST.CIf e' (AST.CCompound [] trueStmt' N.undefNode) (Just (AST.CCompound [] falseStmt' N.undefNode)) nodeInfo) ]