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

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

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

Правило Description
C6001 Использование неинициализированной памяти
C6011 Разыменование пустого (NULL) указателя
C6029 Использование значения unchecked
C6053 Вызов завершается нулем
C6059 Неверное объединение
C6063 Пропущен строковый аргумент функции форматирования
C6064 Пропущен целочисленный аргумент функции форматирования
C6066 Пропущен аргумент-указатель функции форматирования
C6067 Пропущен аргумент указателя на строку для функции форматирования
C6101 Возврат неинициализированной памяти
C6200 Индекс превышает максимальный размер буфера
C6201 Индекс превышает максимальный размер буфера стека
C6270 Пропущен аргумент с плавающей запятой для функции форматирования
C6271 Лишний аргумент у функции форматирования
C6272 Аргумент не с плавающей запятой у функции форматирования
C6273 Нецелочисленный аргумент у функции форматирования
C6274 Несимвольный аргумент у функции форматирования
C6276 Недопустимое приведение строки
C6277 Недопустимый вызов CreateProcess
C6284 Недопустимый объект в качестве аргумента функции форматирования
C6290 Приоритет логического НЕ и побитового И
C6291 Приоритет логического НЕ и побитового ИЛИ
C6302 Недопустимый аргумент в виде строки символов у функции форматирования
C6303 Недопустимый аргумент в виде строки расширенных символов у функции форматирования
C6305 Несоответствие размера и количества
C6306 Недопустимый переменный аргумент при вызове функции
C6328 Возможное несоответствие типа аргумента
C6385 Переполнение при чтении
C6386 Переполнение при записи
C6387 Недопустимое значение параметра
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 Непредвиденная ошибка аннотации
C26450 RESULT_OF_ARITHMETIC_OPERATION_PROVABLY_LOSSY
C26451 RESULT_OF_ARITHMETIC_OPERATION_CAST_TO_LARGER_SIZE
C26452 SHIFT_COUNT_NEGATIVE_OR_TOO_BIG
C26453 LEFTSHIFT_NEGATIVE_SIGNED_NUМБ ER
C26454 RESULT_OF_ARITHMETIC_OPERATION_NEGATIVE_UNSIGNED
C26495 ME МБER_UNINIT
C28021 Аннотируемый параметр должен быть указателем
C28182 Разыменование пустого (NULL) указателя. Этот указатель содержит то же значение NULL, которое содержал другой указатель.
C28202 Недопустимая ссылка на нестатический член
C28203 Неоднозначная ссылка на член класса.
C28205 _Success_ или _On_failure_, используемые в незаконном контексте
C28206 Левая операнда указывает на структуру, используйте "->"
C28207 Левый операнд является структурой, используйте "."
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 Заметки для функции в параметре требуется больше разыменований, чем допускает фактический аннотируемый тип
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 При синтаксическом анализе токена обнаружена ошибка.
C28350 Заметка описывает ситуацию, к которой неприменимы условия.
C28351 Аннотация описывает ситуацию, когда динамическое значение (переменная) не может использоваться в условии.