Absorption of float operand | Один операнд сложения или вычитания поглощен другим операндом |
Bitwise operation on negative value | Неопределенное поведение для битовых операций на отрицательных величинах |
Float conversion overflow | Переполнение при преобразовании между типами данных с плавающей запятой |
Float division by zero | Деление числа с плавающей точкой нулем |
Float overflow | Переполнение от операции между плавающими точками |
Integer constant overflow | Постоянное значение выходит за пределы области значений целочисленного типа данных |
Integer conversion overflow | Переполнение при преобразовании между целочисленными типами |
Integer division by zero | Деление целого числа нулем |
Integer overflow | Переполнение от операции между целыми числами |
Integer precision exceeded | Операция с помощью целочисленного размера вместо точности может вызвать неопределенное поведение |
Invalid use of standard library floating point routine | Неправильные аргументы к стандартной библиотечной функции |
Invalid use of standard library integer routine | Неправильные аргументы к стандартной библиотечной функции |
Possible invalid operation on boolean operand | Операция может превысить точность булева операнда или привести к произвольному значению |
Precision loss from integer to float conversion | Младшие значащие биты целого числа, потерянного во время преобразования в тип с плавающей точкой |
Shift of a negative value | Оператор сдвига на отрицательной величине |
Shift operation overflow | Переполнение от перемещения операции |
Sign change integer conversion overflow | Переполнение при преобразовании между целыми числами со знаком и беззнаковым целым |
Unsigned integer constant overflow | Постоянное значение выходит за пределы области значений типа данных беззнаковых целых чисел |
Unsigned integer conversion overflow | Переполнение при преобразовании между типами беззнаковых целых чисел |
Unsigned integer overflow | Переполнение от операции между беззнаковым целым |
Use of plain char type for numerical value | Плоскость char переменная в арифметической операции без явного, со знаком |
Arithmetic operation with NULL pointer | Арифметическая операция выполняется на NULL указатель |
Array access out of bounds | Индекс массива вне ограничивает во время доступа к массиву |
Buffer overflow from incorrect string format specifier | Спецификатор формата строки заставляет буферный аргумент стандартных библиотечных функций переполняться |
Destination buffer overflow in string manipulation | Функция пишет, чтобы буферизовать при смещении, больше, чем buffer size |
Destination buffer underflow in string manipulation | Функция пишет, чтобы буферизовать при отрицательном смещении с начала буфера |
Invalid use of standard library memory routine | Стандартная функция библиотеки memory вызвана с недействительными аргументами |
Invalid use of standard library string routine | Стандартная строковая функция библиотеки вызвана недействительными аргументами |
Move operation on const object | std::move функция вызвана с объектом, объявил const или const& |
Null pointer | NULL указатель разыменовывается |
Pointer access out of bounds | Указатель разыменовывается вне его границ |
Pointer or reference to stack variable leaving scope | Указатель на локальную переменную оставляет переменную scope |
Subtraction or comparison between pointers to different arrays | Вычитание или сравнение между указателями вызывают неопределенное поведение |
Unreliable cast of function pointer | Бросок указателя функции к другому указателю функции с различным аргументом или возвращает тип |
Unreliable cast of pointer | Указатель неявно бросок к другому типу данных |
Use of automatic variable as putenv-family function argument | аргумент функции putenv-семейства, не доступный вне его осциллографа |
Use of path manipulation function without maximum sized buffer checking | Целевой буфер getwd или realpath меньше, чем PATH_MAX байты |
Wrong allocated object size for cast | Выделенная память не совпадает с целевым указателем |
Alignment changed after memory reallocation | Перераспределение памяти изменяет первоначально более строгое выравнивание объекта |
Deallocation of previously deallocated pointer | Память, освобожденная несколько раз без выделения |
Invalid free of pointer | Освобождение указателя без соответствующего динамического выделения |
Invalid deletion of pointer | Освобождение указателя с помощью delete без соответствующего выделения с помощью new |
Memory leak | Память, выделенная динамически не освобожденный |
Mismatched alloc/dealloc functions on Windows | Неподходящая функция освобождения вызывает проблемы повреждения памяти |
Unprotected dynamic memory allocation | Указатель, возвращенный в динамическое выделение, не проверяемое на NULL или nullptr значение |
Use of previously freed pointer | Память получила доступ после освобождения |
Abnormal termination of exit handler | Выйдите функция-обработчик прерывает нормальное осуществление программы |
Accessing object with temporary lifetime | Операции чтения или операции записи на объекте являются неопределенным поведением |
Alternating input and output from a stream without flush or positioning call | Неопределенное поведение для операций с потоками ввода или вывода |
Assertion | Не пройдено оператор контроля |
Bad file access mode or status | Аргумент режима доступа функции в fopen или open группа недопустима |
C-string from string::c_str() compared to pointer | Струна до получена из std::string::c_str() сравнивается с указателем (или NULL) |
Call through non-prototyped function pointer | Указатель функции, объявленный без его типа или количества параметров, вызывает неожиданное поведение |
Call to memset with unintended value | memset или wmemset используемый с возможно неправильными аргументами |
Character value absorbed into EOF | Преобразование типа данных делает значение допустимого символа тем же самым как Конец файла (EOF) |
Copy of overlapping memory | Источник и целевые аргументы функции копии имеют перекрывающуюся память |
Declaration mismatch | Не сочетайтесь между объявлениями функции или объявлениями переменной |
Environment pointer invalidated by previous operation | Вызовите к setenv или putenv функция семейства изменяет среду, на которую указывает указатель |
Errno not reset | errno не сброс прежде, чем вызвать функцию, которая устанавливает errno |
Floating point comparison with equality operators | Неточное сравнение переменных с плавающей точкой |
Format string specifiers and arguments mismatch | Спецификаторы формата в printf- как функции не совпадают с соответствующими аргументами |
Function called from signal handler not asynchronous-safe | Вызовите к неопределенному поведению программы причин прерванной функции |
Function called from signal handler not asynchronous-safe (strict) | Вызовите к неопределенному поведению программы причин прерванной функции |
Improper array initialization | Неправильная инициализация массивов при использовании инициализаторов |
Incorrect data type passed to va_arg | Тип данных variadic аргумента функции не совпадает с типом в va_arg вызвать |
Incorrect pointer scaling | Неявное масштабирование в адресной арифметике с указателями может быть проигнорировано |
Incorrect type data passed to va_start | Тип данных второго аргумента к va_start макрос приводит к неопределенному поведению |
Incorrect use of offsetof in C++ | Неправильные аргументы к offsetof макрос вызывает неопределенное поведение |
Incorrect use of va_start | va_start назван в функции non-variadic или вызван вторым аргументом, который не является самым правым параметром функции variadic |
Incorrect value forwarding | Переданная объектная сила быть неожиданно измененным |
Inline constraint not respected | Модифицируемая статическая переменная изменяется в нестатической подставляемой функции |
Invalid assumptions about memory organization | Адрес вычисляется путем добавления или вычитания из адреса переменной |
Invalid file position | fsetpos() вызывается с аргументом положения файла, не полученным из fgetpos() |
Invalid use of = (assignment) operator | Присвоение в условном операторе |
Invalid use of == (equality) operator | Операция Equality в операторе присваивания |
Invalid use of standard library routine | Неправильные аргументы к стандартной библиотечной функции |
Invalid va_list argument | Список аргументов переменной, используемый после аннулирования с va_end или не инициализированный va_start или va_copy |
Memory comparison of padding data | memcmp сравнивает данные, хранимые в дополнении структуры |
Memory comparison of float-point values | Объектное представление значений с плавающей точкой может отличаться (то же самое) для равного (не равный) значения с плавающей точкой |
Memory comparison of strings | memcmp сравнивает данные, хранимые в строках после пустого терминатора строки |
Missing byte reordering when transferring data | Различный порядок байтов хоста и сети |
Missing null in string array | Строка не завершает работу с нулевым символом |
Misuse of a FILE object | Использование копии объекта FILE |
Misuse of errno | errno неправильно проверяемый на состояние ошибки |
Misuse of narrow or wide character string | Узкая (широкая) символьная строка передала широкой (узкой) строковой функции |
Misuse of errno in a signal handler | Вы читаете errno после вызова errno- установка функции в обработчике сигнала |
Misuse of structure with flexible array member | Выделение памяти игнорирует член массива с переменными границами |
Misuse of sign-extended character value | Преобразование типа данных с расширением знака вызывает неожиданное поведение |
Misuse of return value from nonreentrant standard function | Указатель на статический буфер от предыдущего вызова используется несмотря на последующий вызов, который изменяет буфер |
Modification of internal buffer returned from nonreentrant standard function | Функция пытается изменить внутренний буфер, возвращенный в неповторно используемую стандартную функцию |
Noncompliance with AUTOSAR specification | API-функция RTE используется с аргументами, которые нарушают стандартную спецификацию AUTOSAR |
Overlapping assignment | Перекрытие памяти между левыми и правыми сторонами присвоения |
Possible misuse of sizeof | Использование sizeof оператор может вызвать непреднамеренные результаты |
Possibly unintended evaluation of expression because of operator precedence rules | Правила приоритета оператора вызывают неожиданный порядок оценки в арифметическом выражении |
Predefined macro used as object | Вы используете стандартные макросы библиотеки, такие как assert и errno как объекты |
Preprocessor directive in macro argument | Вы используете директиву препроцессору в аргументе к подобному функции макросу |
Qualifier removed in conversion | Переменный спецификатор потерян во время преобразования |
Return from computational exception signal handler | Неопределенное поведение, когда обработчик сигнала обычно возвращается из ошибки в программе |
Side effect in arguments to unsafe macro | Макрос содержит аргументы, которые могут быть оценены многократно или не оценены |
Side effect of expression ignored | sizeof, _Alignof, или _Generic работает с выражением с побочным эффектом |
Signal call from within signal handler | Нестойкий обработчик сигнала, вызывая signal() в Windows система вызывает состояние состязания |
Shared data access within signal handler | Доступ или модификация разделяемых данных вызывают противоречивое состояние |
Standard function call with incorrect arguments | Аргумент к стандартной функции не удовлетворяет требования для использования в функции |
Stream argument with possibly unintended side effects | Потоковые побочные эффекты аргумента происходят несколько раз |
Too many va_arg calls for current argument list | Количество вызовов va_arg превышает количество аргументов, переданных функции variadic |
Typedef mismatch | Не сочетайтесь между typedef операторы |
Universal character name from token concatenation | Вы создаете универсальное имя персонажа путем присоединения лексем с ## оператор |
Unnamed namespace in header file | Заголовочный файл содержит продвижение пространства имен без имени к повторным определениям |
Unsafe conversion between pointer and integer | Неправильно выровненные или недопустимые результаты преобразований между типами указателей и целочисленными типами |
Unsafe conversion from string to numerical value | Представьте в виде строки к преобразованию чисел без проверок валидации |
Use of indeterminate string | Использование неподтвержденного буфера от функции fgets-семейства |
Use of memset with size argument zero | Аргумент Size функции в memset семейство является нулем |
Variable length array with nonpositive size | Размер массива переменной длины является нулем или отрицательный |
Writing to const qualified object | Объект объявляется с const спецификатор изменяется |
Wrong type used in sizeof | sizeof аргумент не совпадает с указанным типом |
Code deactivated by constant false condition | Сегмент кода деактивирован #if 0 директива или if(0) условие |
Dead code | Код не выполняется |
Missing return statement | Функция не делает возвращаемого значения, хотя возвращаются, типом не является void |
Non-initialized variable | Переменная, не инициализированная перед использованием |
Non-initialized pointer | Указатель, не инициализированный прежде, разыменовывает |
Partially accessed array | Массив частично чтение или записанный перед концом осциллографа |
Pointer to non-initialized value converted to const pointer | Указатель на постоянный присвоенный адрес, который не содержит значение |
Static uncalled function | Функция со статическим контекстом, не названным в файле |
Unreachable code | Код, не выполненный из-за предыдущих операторов управления |
Useless if | Ненужный, если условное выражение |
Variable shadowing | Переменная скрывает другую переменную того же имени с вложенным осциллографом |
Write without a further read | Переменная никогда не читала после присвоения |
File access between time of check and use (TOCTOU) | Файл или папка могут изменить состояние из-за гонки доступа |
File descriptor exposure to child process | Скопированный дескриптор файла используется в нескольких процессах |
File manipulation after chroot without chdir | Связанные с путем уязвимости для файла, которым управляют после вызова chroot |
Inappropriate I/O operation on device files | Операция может привести к уязвимостям системы обеспечения безопасности или системному отказу |
Unsafe call to a system function | Несанированный аргумент команды имеет годные для использования уязвимости |
Use of non-secure temporary file | Временное сгенерированное имя файла, не безопасное |
Vulnerable path manipulation | Параметр пути с /../, /abs/path/, или другие небезопасные элементы |
Bad order of dropping privileges | Пропущенный выше поднятые привилегии прежде, чем пропустить ниже поднятые привилегии |
Privilege drop not verified | Атакующий может получить непреднамеренный поднятый доступ к программе |
Umask used with chmod-style arguments | Аргумент к umask позволяет внешнему пользователю слишком много управления |
Vulnerable permission assignments | Аргумент дает полномочия чтения/записи/поиска внешним пользователям |
Unsafe standard encryption function | Функция не повторно используема или использует опасный алгоритм шифрования |
Unsafe standard function | Функция, небезопасная в связанных с безопасностью целях |
Use of dangerous standard function | Опасные функции вызывают возможное переполнение буфера в целевом буфере |
Use of obsolete standard function | Устаревшие стандартные программы могут вызвать проблемы мобильности и уязвимости системы обеспечения безопасности |
Deterministic random output from constant seed | Стандартная программа отбора использует постоянный seed, делающий детерминированный выход |
Predictable random output from predictable seed | Стандартная программа отбора использует предсказуемый seed, делающий предсказуемый выход |
Vulnerable pseudo-random number generator | Используя криптографически слабый генератор псевдослучайного числа |
Errno not checked | errno не проверяется на состояние ошибки после вызова функции |
Execution of a binary from a relative path can be controlled by an external actor | Команда с относительным путем уязвима для вредоносной атаки |
Function pointer assigned with absolute address | Константное выражение используется, когда функциональный адрес уязвим для инжекции кода |
Hard-coded sensitive data | Уязвимые данные отсоединены в коде, например, как строковые литералы |
Incorrect order of network connection operations | Сокет правильно не устанавливается из-за плохого порядка шагов связи или недостающих шагов |
Information leak via structure padding | Дополнение байтов может содержать уязвимую информацию |
Load of library from a relative path can be controlled by an external actor | Библиотека, загруженная с относительным путем, уязвима для вредоносных атак |
Mismatch between data length and size | Аргумент размера данных не вычисляется из фактической длины данных |
Missing case for switch condition | switch переменная, не покрытая случаями и случаем по умолчанию, отсутствует |
Misuse of readlink() | Третий аргумент readlink не оставляет пробел для пустого терминатора строки в буфере |
Returned value of a sensitive function not checked | Чувствительные функции, вызванные, не проверяя на неожиданные возвращаемые значения и ошибки |
Sensitive data printed out | Функция распечатывает уязвимые данные |
Sensitive heap memory not cleared before release | Уязвимые данные, не очищенные или выпущенные стандартной программой памяти |
Uncleared sensitive data in stack | Переменная в стеке не очищена и содержит уязвимые данные |
Constant block cipher initialization vector | Вектор инициализации является постоянным вместо рандомизированного |
Predictable block cipher initialization vector | Вектор инициализации сгенерирован от слабого генератора случайных чисел |
Missing block cipher initialization vector | Контекст, используемый для шифрования или дешифрования, сопоставлен с вектором инициализации NULL или не сопоставлен с вектором инициализации |
Constant cipher key | Ключ шифрования или ключ расшифровки являются постоянными вместо рандомизированного |
Predictable cipher key | Ключ шифрования или ключ расшифровки сгенерированы от слабого генератора случайных чисел |
Missing cipher key | Контекст, используемый для шифрования или дешифрования, сопоставлен с ключом NULL или не сопоставлен с ключом |
Inconsistent cipher operations | Вы выполняете шаги шифрования и дешифрования по очереди с тем же контекстом шифра без промежуточной реинициализации |
Missing cipher data to process | Итоговый шаг шифрования или дешифрования выполняется без предыдущих шагов обновления |
Missing cipher final step | Вы не выполняете последний шаг после шагов обновления для шифрования или дешифрования данных |
Missing cipher algorithm | Алгоритм шифрования или дешифрования не сопоставлен с контекстом шифра |
Weak cipher algorithm | Алгоритм шифрования, сопоставленный с контекстом шифра, слаб |
Weak cipher mode | Режим шифрования, сопоставленный с контекстом шифра, слаб |
Context initialized incorrectly for cryptographic operation | Контекст, используемый для операции шифрования с открытым ключом, инициализируется для различной операции |
Incorrect key for cryptographic algorithm | Операция шифрования с открытым ключом не поддерживается алгоритмом, используемым в инициализации контекста |
Missing data for encryption, decryption or signing operation | Данные предусмотрели операцию шифрования с открытым ключом, NULL, или длина данных является нулем |
Missing parameters for key generation | Контекст, используемый для генерации ключей, сопоставлен параметрами NULL |
Missing peer key | Контекст, используемый для разделяемой секретной деривации, сопоставлен с равноправным ключом NULL или не сопоставлен с равноправным ключом вообще |
Missing private key | Контекст, используемый для операции криптографии, сопоставлен с закрытым ключом NULL или не сопоставлен с закрытым ключом вообще |
Missing public key | Контекст, используемый для операции криптографии, сопоставлен с открытым ключом NULL или не сопоставлен с открытым ключом вообще |
Nonsecure parameters for key generation | Контекст, используемый для генерации ключей, сопоставлен слабыми параметрами |
Incompatible padding for RSA algorithm operation | Операция Cryptography не поддерживается дополнительным набором типа в контексте |
Missing blinding for RSA algorithm | Контекст, используемый в дешифровании или верификации подписи, не ослеплен против атак временным анализом |
Missing padding for RSA algorithm | Контекст, используемый в шифровании или подписании операции, не сопоставлен ни с каким дополнением |
Nonsecure RSA public exponent | Контекст, используемый в генерации ключей, сопоставлен с низким значением экспоненты |
Weak padding for RSA algorithm | Контекст, используемый в шифровании или подписании операции, сопоставлен с небезопасным дополнительным типом |
Context initialized incorrectly for digest operation | Контекст, используемый для операции обзора, инициализируется для различной операции обзора |
Missing final step after hashing update operation | Хеш является неполным или незащищенным |
Missing hash algorithm | Контекст в стандартной программе EVP инициализируется без хеш-алгоритма |
Missing salt for hashing operation | Хешированные данные уязвимы для табличного нападения радуги |
No data added into context | Выполнение операции хеша на пустом контексте может вызвать ошибки времени выполнения |
Nonsecure hash algorithm | Контекст, используемый для создания дайджеста сообщения, сопоставлен со слабым алгоритмом |
Missing certification authority list | Сертификату для аутентификации нельзя доверять |
Missing private key for X.509 certificate | Пропавшие без вести ключевой силы приводят к ошибке времени выполнения или незащищенному шифрованию |
Missing X.509 certificate | Сервер или клиент не могут аутентифицироваться |
Nonsecure SSL/TLS protocol | Контекст, используемый для обработки связей SSL/TLS, сопоставлен со слабым протоколом |
Server certificate common name not checked | Атакующий может использовать допустимый сертификат, чтобы явиться олицетворением хоста, которому доверяют, |
TLS/SSL connection method not set | Программа не может определить, вызвать ли стандартные программы сервера или клиент |
TLS/SSL connection method set incorrectly | Программа вызывает функции, которые не совпадают с ролью, установленной методом связи |
X.509 peer certificate not checked | Связь может быть уязвима для атак "человек посередине" |
Array access with tainted index | Индекс массива из небезопасного источника возможно вне границ массивов |
Command executed from externally controlled path | Параметр пути из небезопасного источника |
Execution of externally controlled command | Аргумент команды из небезопасного источника, уязвимого для инжекции команды операционной системы |
Host change using externally controlled elements | Изменение идентификатора хоста из небезопасного источника |
Library loaded from externally controlled path | Используя аргумент библиотеки от внешне управляемого пути |
Loop bounded with tainted value | Циклом управляет значение из небезопасного источника |
Memory allocation with tainted size | Аргумент Size к функции памяти из небезопасного источника |
Pointer dereference with tainted offset | Смещение из небезопасного источника, и разыменуйте, может выйти за пределы |
Tainted division operand | Операнды операции деления (/) произойдите из небезопасного источника |
Tainted modulo operand | Операнды операции остатка (%) произойдите из небезопасного источника |
Tainted NULL or non-null-terminated string | Аргумент из небезопасного источника и может быть NULL или не ОТКЛЮЧЕННЫЙ ПУСТЫМ УКАЗАТЕЛЕМ |
Tainted sign change conversion | Значение из небезопасного источника изменяет знак |
Tainted size of variable length array | Размер массива переменной длины (VLA) из небезопасного источника и может быть нулем, отрицательным, или слишком большим |
Tainted string format | Аргумент формата ввода из небезопасного источника |
Use of externally controlled environment variable | Значение переменной окружения из небезопасного источника |
Use of tainted pointer | Указатель из небезопасного источника может быть NULL или указать на неизвестную память |
Asynchronously cancellable thread | Вызывающий поток может быть отменен в небезопасном состоянии |
Atomic load and store sequence not atomic | Переменная, доступная между загрузкой и операциями хранилища |
Atomic variable accessed twice in an expression | Переменная может быть изменена между доступами |
Automatic or thread local variable escaping from a thread | Переменная передается от одного потока до другого, не гарантируя, что переменная остается в живых через длительность последнего потока |
Blocking operation while holding lock | Задача выполняет долгую операцию при содержании блокировки |
Data race | Несколько задач выполняют незащищенные неатомарные операции на совместно используемой переменной |
Data race including atomic operations | Несколько задач выполняют незащищенные операции на совместно используемой переменной |
Data race on adjacent bit fields | Несколько потоков выполняют незащищенные операции на смежных битовых полях структуры разделяемых данных |
Data race through standard library function call | Несколько задач выполняют незащищенные вызовы к небезопасной потоком стандартной библиотечной функции |
Deadlock | Вызовите последовательность, чтобы заблокировать причину функций две задачи блокировать друг друга |
Destruction of locked mutex | Задача пытается уничтожить взаимное исключение в заблокированном состоянии |
Double lock | Функция блокировки вызвана дважды в задаче без промежуточного вызова, чтобы разблокировать функцию |
Double unlock | Разблокируйте функцию, называется дважды в задаче без промежуточного вызова, чтобы заблокировать функцию |
Function that can spuriously fail not wrapped in loop | Цикл проверяет условие отказа после возможного побочного отказа |
Function that can spuriously wake up not wrapped in loop | Цикл проверяет условие пробуждения после возможного побочного пробуждения |
Join or detach of a joined or detached thread | Распараллельте, к которому ранее соединили или отсоединился, соединен или отсоединен снова |
Missing lock | Разблокируйте функцию без функции блокировки |
Missing or double initialization of thread attribute | Дублированная инициализация потока приписывает или неинициализированный атрибут потока, используемый в функциях, которые ожидают инициализированные атрибуты |
Missing unlock | Функция блокировки без разблокировала функцию |
Multiple mutexes used with same condition variable | Потоки с помощью различных взаимных исключений, когда одновременно ожидание на той же условной переменной является неопределенным поведением |
Multiple threads waiting on same condition variable | Используя cnd_signal разбудить один из потоков может привести к неопределенному блокированию |
Signal call in multithreaded program | Программа с несколькими потоками использует signal функция |
Thread-specific memory leak | Динамически выделенная специфичная для потока память, не освобожденная перед концом потока |
Use of signal killing thread | Непойманный сигнал уничтожает целый процесс вместо определенного потока |
Use of undefined thread ID | Распараллельте ID от не пройдено создания потока, используемого в последующих функциях потока |
*this not returned in copy assignment operator | operator= метод не возвращает указатель на текущий объект |
Base class assignment operator not called | Оператор присваивания копии не вызывает операторы присваивания копии основных подобъектов |
Base class destructor not virtual | Класс не может вести себя полиморфно для удаления объектов производного класса |
Bytewise operations on nontrivial class object | Представления значения могут быть неправильно инициализированы или сравнены |
Conversion or deletion of incomplete class pointer | Вы удаляете или бросаете к указателю на неполный класс |
Copy constructor or assignment operator modifying source operand | Операция копии изменяет элемент данных исходного объекта |
Copy constructor not called in initialization list | Конструктор копии не вызывает конструкторов копии некоторых членов или базовых классов |
Incompatible types prevent overriding | Метод производного класса скрывает virtual метод базового класса вместо того, чтобы заменить его |
Lambda used as typeid operand | typeid используется на лямбда-выражении |
Member not initialized in constructor | Конструктор не инициализирует некоторые члены класса |
Missing explicit keyword | Конструктор или пользовательский оператор преобразования, пропускающий explicit спецификатор |
Missing virtual inheritance | Базовый класс наследован фактически и нефактически в той же иерархии |
Object slicing | Объект производного класса, переданный значением, чтобы функционировать параметром базового класса |
Operator new not overloaded for possibly overaligned class | Выделенное устройство хранения данных может быть меньшего размера, чем объектное требование выравнивания |
Partial override of overloaded virtual functions | Класс заменяет часть наследованных виртуальных функций с именем |
Return of non const handle to encapsulated data member | Метод возвращает указатель или ссылку на внутренний член объекта |
Self assignment not tested in operator | Оператор присваивания копии не тестирует на самоприсвоение |
Closing a previously closed resource | Функция закрывает ранее закрытый поток |
Opening previously opened resource | Открытие уже открытого файла |
Resource leak | Поток файла, не закрытый перед FILE концы осциллографа указателя или указатель повторно присвоены |
Use of previously closed resource | Функция работает с ранее закрытым потоком |
Writing to read-only resource | Файл, первоначально открытый как только для чтения, изменяется |
Exception caught by value | catch оператор принимает объект значением |
Exception handler hidden by previous handler | catch оператор не достигнут из-за более раннего catch оператор для того же исключения |
Noexcept function exits with exception | Функции, заданные как noexcept, noexcept(true) или noexcept(<true condition>) выходы за исключением, которое вызывает аварийное завершение выполнения программы, ведя к утечке ресурсов и уязвимости системы обеспечения безопасности |
Throw argument raises unexpected exception | Выражение аргумента в throw оператор повышает непредвиденные исключительные ситуации, ведя к утечкам ресурсов и уязвимостям системы обеспечения безопасности |
A move operation may throw | Бросок операций пересылки может привести к контейнерам STL с помощью соответствующих операций копии |
Const parameter values may cause unnecessary data copies | Значения параметров const могут предотвратить операцию пересылки, приводящую к более интенсивной эффективностью операции копии |
Const return values may cause unnecessary data copies | Возвращаемые значения const могут предотвратить операцию пересылки, приводящую к более интенсивной эффективностью операции копии |
Const rvalue reference parameter may cause unnecessary data copies | const- мыс rvalue ссылки предотвращает предназначенную операцию пересылки |
Const std::move input may cause a more expensive object copy | Const std::move введите не может быть перемещен и результаты в более дорогой операции копии |
Empty destructors may cause unnecessary data copies | Объявленные пользователями пустые деструкторы предотвращают автоматическую генерацию конструкторов перемещения и перемещают операторы присваивания |
std::move called on an unmovable type | std::move используемый на типе класса без конструктора перемещения или оператора присваивания перемещения |
Move operation uses copy | Конструктор перемещения или оператор присваивания перемещения используют операции копии на базовых классах или элементах данных |
Expensive constant std::string construction | Объект постоянной строки создается из постоянных данных, приводящих к неэффективному коду |
Expensive copy in a range-based for loop iteration | Переменная цикла основанного на области значений for цикл копируется с элементов области значений вместо того, чтобы быть сосланным, приводя к неэффективному коду |
Expensive local variable copy | Локальная переменная создается копией с const ссылка и не измененный позже |
Expensive pass by value | Параметр может быть дорогим, чтобы скопировать |
Expensive return by value | Функции возвращают крупносерийный выходной параметр значением вместо ссылкой или указателем |
Missing constexpr specifier | constexpr спецификатор может использоваться на переменной или функции для оценки времени компиляции |
Expensive std::string::c_str() use in a std::string operation | Вместо std::string объект, строковая операция использует струну до, полученную из std::string функции включая std::string::c_str, std::string::data(), std::string::at(), или std::string::operator[], получившийся в неэффективном коде |
Expensive use of non-member std::string operator+() instead of a simple append | Лицо, не являющееся членом какой-либо организации, std::string operator+() функция вызвана когда добавление (или +=) метод был бы более эффективным |
Expensive use of std::string methods instead of more efficient overload | std::string метод вызван строковым литералом известной длины вместо одного заключенного в кавычки символа |
Expensive use of std::string with empty string literal | Использование std::string с пустой строкой литерал может быть заменен менее дорогими вызовами std::basic_string функции членства |
Inefficient string length computation | Длина строки, вычисленная при помощи длины строки, функционирует по возврату из std::basic_string::c_str() вместо того, чтобы использовать std::basic_string::length() |
std::endl may cause an unnecessary flush | std::endl используется вместо более эффективного \n |
Use of new or make_unique instead of more efficient make_shared | Используя new или make_unique инициализировать или сбросить shared_ptr результаты в дополнительном выделении памяти |
Expensive use of a standard algorithm when a more efficient method exists | Функции от algorithm библиотека неправильно используется с несоответствующими входными параметрами, приводящими к неэффективному коду |
Expensive use of container's count method | Функциональный член count() из контейнера используется для проверки, если ключ присутствует, ведя к неэффективному коду |
Inefficient use of sprintf | Функциональный sprintf копии представляют в виде строки вместо более эффективного strcpy |
Expensive dynamic cast | Дорогой dynamic_cast используется вместо более эффективного static_cast или const_cast |
Expensive logical operation | Логическая операция требует оценки обоих операндов из-за их порядка, приводящего к неэффективному коду |
Expensive post-increment operation | Объект постпостепенно увеличивается, когда предварительное постепенное увеличение быстрее |
Unnecessary Padding | Члены struct дополнены, чтобы выполнить требование выравнивания, когда реорганизация членов, чтобы выполнить это требование сохраняет память |
Ambiguous declaration syntax | Синтаксис объявления может быть интерпретирован как объектное объявление или часть объявления функции |
Bitwise and arithmetic operation on the same data | Оператор со смешанными битовыми и арифметическими операциями |
C++ reference to const-qualified type with subsequent modification | Ссылка на const- квалифицированный тип впоследствии изменяется |
C++ reference type qualified with const or volatile | Ссылочный тип объявляется с избыточным const или volatile спецификатор |
Delete of void pointer | delete работает с void* указатель, указывающий на объект |
File does not compile | Файл имеет ошибку компиляции |
Hard-coded buffer size | Размер буфера памяти является численным значением вместо символьной константы |
Hard-coded loop boundary | Контур цикла является численным значением вместо символьной константы |
Hard-coded object size used to manipulate memory | Манипуляция с памятью с трудно закодированным размером вместо sizeof |
Incorrectly indented statement | Добавление отступа оператора неправильно заставляет его появиться как часть блока |
Incorrect syntax of flexible array member size | Член массива с переменными границами задал с нулевым размером или один |
Line with more than one statement | Несколько операторов на линии |
Macro terminated with a semicolon | Макроопределение заканчивается точкой с запятой |
Macro with multiple statements | Макрос состоит из нескольких отключенных точкой с запятой операторов, заключенных в фигурные скобки или нет |
Missing break of switch case | Никакие комментарии в конце случая переключателя без оператора завершения |
Missing overload of allocation or deallocation function | Только одна функция в паре функции освобождения выделения перегружается |
Missing reset of a freed pointer | Указатель free не сопровождаемый оператором сброса, чтобы очистить оставшиеся данные |
Possibly inappropriate data type for switch expression | switch выражение имеет тип данных кроме char, короткого, международного или перечислимого |
Semicolon on same line as if, for or while statement | Точка с запятой на той же линии приводит к пустому телу ifдля или while оператор |
Unmodified variable not const-qualified | Переменная не const- квалифицированное но значение переменных, не измененное в течение времени жизни |
Unused parameter | Прототип функции имеет параметры не чтение или написанный в теле функции |
Use of a forbidden function | Функция появляется в черном списке запрещенных функций |
Use of setjmp/longjmp | setjmp и longjmp вызовите отклонение от нормального потока управления |
Useless expressions in sizeof operand | sizeof операнд содержит выражение, которое не выполнено |
MISRA C:2012 Dir 1.1 | Любое заданное реализацией поведение, от которого зависит выход программы, должно быть зарегистрировано и изучено |
MISRA C:2012 Dir 2.1 | Все исходные файлы должны скомпилировать без любых ошибок компиляции |
MISRA C:2012 Dir 4.1 | Отказы во время выполнения должны быть минимизированы |
MISRA C:2012 Dir 4.3 | Ассемблер должен инкапсулироваться и изолироваться |
MISRA C:2012 Dir 4.4 | Разделы кода не должны быть то, " закомментировал" |
MISRA C:2012 Dir 4.5 | Идентификаторы в том же пространстве имен с перекрывающейся видимостью должны быть типографским способом однозначными |
MISRA C:2012 Dir 4.6 | typedefs это указывает, что размер и со знаком должен использоваться вместо основных числовых типов |
MISRA C:2012 Dir 4.7 | Если функция возвратит информацию об ошибке, то та информация об ошибке должна быть протестирована |
MISRA C:2012 Dir 4.8 | Если указатель на структуру или объединение никогда не разыменовывается в модуле перевода, то реализация объекта должна быть скрыта |
MISRA C:2012 Dir 4.9 | Функция должна использоваться в предпочтении к подобному функции макросу, где они являются взаимозаменяемыми |
MISRA C:2012 Dir 4.10 | Меры предосторожности должны быть приняты для того, чтобы предотвратить содержимое заголовочного файла, включаемого несколько раз |
MISRA C:2012 Dir 4.11 | Валидность значений, переданных библиотечным функциям, должна проверяться |
MISRA C:2012 Dir 4.12 | Динамическое выделение памяти не должно использоваться |
MISRA C:2012 Dir 4.13 | Функции, которые спроектированы, чтобы обеспечить операции на ресурсе, должны быть вызваны в соответствующей последовательности |
MISRA C:2012 Dir 4.14 | Валидность значений, полученных от внешних источников, должна проверяться |
MISRA C:2012 Rule 1.1 | Программа не должна содержать нарушения стандартного Синтаксиса C и ограничения, и не должна превышать пределы перевода реализации |
MISRA C:2012 Rule 1.2 | Расширения языка не должны использоваться |
MISRA C:2012 Rule 1.3 | Не должно быть никакого вхождения неопределенного или критического незаданного поведения |
MISRA C:2012 Rule 1.4 | Функции языка на стадии становления не должны быть использованы |
MISRA C:2012 Rule 2.1 | Проект не должен содержать недостижимый код |
MISRA C:2012 Rule 2.2 | Не должно быть никакого мертвого кода |
MISRA C:2012 Rule 2.3 | Проект не должен содержать неиспользованные описания типа |
MISRA C:2012 Rule 2.4 | Проект не должен содержать неиспользованные объявления тега |
MISRA C:2012 Rule 2.5 | Проект не должен содержать неиспользованные макро-объявления |
MISRA C:2012 Rule 2.6 | Функция не должна содержать неиспользованные описания меток |
MISRA C:2012 Rule 2.7 | В функциях не должно быть никаких неиспользованных параметров |
MISRA C:2012 Rule 3.1 | Последовательности символов /* и // не буду использоваться в рамках комментария |
MISRA C:2012 Rule 3.2 | Соединение линии не должно использоваться в // комментарии |
MISRA C:2012 Rule 4.1 | Должны быть отключены восьмеричные и шестнадцатеричные escape-последовательности |
MISRA C:2012 Rule 4.2 | Trigraphs не должен использоваться |
MISRA C:2012 Rule 5.1 | Внешние идентификаторы должны быть отличными |
MISRA C:2012 Rule 5.2 | Идентификаторы, объявленные в том же осциллографе и пространстве имен, должны быть отличными |
MISRA C:2012 Rule 5.3 | Идентификатор, объявленный во внутреннем осциллографе, не должен скрывать идентификатор, объявленный во внешнем осциллографе |
MISRA C:2012 Rule 5.4 | Макро-идентификаторы должны быть отличными |
MISRA C:2012 Rule 5.5 | Идентификаторы должны быть отличны от макро-имен |
MISRA C:2012 Rule 5.6 | Имя определения типа должно быть уникальным идентификатором |
MISRA C:2012 Rule 5.7 | Имя тега должно быть уникальным идентификатором |
MISRA C:2012 Rule 5.8 | Идентификаторы, которые задают объекты или функции с внешним рычажным устройством, должны быть уникальными |
MISRA C:2012 Rule 5.9 | Идентификаторы, которые задают объекты или функции с внутренним рычажным устройством, должны быть уникальными |
MISRA C:2012 Rule 6.1 | Битовые поля должны только быть объявлены с соответствующим типом |
MISRA C:2012 Rule 6.2 | Одноразрядные именованные битовые поля не должны иметь типа со знаком |
MISRA C:2012 Rule 7.1 | Восьмеричные константы не должны использоваться |
MISRA C:2012 Rule 7.2 | Суффикс “u” или “U” должен быть применен ко всем целочисленным константам, которые представлены в типе без знака |
MISRA C:2012 Rule 7.3 | Символ нижнего регистра "l" не должен использоваться в литеральном суффиксе |
MISRA C:2012 Rule 7.4 | Строковый литерал не должен быть присвоен объекту, если тип объекта не будет “указателем на квалифицированный к const char” |
MISRA C:2012 Rule 8.1 | Типы должны быть явным образом заданы |
MISRA C:2012 Rule 8.2 | Функциональные типы должны быть в прототипной форме именованными параметрами |
MISRA C:2012 Rule 8.3 | Все объявления объекта или функции должны использовать те же имена и ввести спецификаторы |
MISRA C:2012 Rule 8.4 | Совместимое объявление должно отобразиться, когда объект или функция с внешним рычажным устройством будут заданы |
MISRA C:2012 Rule 8.5 | Внешний объект или функция должны быть объявлены однажды в одном и только одном файле |
MISRA C:2012 Rule 8.6 | Идентификатор с внешним рычажным устройством должен иметь точно одно внешнее определение |
MISRA C:2012 Rule 8.7 | Функции и объекты не должны быть заданы с внешним рычажным устройством, если на них ссылаются только в одном модуле перевода |
MISRA C:2012 Rule 8.8 | Статический спецификатор класса памяти должен использоваться во всех объявлениях объектов и функций, которые имеют внутреннее рычажное устройство |
MISRA C:2012 Rule 8.9 | Объект должен быть задан в области действия блока, если ее идентификатор только появляется в одной функции |
MISRA C:2012 Rule 8.10 | Подставляемая функция должна быть объявлена со статическим классом памяти |
MISRA C:2012 Rule 8.11 | Когда массив с внешним рычажным устройством объявляется, его размер должен быть явным образом задан |
MISRA C:2012 Rule 8.12 | В рамках списка перечислителей значение неявно заданного постоянного перечисления должно быть уникальным |
MISRA C:2012 Rule 8.13 | Указатель должен указать на квалифицированный к const тип, когда это возможно, |
MISRA C:2012 Rule 8.14 | Ограничить спецификатор типа не должен использоваться |
MISRA C:2012 Rule 9.1 | Значение объекта с длительностью автоматического хранения не должно быть считано, прежде чем это было установлено |
MISRA C:2012 Rule 9.2 | Инициализатор для агрегата или объединения должен быть заключен в фигурные скобки |
MISRA C:2012 Rule 9.3 | Массивы не должны быть частично инициализированы |
MISRA C:2012 Rule 9.4 | Элемент объекта не должен быть инициализирован несколько раз |
MISRA C:2012 Rule 9.5 | Где обозначенные инициализаторы используются, чтобы инициализировать объект массивов, что размер массива должен быть задан явным образом |
MISRA C:2012 Rule 10.1 | Операнды не должны иметь несоответствующего существенного типа |
MISRA C:2012 Rule 10.2 | Выражения чрезвычайно типа символов не должны использоваться неуместно, кроме того, и операции вычитания |
MISRA C:2012 Rule 10.3 | Значение выражения не должно быть присвоено объекту с более узким существенным типом или различной существенной категории типа |
MISRA C:2012 Rule 10.4 | Оба операнда оператора, в котором выполняются обычные арифметические преобразования, должны иметь ту же существенную категорию типа |
MISRA C:2012 Rule 10.5 | Значение выражения не должно быть брошено к несоответствующему существенному типу |
MISRA C:2012 Rule 10.6 | Значение составного выражения не должно быть присвоено объекту с более широким существенным типом |
MISRA C:2012 Rule 10.7 | Если составное выражение будет использоваться в качестве одного операнда оператора, в котором обычные арифметические преобразования выполняются затем, то другой операнд не должен иметь более широкого существенного типа |
MISRA C:2012 Rule 10.8 | Значение составного выражения не должно быть брошено к различной существенной категории типа или более широкому существенному типу |
MISRA C:2012 Rule 11.1 | Преобразования не должны выполняться между указателем на функцию и любым другим типом |
MISRA C:2012 Rule 11.2 | Преобразования не должны выполняться между указателем на неполный тип и любым другим типом |
MISRA C:2012 Rule 11.3 | Бросок не должен выполняться между указателем на тип объекта и указателем на различный тип объекта |
MISRA C:2012 Rule 11.4 | Преобразование не должно быть выполнено между указателем на объект и целочисленным типом |
MISRA C:2012 Rule 11.5 | Преобразование не должно быть выполнено от указателя, чтобы освободить в указатель на объект |
MISRA C:2012 Rule 11.6 | Бросок не должен выполняться между указателем на пустоту и арифметическим типом |
MISRA C:2012 Rule 11.7 | Бросок не должен выполняться между указателем на объект и типом арифметики нецелого числа |
MISRA C:2012 Rule 11.8 | Бросок не должен удалять const или энергозависимую проверку от типа, на который указывает указатель |
MISRA C:2012 Rule 11.9 | Макро-NULL должен быть единственной разрешенной формой целочисленного постоянного нулевого указателя |
MISRA C:2012 Rule 12.1 | Приоритет операторов в рамках выражений должен быть сделан явным |
MISRA C:2012 Rule 12.2 | Правый операнд оператора сдвига должен лечь в нуле области значений меньше, чем ширина в битах существенного типа левого операнда |
MISRA C:2012 Rule 12.3 | Оператор запятой не должен использоваться |
MISRA C:2012 Rule 12.4 | Оценка константных выражений не должна приводить к переносу беззнаковых целых чисел |
MISRA C:2012 Rule 12.5 | sizeof оператор не должен иметь операнда, который является параметром функции, объявленным как “массив типа” |
MISRA C:2012 Rule 13.1 | Списки инициализаторов не должны содержать персистентные побочные эффекты |
MISRA C:2012 Rule 13.2 | Значение выражения и его персистентных побочных эффектов должно быть тем же самым согласно всем разрешенным порядкам оценки |
MISRA C:2012 Rule 13.3 | Полное выражение, содержащее шаг (++) или декремент (-) оператор, не должно иметь никаких других потенциальных побочных эффектов кроме вызванного инкрементным или оператором понижения |
MISRA C:2012 Rule 13.4 | Результат оператора присваивания не должен использоваться |
MISRA C:2012 Rule 13.5 | Правый операнд логического && или || оператор не должен содержать персистентные побочные эффекты |
MISRA C:2012 Rule 13.6 | Операнд sizeof оператора не должен содержать выражение, которое имеет потенциальные побочные эффекты |
MISRA C:2012 Rule 14.1 | Счетчик цикла не должен иметь чрезвычайно типа с плавающей точкой |
MISRA C:2012 Rule 14.2 | Цикл for должен быть правильно построен |
MISRA C:2012 Rule 14.3 | Управление выражениями не должно быть инвариантным |
MISRA C:2012 Rule 14.4 | Выражение управления оператора if и выражение управления оператора цикла должны иметь по существу булев тип |
MISRA C:2012 Rule 15.1 | Оператор перехода не должен использоваться |
MISRA C:2012 Rule 15.2 | Оператор перехода должен перейти к метке, объявленной позже в той же функции |
MISRA C:2012 Rule 15.3 | Любая метка, на которую ссылается оператор перехода, должна быть объявлена в том же блоке, или в любом блоке, заключающем оператор перехода |
MISRA C:2012 Rule 15.4 | Должен быть не больше, чем один оператор завершения, или оператор перехода раньше отключал любой оператор цикла |
MISRA C:2012 Rule 15.5 | Функция должна иметь одну точку выхода в конце |
MISRA C:2012 Rule 15.6 | Тело оператора цикла или оператора выбора должно быть составным оператором |
MISRA C:2012 Rule 15.7 | Все, если … еще, если построения еще должны быть отключены с оператор |
MISRA C:2012 Rule 16.1 | Все операторы switch должны быть правильно построены |
MISRA C:2012 Rule 16.2 | Метка переключателя должна только использоваться, когда наиболее тесно заключающий составной оператор будет телом оператора switch |
MISRA C:2012 Rule 16.3 | Безусловный оператор завершения должен отключить каждый пункт переключателя |
MISRA C:2012 Rule 16.4 | Каждый оператор switch должен иметь метку по умолчанию |
MISRA C:2012 Rule 16.5 | Метка по умолчанию должна появиться или как первое или как последняя метка переключателя оператора switch |
MISRA C:2012 Rule 16.6 | Каждый оператор switch должен иметь по крайней мере два пункта переключателя |
MISRA C:2012 Rule 16.7 | Выражение переключателя не должно иметь по существу булева типа |
MISRA C:2012 Rule 17.1 | Функции <stdarg.h> не должны быть использованы |
MISRA C:2012 Rule 17.2 | Функции не должны вызывать себя, ни один прямо или косвенно |
MISRA C:2012 Rule 17.3 | Функция не должна быть объявлена неявно |
MISRA C:2012 Rule 17.4 | Все выходные пути от функции с непустым типом возврата должны иметь явный оператор возврата с выражением |
MISRA C:2012 Rule 17.5 | Аргумент функции, соответствующий параметру, который, как объявляют, имел тип массива, должен иметь соответствующее число элементов |
MISRA C:2012 Rule 17.6 | Объявление параметра массива не должно содержать статическое ключевое слово между [] |
MISRA C:2012 Rule 17.7 | Значение, возвращенное функцией, имеющей непустой тип возврата, должно использоваться |
MISRA C:2012 Rule 17.8 | Параметр функции не должен быть изменен |
MISRA C:2012 Rule 18.1 | Указатель, следующий из арифметики на операнде указателя, должен обратиться к элементу того же массива как тот операнд указателя |
MISRA C:2012 Rule 18.2 | Вычитание между указателями должно только быть применено к указателям, которые обращаются к элементам того же массива |
MISRA C:2012 Rule 18.3 | Операторы отношения>,> =, <и <= не должны быть применены к объектам типа указателя кроме того, где они указывают в тот же объект |
MISRA C:2012 Rule 18.4 | +, - + = и - = операторы не должны быть применены к выражению типа указателя |
MISRA C:2012 Rule 18.5 | Объявления должны содержать не больше, чем два уровня вложения указателя |
MISRA C:2012 Rule 18.6 | Адрес объекта с автоматическим хранением не должен быть скопирован в другой объект, который сохраняется после того, как первый объект прекратил существование |
MISRA C:2012 Rule 18.7 | Члены массива с переменными границами не должны быть объявлены |
MISRA C:2012 Rule 18.8 | Типы массива переменной длины не должны использоваться |
MISRA C:2012 Rule 19.1 | Объект не должен быть присвоен или скопирован в перекрывающийся объект |
MISRA C:2012 Rule 19.2 | Ключевое слово объединения не должно использоваться |
MISRA C:2012 Rule 20.1 | Директивам #include должны только предшествовать директивы препроцессору или комментарии |
MISRA C:2012 Rule 20.2 | ', "или \символы и/* или//последовательности символов не должны происходить на имя заголовочного файла |
MISRA C:2012 Rule 20.3 | #include директива должна сопровождаться или <имя файла> или последовательность "имени файла" |
MISRA C:2012 Rule 20.4 | Макрос не должен быть задан с тем же именем как ключевое слово |
MISRA C:2012 Rule 20.5 | #undef не должен использоваться |
MISRA C:2012 Rule 20.6 | Лексемы, которые похожи на директиву предварительной обработки, не должны происходить в макро-аргументе |
MISRA C:2012 Rule 20.7 | Выражения, следующие из расширения макро-параметров, должны быть заключены в круглые скобки |
MISRA C:2012 Rule 20.8 | Выражение управления #if или директивы предварительной обработки #elif должно оценить к 0 или 1 |
MISRA C:2012 Rule 20.9 | Все идентификаторы, используемые в выражении управления #if или директив предварительной обработки #elif, должны быть #define’d перед оценкой |
MISRA C:2012 Rule 20.10 | # и ## операторы препроцессора не должны использоваться |
MISRA C:2012 Rule 20.11 | Макро-параметр сразу после # оператора не должен сразу сопровождаться ## оператором |
MISRA C:2012 Rule 20.12 | Макро-параметр, используемый в качестве операнда к # или ## операторам, который самостоятельно удовлетворяет дальнейшей макро-замене, должен только использоваться в качестве операнда к этим операторам |
MISRA C:2012 Rule 20.13 | Линия, первая лексема которой является #, должна быть допустимой директивой предварительной обработки |
MISRA C:2012 Rule 20.14 | Весь #else, #elif и #endif директивы препроцессору должен находиться в том же файле как #if, #ifdef или #ifndef директива, с которой они связаны |
MISRA C:2012 Rule 21.1 | #define и #undef не должны использоваться на зарезервированном идентификаторе или зарезервировали макро-имя |
MISRA C:2012 Rule 21.2 | Зарезервированный идентификатор или зарезервированное макро-имя не должны быть объявлены |
MISRA C:2012 Rule 21.3 | Функции выделения памяти и освобождения <stdlib.h> не буду использоваться |
MISRA C:2012 Rule 21.4 | Стандартный заголовочный файл <setjmp.h> не должен использоваться |
MISRA C:2012 Rule 21.5 | Стандартный заголовочный файл <signal.h> не должен использоваться |
MISRA C:2012 Rule 21.6 | Стандартные функции ввода/вывода Библиотеки не должны использоваться |
MISRA C:2012 Rule 21.7 | Стандартные Библиотечные функции atof, atoi, atol, и atoll функции <stdlib.h> не буду использоваться |
MISRA C:2012 Rule 21.8 | Стандартные Библиотечные функции abortвыход, getnenv и system из <stdlib.h> не буду использоваться |
MISRA C:2012 Rule 21.9 | Стандартные библиотечные функции Библиотеки bsearch и qsort из <stdlib.h> не буду использоваться |
MISRA C:2012 Rule 21.10 | Стандартные функции времени и даты Библиотеки не должны использоваться |
MISRA C:2012 Rule 21.11 | Стандартный заголовочный файл <tgmath.h> не должен использоваться |
MISRA C:2012 Rule 21.12 | Функции обработки исключений <fenv.h> не должен использоваться |
MISRA C:2012 Rule 21.13 | Любое значение передало функции в <ctype.h> будет представимым как unsigned char или быть значением EOF |
MISRA C:2012 Rule 21.14 | Стандартная Библиотечная функция memcmp не буду использоваться, чтобы выдержать сравнение, пустой указатель отключил строки |
MISRA C:2012 Rule 21.15 | Аргументы указателя к Стандартным Библиотечным функциям memcpy, memmove и memcmp будут указатели на квалифицированные или неполные версии совместимых типов |
MISRA C:2012 Rule 21.16 | Аргументы указателя к Стандартной Библиотечной функции memcmp укажу или на тип указателя, чрезвычайно тип со знаком, тип чрезвычайно без знака, по существу булев тип или на по существу перечислимый тип |
MISRA C:2012 Rule 21.17 | Использование обработки строки функционирует от <string.h> не приведу к доступам вне границ объектов, на которые ссылаются их параметры указателя |
MISRA C:2012 Rule 21.18 | size_t аргумент передал любой функции в <string.h> буду иметь соответствующее значение |
MISRA C:2012 Rule 21.19 | Указатели возвращены Стандартными Библиотечными функциями localeconvgetenv, setlocale или strerror буду только использоваться, как будто у них есть указатель на const- квалифицированный тип |
MISRA C:2012 Rule 21.20 | Указатель возвращен Стандартными Библиотечными функциями asctime, ctime, gmtime, localtime, localeconvgetenv, setlocale или strerror не буду использоваться после последующего вызова той же функции |
MISRA C:2012 Rule 21.21 | Стандартная Библиотечная функция system из <stdlib.h> не буду использоваться |
MISRA C:2012 Rule 22.1 | Все средства, полученные динамически посредством Стандартных Библиотечных функций, должны быть явным образом высвобождены |
MISRA C:2012 Rule 22.2 | Блок памяти должен только быть освобожден, если это было выделено посредством Стандартной Библиотечной функции |
MISRA C:2012 Rule 22.3 | Тот же файл не должен быть открыт для доступа для чтения и доступа для записи одновременно на различных потоках |
MISRA C:2012 Rule 22.4 | Не должно быть никакой попытки записать в поток, который был открыт как только для чтения |
MISRA C:2012 Rule 22.5 | Указатель на FILE объект не должен быть разыменован |
MISRA C:2012 Rule 22.6 | Значение указателя на FILE не буду использоваться после того, как связанный поток был закрыт |
MISRA C:2012 Rule 22.7 | Макро-EOF должен только быть по сравнению с немодифицированным возвращаемым значением от любой Стандартной Библиотечной функции, способной к возврату EOF |
MISRA C:2012 Rule 22.8 | Значение errno буду обнулен до вызова errno- функция установки |
MISRA C:2012 Rule 22.9 | Значение errno буду протестирован против нуля после вызова errno- установка функции |
MISRA C:2012 Rule 22.10 | Значение errno буду только протестирован, когда последней функцией, которая будет названа, был errno- установка функции |
CERT C: Rule PRE30-C | Не создавайте универсальное имя персонажа посредством конкатенации |
CERT C: Rule PRE31-C | Избегайте побочных эффектов в аргументах к небезопасным макросам |
CERT C: Rule PRE32-C | Не используйте директивы препроцессору в вызовах подобных функции макросов |
CERT C: Rule DCL30-C | Объявите объекты с соответствующими продолжительностями хранения |
CERT C: Rule DCL31-C | Объявите идентификаторы перед использованием их |
CERT C: Rule DCL36-C | Не объявляйте идентификатор с конфликтными классификациями рычажных устройств |
CERT C: Rule DCL37-C | Не объявляйте или задавайте зарезервированный идентификатор |
CERT C: Rule DCL38-C | Используйте правильный синтаксис при объявлении члена массива с переменными границами |
CERT C: Rule DCL39-C | Избегайте утечки информации в дополнении структуры |
CERT C: Rule DCL40-C | Не создавайте несовместимые объявления той же функции или объекта |
CERT C: Rule DCL41-C | Не объявляйте переменные в операторе switch перед первой меткой случая |
CERT C: Rule EXP30-C | Не зависьте от порядка оценки для побочных эффектов |
CERT C: Rule EXP32-C | Не получайте доступ к энергозависимому объекту через энергонезависимую ссылку |
CERT C: Rule EXP33-C | Не читайте неинициализированную память |
CERT C: Rule EXP34-C | Не разыменовывайте нулевых указателей |
CERT C: Rule EXP35-C | Не изменяйте объекты с временным временем жизни |
CERT C: Rule EXP36-C | Не бросайте указатели в более строго выровненные типы указателей |
CERT C: Rule EXP37-C | Вызовите функции с правильным номером и типом аргументов |
CERT C: Rule EXP39-C | Не получайте доступ к переменной через указатель несовместимого типа |
CERT C: Rule EXP40-C | Не изменяйте постоянные объекты |
CERT C: Rule EXP42-C | Не сравнивайте дополнительные данные |
CERT C: Rule EXP43-C | Избегайте, чтобы неопределенное поведение при использовании ограничило - квалифицированные указатели |
CERT C: Rule EXP44-C | Не используйте побочные эффекты в операндах к sizeof, _Alignof, или _Generic |
CERT C: Rule EXP45-C | Не выполняйте присвоения в операторах выбора |
CERT C: Rule EXP46-C | Не используйте побитовый оператор с подобным boolean операндом |
CERT C: Rule EXP47-C | Не вызывайте va_arg с аргументом неправильного типа |
CERT C: Rule INT30-C | Убедитесь, что операции беззнаковых целых чисел не переносятся |
CERT C: Rule INT31-C | Убедитесь, что целочисленные преобразования не приводят к потерянным или неправильно истолкованным данным |
CERT C: Rule INT32-C | Убедитесь, что операции на целых числах со знаком не приводят к переполнению |
CERT C: Rule INT33-C | Убедитесь, что деление и операции остатка не приводят к ошибкам деления на нуль |
CERT C: Rule INT34-C | Не переключайте выражение отрицательным числом битов или большим, чем или равняйтесь количеству битов, которые существуют в операнде |
CERT C: Rule INT35-C | Используйте правильную целочисленную точность |
CERT C: Rule INT36-C | Преобразование указателя на целое число или целое число к указателю |
CERT C: Rule FLP30-C | Не используйте переменные с плавающей точкой в качестве счетчиков цикла |
CERT C: Rule FLP32-C | Предотвратите или обнаружьте область и ошибки области значений в математических функциях |
CERT C: Rule FLP34-C | Убедитесь, что преобразования с плавающей точкой в области значений нового типа |
CERT C: Rule FLP36-C | Сохраните точность при преобразовании интегральных значений в тип с плавающей точкой |
CERT C: Rule FLP37-C | Не используйте объектные представления, чтобы сравнить значения с плавающей точкой |
CERT C: Rule ARR30-C | Не формируйте или используйте за пределы индексы массивов или указатели |
CERT C: Rule ARR32-C | Гарантируйте, что аргументы размера для массивов переменной длины находятся в допустимой области значений |
CERT C: Rule ARR36-C | Не вычитайте или сравнивайте два указателя, которые не относятся к тому же массиву |
CERT C: Rule ARR37-C | Не добавляйте или вычитайте целое число к указателю на объект немассивов |
CERT C: Rule ARR38-C | Гарантируйте, что библиотечные функции не формируют недопустимые указатели |
CERT C: Rule ARR39-C | Не добавляйте или вычитайте масштабированное целое число к указателю |
CERT C: Rule STR30-C | Не пытайтесь изменить строковые литералы |
CERT C: Rule STR31-C | Гарантируйте, что устройство хранения данных для строк имеет достаточный пробел для символьных данных и пустого терминатора строки |
CERT C: Rule STR32-C | Не передавайте не пустую отключенную последовательность символов библиотечной функции, которая ожидает строку |
CERT C: Rule STR34-C | Бросьте символы к char без знака прежде, чем преобразовать в большие целочисленные размеры |
CERT C: Rule STR37-C | Аргументы к обрабатывающим символ функциям должны быть представимыми как char без знака |
CERT C: Rule STR38-C | Не путайте строки узкого и широкого символа и функции |
CERT C: Rule MEM30-C | Не получайте доступ освобожденный память |
CERT C: Rule MEM31-C | Свободная динамически выделенная память, когда больше не необходимый |
CERT C: Rule MEM33-C | Выделите и скопируйте структуры, содержащие член массива с переменными границами динамически |
CERT C: Rule MEM34-C | Только свободная память, выделенная динамически |
CERT C: Rule MEM35-C | Выделите достаточную память для объекта |
CERT C: Rule MEM36-C | Не изменяйте выравнивание объектов путем вызова перевыделения () |
CERT C: Rule FIO30-C | Исключите ввод данных пользователем из строк формата |
CERT C: Rule FIO32-C | Не выполняйте операции на устройствах, которые только подходят для файлов |
CERT C: Rule FIO34-C | Различайте символы, считанные из файла и EOF или WEOF |
CERT C: Rule FIO37-C | Не принимайте, что fgets () или fgetws () возвращает непустую строку, когда успешный |
CERT C: Rule FIO38-C | Не копируйте объект FILE |
CERT C: Rule FIO39-C | Не делайте альтернативно ввода и вывода от потока без прошедшего сброса или располагающий вызов |
CERT C: Rule FIO40-C | Сбросьте строки на fgets () или fgetws () отказ |
CERT C: Rule FIO41-C | Не вызывайте getc (), putc (), getwc (), или putwc () с потоковым аргументом, который имеет побочные эффекты |
CERT C: Rule FIO42-C | Закройте файлы, когда они больше не будут необходимы |
CERT C: Rule FIO44-C | Только используйте значения для fsetpos (), которые возвращены в fgetpos () |
CERT C: Rule FIO45-C | Избегайте условий состязания TOCTOU при доступе к файлам |
CERT C: Rule FIO46-C | Не получайте доступ к закрытому файлу |
CERT C: Rule FIO47-C | Используйте строки допустимого формата |
CERT C: Rule ENV30-C | Не изменяйте объект, на который ссылается возвращаемое значение определенных функций |
CERT C: Rule ENV31-C | Не используйте указатель среды после операции, которая может делать недействительным его |
CERT C: Rule ENV32-C | Все выходные обработчики должны обычно возвращаться |
CERT C: Rule ENV33-C | Не вызывайте систему () |
CERT C: Rule ENV34-C | Не храните указатели, возвращенные определенными функциями |
CERT C: Rule SIG30-C | Вызовите только асинхронно-безопасные функции в обработчиках сигнала |
CERT C: Rule SIG31-C | Не получайте доступ к общим объектам в обработчиках сигнала |
CERT C: Rule SIG34-C | Не делайте позывного () из прерываемых обработчиков сигнала |
CERT C: Rule SIG35-C | Не возвращайтесь из вычислительного обработчика сигнала исключения |
CERT C: Rule ERR30-C | Обнулите errno прежде, чем вызвать библиотечную функцию, которая, как известно, установила errno и проверять errno только после того, как функция возвратит отказ указания значения |
CERT C: Rule ERR32-C | Не используйте неопределенные значения errno |
CERT C: Rule ERR33-C | Обнаружьте и обработайте стандартные ошибки библиотеки |
CERT C: Rule ERR34-C | Обнаружьте ошибки при преобразовании строки в номер |
CERT C: Rule CON30-C | Очистите специфичное для потока устройство хранения данных |
CERT C: Rule CON31-C | Не уничтожайте взаимное исключение, в то время как оно заблокировано |
CERT C: Rule CON32-C | Предотвратите гонки данных при доступе к битовым полям от нескольких потоков |
CERT C: Rule CON33-C | Избегайте условий состязания при использовании библиотечных функций |
CERT C: Rule CON34-C | Объявите объекты, совместно использованные потоками с соответствующими продолжительностями хранения |
CERT C: Rule CON35-C | Избегайте мертвой блокировки путем привязки предопределенного порядка |
CERT C: Rule CON36-C | Перенесите функции, которые могут побочно проснуться в цикле |
CERT C: Rule CON37-C | Не делайте позывного () в многопоточной программе |
CERT C: Rule CON38-C | Сохраните потокобезопасность и живучесть при использовании условных переменных |
CERT C: Rule CON39-C | Не соединяйте или отсоединяйте поток, к которому ранее соединили или отсоединили |
CERT C: Rule CON40-C | Не обращайтесь к атомарной переменной дважды в выражении |
CERT C: Rule CON41-C | Перенесите функции, которые могут перестать работать побочно в цикле |
CERT C: Rule CON43-C | Не позволяйте гонки данных в многопоточном коде |
CERT C: Rule MSC30-C | Не используйте rand () функция для генерации псевдослучайных чисел |
CERT C: Rule MSC32-C | Правильно отберите генераторы псевдослучайного числа |
CERT C: Rule MSC33-C | Не передавайте недопустимые данные asctime () функция |
CERT C: Rule MSC37-C | Убедитесь, что управление никогда не достигает конца непустой функции |
CERT C: Rule MSC38-C | Не обрабатывайте предопределенный идентификатор как объект, если это может только быть реализовано как макрос |
CERT C: Rule MSC39-C | Не вызывайте va_arg () на va_list, который имеет неопределенное значение |
CERT C: Rule MSC40-C | Не нарушайте ограничения |
CERT C: Rule MSC41-C | Никогда трудная кодозависимая информация |
CERT C: Rule POS30-C | Используйте readlink () функция правильно |
CERT C: Rule POS34-C | Не вызывайте putenv () с указателем на автоматическую переменную в качестве аргумента |
CERT C: Rule POS35-C | Избегайте условий состязания при проверке на существование символьной ссылки |
CERT C: Rule POS36-C | Наблюдайте правильный порядок аннулирования при отказе от привилегий |
CERT C: Rule POS37-C | Убедитесь, что отказ привилегии успешен |
CERT C: Rule POS38-C | Остерегайтесь условий состязания при использовании ветвления и дескрипторов файлов |
CERT C: Rule POS39-C | Используйте правильный порядок байтов при передаче данных между системами |
CERT C: Rule POS44-C | Не используйте сигналы отключить потоки |
CERT C: Rule POS47-C | Не используйте потоки, которые могут быть отменены асинхронно |
CERT C: Rule POS48-C | Не разблокируйте или уничтожьте другое взаимное исключение потока POSIX |
CERT C: Rule POS49-C | Когда к данным должны получить доступ несколько потоков, обеспечьте взаимное исключение и гарантируйте, что ни к каким смежным данным также не получают доступ |
CERT C: Rule POS50-C | Объявите объекты, совместно использованные потоками POSIX с соответствующими продолжительностями хранения |
CERT C: Rule POS51-C | Избегайте мертвой блокировки с потоками POSIX путем привязки предопределенного порядка |
CERT C: Rule POS52-C | Не выполняйте операции, которые могут блокироваться при содержании блокировки POSIX |
CERT C: Rule POS53-C | Не используйте больше чем одно взаимное исключение для параллельных операций ожидания на условной переменной |
CERT C: Rule POS54-C | Обнаружьте и обработайте ошибки библиотеки POSIX |
CERT C: Rule WIN30-C | Правильно парные функции выделения и освобождения |
CERT C: Rec. PRE00-C | Предпочтите встроенные или статические функции подобным функции макросам |
CERT C: Rec. PRE01-C | Используйте круглые скобки в макросах вокруг названий параметра |
CERT C: Rec. PRE06-C | Заключите заголовочные файлы в защиту включения |
CERT C: Rec. PRE07-C | Избегайте использования повторенных вопросительных знаков |
CERT C: Rec. PRE09-C | Не заменяйте безопасные функции на или устаревающие функции устаревшие |
CERT C: Rec. PRE10-C | Перенесите составные макросы в цикл с условием продолжения |
CERT C: Rec. PRE11-C | Не завершайте макроопределения с точкой с запятой |
CERT C: Rec. DCL00-C | Const - квалифицирует неизменяемые объекты |
CERT C: Rec. DCL01-C | Не снова используйте имена переменных в подосциллографах |
CERT C: Rec. DCL02-C | Используйте визуально отличные идентификаторы |
CERT C: Rec. DCL06-C | Используйте значимые символьные константы, чтобы представлять литеральные значения |
CERT C: Rec. DCL07-C | Включайте соответствующую информацию о типе в функциональные операторы объявления |
CERT C: Rec. DCL10-C | Обеспечьте контракт между средством записи и вызывающей стороной функций variadic |
CERT C: Rec. DCL11-C | Изучите проблемы типа, сопоставленные с функциями variadic |
CERT C: Rec. DCL12-C | Реализуйте абстрактные типы данных с помощью непрозрачных типов |
CERT C: Rec. DCL13-C | Объявите параметры функции, которые являются указателями на значения, не измененные функцией как const |
CERT C: Rec. DCL15-C | Объявите объекты осциллографа файла или функции, для которых не нужно внешнее рычажное устройство как статическое |
CERT C: Rec. DCL16-C | Используйте 'L', не 'l', чтобы указать на долгое значение |
CERT C: Rec. DCL18-C | Не начинайте целочисленные константы с 0 при определении десятичного значения |
CERT C: Rec. DCL19-C | Минимизируйте осциллограф переменных и функций |
CERT C: Rec. DCL22-C | Используйте энергозависимый для данных, которые не могут кэшироваться |
CERT C: Rec. DCL23-C | Гарантируйте, что взаимно видимые идентификаторы уникальны |
CERT C: Rec. EXP00-C | Используйте круглые скобки для приоритета операции |
CERT C: Rec. EXP05-C | Не выбрасывайте проверку const |
CERT C: Rec. EXP08-C | Гарантируйте, что адресная арифметика с указателями используется правильно |
CERT C: Rec. EXP09-C | Используйте sizeof, чтобы определить размер типа или переменной |
CERT C: Rec. EXP10-C | Не зависьте от порядка оценки подвыражений или порядка, в котором происходят побочные эффекты |
CERT C: Rec. EXP12-C | Не игнорируйте значения, возвращенные функциями |
CERT C: Rec. EXP13-C | Обработайте операторы отношения и операторы равенства, как будто они были неассоциативны |
CERT C: Rec. EXP15-C | Не помещайте точку с запятой в ту же линию как если, поскольку, или в то время как оператор |
CERT C: Rec. EXP19-C | Используйте фигурные скобки для тела если, поскольку, или в то время как оператор |
CERT C: Rec. INT00-C | Изучите модель данных, используемую вашей реализацией (реализациями) |
CERT C: Rec. INT02-C | Изучите целочисленные правила преобразования |
CERT C: Rec. INT04-C | Осуществите пределы на целочисленных значениях, происходящих из испорченных источников |
CERT C: Rec. INT07-C | Используйте только явным образом подписанный или символьный тип без знака для числовых значений |
CERT C: Rec. INT08-C | Проверьте, что все целочисленные значения находятся в области значений |
CERT C: Rec. INT09-C | Гарантируйте, что константы перечисления сопоставляют с уникальными значениями |
CERT C: Rec. INT10-C | Не принимайте положительный остаток при использовании оператора % |
CERT C: Rec. INT12-C | Не делайте предположения о типе простого международного битового поля, когда используется в выражении |
CERT C: Rec. INT13-C | Используйте побитовые операторы только на операндах без знака |
CERT C: Rec. INT14-C | Постарайтесь не выполнять битовые и арифметические операции на тех же данных |
CERT C: Rec. INT18-C | Выполните целые выражения в большем размере прежде, чем сравнить или присвоить тому размеру |
CERT C: Rec. FLP00-C | Изучите ограничения чисел с плавающей запятой |
CERT C: Rec. FLP02-C | Избегайте использования чисел с плавающей запятой, когда точный расчет будет необходим |
CERT C: Rec. FLP03-C | Обнаружьте и обработайте ошибки с плавающей точкой |
CERT C: Rec. FLP06-C | Преобразуйте целые числа в плавающую точку для операций с плавающей точкой |
CERT C: Rec. ARR01-C | Не применяйте sizeof оператор к указателю при взятии размера массива |
CERT C: Rec. ARR02-C | Явным образом задайте границы массивов, даже если неявно заданный инициализатором |
CERT C: Rec. STR02-C | Санируйте данные, переданные комплексным подсистемам |
CERT C: Rec. STR03-C | Непреднамеренно не обрезайте строку |
CERT C: Rec. STR07-C | Используйте проверяющие границы интерфейсы для обработки строк |
CERT C: Rec. STR11-C | Не задавайте связанный из символьного массива, инициализированного строковым литералом |
CERT C: Rec. MEM00-C | Выделите и освободите память в том же модуле на том же уровне абстракции |
CERT C: Rec. MEM01-C | Сохраните новое значение в указателях сразу после свободный () |
CERT C: Rec. MEM02-C | Сразу бросьте результат вызова функции выделения памяти в указатель на выделенный тип |
CERT C: Rec. MEM03-C | Очистите уязвимую информацию, хранившую в допускающих повторное использование ресурсах |
CERT C: Rec. MEM04-C | Остерегайтесь выделений нулевой длины |
CERT C: Rec. MEM05-C | Избегайте больших выделений стека |
CERT C: Rec. MEM06-C | Убедитесь, что уязвимые данные не выписаны к диску |
CERT C: Rec. MEM11-C | Не принимайте бесконечное пространство "кучи" |
CERT C: Rec. MEM12-C | Рассмотрите использование goto цепи при отъезде функции при ошибке при использовании и высвобождении средств |
CERT C: Rec. FIO02-C | Канонизируйте пути, происходящие из испорченных источников |
CERT C: Rec. FIO11-C | Заботьтесь при определении параметра режима fopen () |
CERT C: Rec. FIO21-C | Не создавайте временные файлы в общих каталогах |
CERT C: Rec. FIO24-C | Не открывайте файл, который уже открыт |
CERT C: Rec. ENV01-C | Не делайте предположения о размере переменной окружения |
CERT C: Rec. ERR00-C | Примите и представьте сопоставимую и всестороннюю политику обработки ошибок |
CERT C: Rec. API04-C | Обеспечьте сопоставимый и применимый механизм проверки ошибок |
CERT C: Rec. CON01-C | Получите и выпустите примитивы синхронизации в том же модуле на том же уровне абстракции |
CERT C: Rec. CON05-C | Не выполняйте операции, которые могут блокироваться при содержании блокировки |
CERT C: Rec. MSC01-C | Боритесь за логическую полноту |
CERT C: Rec. MSC04-C | Используйте комментарии последовательно и читаемым способом |
CERT C: Rec. MSC12-C | Обнаружьте и удалите код, который не оказывает влияния или никогда не выполняется |
CERT C: Rec. MSC13-C | Обнаружьте и удалите неиспользованные значения |
CERT C: Rec. MSC15-C | Не зависьте от неопределенного поведения |
CERT C: Rec. MSC17-C | Закончите каждый набор операторов, сопоставленных с меткой случая с оператором завершения |
CERT C: Rec. MSC18-C | Будьте осторожны при обработке уязвимых данных, таких как пароли, в коде программы |
CERT C: Rec. MSC20-C | Не используйте оператор switch, чтобы передать управление в комплексный блок |
CERT C: Rec. MSC21-C | Используйте устойчивые условия выхода из цикла |
CERT C: Rec. MSC22-C | Используйте setjmp (), longjmp () средство надежно |
CERT C: Rec. MSC24-C | Не используйте удержанные от использования или устаревающие функции |
CERT C: Rec. POS05-C | Ограничьте доступ к файлам путем создания тюрьмы |
CERT C: Rec. WIN00-C | Будьте конкретны при динамичной загрузке библиотек |
ISO/IEC TS 17961 [accfree] | Доступ освобожден память |
ISO/IEC TS 17961 [accsig] | Доступ к общим объектам в обработчиках сигнала |
ISO/IEC TS 17961 [addrescape] | Выход адреса автоматического объекта |
ISO/IEC TS 17961 [alignconv] | Преобразование значений указателя к более строго выровненным типам указателей |
ISO/IEC TS 17961 [argcomp] | Вызывание функций с неправильными аргументами |
ISO/IEC TS 17961 [asyncsig] | Вызывая функции в Стандартной Библиотеке C кроме аварийного прекращения работы, _Exit, и сигнал из обработчика сигнала |
ISO/IEC TS 17961 [boolasgn] | Никакое присвоение в условных выражениях |
ISO/IEC TS 17961 [chreof] | Используя символьные значения, которые неотличимы от EOF |
ISO/IEC TS 17961 [chrsgnext] | Передающие аргументы к функциям обработки символа, которые не являются представимыми как char без знака |
ISO/IEC TS 17961 [dblfree] | Освобождение памяти многократно |
ISO/IEC TS 17961 [diverr] | Ошибки целочисленного деления |
ISO/IEC TS 17961 [fileclose] | Сбой закрыть файлы или свободную динамическую память, когда они больше не необходимы |
ISO/IEC TS 17961 [filecpy] | Копирование объекта FILE |
ISO/IEC TS 17961 [funcdecl] | Объявление той же функции или объекта несовместимыми способами |
ISO/IEC TS 17961 [insufmem] | Выделение недостаточно памяти |
ISO/IEC TS 17961 [intoflow] | Переполнение целых чисел со знаком |
ISO/IEC TS 17961 [intptrconv] | Преобразование указателя на целое число или целое число к указателю |
ISO/IEC TS 17961 [inverrno] | Установка Incorrectly и использующий errno |
ISO/IEC TS 17961 [invfmtstr] | Используя строки недопустимого формата |
ISO/IEC TS 17961 [invptr] | Формирование или использование за пределы указателей или индексов массивов |
ISO/IEC TS 17961 [ioileave] | Перемежение потоковых вводов и выходных параметров без сброса или расположение вызова |
ISO/IEC TS 17961 [liberr] | Сбой обнаружить и обработать стандартные ошибки библиотеки |
ISO/IEC TS 17961 [libmod] | Изменяя строку, возвращенную getenv, localeconv, setlocale, и strerror |
ISO/IEC TS 17961 [libptr] | Формирование недопустимых указателей библиотечной функцией |
ISO/IEC TS 17961 [libuse] | Используя объект, перезаписанный getenv, localeconv, setlocale, и strerror |
ISO/IEC TS 17961 [nonnullcs] | Передача не пустой отключенной последовательности символов к библиотечной функции |
ISO/IEC TS 17961 [nullref] | Разыменование указателя вне основной области |
ISO/IEC TS 17961 [padcomp] | Сравнение дополнения данных |
ISO/IEC TS 17961 [ptrcomp] | Доступ к объекту через указатель на несовместимый тип |
ISO/IEC TS 17961 [ptrobj] | Вычитание или сравнение двух указателей, которые не относятся к тому же массиву |
ISO/IEC TS 17961 [resident] | Используя идентификаторы, которые резервируются для реализации |
ISO/IEC TS 17961 [restrict] | Передающие указатели в тот же объект в качестве аргументов к различному ограничивают - квалифицированные параметры |
ISO/IEC TS 17961 [sigcall] | Вызов сигнала от прерываемых обработчиков сигнала |
ISO/IEC TS 17961 [signconv] | Преобразование символов со знаком к более широким целочисленным типам перед проверкой на EOF |
ISO/IEC TS 17961 [sizeofptr] | Взятие размера указателя, чтобы определить размер указанного тип |
ISO/IEC TS 17961 [strmod] | Изменение строковых литералов |
ISO/IEC TS 17961 [swtchdflt] | Использование подразумеваемого значения по умолчанию в операторе switch |
ISO/IEC TS 17961 [syscall] | Вызов системы |
ISO/IEC TS 17961 [taintformatio] | Используя испорченное значение, чтобы записать в объект с помощью отформатированной функции ввода или вывода |
ISO/IEC TS 17961 [taintnoproto] | Используя испорченное значение в качестве аргумента к несмоделированному указателю функции |
ISO/IEC TS 17961 [taintsink] | Испорченный, потенциально искалеченные, или целочисленные значения вне основной области используются в ограниченном приемнике |
ISO/IEC TS 17961 [taintstrcpy] | Испорченные строки передаются функции копирования строки |
ISO/IEC TS 17961 [uninitref] | Ссылка деинициализировала память |
ISO/IEC TS 17961 [usrfmt] | Включая испорченный или вход вне основной области в строке формата |
ISO/IEC TS 17961 [xfilepos] | Используя значение для fsetpos кроме значения, возвращенного от fgetpos |
ISO/IEC TS 17961 [xfree] | Перераспределение или освобождение памяти, которая не была динамически выделена |
MISRA C++:2008 Rule 0-1-1 | Проект не должен содержать недостижимый код |
MISRA C++:2008 Rule 0-1-2 | Проект не должен содержать неосуществимые пути |
MISRA C++:2008 Rule 0-1-3 | Проект не должен содержать неиспользуемые переменные |
MISRA C++:2008 Rule 0-1-4 | Проект не должен содержать энергонезависимые переменные POD, имеющие только одно использование |
MISRA C++:2008 Rule 0-1-5 | Проект не должен содержать неиспользованные описания типа |
MISRA C++:2008 Rule 0-1-7 | Значение, возвращенное функцией, имеющей не - пустой тип возврата, который не является перегруженным оператором, должно всегда использоваться |
MISRA C++:2008 Rule 0-1-9 | Не должно быть никакого мертвого кода |
MISRA C++:2008 Rule 0-1-10 | Каждая заданная функция должна быть вызвана, по крайней мере, однажды |
MISRA C++:2008 Rule 0-1-11 | Не должно быть никаких неиспользованных параметров (названы или без имени) в невиртуальных функциях |
MISRA C++:2008 Rule 0-1-12 | Не должно быть никаких неиспользованных параметров (названы или без имени) в наборе параметров для виртуальной функции и всех функций, которые заменяют его |
MISRA C++:2008 Rule 0-2-1 | Объект не должен быть присвоен перекрывающемуся объекту |
MISRA C++:2008 Rule 0-3-2 | Если функция сгенерирует информацию об ошибке, то та информация об ошибке должна быть протестирована |
MISRA C++:2008 Rule 1-0-1 | Весь код должен соответствовать ISO/IEC 14882:2003 "Стандарт C++ Слияние Технического Исправления 1" |
MISRA C++:2008 Rule 2-3-1 | Trigraphs не должен использоваться |
MISRA C++:2008 Rule 2-5-1 | Диграфы не должны использоваться |
MISRA C++:2008 Rule 2-7-1 | Последовательность символов/* не должна использоваться в рамках комментария C-стиля |
MISRA C++:2008 Rule 2-7-2 | Разделы кода не должны быть то, " закомментировал" использование комментариев C-стиля |
MISRA C++:2008 Rule 2-7-3 | Разделы кода не должны быть то, " закомментировал" использование комментариев в стиле С++ |
MISRA C++:2008 Rule 2-10-1 | Различные идентификаторы должны быть типографским способом однозначными |
MISRA C++:2008 Rule 2-10-2 | Идентификаторы, объявленные во внутреннем осциллографе, не должны скрывать идентификатор, объявленный во внешнем осциллографе |
MISRA C++:2008 Rule 2-10-3 | Имя определения типа (включая проверку, если таковые имеются) должно быть уникальным идентификатором |
MISRA C++:2008 Rule 2-10-4 | Класс, объединение или перечислимое имя (включая проверку, если таковые имеются) должны быть уникальным идентификатором |
MISRA C++:2008 Rule 2-10-5 | Имя идентификатора объекта лица, не являющегося членом какой-либо организации, или функции со статической продолжительностью хранения не должно быть снова использовано |
MISRA C++:2008 Rule 2-10-6 | Если идентификатор будет относиться к типу, он не должен также относиться к объекту или функции в том же осциллографе |
MISRA C++:2008 Rule 2-13-1 | Только те escape-последовательности, которые заданы в ISO/IEC 14882:2003, должны использоваться |
MISRA C++:2008 Rule 2-13-2 | Восьмеричные константы (кроме нуля) и восьмеричные escape-последовательности (кроме "\0") не должны использоваться |
MISRA C++:2008 Rule 2-13-3 | Суффикс "U" должен быть применен ко всем восьмеричным или шестнадцатеричным целочисленным литералам типа без знака |
MISRA C++:2008 Rule 2-13-4 | Литеральные суффиксы должны быть верхним регистром |
MISRA C++:2008 Rule 2-13-5 | Узкие и широкие строковые литералы не должны быть конкатенированы |
MISRA C++:2008 Rule 3-1-1 | Должно быть возможно включать любой заголовочный файл в несколько модулей перевода, не нарушая Одно Правило Определения |
MISRA C++:2008 Rule 3-1-2 | Функции не должны быть объявлены в области действия блока |
MISRA C++:2008 Rule 3-1-3 | Когда массив будет объявлен, его размер должен или быть утвержден явным образом или задан неявно инициализацией |
MISRA C++:2008 Rule 3-2-1 | Все объявления объекта или функции должны иметь совместимые типы |
MISRA C++:2008 Rule 3-2-2 | Одно Правило Определения не должно быть нарушено |
MISRA C++:2008 Rule 3-2-3 | Тип, объект или функция, которая используется в нескольких модулях перевода, должны быть объявлены в одном и только одном файле |
MISRA C++:2008 Rule 3-2-4 | Идентификатор с внешним рычажным устройством должен иметь точно одно определение |
MISRA C++:2008 Rule 3-3-1 | Объекты или функции с внешним рычажным устройством должны быть объявлены в заголовочном файле |
MISRA C++:2008 Rule 3-3-2 | Если функция будет иметь внутреннее рычажное устройство затем, то все переобъявления должны включать статический спецификатор класса памяти |
MISRA C++:2008 Rule 3-4-1 | Идентификатор, который, как объявляют, был объектом или типом, должен быть задан в блоке, который минимизирует его видимость |
MISRA C++:2008 Rule 3-9-1 | Типы, используемые для объекта, функционального типа возврата или параметра функции, должны быть лексемой для лексемы, идентичной во всех объявлениях и переобъявлениях |
MISRA C++:2008 Rule 3-9-2 | определения типов, которые указывают на размер и со знаком, должны использоваться вместо основных числовых типов |
MISRA C++:2008 Rule 3-9-3 | Базовые битные представления значений с плавающей точкой не должны использоваться |
MISRA C++:2008 Rule 4-5-1 | Выражения с типом bool не должны использоваться в качестве операндов к встроенным операторам кроме оператора присваивания =, логические операторы &&, ||!, операторы равенства == и! =, унарное & оператор и условный оператор |
MISRA C++:2008 Rule 4-5-2 | Выражения с перечислением типа не должны использоваться в качестве операндов к созданному - в операторах кроме оператора индекса [], оператор присваивания =, операторы равенства == и! =, унарное & оператор и операторы отношения <<=>,> = |
MISRA C++:2008 Rule 4-5-3 | Выражения с типом (простой) char и wchar_t не должны использоваться в качестве операндов к встроенным операторам кроме оператора присваивания =, операторы равенства == и! =, и унарное & оператор N |
MISRA C++:2008 Rule 4-10-1 | NULL не должен использоваться в качестве целочисленного значения |
MISRA C++:2008 Rule 4-10-2 | Литеральный нуль (0) не должен использоваться в качестве постоянного нулевым указателем |
MISRA C++:2008 Rule 5-0-1 | Значение выражения должно быть тем же самым согласно любому порядку оценки, которую разрешает стандарт |
MISRA C++:2008 Rule 5-0-2 | Ограниченная зависимость должна быть помещена в правила приоритета оператора C++ в выражениях |
MISRA C++:2008 Rule 5-0-3 | cvalue выражение не должно быть неявно преобразовано в различный базовый тип |
MISRA C++:2008 Rule 5-0-4 | Неявное интегральное преобразование не должно изменять со знаком из базового типа |
MISRA C++:2008 Rule 5-0-5 | Не должно быть никаких неявных интегральных плаванием преобразований |
MISRA C++:2008 Rule 5-0-6 | Неявное интегральное или преобразование с плавающей точкой не должно уменьшать размер базового типа |
MISRA C++:2008 Rule 5-0-7 | Не должно быть никаких явных интегральных плаванием преобразований cvalue выражения |
MISRA C++:2008 Rule 5-0-8 | Явное интегральное или преобразование с плавающей точкой не должно увеличивать размер базового типа cvalue выражения |
MISRA C++:2008 Rule 5-0-9 | Явное интегральное преобразование не должно изменять со знаком из базового типа cvalue выражения |
MISRA C++:2008 Rule 5-0-10 | Если побитовые операторы ~ и <<будут применены к операнду с базовым типом символьного или короткого целого без знака без знака, результат должен быть сразу брошен к базовому типу операнда |
MISRA C++:2008 Rule 5-0-11 | Простой символьный тип должен только использоваться для устройства хранения данных и использования символьных значений |
MISRA C++:2008 Rule 5-0-12 | Символ со знаком и символьный тип без знака должны только использоваться для устройства хранения данных и использования числовых значений |
MISRA C++:2008 Rule 5-0-13 | Условие оператора "if" и условие оператора цикла должны иметь тип bool |
MISRA C++:2008 Rule 5-0-14 | Первый операнд условного оператора должен иметь тип bool |
MISRA C++:2008 Rule 5-0-15 | Индексация массива должна быть единственной формой адресной арифметики с указателями |
MISRA C++:2008 Rule 5-0-16 | Операнд указателя и любой указатель, следующий из адресной арифметики с указателями с помощью того операнда, должны оба обратиться к элементам того же массива. |
MISRA C++:2008 Rule 5-0-17 | Вычитание между указателями должно только быть применено к указателям, которые обращаются к элементам того же массива |
MISRA C++:2008 Rule 5-0-18 | >,> =, <<= не буду применен к объектам типа указателя, кроме того, где они указывают на тот же массив |
MISRA C++:2008 Rule 5-0-19 | Объявление объектов должно содержать не больше, чем два уровня косвенности указателя |
MISRA C++:2008 Rule 5-0-20 | Непостоянные операнды к бинарному побитовому оператору должны иметь тот же базовый тип |
MISRA C++:2008 Rule 5-0-21 | Побитовые операторы должны только быть применены к операндам базового типа без знака |
MISRA C++:2008 Rule 5-2-1 | Каждый операнд логического && или || должен быть постфиксным выражением |
MISRA C++:2008 Rule 5-2-2 | Указатель на виртуальный базовый класс должен только быть брошен к указателю на производный класс посредством dynamic_cast |
MISRA C++:2008 Rule 5-2-3 | Броски от базового класса до производного класса не должны быть выполнены на полиморфных типах |
MISRA C++:2008 Rule 5-2-4 | Броски C-стиля (кроме пустых бросков) и функциональных бросков обозначения (кроме вызовов явного конструктора) не должны использоваться |
MISRA C++:2008 Rule 5-2-5 | Бросок не должен удалять const или энергозависимую проверку от типа указателя или ссылки |
MISRA C++:2008 Rule 5-2-6 | Бросок не должен преобразовывать указатель на функцию ни к какому другому типу указателя, включая указатель на функциональный тип |
MISRA C++:2008 Rule 5-2-7 | Объект с типом указателя не должен быть преобразован в несвязанный тип указателя, ни один прямо или косвенно |
MISRA C++:2008 Rule 5-2-8 | Объект с целочисленным типом или указателем, чтобы освободить тип не должен быть преобразован в объект с типом указателя |
MISRA C++:2008 Rule 5-2-9 | Бросок не должен преобразовывать тип указателя в целочисленный тип |
MISRA C++:2008 Rule 5-2-10 | Шаг (++) и декремент (-) операторы не должен быть смешан с другими операторами в выражении |
MISRA C++:2008 Rule 5-2-11 | Оператор запятой, && оператор и || оператор не должен быть перегружен |
MISRA C++:2008 Rule 5-2-12 | Идентификатор с типом массива, переданным как аргумент функции, не должен затухать к указателю |
MISRA C++:2008 Rule 5-3-1 | Каждый операнд! оператор, логический && или логическое || операторы должны иметь тип bool |
MISRA C++:2008 Rule 5-3-2 | Оператор унарный минус не должен быть применен к выражению, базовый тип которого без знака |
MISRA C++:2008 Rule 5-3-3 | Унарное & оператор не должны быть перегружены |
MISRA C++:2008 Rule 5-3-4 | Оценка операнда к sizeof оператору не должна содержать побочные эффекты |
MISRA C++:2008 Rule 5-8-1 | Правый операнд оператора сдвига должен находиться между нулем и меньше, чем ширина в битах базового типа левого операнда |
MISRA C++:2008 Rule 5-14-1 | Правый операнд логического && или || оператор не должен содержать побочные эффекты |
MISRA C++:2008 Rule 5-18-1 | Оператор запятой не должен использоваться |
MISRA C++:2008 Rule 5-19-1 | Оценка постоянных выражений беззнаковых целых чисел не должна вести, чтобы повториться |
MISRA C++:2008 Rule 6-2-1 | Операторы присваивания не должны использоваться в подвыражениях |
MISRA C++:2008 Rule 6-2-2 | Выражения с плавающей точкой не должны быть прямо или косвенно протестированы на равенство или неравенство |
MISRA C++:2008 Rule 6-2-3 | Перед предварительной обработкой пустой оператор должен только произойти на линии отдельно; это может сопровождаться комментарием, при условии, что первый символ после пустого оператора является белым - пробел |
MISRA C++:2008 Rule 6-3-1 | Оператор, формирующий тело переключателя, в то время как, делает, в то время как или для оператора будет составной оператор |
MISRA C++:2008 Rule 6-4-1 | Если (условие) создают, еще буду сопровождаться составным оператором, ключевое слово должно сопровождаться или составным оператором или другим оператором if |
MISRA C++:2008 Rule 6-4-2 | Все, если еще, если построения должны быть отключены с выражением else |
MISRA C++:2008 Rule 6-4-3 | Оператор switch должен быть правильно построенным оператором switch |
MISRA C++:2008 Rule 6-4-4 | Метка переключателя должна только использоваться, когда наиболее тесно заключающий составной оператор будет телом оператора switch |
MISRA C++:2008 Rule 6-4-5 | Безусловный бросок или оператор завершения должны отключить каждый не - пустой пункт переключателя |
MISRA C++:2008 Rule 6-4-6 | Итоговый пункт оператора switch должен быть пунктом по умолчанию |
MISRA C++:2008 Rule 6-4-7 | Условие оператора switch не должно иметь типа bool |
MISRA C++:2008 Rule 6-4-8 | Каждый оператор switch должен иметь по крайней мере один пункт случая |
MISRA C++:2008 Rule 6-5-1 | Цикл for должен содержать один счетчик цикла, который не должен иметь типа с плавающей точкой |
MISRA C++:2008 Rule 6-5-2 | Если счетчик цикла не будет изменен - или ++, то в условии счетчик цикла должен только использоваться в качестве операнда к <=, <> или> = |
MISRA C++:2008 Rule 6-5-3 | Счетчик цикла не должен быть изменен в условии или операторе |
MISRA C++:2008 Rule 6-5-4 | Счетчик цикла должен быть изменен одним из: - ++, - =n, или + =n; где n остается постоянным на время цикла |
MISRA C++:2008 Rule 6-5-5 | Контрольная переменная цикла кроме счетчика цикла не должна быть изменена в условии или выражении |
MISRA C++:2008 Rule 6-5-6 | Контрольная переменная цикла кроме счетчика цикла, который изменяется в операторе, должна иметь тип bool |
MISRA C++:2008 Rule 6-6-1 | Любая метка, на которую ссылается оператор перехода, должна быть объявлена в том же блоке, или в блоке, заключающем оператор перехода |
MISRA C++:2008 Rule 6-6-2 | Оператор перехода должен перейти к метке, объявленной позже в том же теле функции |
MISRA C++:2008 Rule 6-6-3 | Оператор continue должен только использоваться в правильно построенном цикле for |
MISRA C++:2008 Rule 6-6-4 | Для любого оператора цикла должен быть не больше, чем один оператор завершения, или оператор перехода использовал завершение цикла for |
MISRA C++:2008 Rule 6-6-5 | Функция должна иметь одну точку выхода в конце функции |
MISRA C++:2008 Rule 7-1-1 | Переменная, которая не изменяется, должна быть квалифицированным const |
MISRA C++:2008 Rule 7-1-2 | Указатель или параметр ссылки в функции должны быть объявлены как указатель на const или ссылка на const, если соответствующий объект не будет изменен |
MISRA C++:2008 Rule 7-3-1 | Глобальное пространство имен должно только содержать основные, объявления пространства имен и экстерна "C" объявления |
MISRA C++:2008 Rule 7-3-2 | Основной идентификатор не должен использоваться для функции кроме глобального функционального основного |
MISRA C++:2008 Rule 7-3-3 | В заголовочных файлах не должно быть никаких пространств имен без имени |
MISRA C++:2008 Rule 7-3-4 | директивы использования не должны использоваться |
MISRA C++:2008 Rule 7-3-5 | Многократные объявления для идентификатора в том же пространстве имен не должны колебаться между объявлением использования для того идентификатора |
MISRA C++:2008 Rule 7-3-6 | директивы использования и объявления использования (исключая осциллограф класса или функциональные объявления использования осциллографа) не должны использоваться в заголовочных файлах |
MISRA C++:2008 Rule 7-4-2 | Ассемблерные инструкции должны только быть введены с помощью asm объявления |
MISRA C++:2008 Rule 7-4-3 | Ассемблер должен инкапсулироваться и изолироваться |
MISRA C++:2008 Rule 7-5-1 | Функция не должна возвращать ссылку или указатель на автоматическую переменную (включая параметры), заданный в функции |
MISRA C++:2008 Rule 7-5-2 | Адрес объекта с автоматическим хранением не должен быть присвоен другому объекту, который может сохраниться после того, как первый объект прекратил существование |
MISRA C++:2008 Rule 7-5-3 | Функция не должна возвращать ссылку или указатель на параметр, который передается ссылкой const или ссылкой |
MISRA C++:2008 Rule 7-5-4 | Функции не должны вызывать себя, ни один прямо или косвенно |
MISRA C++:2008 Rule 8-0-1 | Init-declarator-list или список оператора объявления члена должны состоять из одного init-оператора-объявления или оператора объявления члена соответственно |
MISRA C++:2008 Rule 8-3-1 | Параметры в переопределяющей виртуальной функции должны или использовать те же параметры по умолчанию в качестве функции, которую они заменяют или иначе не должны задавать параметры по умолчанию |
MISRA C++:2008 Rule 8-4-1 | Функции не должны быть заданы с помощью обозначения замещающего знака |
MISRA C++:2008 Rule 8-4-2 | Идентификаторы, используемые для параметров в переобъявлении функции, должны быть идентичны тем в объявлении |
MISRA C++:2008 Rule 8-4-3 | Все выходные пути от функции с не - пустой тип возврата должны иметь явный оператор возврата с выражением |
MISRA C++:2008 Rule 8-4-4 | Функциональный идентификатор должен или использоваться, чтобы вызвать функцию, или этим нужно предшествовать & |
MISRA C++:2008 Rule 8-5-1 | Все переменные должны иметь заданное значение, прежде чем они будут использоваться |
MISRA C++:2008 Rule 8-5-2 | Фигурные скобки должны использоваться, чтобы указать и совпадать со структурой в не - нулевая инициализация массивов и структур |
MISRA C++:2008 Rule 8-5-3 | В списке перечислителей = построение не должно использоваться, чтобы явным образом инициализировать члены кроме первого, если все элементы не будут явным образом инициализированы |
MISRA C++:2008 Rule 9-3-1 | функции членства const не должны возвращать указатели неconst или ссылки на данные класса |
MISRA C++:2008 Rule 9-3-2 | Функции членства не должны возвращать указатели неconst на данные класса |
MISRA C++:2008 Rule 9-3-3 | Если функция членства может быть сделана статической затем, это должно быть сделано статическим, в противном случае если это может быть сделано const затем, это должно быть сделано const |
MISRA C++:2008 Rule 9-5-1 | Объединения не должны использоваться |
MISRA C++:2008 Rule 9-6-2 | Битовые поля должны быть или типом bool или явным образом целочисленным типом со знаком или без знака |
MISRA C++:2008 Rule 9-6-3 | Битовые поля не должны иметь перечислимого типа |
MISRA C++:2008 Rule 9-6-4 | Названные битовые поля с типом целого числа со знаком должны иметь длину больше чем одного бита |
MISRA C++:2008 Rule 10-1-1 | Классы не должны быть выведены из виртуальных основ |
MISRA C++:2008 Rule 10-1-2 | Базовый класс должен только быть объявлен виртуальный, если он будет использоваться в ромбовидной иерархии |
MISRA C++:2008 Rule 10-1-3 | Доступный базовый класс не должен быть и виртуальным и невиртуальным в той же иерархии |
MISRA C++:2008 Rule 10-2-1 | Все доступные имена сущности в иерархии наследования кратного должны быть уникальными |
MISRA C++:2008 Rule 10-3-1 | Должно быть не больше, чем одно определение каждой виртуальной функции на каждом пути через иерархию наследования |
MISRA C++:2008 Rule 10-3-2 | Каждая переопределяющая виртуальная функция должна быть объявлена с виртуальным ключевым словом |
MISRA C++:2008 Rule 10-3-3 | Виртуальная функция должна только быть заменена чистой виртуальной функцией, если она будет самостоятельно объявлена как чистая виртуальная |
MISRA C++:2008 Rule 11-0-1 | Данные члена в не - типы классов POD должны быть частными |
MISRA C++:2008 Rule 12-1-1 | Динамический тип объекта не должен использоваться от тела его конструктора или деструктора |
MISRA C++:2008 Rule 12-1-2 | Все конструкторы класса должны явным образом вызвать конструктора для всех его мгновенных базовых классов и всех виртуальных базовых классов |
MISRA C++:2008 Rule 12-1-3 | Все конструкторы, которые являются вызываемыми с отдельным аргументом фундаментального типа, должны быть объявлены явные |
MISRA C++:2008 Rule 12-8-1 | Конструктор копии должен только инициализировать ее базовые классы и не - статические члены класса, которого это - член |
MISRA C++:2008 Rule 12-8-2 | Оператор присваивания копии должен быть объявлен защищенный или частный в абстрактном классе |
MISRA C++:2008 Rule 14-5-1 | Родовая функция лица, не являющегося членом какой-либо организации, должна только быть объявлена в пространстве имен, которое не является связанным пространством имен |
MISRA C++:2008 Rule 14-5-2 | Конструктор копии должен быть объявлен, когда будет конструктор шаблона одним параметром, который является типовым параметром |
MISRA C++:2008 Rule 14-5-3 | Оператор присваивания копии должен быть объявлен, когда будет оператор присваивания шаблона параметром, который является типовым параметром |
MISRA C++:2008 Rule 14-6-1 | В шаблоне класса с зависимой основой любое имя, которое может быть найдено в той зависимой основе, должно быть отнесено в использование квалифицированного ID или этого-> |
MISRA C++:2008 Rule 14-6-2 | Функция, выбранная разрешением перегрузки, должна решить к функции, объявленной ранее в модуле перевода |
MISRA C++:2008 Rule 14-7-3 | Все частичные и явные специализации для шаблона должны быть объявлены в том же файле как объявление их первичного шаблона |
MISRA C++:2008 Rule 14-8-1 | Шаблоны перегруженной функции не должны быть явным образом специализированы |
MISRA C++:2008 Rule 14-8-2 | Жизнеспособный функциональный набор для вызова функции не должен или содержать функциональные специализации, или только содержать функциональные специализации |
MISRA C++:2008 Rule 15-0-2 | Объект исключения не должен иметь типа указателя |
MISRA C++:2008 Rule 15-0-3 | Управление не должно быть передано в попытку или блок выгоды с помощью goto или оператора switch |
MISRA C++:2008 Rule 15-1-1 | Выражение присваивания оператора броска не должно самостоятельно заставлять исключение быть выданным |
MISRA C++:2008 Rule 15-1-2 | NULL не должен быть выдан явным образом |
MISRA C++:2008 Rule 15-1-3 | Пустой бросок (бросок;) буду только использоваться в составном операторе обработчика выгоды |
MISRA C++:2008 Rule 15-3-1 | Исключения должны быть повышены только после запуска и перед завершением программы |
MISRA C++:2008 Rule 15-3-2 | Должен быть по крайней мере один обработчик исключений, чтобы отловить все в противном случае необработанные исключения |
MISRA C++:2008 Rule 15-3-3 | Обработчики реализации функционального блока попытки конструктора класса или деструктора не должны ссылаться на нестатические члены от этого класса или его основ |
MISRA C++:2008 Rule 15-3-4 | Каждое исключение, явным образом добавленное, код должен иметь обработчик совместимого типа во всех путях к вызову, которые могли привести к той точке |
MISRA C++:2008 Rule 15-3-5 | Исключение типа класса должно всегда отлавливаться ссылкой |
MISRA C++:2008 Rule 15-3-6 | Где несколько обработчиков обеспечиваются в одном операторе try-catch или функциональном блоке попытки для производного класса, и некоторые или все его основы, обработчики должны быть упорядочены наиболее выведенные базовому классу |
MISRA C++:2008 Rule 15-3-7 | Где несколько обработчиков обеспечиваются в одном операторе try-catch или функциональном блоке попытки, любой замещающий знак (вместилище), обработчик должен произойти в последний раз |
MISRA C++:2008 Rule 15-4-1 | Если функция будет объявлена со спецификацией исключения, то все объявления той же функции (в других модулях перевода) должны быть объявлены с тем же набором идентификаторов типов |
MISRA C++:2008 Rule 15-5-1 | Деструктор класса не должен выходить за исключением |
MISRA C++:2008 Rule 15-5-2 | Где объявление функции включает спецификацию исключения, функция должна только быть способна к выдаванию исключения обозначенного типа (типов) |
MISRA C++:2008 Rule 15-5-3 | Оконечное () функция не должно быть названо неявно |
MISRA C++:2008 Rule 16-0-1 | Директивам #include в файле должны только предшествовать другие директивы препроцессору или комментарии |
MISRA C++:2008 Rule 16-0-2 | Макросы должны только быть #define 'd или #undef 'd в глобальном пространстве имен |
MISRA C++:2008 Rule 16-0-3 | #undef не должен использоваться |
MISRA C++:2008 Rule 16-0-4 | Подобные функции макросы не должны быть заданы |
MISRA C++:2008 Rule 16-0-5 | Аргументы к подобному функции макросу не должны содержать лексемы, которые похожи на предварительную обработку директив |
MISRA C++:2008 Rule 16-0-6 | В определении подобного функции макроса каждый экземпляр параметра должен быть заключен в круглые скобки, если это не будет использоваться в качестве операнда # или ## |
MISRA C++:2008 Rule 16-0-7 | Неопределенные макро-идентификаторы не должны использоваться в #if или #elif директивах препроцессору, за исключением операндов к заданному оператору |
MISRA C++:2008 Rule 16-0-8 | Если # лексема появится как первая лексема на линии, то это должно сразу сопровождаться лексемой предварительной обработки |
MISRA C++:2008 Rule 16-1-1 | Заданный оператор препроцессора должен только использоваться в одной из двух стандартных форм |
MISRA C++:2008 Rule 16-1-2 | Весь #else, #elif и #endif директивы препроцессору должен находиться в том же файле как #if или #ifdef директива, с которой они связаны |
MISRA C++:2008 Rule 16-2-1 | Препроцессор должен только использоваться для включения файла и включать защиту |
MISRA C++:2008 Rule 16-2-2 | Макросы C++ должны только использоваться для: включайте защиту, введите спецификаторы или спецификаторы класса памяти |
MISRA C++:2008 Rule 16-2-3 | Включайте защиту, буду обеспечен |
MISRA C++:2008 Rule 16-2-4 | ', ",/* или//символы не должны происходить на имя заголовочного файла |
MISRA C++:2008 Rule 16-2-5 | \символ не должен происходить на имя заголовочного файла |
MISRA C++:2008 Rule 16-2-6 | #include директива должна сопровождаться или <имя файла> или последовательность "имени файла" |
MISRA C++:2008 Rule 16-3-1 | Должно быть самое большее одно вхождение # или ## операторов в одном макроопределении |
MISRA C++:2008 Rule 16-3-2 | # и ## операторы не должны использоваться |
MISRA C++:2008 Rule 16-6-1 | Все использование #pragma директивы должно быть зарегистрировано |
MISRA C++:2008 Rule 17-0-1 | Зарезервированные идентификаторы, макросы и функции в Стандартной Библиотеке не должны быть заданы, переопределены или не определены |
MISRA C++:2008 Rule 17-0-2 | Имена стандартных макросов библиотеки и объектов не должны быть снова использованы |
MISRA C++:2008 Rule 17-0-3 | Имена стандартных библиотечных функций не должны быть заменены |
MISRA C++:2008 Rule 17-0-5 | setjmp макрос и функция longjmp не должны использоваться |
MISRA C++:2008 Rule 18-0-1 | Библиотекой C нельзя пользоваться |
MISRA C++:2008 Rule 18-0-2 | Библиотечные функции atof, atoi и атолл от библиотеки <cstdlib> не должны использоваться |
MISRA C++:2008 Rule 18-0-3 | Аварийное прекращение работы библиотечных функций, выход, getenv и система от библиотеки <cstdlib> не должны использоваться |
MISRA C++:2008 Rule 18-0-4 | Функции обработки времени библиотеки <ctime> не должны использоваться |
MISRA C++:2008 Rule 18-0-5 | Неограниченные функции библиотеки <cstring> не должны использоваться |
MISRA C++:2008 Rule 18-2-1 | Макрос offsetof не должен использоваться |
MISRA C++:2008 Rule 18-4-1 | Динамическое выделение памяти кучи не должно использоваться |
MISRA C++:2008 Rule 18-7-1 | Погрузочно-разгрузочное оборудование сигнала <csignal> не должно использоваться |
MISRA C++:2008 Rule 19-3-1 | Ошибочный индикатор errno не должен использоваться |
MISRA C++:2008 Rule 27-0-1 | Потоковый ввод / выходная библиотека <cstdio> не должен использоваться |
AUTOSAR C++14 Rule A0-1-1 | Проект не должен содержать экземпляры энергонезависимых переменных, даваемых значения, которые впоследствии не используются |
AUTOSAR C++14 Rule A0-1-2 | Значение, возвращенное функцией, имеющей непустой тип возврата, который не является перегруженным оператором, должно использоваться |
AUTOSAR C++14 Rule A0-1-3 | Каждая функция, определяемая в анонимном пространстве имен, или статическая функция с внутренним рычажным устройством или функция члена парламента, не занимающего официального поста должны использоваться |
AUTOSAR C++14 Rule A0-1-4 | В невиртуальных функциях не должно быть никаких неиспользованных именованных параметров |
AUTOSAR C++14 Rule A0-1-5 | Не должно быть никаких неиспользованных именованных параметров в наборе параметров для виртуальной функции и всех функций, которые заменяют его |
AUTOSAR C++14 Rule A0-1-6 | Не должно быть никаких неиспользованных описаний типа |
AUTOSAR C++14 Rule A0-4-2 | Тип долго удваивается, не буду использоваться |
AUTOSAR C++14 Rule M0-1-1 | Проект не должен содержать недостижимый код |
AUTOSAR C++14 Rule M0-1-2 | Проект не должен содержать неосуществимые пути |
AUTOSAR C++14 Rule M0-1-3 | Проект не должен содержать неиспользуемые переменные |
AUTOSAR C++14 Rule M0-1-4 | Проект не должен содержать энергонезависимые переменные POD, имеющие только одно использование |
AUTOSAR C++14 Rule M0-1-9 | Не должно быть никакого мертвого кода |
AUTOSAR C++14 Rule M0-1-10 | Каждая заданная функция должна быть вызвана, по крайней мере, однажды |
AUTOSAR C++14 Rule M0-2-1 | Объект не должен быть присвоен перекрывающемуся объекту |
AUTOSAR C++14 Rule M0-3-2 | Если функция сгенерирует информацию об ошибке, то та информация об ошибке должна быть протестирована |
AUTOSAR C++14 Rule A1-1-1 | Весь код должен соответствовать ISO/IEC 14882:2014 - Язык программирования C++ и не должен использовать устаревшие функции |
AUTOSAR C++14 Rule A2-3-1 | Только те символы, заданные в базовом наборе символов исходного кода Стандарта Языка C++, должны использоваться в исходном коде |
AUTOSAR C++14 Rule A2-5-1 | Trigraphs не должен использоваться |
AUTOSAR C++14 Rule A2-5-2 | Диграфы не должны использоваться |
AUTOSAR C++14 Rule A2-7-1 | Символ \не должен происходить, как комментирует последний знак C++ |
AUTOSAR C++14 Rule A2-7-2 | Разделы кода не должны быть то, " закомментировал" |
AUTOSAR C++14 Rule A2-7-3 | Всем объявлениям "пользовательских" типов, статических и нестатических элементов данных, функций и методов должна предшествовать документация |
AUTOSAR C++14 Rule A2-8-1 | Имя заголовочного файла должно отразить логическую сущность, для которой оно обеспечивает объявления. |
AUTOSAR C++14 Rule A2-8-2 | Имя файла реализации должно отразить логическую сущность, для которой оно предоставляет определения. |
AUTOSAR C++14 Rule A2-10-1 | Идентификатор, объявленный во внутреннем осциллографе, не должен скрывать идентификатор, объявленный во внешнем осциллографе |
AUTOSAR C++14 Rule A2-10-4 | Имя идентификатора объекта лица, не являющегося членом какой-либо организации, со статической продолжительностью хранения или статической функцией не должно быть снова использовано в пространстве имен |
AUTOSAR C++14 Rule A2-10-5 | Имя идентификатора функции со статической продолжительностью хранения или объекта лица, не являющегося членом какой-либо организации, с внешним или внутренним рычажным устройством не должно быть снова использовано |
AUTOSAR C++14 Rule A2-10-6 | Класс или имя перечисления не должны быть скрыты переменной, функцией или объявлением перечислителя в том же осциллографе |
AUTOSAR C++14 Rule A2-11-1 | Энергозависимое ключевое слово не должно использоваться |
AUTOSAR C++14 Rule A2-13-1 | Только те escape-последовательности, которые заданы в ISO/IEC 14882:2014, должны использоваться |
AUTOSAR C++14 Rule A2-13-2 | Строковые литералы с различными префиксами кодирования не должны быть конкатенированы |
AUTOSAR C++14 Rule A2-13-3 | wchar_t типа не должен использоваться |
AUTOSAR C++14 Rule A2-13-4 | Строковые литералы не должны быть присвоены непостоянным указателям |
AUTOSAR C++14 Rule A2-13-5 | Шестнадцатеричные константы должны быть прописными |
AUTOSAR C++14 Rule A2-13-6 | Универсальные имена персонажей должны использоваться только в символьных или строковых литералах |
AUTOSAR C++14 Rule M2-7-1 | Последовательность символов/* не должна использоваться в рамках комментария C-стиля |
AUTOSAR C++14 Rule M2-10-1 | Различные идентификаторы должны быть типографским способом однозначными |
AUTOSAR C++14 Rule M2-13-2 | Восьмеричные константы (кроме нуля) и восьмеричные escape-последовательности (кроме "\0") не должны использоваться |
AUTOSAR C++14 Rule M2-13-3 | Суффикс "U" должен быть применен ко всем восьмеричным или шестнадцатеричным целочисленным литералам типа без знака |
AUTOSAR C++14 Rule M2-13-4 | Литеральные суффиксы должны быть верхним регистром |
AUTOSAR C++14 Rule A3-1-1 | Должно быть возможно включать любой заголовочный файл в несколько модулей перевода, не нарушая Одно Правило Определения |
AUTOSAR C++14 Rule A3-1-2 | Заголовочные файлы, которые заданы локально в проекте, должны иметь расширение файла одного из: .h, .hpp или .hxx |
AUTOSAR C++14 Rule A3-1-3 | Файлы реализации, которые заданы локально в проекте, должны иметь расширение файла ".cpp" |
AUTOSAR C++14 Rule A3-1-4 | Когда массив с внешним рычажным устройством будет объявлен, его размер должен быть утвержден явным образом |
AUTOSAR C++14 Rule A3-1-5 | Функциональное определение должно только быть помещено в определение класса, если (1) функция будет предназначена, чтобы быть встроенной (2), это - шаблон функции членства (3), это - функция членства шаблона класса |
AUTOSAR C++14 Rule A3-1-6 | Тривиальное средство доступа и мутаторные функции должны быть встроены |
AUTOSAR C++14 Rule A3-3-1 | Объекты или функции с внешним рычажным устройством (включая члены именованных пространств имен) должны быть объявлены в заголовочном файле |
AUTOSAR C++14 Rule A3-3-2 | Статические и локальные объекты потока должны быть постоянно инициализированы |
AUTOSAR C++14 Rule A3-8-1 | К объекту нельзя получить доступ за пределами его времени жизни |
AUTOSAR C++14 Rule A3-9-1 | Фиксированные целочисленные типы ширины от <cstdint>, указывая на размер и со знаком, должны использоваться вместо основных числовых типов |
AUTOSAR C++14 Rule M3-1-2 | Функции не должны быть объявлены в области действия блока |
AUTOSAR C++14 Rule M3-2-1 | Все объявления объекта или функции должны иметь совместимые типы |
AUTOSAR C++14 Rule M3-2-2 | Одно Правило Определения не должно быть нарушено |
AUTOSAR C++14 Rule M3-2-3 | Тип, объект или функция, которая используется в нескольких модулях перевода, должны быть объявлены в одном и только одном файле |
AUTOSAR C++14 Rule M3-2-4 | Идентификатор с внешним рычажным устройством должен иметь точно одно определение |
AUTOSAR C++14 Rule M3-3-2 | Если функция будет иметь внутреннее рычажное устройство затем, то все переобъявления должны включать статический спецификатор класса памяти |
AUTOSAR C++14 Rule M3-4-1 | Идентификатор, который, как объявляют, был объектом или типом, должен быть задан в блоке, который минимизирует его видимость |
AUTOSAR C++14 Rule M3-9-1 | Типы, используемые для объекта, функционального типа возврата или параметра функции, должны быть лексемой для лексемы, идентичной во всех объявлениях и переобъявлениях |
AUTOSAR C++14 Rule M3-9-3 | Базовые битные представления значений с плавающей точкой не должны использоваться |
AUTOSAR C++14 Rule A4-5-1 | Выражения с классом Enum типа или классом Enum не должны использоваться в качестве операндов к встроенным и перегруженным операторам кроме оператора индекса [], оператор присваивания =, операторы равенства == и! =, унарное & оператор и операторы отношения <<=>,> = |
AUTOSAR C++14 Rule A4-7-1 | Целое выражение не должно приводить к потере данных |
AUTOSAR C++14 Rule A4-10-1 | Только литерал nullptr должен использоваться в качестве ограничения нулевого указателя |
AUTOSAR C++14 Rule M4-5-1 | Выражения с типом bool не должны использоваться в качестве операндов к встроенным операторам кроме оператора присваивания =, логические операторы &&, ||!, операторы равенства == и! =, унарное & оператор и условный оператор |
AUTOSAR C++14 Rule M4-5-3 | Выражения с типом (простой) char и wchar_t не должны использоваться в качестве операндов к встроенным операторам кроме оператора присваивания =, операторы равенства == и! =, и унарное & оператор |
AUTOSAR C++14 Rule M4-10-1 | NULL не должен использоваться в качестве целочисленного значения |
AUTOSAR C++14 Rule M4-10-2 | Литеральный нуль (0) не должен использоваться в качестве постоянного нулевым указателем |
AUTOSAR C++14 Rule A5-0-1 | Значение выражения должно быть тем же самым согласно любому порядку оценки, которую разрешает стандарт |
AUTOSAR C++14 Rule A5-0-2 | Условие оператора "if" и условие оператора цикла должны иметь тип bool |
AUTOSAR C++14 Rule A5-0-3 | Объявление объектов должно содержать не больше, чем два уровня косвенности указателя |
AUTOSAR C++14 Rule A5-0-4 | Адресная арифметика с указателями не должна использоваться с указателями на неитоговые классы |
AUTOSAR C++14 Rule A5-1-1 | Литеральные значения не должны использоваться кроме инициализации типа, в противном случае символьные имена должны использоваться вместо этого |
AUTOSAR C++14 Rule A5-1-2 | Переменные не должны быть неявно получены в лямбда-выражении |
AUTOSAR C++14 Rule A5-1-3 | Список параметров (возможно пустой) должен быть включен в каждое лямбда-выражение |
AUTOSAR C++14 Rule A5-1-4 | Объект лямбда-выражения не должен переживать ни один из своих полученных ссылкой объектов |
AUTOSAR C++14 Rule A5-1-6 | Возвратитесь тип непустого лямбда-выражения типа возврата должен быть явным образом задан |
AUTOSAR C++14 Rule A5-1-7 | Lambda не должен быть операндом к decltype или идентификатору типа |
AUTOSAR C++14 Rule A5-1-8 | Лямбда-выражения не должны быть заданы в другом лямбда-выражении |
AUTOSAR C++14 Rule A5-1-9 | Идентичные лямбда-выражения без имени должны быть заменены именованной функцией или именованным лямбда-выражением |
AUTOSAR C++14 Rule A5-2-1 | dynamic_cast не должен использоваться |
AUTOSAR C++14 Rule A5-2-2 | Традиционные броски C-стиля не должны использоваться |
AUTOSAR C++14 Rule A5-2-3 | Бросок не должен удалять const или энергозависимую проверку от типа указателя или ссылки |
AUTOSAR C++14 Rule A5-2-4 | reinterpret_cast не должен использоваться |
AUTOSAR C++14 Rule A5-2-6 | Операнды логического && или || буду заключен в скобки, если операнды будут содержать бинарных операторов |
AUTOSAR C++14 Rule A5-3-1 | Оценка операнда к оператору идентификатора типа не должна содержать побочные эффекты |
AUTOSAR C++14 Rule A5-3-2 | Нулевые указатели не должны быть разыменованы |
AUTOSAR C++14 Rule A5-3-3 | Указатели на неполные типы классов не должны быть удалены |
AUTOSAR C++14 Rule A5-6-1 | Правый операнд целочисленного деления или операторов остатка не должен быть равным нулю |
AUTOSAR C++14 Rule A5-10-1 | Указатель на виртуальную функцию члена должен только быть протестирован на равенство с постоянным нулевым указателем |
AUTOSAR C++14 Rule A5-16-1 | Троичный условный оператор не должен использоваться в качестве подвыражения |
AUTOSAR C++14 Rule M5-0-2 | Ограниченная зависимость должна быть помещена в правила приоритета оператора C++ в выражениях |
AUTOSAR C++14 Rule M5-0-3 | cvalue выражение не должно быть неявно преобразовано в различный базовый тип |
AUTOSAR C++14 Rule M5-0-4 | Неявное интегральное преобразование не должно изменять со знаком из базового типа |
AUTOSAR C++14 Rule M5-0-5 | Не должно быть никаких неявных интегральных плаванием преобразований |
AUTOSAR C++14 Rule M5-0-6 | Неявное интегральное или преобразование с плавающей точкой не должно уменьшать размер базового типа |
AUTOSAR C++14 Rule M5-0-7 | Не должно быть никаких явных интегральных плаванием преобразований cvalue выражения |
AUTOSAR C++14 Rule M5-0-8 | Явное интегральное или преобразование с плавающей точкой не должно увеличивать размер базового типа cvalue выражения |
AUTOSAR C++14 Rule M5-0-9 | Явное интегральное преобразование не должно изменять со знаком из базового типа cvalue выражения |
AUTOSAR C++14 Rule M5-0-10 | Если побитовые операторы ~and <<будут применены к операнду с базовым типом символьного или короткого целого без знака без знака, результат должен быть сразу брошен к базовому типу операнда |
AUTOSAR C++14 Rule M5-0-11 | Простой символьный тип должен только использоваться для устройства хранения данных и использования символьных значений |
AUTOSAR C++14 Rule M5-0-12 | Символ со знаком и символьный тип без знака должны только использоваться для устройства хранения данных и использования числовых значений |
AUTOSAR C++14 Rule M5-0-14 | Первый операнд условного оператора должен иметь тип bool |
AUTOSAR C++14 Rule M5-0-15 | Индексация массива должна быть единственной формой адресной арифметики с указателями |
AUTOSAR C++14 Rule M5-0-16 | Операнд указателя и любой указатель, следующий из адресной арифметики с указателями с помощью того операнда, должны оба обратиться к элементам того же массива |
AUTOSAR C++14 Rule M5-0-17 | Вычитание между указателями должно только быть применено к указателям, которые обращаются к элементам того же массива |
AUTOSAR C++14 Rule M5-0-18 | >,> =, <<= не буду применен к объектам типа указателя, кроме того, где они указывают на тот же массив |
AUTOSAR C++14 Rule M5-0-20 | Непостоянные операнды к бинарному побитовому оператору должны иметь тот же базовый тип |
AUTOSAR C++14 Rule M5-0-21 | Побитовые операторы должны только быть применены к операндам базового типа без знака |
AUTOSAR C++14 Rule M5-2-2 | Указатель на виртуальный базовый класс должен только быть брошен к указателю на производный класс посредством dynamic_cast |
AUTOSAR C++14 Rule M5-2-3 | Броски от базового класса до производного класса не должны быть выполнены на полиморфных типах |
AUTOSAR C++14 Rule M5-2-6 | Бросок не должен преобразовывать указатель на функцию ни к какому другому типу указателя, включая указатель на функциональный тип |
AUTOSAR C++14 Rule M5-2-8 | Объект с целочисленным типом или указателем, чтобы освободить тип не должен быть преобразован в объект с типом указателя |
AUTOSAR C++14 Rule M5-2-9 | Бросок не должен преобразовывать тип указателя в целочисленный тип |
AUTOSAR C++14 Rule M5-2-10 | Шаг (++) и декремент (-) операторы не должен быть смешан с другими операторами в выражении |
AUTOSAR C++14 Rule M5-2-11 | Оператор запятой, && оператор и || оператор не должен быть перегружен |
AUTOSAR C++14 Rule M5-2-12 | Идентификатор с типом массива, переданным как аргумент функции, не должен затухать к указателю |
AUTOSAR C++14 Rule M5-3-1 | Каждый операнд! оператор, логический && или логическое || операторы должны иметь тип bool |
AUTOSAR C++14 Rule M5-3-2 | Оператор унарный минус не должен быть применен к выражению, базовый тип которого без знака |
AUTOSAR C++14 Rule M5-3-3 | Унарное & оператор не должны быть перегружены |
AUTOSAR C++14 Rule M5-3-4 | Оценка операнда к sizeof оператору не должна содержать побочные эффекты |
AUTOSAR C++14 Rule M5-8-1 | Правый операнд оператора сдвига должен находиться между нулем и меньше, чем ширина в битах базового типа левого операнда |
AUTOSAR C++14 Rule M5-14-1 | Правый операнд логического &&, || операторы не должны содержать побочные эффекты |
AUTOSAR C++14 Rule M5-18-1 | Оператор запятой не должен использоваться |
AUTOSAR C++14 Rule M5-19-1 | Оценка постоянных выражений беззнаковых целых чисел не должна вести, чтобы повториться |
AUTOSAR C++14 Rule A6-2-1 | Переместите и скопируйте операторы присваивания, или перемещу или соответственно скопирую базовые классы и элементы данных класса, без любых побочных эффектов |
AUTOSAR C++14 Rule A6-2-2 | Операторы выражения не должны быть явными вызовами конструкторов временных объектов только |
AUTOSAR C++14 Rule A6-4-1 | Оператор switch должен иметь по крайней мере два пункта случая, отличные от метки по умолчанию |
AUTOSAR C++14 Rule A6-5-2 | Цикл for должен содержать один счетчик цикла, который не должен иметь типа с плавающей точкой |
AUTOSAR C++14 Rule A6-5-3 | Сделайте операторы не должны использоваться |
AUTOSAR C++14 Rule A6-5-4 | For-init-statement и выражение не должны выполнять действия кроме инициализации счетчика цикла и модификации |
AUTOSAR C++14 Rule A6-6-1 | Оператор перехода не должен использоваться |
AUTOSAR C++14 Rule M6-2-1 | Операторы присваивания не должны использоваться в подвыражениях |
AUTOSAR C++14 Rule M6-2-2 | Выражения с плавающей точкой не должны быть прямо или косвенно протестированы на равенство или неравенство |
AUTOSAR C++14 Rule M6-2-3 | Перед предварительной обработкой пустой оператор должен только произойти на линии отдельно; это может сопровождаться комментарием, при условии, что первый символ после пустого оператора является пробельным символом |
AUTOSAR C++14 Rule M6-3-1 | Оператор, формирующий тело переключателя, в то время как, делает..., в то время как или для оператора будет составной оператор |
AUTOSAR C++14 Rule M6-4-1 | Если (условие) создают, буду сопровождаться составным оператором. Еще ключевое слово должно сопровождаться или составным оператором или другим оператором if |
AUTOSAR C++14 Rule M6-4-2 | Все, если... еще, если построения должны быть отключены с выражением else |
AUTOSAR C++14 Rule M6-4-3 | Оператор switch должен быть правильно построенным оператором switch |
AUTOSAR C++14 Rule M6-4-4 | Метка переключателя должна только использоваться, когда наиболее тесно заключающий составной оператор будет телом оператора switch |
AUTOSAR C++14 Rule M6-4-5 | Безусловный бросок или оператор завершения должны отключить каждый непустой пункт переключателя |
AUTOSAR C++14 Rule M6-4-6 | Итоговый пункт оператора switch должен быть пунктом по умолчанию |
AUTOSAR C++14 Rule M6-4-7 | Условие оператора switch не должно иметь типа bool |
AUTOSAR C++14 Rule M6-5-2 | Если счетчик цикла не будет изменен - или ++, то в условии счетчик цикла должен только использоваться в качестве операнда к <=, <> или> = |
AUTOSAR C++14 Rule M6-5-3 | Счетчик цикла не должен быть изменен в условии или операторе |
AUTOSAR C++14 Rule M6-5-4 | Счетчик цикла должен быть изменен одним из: - ++, - =n, или + =n; где n остается постоянным на время цикла |
AUTOSAR C++14 Rule M6-5-5 | Контрольная переменная цикла кроме счетчика цикла не должна быть изменена в условии или выражении |
AUTOSAR C++14 Rule M6-5-6 | Контрольная переменная цикла кроме счетчика цикла, который изменяется в операторе, должна иметь тип bool |
AUTOSAR C++14 Rule M6-6-1 | Любая метка, на которую ссылается оператор перехода, должна быть объявлена в том же блоке, или в блоке, заключающем оператор перехода |
AUTOSAR C++14 Rule M6-6-2 | Оператор перехода должен перейти к метке, объявленной позже в том же теле функции |
AUTOSAR C++14 Rule M6-6-3 | Оператор continue должен только использоваться в правильно построенном цикле for |
AUTOSAR C++14 Rule A7-1-1 | Constexpr или спецификаторы const должны использоваться для неизменяемого объявления данных |
AUTOSAR C++14 Rule A7-1-2 | constexpr спецификатор должен использоваться для значений, которые могут быть определены во время компиляции |
AUTOSAR C++14 Rule A7-1-3 | Спецификаторы CV должны быть помещены на правой стороне типа, который является определением типа или именем использования |
AUTOSAR C++14 Rule A7-1-4 | Ключевое слово регистра не должно использоваться |
AUTOSAR C++14 Rule A7-1-5 | Автоматический спецификатор не должен использоваться кроме следующих случаев: (1) чтобы объявить, что переменная имеет тот же тип, как возвращают тип вызова функции, (2) чтобы объявить, что переменная имеет тот же тип как инициализатор нефундаментального типа, (3) объявлять параметры типового лямбда-выражения, (4) чтобы объявить использование шаблона функции, запаздывающее, возвращают синтаксис типа |
AUTOSAR C++14 Rule A7-1-6 | Спецификатор определения типа не должен использоваться |
AUTOSAR C++14 Rule A7-1-7 | Каждый оператор выражения и описание идентификатора должны быть помещены в отдельную линию |
AUTOSAR C++14 Rule A7-1-8 | Спецификатор нетипа должен быть помещен перед спецификатором типа в объявлении |
AUTOSAR C++14 Rule A7-1-9 | Класс, структура или перечисление не должны быть объявлены в определении его типа |
AUTOSAR C++14 Rule A7-2-2 | Тип лежания в основе перечисления должен быть явным образом задан |
AUTOSAR C++14 Rule A7-2-3 | Перечисления должны быть объявлены как ограниченные по объему классы Enum |
AUTOSAR C++14 Rule A7-2-4 | В перечислении, любой (1) ни один, (2) первое или (3) весь перечислители должны быть инициализированы |
AUTOSAR C++14 Rule A7-3-1 | Все перегрузки функции должны отобразиться от того, где она называется |
AUTOSAR C++14 Rule A7-5-1 | Функция не должна возвращать ссылку или указатель на параметр, который передается в отношении const |
AUTOSAR C++14 Rule A7-5-2 | Функции не должны вызывать себя, ни один прямо или косвенно |
AUTOSAR C++14 Rule A7-6-1 | Функции, объявленные с [[noreturn]] атрибут, не должны возвращаться |
AUTOSAR C++14 Rule M7-1-2 | Указатель или параметр ссылки в функции должны быть объявлены как указатель на const или ссылка на const, если соответствующий объект не будет изменен |
AUTOSAR C++14 Rule M7-3-1 | Глобальное пространство имен должно только содержать основные, объявления пространства имен и экстерна "C" объявления |
AUTOSAR C++14 Rule M7-3-2 | Основной идентификатор не должен использоваться для функции кроме глобального функционального основного |
AUTOSAR C++14 Rule M7-3-3 | В заголовочных файлах не должно быть никаких пространств имен без имени |
AUTOSAR C++14 Rule M7-3-4 | Директивы Использования не должны использоваться |
AUTOSAR C++14 Rule M7-3-6 | Директивы Использования и объявления использования (исключая осциллограф класса или функциональные объявления использования осциллографа) не должны использоваться в заголовочных файлах |
AUTOSAR C++14 Rule A7-4-1 | asm объявление не должно использоваться |
AUTOSAR C++14 Rule M7-4-2 | Ассемблерные инструкции должны только быть введены с помощью asm объявления |
AUTOSAR C++14 Rule M7-4-3 | Ассемблер должен инкапсулироваться и изолироваться |
AUTOSAR C++14 Rule M7-5-1 | Функция не должна возвращать ссылку или указатель на автоматическую переменную (включая параметры), заданный в функции |
AUTOSAR C++14 Rule M7-5-2 | Адрес объекта с автоматическим хранением не должен быть присвоен другому объекту, который может сохраниться после того, как первый объект прекратил существование |
AUTOSAR C++14 Rule A8-2-1 | При объявлении шаблонов функций возвращается запаздывание, синтаксис типа должен использоваться, если тип возврата будет зависеть от типа параметров |
AUTOSAR C++14 Rule A8-4-1 | Функции не должны быть заданы с помощью обозначения замещающего знака |
AUTOSAR C++14 Rule A8-4-2 | Все выходные пути от функции с непустым типом возврата должны иметь явный оператор возврата с выражением |
AUTOSAR C++14 Rule A8-4-3 | Распространенные способы передать параметры должны использоваться. |
AUTOSAR C++14 Rule A8-4-4 | Несколько выходных значений от функции должны быть возвращены как struct или кортеж |
AUTOSAR C++14 Rule A8-4-5 | "используйте" параметры, объявленные, когда X && должны всегда перемещаться от |
AUTOSAR C++14 Rule A8-4-6 | "передайте" параметры, объявленные, как T && должен всегда передаваться |
AUTOSAR C++14 Rule A8-4-7 | "в" параметрах для "дешевого, чтобы скопировать" типы буду передан значением |
AUTOSAR C++14 Rule A8-4-8 | Выходные параметры не должны использоваться |
AUTOSAR C++14 Rule A8-4-9 | "в -" параметры, объявленные как T &, буду изменен |
AUTOSAR C++14 Rule A8-4-10 | Параметр должен быть передан ссылкой, если это не может быть NULL |
AUTOSAR C++14 Rule A8-4-14 | Интерфейсы должны быть точно и со строгим контролем типов |
AUTOSAR C++14 Rule A8-5-0 | Вся память должна быть инициализирована, прежде чем она будет считана |
AUTOSAR C++14 Rule A8-5-1 | В списке инициализаций порядок инициализации должен следовать: (1) за виртуальными базовыми классами подробно и оставленный правильному порядку графика наследования, (2) за прямыми базовыми классами в левом к правильному порядку списка наследований, (3) за нестатическими элементами данных в порядке, которым они были объявлены в определении класса |
AUTOSAR C++14 Rule A8-5-2 | Закрепленная инициализация {}, без равняется знаку, буду использоваться для переменной инициализации |
AUTOSAR C++14 Rule A8-5-4 | Если класс имеет объявленного пользователями конструктора, который берет параметр станд. типа:: initializer_list, затем это должен быть единственный конструктор кроме специальных конструкторов функции членства |
AUTOSAR C++14 Rule A8-5-3 | Переменная автоматического типа не должна быть инициализирована с помощью {} или = {} закрепленная инициализация |
AUTOSAR C++14 Rule M8-0-1 | Init-declarator-list или список оператора объявления члена должны состоять из одного init-оператора-объявления или оператора объявления члена соответственно |
AUTOSAR C++14 Rule M8-3-1 | Параметры в переопределяющей виртуальной функции должны или использовать те же параметры по умолчанию в качестве функции, которую они заменяют или иначе не должны задавать параметры по умолчанию |
AUTOSAR C++14 Rule M8-4-2 | Идентификаторы, используемые для параметров в переобъявлении функции, должны быть идентичны тем в объявлении |
AUTOSAR C++14 Rule M8-4-4 | Функциональный идентификатор должен или использоваться, чтобы вызвать функцию, или этим нужно предшествовать & |
AUTOSAR C++14 Rule M8-5-2 | Фигурные скобки должны использоваться, чтобы указать и совпадать со структурой в ненулевой инициализации массивов и структурами |
AUTOSAR C++14 Rule A9-3-1 | Функции членства не должны возвращать непостоянные "необработанные" указатели или ссылки на частные или защищенные данные, принадлежавшие классу |
AUTOSAR C++14 Rule A9-5-1 | Объединения не должны использоваться |
AUTOSAR C++14 Rule A9-6-1 | Типы данных, используемые для взаимодействия через интерфейс с оборудованием или приспосабливания протоколам связи, должны быть тривиальными, стандартное размещение и только содержать члены типов с заданными размерами |
AUTOSAR C++14 Rule M9-3-1 | Функции членства const не должны возвращать указатели неconst или ссылки на данные класса |
AUTOSAR C++14 Rule M9-3-3 | Если функция членства может быть сделана статической затем, это должно быть сделано статическим, в противном случае если это может быть сделано const затем, это должно быть сделано const |
AUTOSAR C++14 Rule M9-6-4 | Названные битовые поля с типом целого числа со знаком должны иметь длину больше чем одного бита |
AUTOSAR C++14 Rule A10-1-1 | Класс не должен быть выведен больше чем из одного базового класса, который не является интерфейсным классом |
AUTOSAR C++14 Rule A10-2-1 | Невиртуальные общедоступные или защищенные функции членства не должны быть переопределены в производных классах |
AUTOSAR C++14 Rule A10-3-1 | Объявление виртуальной функции должно содержать точно один из этих трех спецификаторов: (1) виртуальный, (2) замените, (3) финал |
AUTOSAR C++14 Rule A10-3-2 | Каждая переопределяющая виртуальная функция должна быть объявлена с переопределением или итоговым спецификатором |
AUTOSAR C++14 Rule A10-3-3 | Виртуальные функции не должны быть введены в итоговом классе |
AUTOSAR C++14 Rule A10-3-5 | Пользовательский оператор присваивания не должен быть виртуальным |
AUTOSAR C++14 Rule A10-4-1 | Иерархии должны быть основаны на интерфейсных классах |
AUTOSAR C++14 Rule M10-1-1 | Классы не должны быть выведены из виртуальных основ |
AUTOSAR C++14 Rule M10-1-2 | Базовый класс должен только быть объявлен виртуальный, если он будет использоваться в ромбовидной иерархии |
AUTOSAR C++14 Rule M10-1-3 | Доступный базовый класс не должен быть и виртуальным и невиртуальным в той же иерархии |
AUTOSAR C++14 Rule M10-2-1 | Все доступные имена сущности в иерархии наследования кратного должны быть уникальными |
AUTOSAR C++14 Rule M10-3-3 | Виртуальная функция должна только быть заменена чистой виртуальной функцией, если она будет самостоятельно объявлена как чистая виртуальная |
AUTOSAR C++14 Rule A11-0-1 | Тип не-POD должен быть задан как класс |
AUTOSAR C++14 Rule A11-0-2 | Тип, заданный как struct, должен быть: (1) обеспечьте только общедоступные элементы данных, (2) не обеспечивают любые специальные функции членства или методы, (3) не быть основой другого struct или класса, (4) не наследовались другому struct или классу |
AUTOSAR C++14 Rule A11-3-1 | Друг объявления не должен использоваться |
AUTOSAR C++14 Rule M11-0-1 | Данные члена в типах классов не-POD должны быть частными |
AUTOSAR C++14 Rule A12-0-1 | Если класс объявит копию или операцию пересылки или деструктор, или через "=default", "=delete", или через обеспеченное пользователями объявление, то все другие этих пяти специальных функций членства должны быть объявлены также |
AUTOSAR C++14 Rule A12-0-2 | Битовые операции и операции, которые принимают представление данных в памяти, не должны выполняться на объектах |
AUTOSAR C++14 Rule A12-1-1 | Конструкторы должны явным образом инициализировать все виртуальные базовые классы, все прямые невиртуальные базовые классы и все нестатические элементы данных |
AUTOSAR C++14 Rule A12-1-2 | И NSDMI и нестатический инициализатор члена в конструкторе не должны использоваться в том же типе |
AUTOSAR C++14 Rule A12-1-3 | Если все пользовательские конструкторы класса инициализируют элементы данных постоянными значениями, которые являются тем же самым через всех конструкторов, то элементы данных должны быть инициализированы с помощью NSDMI вместо этого |
AUTOSAR C++14 Rule A12-1-4 | Все конструкторы, которые являются вызываемыми с отдельным аргументом фундаментального типа, должны быть объявлены явные |
AUTOSAR C++14 Rule A12-1-5 | Общая инициализация класса для непостоянных членов должна быть сделана конструктором делегирования |
AUTOSAR C++14 Rule A12-1-6 | Производные классы, которые не нуждаются в дальнейшей явной инициализации и требуют всех конструкторов от базового класса, должны использовать наследовавшихся конструкторов |
AUTOSAR C++14 Rule A12-4-1 | Деструктор базового класса должен быть общедоступным виртуальным, общедоступным переопределением или защищенный невиртуальный |
AUTOSAR C++14 Rule A12-4-2 | Если общедоступный деструктор класса является невиртуальным, то класс должен быть объявлен финалом |
AUTOSAR C++14 Rule A12-6-1 | Все элементы данных класса, которые инициализируются конструктором, должны быть инициализированы с помощью инициализаторов члена |
AUTOSAR C++14 Rule A12-7-1 | Если поведение пользовательской специальной функции членства будет идентично неявно заданной специальной функции членства, то это должно быть задано "=default" или оставлено неопределенным |
AUTOSAR C++14 Rule A12-8-1 | Переместите и скопируйте конструкторов, перемещу и соответственно скопирую базовые классы и элементы данных класса, без любых побочных эффектов |
AUTOSAR C++14 Rule A12-8-2 | Пользовательская копия и операторы присваивания перемещения должны использовать пользовательскую функцию подкачки без бросков |
AUTOSAR C++14 Rule A12-8-3 | Перемещенный - от объекта не буду получен доступ чтением |
AUTOSAR C++14 Rule A12-8-4 | Переместитесь конструктор не должен инициализировать его члены класса и базовые классы с помощью семантики копии |
AUTOSAR C++14 Rule A12-8-5 | Присвоение копии и перемещение операторы присваивания должны обработать самоприсвоение |
AUTOSAR C++14 Rule A12-8-6 | Скопируйте и переместите конструкторов и скопируйте присвоение и переместитесь, операторы присваивания должны быть объявлены защищенным или заданным "=delete" в базовом классе |
AUTOSAR C++14 Rule A12-8-7 | Операторы присваивания должны быть объявлены с касательно спецификатора & |
AUTOSAR C++14 Rule M12-1-1 | Динамический тип объекта не должен использоваться от тела его конструктора или деструктора |
AUTOSAR C++14 Rule A13-1-2 | Определяемые пользователем суффиксы определяемых пользователем литеральных операторов должны запуститься с подчеркивания, сопровождаемого одной или несколькими буквами |
AUTOSAR C++14 Rule A13-2-1 | Оператор присваивания должен возвратить ссылку на "это" |
AUTOSAR C++14 Rule A13-2-2 | Оператор двоичной арифметики и побитовый оператор должны возвратить "prvalue" |
AUTOSAR C++14 Rule A13-2-3 | Оператор отношения должен возвратить булево значение |
AUTOSAR C++14 Rule A13-3-1 | Функция, которая содержит "передающую ссылку" в качестве ее аргумента, не должна быть перегружена |
AUTOSAR C++14 Rule A13-5-1 | Если "оператор []" должен быть перегружен с версией неconst, версия const должна также быть реализована |
AUTOSAR C++14 Rule A13-5-2 | Все пользовательские операторы преобразования должны быть заданы явные |
AUTOSAR C++14 Rule A13-5-3 | Пользовательские операторы преобразования не должны использоваться |
AUTOSAR C++14 Rule A13-5-5 | Операторы сравнения должны быть функциями лица, не являющегося членом какой-либо организации, с идентичными типами параметра и noexcept |
AUTOSAR C++14 Rule A13-6-1 | Диафрагмы последовательностей цифры 'должны только использоваться можно следующим образом: (1) для десятичного числа, каждых 3 цифр, (2) для шестнадцатеричного, каждых 2 цифр, (3) для двоичного файла, каждых 4 цифр |
AUTOSAR C++14 Rule A14-1-1 | Шаблон должен проверять, подходит ли определенный аргумент шаблона для этого шаблона |
AUTOSAR C++14 Rule A14-5-1 | Конструктор шаблона не должен участвовать в разрешении перегрузки для отдельного аргумента типа класса включения |
AUTOSAR C++14 Rule A14-5-2 | Члены класса, которые не зависят от параметров шаблонного класса, должны быть заданы в отдельном базовом классе |
AUTOSAR C++14 Rule A14-5-3 | Типовой оператор лица, не являющегося членом какой-либо организации, должен только быть объявлен в пространстве имен, которое не содержит класс (struct) тип, перечислимый тип или описания типа объединения |
AUTOSAR C++14 Rule A14-7-1 | Тип, используемый в качестве аргумента шаблона, должен предоставить всем членам, которые используются шаблоном |
AUTOSAR C++14 Rule A14-7-2 | Обработайте специализацию по шаблону, буду объявлен в том же файле (1) как первичный шаблон (2) как пользовательский тип, для которого объявляется специализация |
AUTOSAR C++14 Rule A14-8-2 | Явные специализации шаблонов функций не должны использоваться |
AUTOSAR C++14 Rule M14-5-3 | Оператор присваивания копии должен быть объявлен, когда будет оператор присваивания шаблона параметром, который является типовым параметром |
AUTOSAR C++14 Rule M14-6-1 | В шаблоне класса с зависимой основой любое имя, которое может быть найдено в той зависимой основе, должно быть отнесено в использование квалифицированного ID или этого-> |
AUTOSAR C++14 Rule A15-1-1 | Только экземпляры типов вывели из станд.:: исключение должно быть выдано |
AUTOSAR C++14 Rule A15-1-2 | Объект исключения не должен быть указателем |
AUTOSAR C++14 Rule A15-1-3 | Все вызванные исключительные ситуации должны быть уникальными |
AUTOSAR C++14 Rule A15-1-4 | Если функция выйдет за исключением, то перед броском, функция должна поместить все объекты/ресурсы, которые функция создала в допустимых состояниях, или это должно удалить их. |
AUTOSAR C++14 Rule A15-2-1 | Конструкторы, которые не являются noexcept, не должны быть вызваны перед запуском программы |
AUTOSAR C++14 Rule A15-2-2 | Если конструктор не будет noexcept, и конструктор не может закончить объектную инициализацию, то это должно освободить ресурсы объекта, и это должно выдать исключение |
AUTOSAR C++14 Rule A15-3-3 | Основная функция и задача основная функция должны отловить, по крайней мере: исключения базового класса из всех сторонних библиотек использовали, станд.:: исключение и все в противном случае необработанные исключения |
AUTOSAR C++14 Rule A15-3-4 | Вместилище (замещающий знак и станд.:: исключение), обработчики должны использоваться только в (a) основном, (b) задаче основные функции, (c) в функциях, которые, как предполагается, изолируют независимые компоненты и (d) при вызове стороннего кода, который использует исключения не согласно C++ AUTOSAR 14 инструкций |
AUTOSAR C++14 Rule A15-3-5 | Исключение типа класса должно быть отловлено ссылкой const или ссылкой |
AUTOSAR C++14 Rule A15-4-1 | Динамическая спецификация исключения не должна использоваться |
AUTOSAR C++14 Rule A15-4-2 | Если функция, как будут объявлять, будет noexcept, noexcept (TRUE) или noexcept (<истинное условие>), то это не должно выходить за исключением |
AUTOSAR C++14 Rule A15-4-3 | noexcept спецификация функции должна или быть идентичной через все модули перевода, или идентичной или более строгой между виртуальной функцией членства и сверхнаездником |
AUTOSAR C++14 Rule A15-4-4 | Объявление неброска функции должно содержать noexcept спецификацию |
AUTOSAR C++14 Rule A15-4-5 | Контролируемые исключительные ситуации, которые могли быть выданы от функции, должны быть заданы вместе с объявлением функции, и они должны быть идентичными во всех объявлениях функции и для всех его сверхнаездников |
AUTOSAR C++14 Rule A15-5-1 | Все обеспеченные пользователями деструкторы класса, функции освобождения, перемещают конструкторов, перемещают операторы присваивания и подкачивают функции, не выйду за исключением. noexcept спецификация исключения должна быть добавлена к этим функциям как соответствующая |
AUTOSAR C++14 Rule A15-5-2 | Программа не должна быть резко отключена. В частности, неявный или явный вызов станд.:: аварийное прекращение работы (), станд.:: quick_exit (), станд.:: _Exit (), станд.:: оконечный () не буду сделан |
AUTOSAR C++14 Rule A15-5-3 | Станд.:: оконечный () функция не должна быть вызвана неявно |
AUTOSAR C++14 Rule M15-0-3 | Управление не должно быть передано в попытку или блок выгоды с помощью goto или оператора switch |
AUTOSAR C++14 Rule M15-1-1 | Выражение присваивания оператора броска не должно самостоятельно заставлять исключение быть выданным |
AUTOSAR C++14 Rule M15-1-2 | NULL не должен быть выдан явным образом |
AUTOSAR C++14 Rule M15-1-3 | Пустой бросок (бросок;) буду только использоваться в составном операторе обработчика выгоды |
AUTOSAR C++14 Rule M15-3-1 | Исключения должны быть повышены только после запуска и перед завершением |
AUTOSAR C++14 Rule M15-3-3 | Обработчики реализации функционального блока попытки конструктора класса или деструктора не должны ссылаться на нестатические члены от этого класса или его основ |
AUTOSAR C++14 Rule M15-3-4 | Каждое исключение, явным образом добавленное, код должен иметь обработчик совместимого типа во всех путях к вызову, которые могли привести к той точке |
AUTOSAR C++14 Rule M15-3-6 | Где несколько обработчиков обеспечиваются в одном операторе try-catch или функциональном блоке попытки для производного класса, и некоторые или все его основы, обработчики должны быть упорядочены наиболее выведенные базовому классу |
AUTOSAR C++14 Rule M15-3-7 | Где несколько обработчиков обеспечиваются в одном операторе try-catch или функциональном блоке попытки, любой замещающий знак (вместилище), обработчик должен произойти в последний раз |
AUTOSAR C++14 Rule A16-0-1 | Препроцессор должен только использоваться для безусловного и условного включения файла и включать защиту и использовать определенные директивы |
AUTOSAR C++14 Rule A16-2-1 | ', ", /*,//, \символы не должны происходить на имя заголовочного файла или на #include директиву |
AUTOSAR C++14 Rule A16-6-1 | Директива #error не должна использоваться |
AUTOSAR C++14 Rule A16-7-1 | #pragma директива не должна использоваться |
AUTOSAR C++14 Rule M16-0-1 | Директивам #include в файле должны только предшествовать другие директивы препроцессору или комментарии |
AUTOSAR C++14 Rule M16-0-2 | Макросы должны только быть #define'd или #undef'd в глобальном пространстве имен |
AUTOSAR C++14 Rule M16-0-5 | Аргументы к подобному функции макросу не должны содержать лексемы, которые похожи на предварительную обработку директив |
AUTOSAR C++14 Rule M16-0-6 | В определении подобного функции макроса каждый экземпляр параметра должен быть заключен в круглые скобки, если это не будет использоваться в качестве операнда # или ## |
AUTOSAR C++14 Rule M16-0-7 | Неопределенные макро-идентификаторы не должны использоваться в #if или #elif директивах препроцессору, за исключением операндов к заданному оператору |
AUTOSAR C++14 Rule M16-0-8 | Если # лексема появится как первая лексема на линии, то это должно сразу сопровождаться лексемой предварительной обработки |
AUTOSAR C++14 Rule M16-1-1 | Заданный оператор препроцессора должен только использоваться в одной из двух стандартных форм |
AUTOSAR C++14 Rule M16-1-2 | Весь #else, #elif и #endif директивы препроцессору должен находиться в том же файле как #if или #ifdef директива, с которой они связаны |
AUTOSAR C++14 Rule M16-2-3 | Включайте защиту, буду обеспечен |
AUTOSAR C++14 Rule M16-3-1 | Должно быть самое большее одно вхождение # или ## операторов в одном макроопределении |
AUTOSAR C++14 Rule M16-3-2 | # и ## операторы не должны использоваться |
AUTOSAR C++14 Rule A17-0-1 | Зарезервированные идентификаторы, макросы и функции в библиотеке стандарта C++ не должны быть заданы, переопределены или не определены |
AUTOSAR C++14 Rule A17-6-1 | Нестандартные сущности не должны быть добавлены к стандартным пространствам имен |
AUTOSAR C++14 Rule M17-0-2 | Имена стандартных макросов библиотеки и объектов не должны быть снова использованы |
AUTOSAR C++14 Rule M17-0-3 | Имена стандартных библиотечных функций не должны быть заменены |
AUTOSAR C++14 Rule M17-0-5 | setjmp макрос и функция longjmp не должны использоваться |
AUTOSAR C++14 Rule A18-0-1 | К средствам библиотеки C нужно только получить доступ через заголовки библиотеки C++ |
AUTOSAR C++14 Rule A18-0-2 | Состояние ошибки преобразования от строки до числового значения должно проверяться |
AUTOSAR C++14 Rule A18-0-3 | Библиотекой <clocale> (locale.h) и функция setlocale нельзя пользоваться |
AUTOSAR C++14 Rule A18-1-1 | Массивы C-стиля не должны использоваться |
AUTOSAR C++14 Rule A18-1-2 | Станд.:: вектор <bool> специализация не должен использоваться |
AUTOSAR C++14 Rule A18-1-3 | Станд.:: auto_ptr не должен использоваться |
AUTOSAR C++14 Rule A18-1-6 | Весь станд.:: специализации хеша для пользовательских типов должны иметь noexcept оператор вызова функции |
AUTOSAR C++14 Rule A18-5-1 | Функции malloc, calloc, перевыделение и свободный не должны использоваться |
AUTOSAR C++14 Rule A18-5-2 | Новое неразмещение или удаляет выражения, не буду использоваться |
AUTOSAR C++14 Rule A18-5-3 | Форма оператора delete должна соответствовать, форма нового оператора раньше выделяла память |
AUTOSAR C++14 Rule A18-5-4 | Если проект измерил, или неразмерная версия оператора 'удаляют' глобально заданный, то и измеренные и неразмерные версии должны быть заданы |
AUTOSAR C++14 Rule A18-5-5 | Функции управления памятью должны гарантировать следующее: (a) детерминированное поведение, заканчивающееся с существованием времени выполнения худшего случая, (b) предотвращение фрагментации памяти, (c) постарайтесь не заканчиваться память, (d) предотвращение несовпадающих выделений или освобождения, (e) никакая зависимость от недетерминированных вызовов ядра |
AUTOSAR C++14 Rule A18-5-8 | Объекты, которые не переживают функцию, должны иметь длительность автоматического хранения |
AUTOSAR C++14 Rule A18-5-9 | Пользовательские реализации функций динамического выделения памяти и освобождения должны удовлетворить семантические требования, заданные в соответствующем "Необходимом поведении" пункт из Стандарта C++ |
AUTOSAR C++14 Rule A18-5-10 | Новое размещение должно использоваться только с правильно выровненными указателями на достаточную емкость памяти |
AUTOSAR C++14 Rule A18-5-11 | "оператор, который удаляет новый" и "оператор", должен быть задан вместе |
AUTOSAR C++14 Rule A18-9-1 | Станд.:: свяжите не буду использоваться |
AUTOSAR C++14 Rule A18-9-2 | Передача значений к другим функциям должна быть сделана через: (1) станд.:: переместитесь, если значение является rvalue ссылкой, (2) станд::, если значение передает ссылку |
AUTOSAR C++14 Rule A18-9-3 | Станд.:: перемещение не должно использоваться на объектах, объявил const или const& |
AUTOSAR C++14 Rule A18-9-4 | Аргумент к станд.:: вперед не буду впоследствии использоваться |
AUTOSAR C++14 Rule M18-0-3 | Аварийное прекращение работы библиотечных функций, выход, getenv и система от библиотеки <cstdlib> не должны использоваться |
AUTOSAR C++14 Rule M18-0-4 | Функции обработки времени библиотеки <ctime> не должны использоваться |
AUTOSAR C++14 Rule M18-0-5 | Неограниченные функции библиотеки <cstring> не должны использоваться |
AUTOSAR C++14 Rule M18-2-1 | Макрос offsetof не должен использоваться |
AUTOSAR C++14 Rule M18-7-1 | Погрузочно-разгрузочное оборудование сигнала <csignal> не должно использоваться |
AUTOSAR C++14 Rule M19-3-1 | Ошибочный индикатор errno не должен использоваться |
AUTOSAR C++14 Rule A20-8-1 | Уже принадлежавшее значение указателя не должно храниться в несвязанном интеллектуальном указателе |
AUTOSAR C++14 Rule A20-8-2 | Станд.:: unique_ptr должен использоваться, чтобы представлять исключительное владение |
AUTOSAR C++14 Rule A20-8-3 | Станд.:: shared_ptr должен использоваться, чтобы представлять совместно использованное владение |
AUTOSAR C++14 Rule A20-8-5 | станд:: должен использоваться, чтобы создать объекты, принадлежавшие станд.:: unique_ptr |
AUTOSAR C++14 Rule A20-8-6 | станд:: должен использоваться, чтобы создать объекты, принадлежавшие станд.:: shared_ptr |
AUTOSAR C++14 Rule A21-8-1 | Аргументы к обрабатывающим символ функциям должны быть представимыми как char без знака |
AUTOSAR C++14 Rule A23-0-1 | Итератор не должен быть неявно преобразован в const_iterator |
AUTOSAR C++14 Rule A26-5-1 | Псевдослучайные числа не должны быть сгенерированы с помощью станд.:: rand |
AUTOSAR C++14 Rule A26-5-2 | Механизмы случайных чисел не должны быть инициализированы значением по умолчанию |
AUTOSAR C++14 Rule A27-0-1 | Входные параметры от независимых компонентов должны быть подтверждены. |
AUTOSAR C++14 Rule A27-0-2 | Строка C-стиля должна гарантировать достаточный пробел для данных и пустого терминатора строки |
AUTOSAR C++14 Rule A27-0-3 | Альтернативные операции ввода и вывода на потоке файла не должны использоваться без прошедшего сброса или располагающий вызов |
AUTOSAR C++14 Rule A27-0-4 | Строки C-стиля не должны использоваться |
AUTOSAR C++14 Rule M27-0-1 | Потоковый ввод / выходная библиотека <cstdio> не должен использоваться |
CERT C++: DCL30-C | Объявите объекты с соответствующими продолжительностями хранения |
CERT C++: DCL39-C | Избегайте утечки информации в дополнении структуры |
CERT C++: DCL40-C | Не создавайте несовместимые объявления той же функции или объекта |
CERT C++: DCL50-CPP | Не задавайте C-стиль variadic функция |
CERT C++: DCL51-CPP | Не объявляйте или задавайте зарезервированный идентификатор |
CERT C++: DCL52-CPP | Никогда не квалифицируйте ссылочный тип с const или энергозависимый |
CERT C++: DCL53-CPP | Не пишите синтаксически неоднозначные объявления |
CERT C++: DCL54-CPP | Выделение перегрузки и освобождение функционируют как пару в том же осциллографе |
CERT C++: DCL57-CPP | Не позволяйте исключениям сбежать из деструкторов или функций освобождения |
CERT C++: DCL58-CPP | Не изменяйте стандартные пространства имен |
CERT C++: DCL59-CPP | Не задавайте пространство имен без имени в заголовочном файле |
CERT C++: DCL60-CPP | Соблюдите правило с одним определением |
CERT C++: EXP34-C | Не разыменовывайте нулевых указателей |
CERT C++: EXP35-C | Не изменяйте объекты с временным временем жизни |
CERT C++: EXP36-C | Не бросайте указатели в более строго выровненные типы указателей |
CERT C++: EXP37-C | Вызовите функции с правильным номером и типом аргументов |
CERT C++: EXP39-C | Не получайте доступ к переменной через указатель несовместимого типа |
CERT C++: EXP42-C | Не сравнивайте дополнительные данные |
CERT C++: EXP45-C | Не выполняйте присвоения в операторах выбора |
CERT C++: EXP46-C | Не используйте побитовый оператор с подобным boolean операндом |
CERT C++: EXP47-C | Не вызывайте va_arg с аргументом неправильного типа |
CERT C++: EXP50-CPP | Не зависьте от порядка оценки для побочных эффектов |
CERT C++: EXP52-CPP | Не используйте побочные эффекты в неоцененных операндах |
CERT C++: EXP53-CPP | Не читайте неинициализированную память |
CERT C++: EXP54-CPP | Не получайте доступ к объекту за пределами его времени жизни |
CERT C++: EXP55-CPP | Не получайте доступ к квалифицированному к cv объекту через дисквалифицированный cv тип |
CERT C++: EXP57-CPP | Не бросайте или удаляйте указатели на неполные классы |
CERT C++: EXP58-CPP | Передайте объект правильного типа к va_start |
CERT C++: EXP59-CPP | Используйте offsetof () на допустимых типах и членах |
CERT C++: EXP61-CPP | Объект lambda не должен переживать ни один из полученных объектов своей ссылки |
CERT C++: EXP63-CPP | Не используйте значение перемещенного - от объекта |
CERT C++: INT30-C | Убедитесь, что операции беззнаковых целых чисел не переносятся |
CERT C++: INT31-C | Убедитесь, что целочисленные преобразования не приводят к потерянным или неправильно истолкованным данным |
CERT C++: INT32-C | Убедитесь, что операции на целых числах со знаком не приводят к переполнению |
CERT C++: INT33-C | Убедитесь, что деление и операции остатка не приводят к ошибкам деления на нуль |
CERT C++: INT34-C | Не переключайте выражение отрицательным числом битов или большим, чем или равняйтесь количеству битов, которые существуют в операнде |
CERT C++: INT35-C | Используйте правильную целочисленную точность |
CERT C++: INT36-C | Преобразование указателя на целое число или целое число к указателю |
CERT C++: ARR30-C | Не формируйте или используйте за пределы индексы массивов или указатели |
CERT C++: ARR37-C | Не добавляйте или вычитайте целое число к указателю на объект немассивов |
CERT C++: ARR38-C | Гарантируйте, что библиотечные функции не формируют недопустимые указатели |
CERT C++: ARR39-C | Не добавляйте или вычитайте масштабированное целое число к указателю |
CERT C++: CTR50-CPP | Гарантируйте, что контейнерные индексы и итераторы в допустимой области значений |
CERT C++: STR30-C | Не пытайтесь изменить строковые литералы |
CERT C++: STR31-C | Гарантируйте, что устройство хранения данных для строк имеет достаточный пробел для символьных данных и пустого терминатора строки |
CERT C++: STR32-C | Не передавайте не пустую отключенную последовательность символов библиотечной функции, которая ожидает строку |
CERT C++: STR34-C | Бросьте символы к char без знака прежде, чем преобразовать в большие целочисленные размеры |
CERT C++: STR37-C | Аргументы к обрабатывающим символ функциям должны быть представимыми как char без знака |
CERT C++: STR38-C | Не путайте строки узкого и широкого символа и функции |
CERT C++: STR50-CPP | Гарантируйте, что устройство хранения данных для строк имеет достаточный пробел для символьных данных и пустого терминатора строки |
CERT C++: STR53-CPP | Доступ к элементу проверки диапазона |
CERT C++: MEM30-C | Не получайте доступ освобожденный память |
CERT C++: MEM31-C | Свободная динамически выделенная память, когда больше не необходимый |
CERT C++: MEM34-C | Только свободная память, выделенная динамически |
CERT C++: MEM35-C | Выделите достаточную память для объекта |
CERT C++: MEM36-C | Не изменяйте выравнивание объектов путем вызова перевыделения () |
CERT C++: MEM50-CPP | Не получайте доступ освобожденный память |
CERT C++: MEM51-CPP | Правильно освободите динамически выделенные ресурсы |
CERT C++: MEM52-CPP | Обнаружьте и обработайте ошибки распределения памяти |
CERT C++: MEM54-CPP | Предоставьте размещению, новому правильно выровненные указатели на достаточную емкость памяти |
CERT C++: MEM55-CPP | Соблюдайте заменяющие требования управления динамической памятью |
CERT C++: MEM56-CPP | Не храните уже принадлежавшее значение указателя в несвязанном интеллектуальном указателе |
CERT C++: MEM57-CPP | Избегайте использования оператора по умолчанию, нового для сверхвыровненных типов |
CERT C++: FIO30-C | Исключите ввод данных пользователем из строк формата |
CERT C++: FIO32-C | Не выполняйте операции на устройствах, которые только подходят для файлов |
CERT C++: FIO34-C | Различайте символы, считанные из файла и EOF или WEOF |
CERT C++: FIO37-C | Не принимайте, что fgets () или fgetws () возвращает непустую строку, когда успешный |
CERT C++: FIO38-C | Не копируйте объект FILE |
CERT C++: FIO39-C | Не делайте альтернативно ввода и вывода от потока без прошедшего сброса или располагающий вызов |
CERT C++: FIO40-C | Сбросьте строки на fgets () или fgetws () отказ |
CERT C++: FIO41-C | Не вызывайте getc (), putc (), getwc (), или putwc () с потоковым аргументом, который имеет побочные эффекты |
CERT C++: FIO42-C | Закройте файлы, когда они больше не будут необходимы |
CERT C++: FIO44-C | Только используйте значения для fsetpos (), которые возвращены в fgetpos () |
CERT C++: FIO45-C | Избегайте условий состязания TOCTOU при доступе к файлам |
CERT C++: FIO46-C | Не получайте доступ к закрытому файлу |
CERT C++: FIO47-C | Используйте строки допустимого формата |
CERT C++: FIO50-CPP | Не делайте альтернативно ввода и вывода от потока файла без вызова расположения вмешательства |
CERT C++: FIO51-CPP | Закройте файлы, когда они больше не будут необходимы |
CERT C++: ERR30-C | Обнулите errno прежде, чем вызвать библиотечную функцию, которая, как известно, установила errno и проверять errno только после того, как функция возвратит отказ указания значения |
CERT C++: ERR32-C | Не используйте неопределенные значения errno |
CERT C++: ERR33-C | Обнаружьте и обработайте стандартные ошибки библиотеки |
CERT C++: ERR34-C | Обнаружьте ошибки при преобразовании строки в номер |
CERT C++: ERR50-CPP | Резко не отключайте программу |
CERT C++: ERR51-CPP | Обработайте все исключения |
CERT C++: ERR52-CPP | Не используйте setjmp () или longjmp () |
CERT C++: ERR53-CPP | Не ссылайтесь на базовые классы или элементы данных класса в конструкторе или обработчике функционального блока попытки деструктора |
CERT C++: ERR54-CPP | Обработчики выгоды должны заказать свои типы параметра от наиболее выведенного до наименее выведенного |
CERT C++: ERR55-CPP | Соблюдайте технические требования исключения |
CERT C++: ERR57-CPP | Не пропускайте ресурсы при обрабатывании исключений |
CERT C++: ERR58-CPP | Обработайте все исключения, выданные, прежде чем основной () начнет выполняться |
CERT C++: ERR61-CPP | Отловите исключения lvalue ссылкой |
CERT C++: OOP50-CPP | Не вызывайте виртуальные функции от конструкторов или деструкторов |
CERT C++: OOP51-CPP | Не нарезайте производные объекты |
CERT C++: OOP52-CPP | Не удаляйте полиморфный объект без виртуального деструктора |
CERT C++: OOP53-CPP | Напишите инициализаторы члена конструктора в каноническом порядке |
CERT C++: OOP54-CPP | Корректно обработайте присвоение самокопии |
CERT C++: OOP57-CPP | Предпочтите специальные функции членства и перегруженные операторы к Стандартным Библиотечным функциям C |
CERT C++: OOP58-CPP | Операции копии не должны видоизменять исходный объект |
CERT C++: CON33-C | Избегайте условий состязания при использовании библиотечных функций |
CERT C++: CON37-C | Не делайте позывного () в многопоточной программе |
CERT C++: CON40-C | Не обращайтесь к атомарной переменной дважды в выражении |
CERT C++: CON41-C | Перенесите функции, которые могут перестать работать побочно в цикле |
CERT C++: CON43-C | Не позволяйте гонки данных в многопоточном коде |
CERT C++: CON50-CPP | Не уничтожайте взаимное исключение, в то время как оно заблокировано |
CERT C++: CON52-CPP | Предотвратите гонки данных при доступе к битовым полям от нескольких потоков |
CERT C++: CON53-CPP | Избегайте мертвой блокировки путем привязки предопределенного порядка |
CERT C++: CON54-CPP | Перенесите функции, которые могут побочно проснуться в цикле |
CERT C++: ENV30-C | Не изменяйте объект, на который ссылается возвращаемое значение определенных функций |
CERT C++: ENV31-C | Не используйте указатель среды после операции, которая может делать недействительным его |
CERT C++: ENV32-C | Все выходные обработчики должны обычно возвращаться |
CERT C++: ENV33-C | Не вызывайте систему () |
CERT C++: ENV34-C | Не храните указатели, возвращенные определенными функциями |
CERT C++: FLP30-C | Не используйте переменные с плавающей точкой в качестве счетчиков цикла |
CERT C++: FLP32-C | Предотвратите или обнаружьте область и ошибки области значений в математических функциях |
CERT C++: FLP34-C | Убедитесь, что преобразования с плавающей точкой в области значений нового типа |
CERT C++: FLP36-C | Сохраните точность при преобразовании интегральных значений в тип с плавающей точкой |
CERT C++: FLP37-C | Не используйте объектные представления, чтобы сравнить значения с плавающей точкой |
CERT C++: MSC30-C | Не используйте rand () функция для генерации псевдослучайных чисел |
CERT C++: MSC32-C | Правильно отберите генераторы псевдослучайного числа |
CERT C++: MSC33-C | Не передавайте недопустимые данные asctime () функция |
CERT C++: MSC37-C | Убедитесь, что управление никогда не достигает конца непустой функции |
CERT C++: MSC38-C | Не обрабатывайте предопределенный идентификатор как объект, если это может только быть реализовано как макрос |
CERT C++: MSC39-C | Не вызывайте va_arg () на va_list, который имеет неопределенное значение |
CERT C++: MSC40-C | Не нарушайте ограничения |
CERT C++: MSC41-C | Никогда трудная кодозависимая информация |
CERT C++: MSC50-CPP | Не используйте станд.:: rand () для генерации псевдослучайных чисел |
CERT C++: MSC51-CPP | Гарантируйте, что ваш генератор случайных чисел правильно отобран |
CERT C++: MSC52-CPP | Возвращающие значение функции должны возвратить значение от всех выходных путей |
CERT C++: MSC53-CPP | Не возвращайтесь из функции, объявил [[noreturn]] |
CERT C++: PRE30-C | Не создавайте универсальное имя персонажа посредством конкатенации |
CERT C++: PRE31-C | Избегайте побочных эффектов в аргументах к небезопасным макросам |
CERT C++: PRE32-C | Не используйте директивы препроцессору в вызовах подобных функции макросов |
CERT C++: SIG31-C | Не получайте доступ к общим объектам в обработчиках сигнала |
CERT C++: SIG34-C | Не делайте позывного () из прерываемых обработчиков сигнала |
CERT C++: SIG35-C | Не возвращайтесь из вычислительного обработчика сигнала исключения |
Number of calling functions exceeds threshold | Количество отличных вызывающих сторон функции больше заданного порога |
Number of called functions exceeds threshold | Количество отличных вызовов функции в теле функции больше заданного порога |
Comment density below threshold | Плотность комментария модуля падает ниже заданного порога |
Call tree complexity exceeds threshold | Сложность дерева вызова файла больше заданного порога |
Number of lines within body exceeds threshold | Количество линий в теле функции больше заданного порога |
Number of executable lines exceeds threshold | Количество исполняемых линий в теле функции больше заданного порога |
Number of goto statements exceeds threshold | Количество goto операторы в функции больше заданного порога |
Depth of call nesting exceeds threshold | Глубина вложения структур управления в функции больше заданного порога глубины вложения функции |
Number of local static variables exceeds threshold | Количество локальных статических переменных в функции больше заданного порога |
Number of local nonstatic variables exceeds threshold | Количество локальных нестатических переменных в функции больше заданного порога |
Number of call occurrences exceeds threshold | Количество вызовов функции в функции больше заданного порога вхождения вызова функции |
Number of function parameters exceeds threshold | Количество аргументов функции больше заданного порога |
Number of paths exceeds threshold | Количество статических путей в функции больше заданного порога |
Number of return statements exceeds threshold | Количество return операторы в функции больше заданного порога |
Number of instructions exceeds threshold | Количество инструкций в функции больше заданного порога |
Number of lines exceeds threshold | Количество общих линий в файле больше заданного порога |
Cyclomatic complexity exceeds threshold | Цикломатическая сложность функции больше заданного цикломатического порога сложности функции |
Language scope exceeds threshold | Область видимости функции языка больше заданного порога |
Number of Direct Recursions | Количество экземпляров функции, вызывая себя непосредственно |
Number of Header Files | Количество включенных заголовочных файлов |
Number of Files | Количество исходных файлов |
Number of Recursions | Количество циклов графа вызовов по одной или нескольким функциям |
Comment Density | Отношение количества комментариев к количеству операторов |
Estimated Function Coupling | Мера сложности между уровнями дерева вызова |
Number of Lines | Общее количество линий в файле |
Number of Lines Without Comment | Количество линий кода, исключая линии, которые являются комментариями или пробелом |
Cyclomatic Complexity | Количество линейно независимых контуров в теле функции |
Higher Estimate of Size of Local Variables | Общий размер всех локальных переменных в функции |
Language Scope | Осциллограф языка |
Lower Estimate of Size of Local Variables | Общий размер локальных переменных в функции, принимая вложенные осциллографы во внимание |
Number of Call Levels | Максимальная глубина вложения структур потока управления |
Number of Call Occurrences | Количество вызовов в теле функции |
Number of Called Functions | Количество отличных функций называется в теле функции |
Number of Calling Functions | Количество отличных вызывающих сторон функции |
Number of Executable Lines | Количество исполняемых линий в теле функции |
Number of Function Parameters | Количество аргументов функции |
Number of Goto Statements | Количество goto операторы |
Number of Instructions | Количество инструкций на функцию |
Number of Lines Within Body | Количество линий в теле функции |
Number of Local Non-Static Variables | Общее количество локальных переменных в функции |
Number of Local Static Variables | Общее количество локальных статических переменных в функции |
Number of Paths | Предполагаемое статическое количество пути |
Number of Return Statements | Количество return операторы в функции |