Выполните один или несколько из этих шагов, пока не определите исправление для проверки возврата значения, не инициализированного. Существует несколько способов исправления этой проверки. Описание проверки и примеры кода см. в разделе Return value not initialized.
Иногда, особенно для оранжевой проверки, можно определить, что проверка представляет собой не реальную ошибку, а предположение Polyspace ®, которое не соответствует вашему коду. Если для смягчения предположения можно использовать опцию анализа, повторно запустите проверку с помощью этой опции. В противном случае в результат или код можно добавить комментарий и обоснование.
Общий рабочий процесс, применяемый ко всем проверкам, см. в разделе Интерпретация результатов проверки кода в пользовательском интерфейсе Polyspace Desktop.
Выберите флажок на панели Список результатов (Results List). На панели Сведения о результатах (Result Details) просмотрите дополнительную информацию о проверке.

Просмотрите вероятную причину проверки, если она указана на панели Сведения о результате (Result Details).
В предыдущем примере программное обеспечение идентифицирует упертую функцию, inputRep, в качестве вероятной причины.
Возможное исправление: Чтобы избежать проверки, ограничьте аргумент или возвращаемое значение inputRep. Например, укажите, что inputRep возвращает значения в определенном диапазоне, например, 1..10. Дополнительные сведения см. в разделе Допущения о упорных функциях.
Определите основную причину проверки в теле функции. В интерфейсе пользователя Polyspace можно выполнить только следующие действия.
Перейдите к определению функции.
Щелкните правой кнопкой мыши вызов функции, содержащий чек. Выберите «Перейти к определению», если опция существует.
В теле функции проверьте, return происходит перед закрывающей скобкой функции.
Если return оператор не существует:
На панели Поиск выполните поиск слова returnили вручную прокрутить тело функции и искать return заявления.
Для каждого return определите, отображается ли оператор в области, меньшей, чем область действия функции.
Например, return оператор встречается только в одной ветви if-else заявление.
Возможное исправление: Проверьте, можно ли разместить return в конце тела функции. Например, замените следующий код
int func(int ch) {
switch(ch) {
case 1: return 1;
break;
case 2: return 2;
break;
}
}int func(int ch) {
int temp;
switch(ch) {
case 1: temp = 1;
break;
case 2: temp = 2;
break;
}
return temp;
}Number of Return Statements.
Найдите общие причины неинициализированной проверки возвращаемого значения.
Посмотрите, если return операторы отображаются в if-else, for или while блоки. Определите условия, когда функция не входит в блок.
Например, функция может не вводить while блок для определенных функциональных входов.
Возможное исправление:
Проверьте, можете ли вы разместить return в конце тела функции.
В противном случае определите, как избежать условия, когда функция не входит в блок.
Например, если функция не вводит блок для определенных входов, проверьте, нужно ли передавать разные входы.
Проверьте наличие таких конструкций кода, как goto которые прерывают нормальный поток управления. Проверьте, есть ли условия, когда return операторы в функции не могут быть доступны из-за этих конструкций кода.
Возможное исправление:
Избежать goto заявления. Сведения о применении этой практики см. в разделе Number of Goto Statements.
В противном случае определите, как избежать состояния, когда return операторы в функции недоступны.
Проверьте, можно ли отследить оранжевый чек по предположению Polyspace, которое встречается ранее в коде. Если предположение не соответствует действительности в вашем случае, добавьте комментарий или обоснование в результат или код. См. раздел Результаты анализа пространства адресов с помощью исправлений ошибок или обоснований.
Например, у вас есть return оператор в ветвях if-elseif блок, но у вас нет окончательного else блок. Состояние, которое вы тестируете в if-elseif блоки включают переменные, полученные из неопределенной функции. Затем:
Polyspace предполагает, что для определенных значений этих переменных ни одна из if-elseif вводятся блоки.
Следовательно, возможно, что return операторы не доступны.
Если известно, что эти значения переменных не встречаются, добавьте комментарий и обоснование, описывающие, почему вы не изменили код.
Дополнительные сведения см. в разделе Допущения анализа проверки кода.
Эту проверку можно отключить. Если эта проверка отключена, Polyspace предполагает следующее о возвращаемом значении функции, если функция отсутствует return утверждения:
Если возвращаемое значение не является переменной-указателем, оно имеет полный диапазон значений, разрешенных его типом.
Если возвращаемое значение является указателем, оно может быть NULL- значение или указывает на блок памяти с неизвестным смещением.
Дополнительные сведения см. в разделе Disable checks for non-initialization (-disable-initialization-checks).