0
Ich möchte die in einer Funktion übergebenen Argumente drucken. Aber clang gibt Parameternamen zurück, die in der Funktionsdefinition verwendet werden. Hier ist mein Code:Clang gibt Parameternamen statt Argumente zurück
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";
}
}
Bitte sagen Sie, was das Problem sein könnte.
Sorry für die Verspätung zu antworten. Ich möchte iArgument und cArgument, d. H. Die Namen der Argumente, erhalten. Das ist alles. [This] (http://stackoverflow.com/questions/9607852/print-arguments-of-a-function-using-clang-ast) sagt 'printPretty()' zu verwenden. –
Außerdem kann ich den Namen der Argumente erhalten, wenn ich einen einfachen C++ Code verwende. Aber wenn ich anfange, die API einer anderen Bibliothek zu benutzen (dafür spezifiziere ich die Datei compile_commands.json), stellt dies Probleme dar. –