clang不会生成未实例化的函数/类模板ast

时间:2017-02-26 09:48:43

标签: c++ abstract-syntax-tree llvm-clang libtooling

我正在开发一个基于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; }
};

Nlog Console target git hub example

有没有人遇到过这样的行为?这是预期的行为吗?我想对代码进行静态分析,我不关心模板类/函数是否被实例化。没有AST我就无法进行正确的静态分析。

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

谢谢, 与Hemant

0 个答案:

没有答案