-functions-to-stub)Задайте функции к заглушке во время анализа
Задайте функции к заглушке во время анализа.
Для заданных функций, Polyspace® :
Игнорирует функциональное определение, даже если оно существует.
Принимает, что входным параметрам функции и выходным параметрам позволил полный спектр значений их тип.
Пользовательский интерфейс (только десктопные решения): В вашей настройке проекта опция находится на узле Inputs & Stubbing.
Командная строка и файл опций: Используйте опцию -functions-to-stub. Смотрите информацию о командной строке.
Если вы хотите, чтобы анализ проигнорировал код в теле функции, можно заблокировать функцию.
Например:
Предположим, что вы не завершили запись функции и не хотите, чтобы анализ рассмотрел тело функции. Можно использовать эту опцию, чтобы заблокировать функцию и затем задать ограничения на ее возвращаемое значение и модифицируемые аргументы.
Предположим, что анализ тела функции неточен. Анализ принимает, что функция возвращает все возможные значения, которые позволяет функциональный тип возврата. Можно использовать эту опцию, чтобы заблокировать функцию и затем задать ограничения на ее возвращаемое значение.
Никакое значение по умолчанию
Введите имена функций или выберите из списка.
Щелкните
, чтобы добавить поле и ввести имя функции.
Щелкните
, чтобы перечислить функции в вашем коде. Выберите функции из списка.
При вводе имен функций используйте или базовый синтаксис или, чтобы дифференцировать перегруженные функции, синтаксис аргумента. Для синтаксиса аргумента, аргументов отдельной функции с точками с запятой. См. следующий код и таблицу для примеров.
//simple function
void test(int a, int b);
//C++ template function
Template <class myType>
myType test(myType a, myType b);
//C++ class method
class A {
public:
int test(int var1, int var2);
};
//C++ template class method
template <class myType> class A
{
public:
myType test(myType var1, myType var2);
};| Функциональный тип | Базовый синтаксис | Синтаксис аргумента |
|---|---|---|
| Простая функция | test | test(int; int) |
| Функция шаблона C++ | test | test(myType; myType) |
| Метод класса C++ | A::test | A::test(int;int) |
| Метод шаблонного класса C++ | A<myType>::test | A<myType>::test(myType;myType) |
Code Prover делает предположения об аргументах и возвращаемых значениях заблокированных функций. Например, Polyspace принимает, что возвращаемые значения заблокированных функций являются полным спектром. Эти предположения могут влиять на регистрации других разделов кода. Смотрите Предположения О Заблокированных Функциях.
Если вы блокируете функцию, можно ограничить аргументы множества значений функции и возвращаемое значение. Чтобы задать ограничения, используйте опцию анализа Constraint setup (-data-range-specifications).
Когда вы используете эту опцию, вы можете видеть изменение в метриках сложности кода уровня файла, таких как количество линий и прокомментировать плотность, потому что одно или несколько тел функции больше не анализируются.
Для функций C эти специальные символы являются allowed:( ) < > ; _
Для функций C++ позволены эти специальные символы: ( ) < > ; _ * & [ ]
Пробелы позволены для C++, но не допускаются функции C.
Вы не можете использовать эту опцию, чтобы заблокировать следующие функции C++:
constexpr функции
Функциональные блоки попытки, которые сопоставляют catch пункт с телом целой функции, например:
Class()
try : Class( 0.0 ) //delegate constructor
{
// ...
}
catch (...)
{
// exception occurred on initialization
}Обработайте функции по шаблону с пакетом параметра, например:
template <class T, class... T2>
X(T n, T n2, T2... rest): X(rest...) {
v.insert(v.begin(), n);
v.insert(v.begin(), n2);
}Функции с auto возвратите тип, например:
template <typename F, typename... Args>
inline decltype(auto) invoke(F&& func, Args&&... args)
{
return invoke_impl(eastl::forward<F>(func), eastl::forward<Args>(args)...);
}
Параметр: -functions-to-stub |
| Никакое значение по умолчанию |
Значение: |
Пример (Code Prover): Polyspace Code Prover - источники |
Пример (Сервер Code Prover):
сервер программы автоматического доказательства полипробела кода - источники |