Как создать импорт в CodeQL

#c #codeql #semmle-ql

Вопрос:

Я хочу создать импорт в свой запрос CodeQL.
Я хочу, чтобы этот импорт был назван Utils , и я создам внутри него предикат с именем isNumber .

Как я могу создать такой импорт?

Вот как я хочу, чтобы мой код выглядел:

 import cpp
import Utils

where
    if exists(...)
    then isNumber(size.(VariableAccess).getTarget())
    else ...
select ...
 

Я не знаю, как я создаю Utils импорт, он пишет:

Не удалось разрешить Utils модулей

Я попытался создать папку с именем Utils рядом с моим запросом кода ( code.ql ), но это не сработало.

Ответ №1:

Я нашел, как это сделать.
Нужно создать файл с именем Utils.qll в той же папке вашего запроса CodeQL.

Это его код:

 import cpp

predicate isNumber(Variable v){
    v.getUnspecifiedType() instanceof IntegralType
}