Я пытаюсь проанализировать программу на C, используя Clang Static Analyzer.
Я собрал файлы AST с помощью драйвера clang.
Но как я могу получить реальное определение функции среди разных файлов AST (разные TranslationUnit)?
Например:
functions.h
int func1(int a);
int func2(int a, int b);
functions.c
#include "functions.h"
int func1(int a) {
return a;
}
int func2(int a, int b) {
return a + b;
}
main.c
#include "functions.h"
int main() {
int num1 = func1(2);
int num2 = func2(3, 4);
int sum = num1 + num2;
}
Файл ast main.ast содержит два FunctionDecls func1
и func2
(поскольку он был предварительно обработан), но я не могу получить реальное определение (тело функции) этих двух функций, потому что они не являются в main.ast
.
Как я могу получить определение этих двух функций (тело функции)?