Неустановленный шаблон функции / класса ast не генерируется clang

Я работаю над синтаксическим анализатором C/C++, основанным на clang libtooling. Я использую AST, сгенерированный clang для разбора кода. Недавно я заметил, что для шаблонного класса или функции, которая не является экземпляром 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; }
};

введите описание изображения здесь

Кто-нибудь сталкивался с таким поведением? Это ожидаемое поведение. Я хочу провести статический анализ кода, и мне все равно, создаются ли классы / функции шаблона или нет. Без АСТ я не смогу сделать правильный статический анализ.

Не могли бы вы помочь мне решить эту проблему. Заранее спасибо.

Спасибо, Хемант

0 ответов

Другие вопросы по тегам