Набор правил "Рекомендуемые правила для машинного кода"

Собственные рекомендуемые правила сосредоточены на наиболее важных и распространенных проблемах в машинном коде, включая потенциальные дыры безопасности и сбои приложений. Этот набор правил включает все правила в наборе правил для собственных минимальных правил .

Включите этот набор правил в любой настраиваемый набор правил, создаваемый для собственных проектов.

Правило Description
C6001 Использование неинициализированной памяти
C6011 Разыменование пустого (NULL) указателя
C6029 Использование значения unchecked
C6031 Возвращаемое значение игнорируется
C6053 Вызов завершается нулем
C6054 Отсутствие нулевого завершения
C6059 Неверное объединение
C6063 Пропущен строковый аргумент функции форматирования
C6064 Пропущен целочисленный аргумент функции форматирования
C6066 Пропущен аргумент-указатель функции форматирования
C6067 Пропущен аргумент указателя на строку для функции форматирования
C6101 Возврат неинициализированной памяти
C6200 Индекс превышает максимальный размер буфера
C6201 Индекс превышает максимальный размер буфера стека
C6214 Недопустимое приведение HRESULT к boOL
C6215 Недопустимая приведение boOL в HRESULT
C6216 Недопустимый вставляемый компилятором boOL в HRESULT
C6217 Недопустимый тест HRESULT с not
C6220 Недопустимое сравнение HRESULT с -1
C6226 Недопустимое назначение HRESULT до -1
C6230 Недопустимое использование HRESULT в качестве логического
C6235 Ненулевая константа с логическим или
C6236 Логическая или с ненулевым константой
C6237 Ноль с логическими и теряет побочные эффекты
C6242 Локальная отмена принудительной очистки
C6248 Создание DACL null
C6250 Дескрипторы нераспрестанных адресов
C6255 Незащищенное использование Alloca
C6258 Использование потока завершения
C6259 Мертвый код в битовом или ограниченном коммутаторе
C6260 Использование арифметики байтов
C6262 Чрезмерное использование стека
C6263 Использование alloca in Loop
C6268 Отсутствующие скобки в приведения
C6269 Указатель не учитывается
C6270 Пропущен аргумент с плавающей запятой для функции форматирования
C6271 Лишний аргумент у функции форматирования
C6272 Аргумент не с плавающей запятой у функции форматирования
C6273 Нецелочисленный аргумент у функции форматирования
C6274 Несимвольный аргумент у функции форматирования
C6276 Недопустимое приведение строки
C6277 Недопустимый вызов CreateProcess
C6278 Несоответствие в массиве -New Scalar-Delete
C6279 Несоответствие скалярных новых массивов
C6280 Несоответствие распределения памяти
C6281 Побитовое отношение приоритета
C6282 Задание заменяет тест
C6283 Несоответствие примитивного массива-нового скалярного удаления
C6284 Недопустимый объект в качестве аргумента функции форматирования
C6285 Логические или константы
C6286 Ненулевая логическая или потеря побочных эффектов
C6287 Избыточный тест
C6288 Взаимное включение по логическому и является ложным
C6289 Взаимное исключение по логическому или имеет значение true
C6290 Приоритет логического НЕ и побитового И
C6291 Приоритет логического НЕ и побитового ИЛИ
C6292 Число циклов по максимальному значению
C6293 Число циклов от минимального числа
C6294 Тело цикла никогда не выполнялось
C6295 Бесконечный цикл
C6296 Цикл выполняется только один раз
C6297 Результат смены приведения к большему размеру
C6299 Сравнение bitfield to Boolean
C6302 Недопустимый аргумент в виде строки символов у функции форматирования
C6303 Недопустимый аргумент в виде строки расширенных символов у функции форматирования
C6305 Несоответствие размера и количества
C6306 Недопустимый переменный аргумент при вызове функции
C6308 Утечка realloc
C6310 Неправовая константа фильтра исключений
C6312 Цикл выполнения "Продолжение исключения"
C6314 Побитовая или приоритетность
C6317 Не дополнять
C6318 Поиск исключений "Продолжить"
C6319 Игнорируется запятой
C6324 Копирование строк вместо сравнения строк
C6328 Возможное несоответствие типа аргумента
C6331 Недопустимые флаги VirtualFree
C6332 Недопустимый параметр VirtualFree
C6333 Недопустимый размер VirtualFree
C6335 Дескриптор процесса утечки
C6381 Отсутствуют сведения о завершении работы
C6383 Переполнение буфера байт-счетчика элементов
C6384 Деление размера указателя
C6385 Переполнение при чтении
C6386 Переполнение при записи
C6387 Недопустимое значение параметра
C6388 Недопустимое значение параметра
C6500 Недопустимое свойство атрибута
C6501 Конфликт значений свойств атрибутов
C6503 Ссылки не могут быть пустыми (NULL)
C6504 Значение NULL у переменной, не являющейся указателем
C6505 MustCheck для Void
C6506 Размер буфера для массива или переменной, не являющейся указателем
C6508 Попытка записи константы
C6509 Использование return в предусловии
C6510 Завершение нулем у переменной, не являющейся указателем
C6511 Свойство MustCheck должно иметь значение Yes или No
C6513 Размер элемента без размера буфера
C6514 Размер буфера превышает размер массива
C6515 Размер буфера для переменной, не являющейся указателем
C6516 Нет свойств у атрибута
C6517 Допустимый размер у буфера, недоступного для чтения
C6518 Записываемый размер у буфера, недоступного для записи
C6522 Недопустимый размер у строкового типа
C6525 Недоступное расположение у строки недопустимого размера
C6527 Недопустимая аннотация: свойство "NeedsRelease" не может использоваться для значений типа void
C6530 Неизвестный стиль строки формата
C6540 Если для данной функции использовать аннотации атрибута, все ее существующие аннотации __declspec станут недействительными
C6551 Недопустимая спецификация размера: синтаксический анализ выражения невозможен
C6552 Недопустимый Deref= или Notref=: синтаксический анализ выражения невозможен
C6701 Значение не является одним из допустимых значений (Yes/No/Maybe):
C6702 Значение не является строковым
C6703 Значение не является числом
C6704 Непредвиденная ошибка выражения аннотации
C6705 Ожидаемое число аргументов для аннотации не совпадает с фактическим числом аргументов
C6706 Непредвиденная ошибка аннотации
C6995 Не удалось сохранить XML-файл журнала
C26100 Состояние гонки
C26101 Не удалось правильно использовать переблокированную операцию
C26110 Не удалось сохранить блокировку вызывающего абонента
C26111 Не удалось освободить блокировку вызывающего абонента
C26112 Вызывающий не может содержать блокировку
C26115 Не удалось освободить блокировку
C26116 Не удалось приобрести или сохранить блокировку
C26117 Освобождение неопубликованной блокировки
C26140 Ошибка заметки SAL параллелизма
C26441 NO_UNNAMED_GUARDS
C26444 NO_UNNAMED_RAII_OBJECTS
C26498 USE_CONSTEXPR_FOR_FUNCTIONCALL
C28020 Выражение не является истинным при этом вызове
C28021 Аннотируемый параметр должен быть указателем
C28022 Класс функции (es) для этой функции не соответствует классам функций (es) в типдефе, используемому для его определения.
C28023 Назначаемая или передаваемая функция должна иметь _Function_class_ заметку по крайней мере для одного из классов(es)
C28024 Указатель функции, которому назначается, аннотирован с классом функции, который не содержится в списке классов функций.
C28039 Тип фактического параметра должен точно соответствовать типу.
C28112 Переменная, доступ к которой осуществляется через функцию Interlocked, всегда должна быть доступна через функцию Interlocked.
C28113 Доступ к локальной переменной через интерблокированную функцию
C28125 Функция должна вызываться из блока try/за исключением
C28137 Аргумент переменной должен быть (литеральной) константой
C28138 Вместо этого аргумент константы должен быть переменной
C28159 Вместо этого рекомендуется использовать другую функцию.
C28160 Ошибка аннотации
C28163 Функция никогда не должна вызываться из блока try/за исключением
C28164 Аргумент передается функции, которая ожидает указатель на объект (а не указатель на указатель)
C28182 Разыменование пустого (NULL) указателя. Этот указатель содержит то же значение NULL, которое содержал другой указатель.
C28183 Аргумент может быть одним значением и является копией значения, найденного в указателе.
C28193 Переменная содержит значение, которое необходимо проверить
C28196 Требование не удовлетворяется. (Выражение не оценивается как true.)
C28202 Недопустимая ссылка на нестатический член
C28203 Неоднозначная ссылка на член класса.
C28205 _Success_ или _On_failure_, используемые в незаконном контексте
C28206 Левая операнда указывает на структуру, используйте "->"
C28207 Левый операнд является структурой, используйте "."
C28209 Объявление для символа имеет конфликтующее объявление
C28210 Аннотации для контекста _on_failure_ не должны находиться в явном предконтексте
C28211 Для SAL_context ожидалось имя статического контекста
C28212 Для аннотации ожидалось выражение указателя
C28213 Заметка _Use_decl_annotations_ должна использоваться для ссылки, без изменения, предварительного объявления.
C28214 Допустимые имена параметров атрибута: p1...p9
C28215 typefix нельзя применять к параметру, который уже имеет typefix
C28216 Аннотация checkReturn применяется только к постусловиям для конкретного параметра функции.
C28217 Для функции число параметров у аннотации не совпадает с числом в файле
C28218 Для параметра функции параметр заметки не совпадает с параметром, найденным в файле
C28219 Для параметра аннотации ожидался член перечисления
C28220 Для параметра аннотации ожидалось целочисленное выражение
C28221 Для параметра аннотации ожидалось строковое выражение
C28222 __yes, __no или __maybe ожидаемых для заметки
C28223 Не найден ожидаемый токен/идентификатор для аннотации, параметр
C28224 Аннотации требуются параметры
C28225 Не найдено правильное число обязательных параметров в аннотации
C28226 Аннотация не может также быть PrimOp (в текущем объявлении)
C28227 Аннотация не может также быть PrimOp (см. предыдущее объявление)
C28228 Параметр аннотации: невозможно использовать тип в аннотации
C28229 Аннотация не поддерживает параметры
C28230 Тип параметра не содержит членов.
C28231 Аннотация допустима только для массива
C28232 Ни к одной аннотации не применено pre, post или deref
C28233 Pre, post или deref применено к блоку
C28234 Выражение _At_ не применяется к текущей функции
C28235 Функция не может использоваться изолированно как аннотация
C28236 Аннотацию нельзя использовать в выражениях
C28237 Аннотация в параметре больше не поддерживается
C28238 Аннотация в параметре содержит несколько значений value, stringValue и longValue. Используйте paramn=xxx
C28239 Аннотация в параметре одновременно содержит значение value, stringValue или longValue и выражение paramn=xxx. Используйте только paramn=xxx
C28240 Аннотация в параметре содержит param2, но не содержит param1
C28241 Аннотация для функции в параметре не распознана
C28243 Заметки для функции в параметре требуется больше разыменований, чем допускает фактический аннотируемый тип
C28244 Заметка для функции имеет неуправляемый параметр или внешнюю заметку
C28245 Заметка для функции добавляет заметки к this в функции, не являющейся членом
C28246 Аннотация параметра для функции не соответствует типу параметра
C28250 Несогласованная аннотация функции: предыдущий экземпляр содержит ошибку.
C28251 Несогласованная аннотация функции: этот экземпляр содержит ошибку.
C28252 Несогласованная аннотация функции: параметр имеет другие аннотации для этого экземпляра.
C28253 Несогласованная аннотация функции: параметр имеет другие аннотации для этого экземпляра.
C28254 <>dynamic_cast() не поддерживается в заметках
C28262 В функции обнаружена синтаксическая ошибка для аннотации
C28263 Во встроенной функции обнаружена синтаксическая ошибка условной аннотации
C28267 В аннотациях для функции обнаружена синтаксическая ошибка для аннотации.
C28272 Аннотация для функции: параметр не согласуется с объявлением функции при проверке
C28273 Функция: причины не согласуются с объявлением функции
C28275 Параметр для _Macro_value_ имеет значение NULL
C28279 Для символа обнаружен begin без соответствующего end
C28280 Для символа обнаружен end без соответствующего begin
C28282 Строки формата должны находиться в предусловиях
C28285 Для функции синтаксическая ошибка в параметре
C28286 Для функции синтаксическая ошибка рядом с окончанием
C28287 Для функции синтаксическая ошибка в заметке _At_() (нераспознанное имя параметра)
C28288 Для функции синтаксическая ошибка в заметке _At_() (недопустимое имя параметра)
C28289 Для функции: ReadableTo или WritableTo не содержало спецификацию ограничения в качестве параметра
C28290 Количество внешних элементов в аннотации для функции превышает фактическое число параметров
C28291 После NULL/не NULL на уровне разыменовывания 0 параметра не имеет смысла для функции.
C28300 Несовместимые типы операндов выражения для оператора
C28301 Для первого объявления функции отсутствуют аннотации.
C28302 На заметке найден дополнительный оператор _Deref_.
C28303 Неоднозначный оператор _Deref_ был найден в заметке.
C28304 Некорректно помещенный оператор _Notref_ был найден применен к токену.
C28305 При синтаксическом анализе токена обнаружена ошибка.
C28306 Заметка о параметре неустойчива
C28307 Заметка о параметре неустойчива
C28350 Заметка описывает ситуацию, к которой неприменимы условия.
C28351 Аннотация описывает ситуацию, когда динамическое значение (переменная) не может использоваться в условии.