Я использую clang, чтобы сделать какой-то источник преобразования источника. Я хотел бы сделать следующее:Анализ функциональных вызовов с использованием Clang
У меня есть некоторый класс функций в C, которые являются функциями va_arg
, например printf()
. В исходном файле может быть несколько вызовов printf()
. Я хочу проанализировать исходный код и найти все эти вызовы в printf()
. Кроме того, я хочу найти тип аргументов, которые передаются printf()
. Так что, если у меня есть что-то вроде
int a, b, c;
printf("%d%d%d", a, b, c);
Я хочу быть в состоянии выяснить, что конкретный вызов printf
имеет тип printf(char*, int, int, int)
. Меня не особо интересуют квалификаторы.
Может ли кто-нибудь сказать мне, как я должен делать это в clang? Любой пример, делающий что-либо подобное этому, приветствуется. Если бы вы могли даже сказать мне, на что все классы я должен смотреть, и вкратце рассказать мне поток, за которым я должен следовать, я был бы очень благодарен.