0
関数に渡された引数を出力したいと思います。しかし、clangは関数定義で使用されるパラメータ名を返します。ここに私のコードです:Clangは引数の代わりにパラメータ名を返します
if (CallExpr *call = dyn_cast<CallExpr>(st))
{
LangOptions LangOpts;
LangOpts.CPlusPlus = true;
PrintingPolicy Policy(LangOpts);
for(int i=0, j=call->getNumArgs(); i<j; i++)
{
std::string TypeS;
raw_string_ostream raw(TypeS);
call->getArg(i)->printPretty(raw, 0, Policy);
errs() << raw.str() << "\n";
}
}
問題があるかもしれません教えてください。
申し訳引数の情報を取得するために必要です。しかし、私はあなたのような、最も単純なケースを扱っていると仮定します。私はiArgumentとcArgument、つまり引数の名前を取得したい。それで全部です。 [this](http://stackoverflow.com/questions/9607852/print-arguments-of-a-function-using-clang-ast)は 'printPretty()'を使用するように言います。 –
また、私は単純なC++コードを使用しているときに引数の名前を得ることができます。しかし、別のライブラリのAPIを使用し始めると(compile_commands.jsonファイルを指定しているため)、これは問題を引き起こします。 –