4

我正在开发基于 clang libtooling 的 C/C++ 解析器。我使用 clang 生成的 AST 来解析代码。最近我观察到,对于未实例化的模板类或函数,clang 不会为该类或函数生成 AST。

示例:代码和相应的 AST 如下所示

template <typename T>
int serializeToJson(const T& value)
{
    using OutputStream = std::ostream;
    using OutputArchive = std::istream;
    int i;
    int k;
    return i + k;
}

template <class T>
class TClass
{
    T *ptr;

    TClass() { ptr = nullptr; }
};

在此处输入图像描述

有没有人遇到过这样的行为?这是预期的行为。我想做代码的静态分析,我不在乎模板类/函数是否被实例化。如果没有 AST,我将无法进行正确的静态分析。

请你帮我解决这个问题。提前致谢。

谢谢,赫曼特

4

0 回答 0