Access live variable analysis while writing a refactring tool

Dear all,

I'm writing a code refactoring tool using libtooling.
I would like to access live variable variable once certain AST nodes
are matched.
For instance,
int add (int n)
{
  int x = 10;
  int y = 5;
  if (n > 7)
    return x;
  return y;
}

I would like to know live variable information.
Please refer to the following code.

class LiveObserver : public LiveVariables::Observer {
public:
  void observeStmt(const Stmt *S, const CFGBlock *block,
                   const LiveVariables::LivenessValues &Live) override {

  }
};

In matcher callback,
if (const FunctionDecl *foo =
Result.Nodes.getNodeAs<clang::FunctionDecl>("foo")) {
        AnalysisDeclContextManager manager;
        AnalysisDeclContext* context = manager.getContext(main);
        CFG *cfg = context->getCFG();
        Livevariables *LV = LiveVariables::computeLiveness(*context, true);
        if (context->isCFGBuilt())
          errs() << "CFG is built\n";
        else
          errs() << "CFG is not built\n";
        LiveObserver obs;
        LV->runOnAllBlocks(obs);
        LV->dumpBlockLiveness((context->getASTContext()).getSourceManager());
}

However, the result tells
CFG is not built
[ B0 (live variables at block exit) ]

[ B1 (live variables at block exit) ]

[ B2 (live variables at block exit) ]

[ B3 (live variables at block exit) ]

[ B4 (live variables at block exit) ]

This result is different from clang -cc1 -analyze
-analyzer-checker=debug.DumpLiveVars

[ B0 (live variables at block exit) ]

[ B1 (live variables at block exit) ]

[ B2 (live variables at block exit) ]

[ B3 (live variables at block exit) ]
x <test/test_wrapper_04.c:4:7>
y <test/test_wrapper_04.c:5:7>

[ B4 (live variables at block exit) ]
n <test/test_wrapper_04.c:2:14>

I have no idea why CFG is not built and no live information available.
Please give a direction. Thanks all.

Best regards.