Распечатать аргументы функции с помощью Clang AST

Я хочу получить аргументы, переданные функции. например, если у меня вызов

printf("%d%d", i, j);

вывод должен быть

%d%d
i
j

Я могу вызывать функции с помощью VisitCallExpr() в RecursiveASTVisitor. Также можно получить количество аргументов и типы аргументов. Но я не знаю, как получить аргументы.

bool MyRecursiveASTVisitor::VisitCallExpr (clang::CallExpr *E)  
{
    for(int i=0, j=E->getNumArgs(); i<j; i++)
    {
        llvm::errs() << "argType: " << E->getArg(i)->getType().getAsString() << "\n";
    }
    return true;
}

Вывод:

argType: char *
argType: int
argType: int

Пожалуйста, помогите мне получить аргументы.

10
задан Praetorian 7 March 2012 в 20:30
поделиться