使用Clang在另一个TranslationUnit中获取真实的函数定义

时间:2019-03-23 13:05:16

标签: clang clang-static-analyzer

我正在尝试使用Clang Static Analyzer分析C程序。 我已经使用clang驱动程序构建了AST文件。 但是如何获得不同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包含两个func1func2的FunctionDecls(因为它已经过预处理),但是我无法获得这两个函数的真实定义(函数主体)因为它们不在main.ast中。

如何获得这两个函数的定义(函数体)?

0 个答案:

没有答案