Nous utilisons des cookies pour améliorer votre expérience de navigation. En savoir plus
Accepter
to the top
>
>
>
Classification of PVS-Studio...

Classification of PVS-Studio warnings according to the standards: MISRA C, MISRA C++

MISRA C and MISRA C++ are software development standards created by MISRA (Motor Industry Software Reliability Association). The purpose of these standards is to enhance security, portability, and reliability of programs for embedded systems.

The analyzer targets the latest versions of the standards: MISRA C:2012, MISRA C:2023 and MISRA C++:2008.

MISRA C 2012

Error Code

Error Description

Mapping

V2501

Octal constants should not be used.

Rule 7.1

V2502

The 'goto' statement should not be used.

Rule 15.1

V2503

Implicitly specified enumeration constants should be unique – consider specifying non-unique constants explicitly.

Rule 8.12

V2504

Size of an array is not specified.

Rule 8.11

V2505

The 'goto' statement shouldn't jump to a label declared earlier.

Rule 15.2

V2506

A function should have a single point of exit at the end.

Rule 15.5

V2507

The body of a loop\conditional statement should be enclosed in braces.

Rule 15.6

V2508

The function with the 'atof/atoi/atol/atoll' name should not be used.

Rule 21.7

V2509

The function with the 'abort/exit/getenv/system' name should not be used.

Rule 21.8

V2510

The function with the 'qsort/bsearch' name should not be used.

Rule 21.9

V2511

Memory allocation and deallocation functions should not be used.

Rule 21.3

V2512

The macro with the 'setjmp' name and the function with the 'longjmp' name should not be used.

Rule 21.4

V2514

Unions should not be used.

Rule 19.2

V2515

Declaration should contain no more than two levels of pointer nesting.

Rule 18.5

V2516

The 'if' ... 'else if' construct should be terminated with an 'else' statement.

Rule 15.7

V2517

Literal suffixes should not contain lowercase characters.

Rule 7.3

V2518

The 'default' label should be either the first or the last label of a 'switch' statement.

Rule 16.5

V2519

Every 'switch' statement should have a 'default' label, which, in addition to the terminating 'break' statement, should contain either a statement or a comment.

Rule 16.4

V2520

Every switch-clause should be terminated by an unconditional 'break' or 'throw' statement.

Rule 16.3

V2523

All integer constants of unsigned type should have 'u' or 'U' suffix.

Rule 7.2

V2524

A switch-label should only appear at the top level of the compound statement forming the body of a 'switch' statement.

Rule 16.2

V2525

Every 'switch' statement should contain non-empty switch-clauses.

Rule 16.6

V2526

The functions from time.h/ctime should not be used.

Rule 21.10

V2527

A switch-expression should not have Boolean type. Consider using of 'if-else' construct.

Rule 16.7

V2528

The comma operator should not be used.

Rule 12.3

V2529

Any label should be declared in the same block as 'goto' statement or in any block enclosing it.

Rule 15.3

V2530

Any loop should be terminated with no more than one 'break' or 'goto' statement.

Rule 15.4

V2531

Expression of essential type 'foo' should not be explicitly cast to essential type 'bar'.

Rule 10.5

V2532

String literal should not be assigned to object unless it has type of pointer to const-qualified char.

Rule 7.4

V2534

The loop counter should not have floating-point type.

Rule 14.1

V2535

Unreachable code should not be present in the project.

Rule 2.1

V2536

Function should not contain labels not used by any 'goto' statements.

Rule 2.6

V2537

Functions should not have unused parameters.

Rule 2.7

V2538

The value of uninitialized variable should not be used.

Rule 9.1

V2540

Arrays should not be partially initialized.

Rule 9.3

V2541

Function should not be declared implicitly.

Rule 17.3

V2542

Function with a non-void return type should return a value from all exit paths.

Rule 17.4

V2543

Value of the essential character type should be used appropriately in the addition/subtraction operations.

Rule 10.2

V2544

The values used in expressions should have appropriate essential types.

Rule 10.1

V2545

Conversion between pointers of different object types should not be performed.

Rule 11.3

V2546

Expression resulting from the macro expansion should be surrounded by parentheses.

Rule 20.7

V2547

The return value of non-void function should be used.

Rule 17.7

V2548

The address of an object with local scope should not be passed out of its scope.

Rule 18.6

V2549

Pointer to FILE should not be dereferenced.

Rule 22.5

V2554

Expression containing increment (++) or decrement (--) should not have other side effects.

Rule 13.3

V2555

Incorrect shifting expression.

Rule 12.2

V2556

Use of a pointer to FILE when the associated stream has already been closed.

Rule 22.6

V2557

Operand of sizeof() operator should not have other side effects.

Rule 13.6

V2561

The result of an assignment expression should not be used.

Rule 13.4

V2562

Expressions with pointer type should not be used in the '+', '-', '+=' and '-=' operations.

Rule 18.4

V2565

A function should not call itself either directly or indirectly.

Rule 17.2

V2566

Constant expression evaluation should not result in an unsigned integer wrap-around.

Rule 12.4

V2567

Cast should not remove 'const' / 'volatile' qualification from the type that is pointed to by a pointer or a reference.

Rule 11.8

V2568

Both operands of an operator should be of the same type category.

Rule 10.4

V2571

Conversions between pointers to objects and integer types should not be performed.

Rule 11.4

V2571

Conversions between pointers to objects and integer types should not be performed.

Rule 11.5

V2572

Value of the expression should not be converted to the different essential type or the narrower essential type.

Rule 10.3

V2573

Identifiers that start with '__' or '_[A-Z]' are reserved.

Rule 21.1

V2573

Identifiers that start with '__' or '_[A-Z]' are reserved.

Rule 21.2

V2577

The function argument corresponding to a parameter declared to have an array type should have an appropriate number of elements.

Rule 17.5

V2579

Macro should not be defined with the same name as a keyword.

Rule 20.4

V2580

The 'restrict' specifier should not be used.

Rule 8.14

V2581

Single-line comments should not end with a continuation token.

Rule 3.2

V2582

Block of memory should only be freed if it was allocated by a Standard Library function.

Rule 22.2

V2583

Line whose first token is '#' should be a valid preprocessing directive.

Rule 20.13

V2584

Expression used in condition should have essential Boolean type.

Rule 14.4

V2585

Casts between a void pointer and an arithmetic type should not be performed.

Rule 11.6

V2586

Flexible array members should not be declared.

Rule 18.7

V2587

The '//' and '/*' character sequences should not appear within comments.

Rule 3.1

V2588

All memory or resources allocated dynamically should be explicitly released.

Rule 22.1

V2589

Casts between a pointer and a non-integer arithmetic type should not be performed.

Rule 11.7

V2590

Conversions should not be performed between pointer to function and any other type.

Rule 11.1

V2591

Bit fields should only be declared with explicitly signed or unsigned integer type

Rule 6.1

V2592

An identifier declared in an inner scope should not hide an identifier in an outer scope.

Rule 5.3

V2593

Single-bit bit fields should not be declared as signed type.

Rule 6.2

V2594

Controlling expressions should not be invariant.

Rule 14.3

V2595

Array size should be specified explicitly when array declaration uses designated initialization.

Rule 9.5

V2596

The value of a composite expression should not be assigned to an object with wider essential type.

Rule 10.6

V2598

Variable length array types are not allowed.

Rule 18.8

V2599

The standard signal handling functions should not be used.

Rule 21.5

V2600

The standard input/output functions should not be used.

Rule 21.6

V2601

Functions should be declared in prototype form with named parameters.

Rule 8.2

V2602

Octal and hexadecimal escape sequences should be terminated.

Rule 4.1

V2603

The 'static' keyword shall not be used between [] in the declaration of an array parameter.

Rule 17.6

V2604

Features from <stdarg.h> should not be used.

Rule 17.1

V2605

Features from <tgmath.h> should not be used.

Rule 21.11

V2606

There should be no attempt to write to a stream that has been opened for reading.

Rule 22.4

V2607

Inline functions should be declared with the static storage class.

Rule 8.10

V2608

The 'static' storage class specifier should be used in all declarations of object and functions that have internal linkage.

Rule 8.8

V2609

There should be no occurrence of undefined or critical unspecified behaviour.

Rule 1.3

V2610

The ', " or \ characters and the /* or // character sequences should not occur in a header file name.

Rule 20.2

V2611

Casts between a pointer to an incomplete type and any other type shouldn't be performed.

Rule 11.2

V2612

Array element should not be initialized more than once.

Rule 9.4

V2613

Operand that is a composite expression has more narrow essential type than the other operand.

Rule 10.7

V2614

External identifiers should be distinct.

Rule 5.1

V2615

A compatible declaration should be visible when an object or function with external linkage is defined.

Rule 8.4

V2616

All conditional inclusion preprocessor directives should reside in the same file as the conditional inclusion directive to which they are related.

Rule 20.4

V2617

Object should not be assigned or copied to an overlapping object.

Rule 19.1

V2618

Identifiers declared in the same scope and name space should be distinct.

Rule 5.2

V2619

Typedef names should be unique across all name spaces.

Rule 5.6

V2620

Value of a composite expression should not be cast to a different essential type category or a wider essential type.

Rule 10.8

V2621

Tag names should be unique across all name spaces.

Rule 5.7

V2622

External object or function should be declared once in one and only one file.

Rule 8.5

V2623

Macro identifiers should be distinct.

Rule 5.4

V2624

The initializer for an aggregate or union should be enclosed in braces.

Rule 9.2

V2625

Identifiers that define objects or functions with external linkage shall be unique.

Rule 5.8

V2634

Features from <fenv.h> should not be used.

Rule 21.12

V2635

The function with the 'system' name should not be used.

Rule 21.21

V2636

The functions with the 'rand' and 'srand' name of <stdlib.h> should not be used.

Rule 21.24

V2643

All memory synchronization operation should be executed in sequentially consistent order.

Rule 21.25

MISRA C 2023

Error Code

Error Description

Mapping

V2501

Octal constants should not be used.

Rule 7.1

V2502

The 'goto' statement should not be used.

Rule 15.1

V2503

Implicitly specified enumeration constants should be unique – consider specifying non-unique constants explicitly.

Rule 8.12

V2504

Size of an array is not specified.

Rule 8.11

V2505

The 'goto' statement shouldn't jump to a label declared earlier.

Rule 15.2

V2506

A function should have a single point of exit at the end.

Rule 15.5

V2507

The body of a loop\conditional statement should be enclosed in braces.

Rule 15.6

V2508

The function with the 'atof/atoi/atol/atoll' name should not be used.

Rule 21.7

V2509

The function with the 'abort/exit/getenv/system' name should not be used.

Rule 21.8

V2510

The function with the 'qsort/bsearch' name should not be used.

Rule 21.9

V2511

Memory allocation and deallocation functions should not be used.

Rule 21.3

V2512

The macro with the 'setjmp' name and the function with the 'longjmp' name should not be used.

Rule 21.4

V2514

Unions should not be used.

Rule 19.2

V2515

Declaration should contain no more than two levels of pointer nesting.

Rule 18.5

V2516

The 'if' ... 'else if' construct should be terminated with an 'else' statement.

Rule 15.7

V2517

Literal suffixes should not contain lowercase characters.

Rule 7.3

V2518

The 'default' label should be either the first or the last label of a 'switch' statement.

Rule 16.5

V2519

Every 'switch' statement should have a 'default' label, which, in addition to the terminating 'break' statement, should contain either a statement or a comment.

Rule 16.4

V2520

Every switch-clause should be terminated by an unconditional 'break' or 'throw' statement.

Rule 16.3

V2523

All integer constants of unsigned type should have 'u' or 'U' suffix.

Rule 7.2

V2524

A switch-label should only appear at the top level of the compound statement forming the body of a 'switch' statement.

Rule 16.2

V2525

Every 'switch' statement should contain non-empty switch-clauses.

Rule 16.6

V2526

The functions from time.h/ctime should not be used.

Rule 21.10

V2527

A switch-expression should not have Boolean type. Consider using of 'if-else' construct.

Rule 16.7

V2528

The comma operator should not be used.

Rule 12.3

V2529

Any label should be declared in the same block as 'goto' statement or in any block enclosing it.

Rule 15.3

V2530

Any loop should be terminated with no more than one 'break' or 'goto' statement.

Rule 15.4

V2531

Expression of essential type 'foo' should not be explicitly cast to essential type 'bar'.

Rule 10.5

V2532

String literal should not be assigned to object unless it has type of pointer to const-qualified char.

Rule 7.4

V2534

The loop counter should not have floating-point type.

Rule 14.1

V2535

Unreachable code should not be present in the project.

Rule 2.1

V2536

Function should not contain labels not used by any 'goto' statements.

Rule 2.6

V2537

Functions should not have unused parameters.

Rule 2.7

V2538

The value of uninitialized variable should not be used.

Rule 9.1

V2540

Arrays should not be partially initialized.

Rule 9.3

V2541

Function should not be declared implicitly.

Rule 17.3

V2542

Function with a non-void return type should return a value from all exit paths.

Rule 17.4

V2543

Value of the essential character type should be used appropriately in the addition/subtraction operations.

Rule 10.2

V2544

The values used in expressions should have appropriate essential types.

Rule 10.1

V2545

Conversion between pointers of different object types should not be performed.

Rule 11.3

V2546

Expression resulting from the macro expansion should be surrounded by parentheses.

Rule 20.7

V2547

The return value of non-void function should be used.

Rule 17.7

V2548

The address of an object with local scope should not be passed out of its scope.

Rule 18.6

V2549

Pointer to FILE should not be dereferenced.

Rule 22.5

V2554

Expression containing increment (++) or decrement (--) should not have other side effects.

Rule 13.3

V2555

Incorrect shifting expression.

Rule 12.2

V2556

Use of a pointer to FILE when the associated stream has already been closed.

Rule 22.6

V2557

Operand of sizeof() operator should not have other side effects.

Rule 13.6

V2561

The result of an assignment expression should not be used.

Rule 13.4

V2562

Expressions with pointer type should not be used in the '+', '-', '+=' and '-=' operations.

Rule 18.4

V2565

A function should not call itself either directly or indirectly.

Rule 17.2

V2566

Constant expression evaluation should not result in an unsigned integer wrap-around.

Rule 12.4

V2567

Cast should not remove 'const' / 'volatile' qualification from the type that is pointed to by a pointer or a reference.

Rule 11.8

V2568

Both operands of an operator should be of the same type category.

Rule 10.4

V2571

Conversions between pointers to objects and integer types should not be performed.

Rule 11.4

V2571

Conversions between pointers to objects and integer types should not be performed.

Rule 11.5

V2572

Value of the expression should not be converted to the different essential type or the narrower essential type.

Rule 10.3

V2573

Identifiers that start with '__' or '_[A-Z]' are reserved.

Rule 21.1

V2573

Identifiers that start with '__' or '_[A-Z]' are reserved.

Rule 21.2

V2577

The function argument corresponding to a parameter declared to have an array type should have an appropriate number of elements.

Rule 17.5

V2579

Macro should not be defined with the same name as a keyword.

Rule 20.4

V2580

The 'restrict' specifier should not be used.

Rule 8.14

V2581

Single-line comments should not end with a continuation token.

Rule 3.2

V2582

Block of memory should only be freed if it was allocated by a Standard Library function.

Rule 22.2

V2583

Line whose first token is '#' should be a valid preprocessing directive.

Rule 20.13

V2584

Expression used in condition should have essential Boolean type.

Rule 14.4

V2585

Casts between a void pointer and an arithmetic type should not be performed.

Rule 11.6

V2586

Flexible array members should not be declared.

Rule 18.7

V2587

The '//' and '/*' character sequences should not appear within comments.

Rule 3.1

V2588

All memory or resources allocated dynamically should be explicitly released.

Rule 22.1

V2589

Casts between a pointer and a non-integer arithmetic type should not be performed.

Rule 11.7

V2590

Conversions should not be performed between pointer to function and any other type.

Rule 11.1

V2591

Bit fields should only be declared with explicitly signed or unsigned integer type

Rule 6.1

V2592

An identifier declared in an inner scope should not hide an identifier in an outer scope.

Rule 5.3

V2593

Single-bit bit fields should not be declared as signed type.

Rule 6.2

V2594

Controlling expressions should not be invariant.

Rule 14.3

V2595

Array size should be specified explicitly when array declaration uses designated initialization.

Rule 9.5

V2596

The value of a composite expression should not be assigned to an object with wider essential type.

Rule 10.6

V2598

Variable length array types are not allowed.

Rule 18.8

V2599

The standard signal handling functions should not be used.

Rule 21.5

V2600

The standard input/output functions should not be used.

Rule 21.6

V2601

Functions should be declared in prototype form with named parameters.

Rule 8.2

V2602

Octal and hexadecimal escape sequences should be terminated.

Rule 4.1

V2603

The 'static' keyword shall not be used between [] in the declaration of an array parameter.

Rule 17.6

V2604

Features from <stdarg.h> should not be used.

Rule 17.1

V2605

Features from <tgmath.h> should not be used.

Rule 21.11

V2606

There should be no attempt to write to a stream that has been opened for reading.

Rule 22.4

V2607

Inline functions should be declared with the static storage class.

Rule 8.10

V2608

The 'static' storage class specifier should be used in all declarations of object and functions that have internal linkage.

Rule 8.8

V2609

There should be no occurrence of undefined or critical unspecified behaviour.

Rule 1.3

V2610

The ', " or \ characters and the /* or // character sequences should not occur in a header file name.

Rule 20.2

V2611

Casts between a pointer to an incomplete type and any other type shouldn't be performed.

Rule 11.2

V2612

Array element should not be initialized more than once.

Rule 9.4

V2613

Operand that is a composite expression has more narrow essential type than the other operand.

Rule 10.7

V2614

External identifiers should be distinct.

Rule 5.1

V2615

A compatible declaration should be visible when an object or function with external linkage is defined.

Rule 8.4

V2616

All conditional inclusion preprocessor directives should reside in the same file as the conditional inclusion directive to which they are related.

Rule 20.4

V2617

Object should not be assigned or copied to an overlapping object.

Rule 19.1

V2618

Identifiers declared in the same scope and name space should be distinct.

Rule 5.2

V2619

Typedef names should be unique across all name spaces.

Rule 5.6

V2620

Value of a composite expression should not be cast to a different essential type category or a wider essential type.

Rule 10.8

V2621

Tag names should be unique across all name spaces.

Rule 5.7

V2622

External object or function should be declared once in one and only one file.

Rule 8.5

V2623

Macro identifiers should be distinct.

Rule 5.4

V2624

The initializer for an aggregate or union should be enclosed in braces.

Rule 9.2

V2625

Identifiers that define objects or functions with external linkage shall be unique.

Rule 5.8

V2626

The 'sizeof' operator should not have an operand which is a function parameter declared as 'array of type'.

Rule 12.5

V2627

Function type should not be type qualified.

Rule 17.13

V2628

The pointer arguments to the Standard Library functions memcpy, memmove and memcmp should be pointers to qualified or unqualified versions of compatible types.

Rule 21.15

V2629

Pointer arguments to the 'memcmp' function should point to an appropriate type.

Rule 21.16

V2630

Bit field should not be declared as a member of a union.

Rule 6.3

V2631

Pointers to variably-modified array types should not be used.

Rule 18.10

V2632

Object with temporary lifetime should not undergo array-to-pointer conversion.

Rule 18.9

V2633

Identifiers should be distinct from macro names.

Rule 5.5

V2634

Features from <fenv.h> should not be used.

Rule 21.12

V2635

The function with the 'system' name should not be used.

Rule 21.21

V2636

The functions with the 'rand' and 'srand' name of <stdlib.h> should not be used.

Rule 21.24

V2637

A 'noreturn' function should have 'void' return type.

Rule 17.10

V2638

Generic association should list an appropriate type.

Rule 23.4

V2639

Default association should appear as either the first or the last association of a generic selection.

Rule 23.8

V2640

Thread objects, thread synchronization objects and thread-specific storage pointers should have appropriate storage duration.

Rule 22.13

V2641

Types should be explicitly specified.

Rule 8.1

V2642

The '_Atomic' specifier should not be applied to the incomplete type 'void'.

Rule 11.10

V2643

All memory synchronization operation should be executed in sequentially consistent order.

Rule 21.25

V2644

Controlling expression of generic selection must not have side effects.

Rule 23.2

V2645

The language features specified in Annex K should not be used.

Rule 1.4

V2646

All arguments of any multi-argument type-generic macros from <tgmath.h> should have the same type.

Rule 21.23

V2647

Structure and union members of atomic objects should not be directly accessed.

Rule 12.6

V2648

Null pointer constant must be derived by expansion of the NULL macro provided by the implementation.

Rule 11.9

V2649

All arguments of any type-generic macros from <tgmath.h> should have an appropriate essential type.

Rule 21.22

V2650

Controlling expression of generic selection should have essential type that matches its standard type

Rule 23.6

V2651

Initializer using chained designators should not contain initializers without designators.

Rule 9.6

MISRA C++ 2008

Error Code

Error Description

Mapping

V2501

Octal constants should not be used.

Rule 2-13-2

V2504

Size of an array is not specified.

Rule 3-1-3

V2505

The 'goto' statement shouldn't jump to a label declared earlier.

Rule 6-6-2

V2506

A function should have a single point of exit at the end.

Rule 6-6-5

V2507

The body of a loop\conditional statement should be enclosed in braces.

Rule 6-3-1

V2507

The body of a loop\conditional statement should be enclosed in braces.

Rule 6-4-1

V2508

The function with the 'atof/atoi/atol/atoll' name should not be used.

Rule 18-0-2

V2509

The function with the 'abort/exit/getenv/system' name should not be used.

Rule 18-0-3

V2511

Memory allocation and deallocation functions should not be used.

Rule 18-4-1

V2512

The macro with the 'setjmp' name and the function with the 'longjmp' name should not be used.

Rule 17-0-5

V2513

Unbounded functions performing string operations should not be used.

Rule 18-0-5

V2514

Unions should not be used.

Rule 9-5-1

V2515

Declaration should contain no more than two levels of pointer nesting.

Rule 5-0-19

V2516

The 'if' ... 'else if' construct should be terminated with an 'else' statement.

Rule 6-4-2

V2517

Literal suffixes should not contain lowercase characters.

Rule 2-13-4

V2520

Every switch-clause should be terminated by an unconditional 'break' or 'throw' statement.

Rule 6-4-5

V2521

Only the first member of enumerator list should be explicitly initialized, unless all members are explicitly initialized.

Rule 8-5-3

V2522

The 'switch' statement should have 'default' as the last label.

Rule 6-4-6

V2523

All integer constants of unsigned type should have 'u' or 'U' suffix.

Rule 2-13-3

V2524

A switch-label should only appear at the top level of the compound statement forming the body of a 'switch' statement.

Rule 6-4-4

V2525

Every 'switch' statement should contain non-empty switch-clauses.

Rule 6-4-8

V2526

The functions from time.h/ctime should not be used.

Rule 18-0-4

V2527

A switch-expression should not have Boolean type. Consider using of 'if-else' construct.

Rule 6-4-7

V2528

The comma operator should not be used.

Rule 5-18-1

V2529

Any label should be declared in the same block as 'goto' statement or in any block enclosing it.

Rule 6-6-1

V2530

Any loop should be terminated with no more than one 'break' or 'goto' statement.

Rule 6-6-4

V2533

C-style and functional notation casts should not be performed.

Rule 5-2-4

V2534

The loop counter should not have floating-point type.

Rule 6-5-1

V2535

Unreachable code should not be present in the project.

Rule 0-1-1

V2537

Functions should not have unused parameters.

Rule 0-1-11

V2538

The value of uninitialized variable should not be used.

Rule 8-5-1

V2539

Class destructor should not exit with an exception.

Rule 15-5-1

V2542

Function with a non-void return type should return a value from all exit paths.

Rule 8-4-3

V2546

Expression resulting from the macro expansion should be surrounded by parentheses.

Rule 16-0-6

V2547

The return value of non-void function should be used.

Rule 0-1-7

V2548

The address of an object with local scope should not be passed out of its scope.

Rule 7-5-2

V2550

Floating-point values should not be tested for equality or inequality.

Rule 6-2-2

V2551

Variable should be declared in a scope that minimizes its visibility.

Rule 3-4-1

V2552

Expressions with enum underlying type should have values corresponding to the enumerators of the enumeration.

Rule 7-2-1

V2553

Unary minus operator should not be applied to an expression of the unsigned type.

Rule 5-3-2

V2554

Expression containing increment (++) or decrement (--) should not have other side effects.

Rule 5-2-10

V2555

Incorrect shifting expression.

Rule 5-8-1

V2557

Operand of sizeof() operator should not have other side effects.

Rule 5-3-4

V2558

A pointer/reference parameter in a function should be declared as pointer/reference to const if the corresponding object was not modified.

Rule 7-1-2

V2559

Subtraction, >, >=, <, <= should be applied only to pointers that address elements of the same array.

Rule 5-0-17

V2559

Subtraction, >, >=, <, <= should be applied only to pointers that address elements of the same array.

Rule 5-0-18

V2560

There should be no user-defined variadic functions.

Rule 8-4-1

V2561

The result of an assignment expression should not be used.

Rule 6-2-1

V2562

Expressions with pointer type should not be used in the '+', '-', '+=' and '-=' operations.

Rule 5-0-15

V2563

Array indexing should be the only form of pointer arithmetic and it should be applied only to objects defined as an array type.

Rule 5-0-15

V2564

There should be no implicit integral-floating conversion.

Rule 5-0-5

V2565

A function should not call itself either directly or indirectly.

Rule 7-5-4

V2566

Constant expression evaluation should not result in an unsigned integer wrap-around.

Rule 5-19-1

V2567

Cast should not remove 'const' / 'volatile' qualification from the type that is pointed to by a pointer or a reference.

Rule 5-2-5

V2569

The 'operator &&', 'operator ||', 'operator ,' and the unary 'operator &' should not be overloaded.

Rule 5-2-11

V2569

The 'operator &&', 'operator ||', 'operator ,' and the unary 'operator &' should not be overloaded.

Rule 5-3-3

V2570

Operands of the logical '&&' or the '||' operators, the '!' operator should have 'bool' type.

Rule 5-3-1

V2571

Conversions between pointers to objects and integer types should not be performed.

Rule 5-2-8

V2571

Conversions between pointers to objects and integer types should not be performed.

Rule 5-2-9

V2573

Identifiers that start with '__' or '_[A-Z]' are reserved.

Rule 17-0-1

V2574

Functions should not be declared at block scope.

Rule 3-1-2

V2575

The global namespace should only contain 'main', namespace declarations and 'extern "C"' declarations.

Rule 7-3-1

V2576

The identifier 'main' should not be used for a function other than the global function 'main'.

Rule 7-3-2

V2578

An identifier with array type passed as a function argument should not decay to a pointer.

Rule 5-2-12

V2597

Cast should not convert pointer to function to any other pointer type.

Rule 5-2-6

V2599

The standard signal handling functions should not be used.

Rule 18-7-1

V2600

The standard input/output functions should not be used.

Rule 27-0-1

V2608

The 'static' storage class specifier should be used in all declarations of object and functions that have internal linkage.

Rule 3-3-2

V2616

All conditional inclusion preprocessor directives should reside in the same file as the conditional inclusion directive to which they are related.

Rule 16-1-2