Я очень новичок в лязге.Поэтому, извините, если этот вопрос звучит очень глупо.
Я пытаюсь написать простую программу проверки Clang.
У меня есть простая программа.
void function(int a)
{
printf("%d", a);
}
main()
{
static int A = 0;
//some computation
//How to get the source of the variable declaration of A here?
func(A);
}
Моя попытка
void MyChecker::checkPreCall(const CallEvent &Call,
CheckerContext &C) const {
ParamVarDecl *VD = Call.parameters()[0];
//this dumps the declaration of the callee function, i.e dest
Call.parameters()[0]->dump();
if(Call.parameters()[0]->isStaticLocal()){
std::cout << "Static variable";
}
}
Я пытаюсь получить объявление переменной A во время вызова func.Однако он получает объявление переменной аргумента callee;то есть дест.Как получить объявление переменной источника?