1

私はclang libtoolingでリファクタリングツールを書いています。

必要なのは、ライブ変数情報に従ってソース コードを書き直すことです。たとえば、関数内の基本ブロックごとに、ライブアウト変数をダンプします。

分析チェッカーを書いていれば、それは非常に簡単です。

void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
                    BugReporter &BR) const {
if (LiveVariables* L = mgr.getAnalysis<LiveVariables>(D)) {
  L->dumpBlockLiveness(mgr.getSourceManager());
}
}

mgr.getAnalysis(D) を呼び出すだけで、この関数の LiveVariables を取得できます。次に、各ブロックをダンプします。

しかし、私はスタンドアロンのリファクタリング ツールを作成しています。AnalysisManager オブジェクトを作成するにはどうすればよいですか?

どうもありがとうございます。

4

0 に答える 0