2017-04-11 10 views
1

私はカスタムLLVM解析パスを作成しており、パスのdo_finalizationメソッドで単純なCSVファイルを出力したいと考えています。 Clang/LLVMに渡される出力ファイル名に基づいてCSVファイルの名前を付けたいと思いますが、この値は見つかりません。例えばClang/LLVMの "-o"( "--output")引数はどこにありますか?

、私はコンパイルする場合:

clang -o test test.c

Iが出力test.csv(またはより一般的<output filename>.csv)たいです。値testはどこにありますか?

答えて

0

それは libに定義されています/ TableGen/main.cppに

static cl::opt<std::string> 
OutputFilename("o", cl::desc("Output filename"), 
cl::value_desc("filename"), 
       cl::init("-")); 

はあなたの解析パスでコマンドオプションを定義し、出力ファイル名として値を取ることができます。

0

あなたはcl::Option*ポインタを取得し、オプションを使用して宣言された型にダウンキャストするcl::getRegisteredOptionsを使用することができます。

std::string &OutputFilename() { 
    auto *option = static_cast<llvm::cl::opt<std::string>*>(
    llvm::cl::getRegisteredOptions().lookup("o")); 

    return option->getValue(); 
} 

これは標準出力場合は、コマンドラインまたは"-"で指定-oの値を返します。使用されている。

タイプセーフな安全に関する通常の予防措置が適用されます。

+0

これを今日後でテストします。それがうまくいくなら、私は受け入れます。ありがとうございました! – tonysdg

関連する問題