Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Tip

The table below can be re-ordered, by clicking column headers.

...

Include Page
c:PVS-Studio_V
c:PVS-Studio_V

Checker

Guideline

V502 EXP00-C. Use parentheses for precedence of operation
V503 EXP08-C. Ensure pointer arithmetic is used correctly
V505 MEM05-C. Avoid large stack allocations
V506 DCL30-C. Declare objects with appropriate storage durations
V507 DCL30-C. Declare objects with appropriate storage durations
V510 FIO47-C. Use valid format strings
V511 ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V512 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V512 ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V513 MSC24-C. Do not use deprecated or obsolescent functions
V514 ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V516 EXP16-C. Do not compare function pointers to constant values
V517 MSC01-C. Strive for logical completeness
V518 STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
V519 MSC13-C. Detect and remove unused values
V520 EXP08-C. Ensure pointer arithmetic is used correctly
V521 EXP10-C. Do not depend on the order of evaluation of subexpressions or the order in which side effects take place
V522 EXP34-C. Do not dereference null pointers
V527 INT36-C. Converting a pointer to integer or integer to pointer
V528 INT36-C. Converting a pointer to integer or integer to pointer
V529 EXP15-C. Do not place a semicolon on the same line as an if, for, or while statement
V530 EXP12-C. Do not ignore values returned by functions
V531 MEM35-C. Allocate sufficient memory for an object
V532 EXP30-C. Do not depend on the order of evaluation for side effects
V533 MSC01-C. Strive for logical completeness
V534 MSC01-C. Strive for logical completeness
V535 MSC01-C. Strive for logical completeness
V536 DCL18-C. Do not begin integer constants with 0 when specifying a decimal value
V540 EXP37-C. Call functions with the correct number and type of arguments
V541 EXP37-C. Call functions with the correct number and type of arguments
V542 INT36-C. Converting a pointer to integer or integer to pointer
V548 EXP36-C. Do not cast pointers into more strictly aligned pointer types
V549 EXP37-C. Call functions with the correct number and type of arguments
V550 FLP02-C. Avoid using floating-point numbers when precise computation is needed
V551 MSC12-C. Detect and remove code that has no effect or is never executed
V555 INT02-C. Understand integer conversion rules
V556 MSC01-C. Strive for logical completeness
V557 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V558 DCL30-C. Declare objects with appropriate storage durations
V559 EXP45-C. Do not perform assignments in selection statements
V561 DCL01-C. Do not reuse variable names in subscopes
V562 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V563 EXP19-C. Use braces for the body of an if, for, or while statement
V564 EXP46-C. Do not use a bitwise operator with a Boolean-like operand
V566 INT36-C. Converting a pointer to integer or integer to pointer
V567 EXP30-C. Do not depend on the order of evaluation for side effects
V568 EXP44-C. Do not rely on side effects in operands to sizeof, _Alignof, or _Generic
V568 ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V569 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V573 EXP33-C. Do not read uninitialized memory
V574 EXP08-C. Ensure pointer arithmetic is used correctly
V575 EXP37-C. Call functions with the correct number and type of arguments
V576 FIO47-C. Use valid format strings
V576 DCL11-C. Understand the type issues associated with variadic functions
V577 MSC01-C. Strive for logical completeness
V579 ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V580 EXP39-C. Do not access a variable through a pointer of an incompatible type
V582 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V585 MEM34-C. Only free memory allocated dynamically
V586 MEM30-C. Do not access freed memory
V590 MSC01-C. Strive for logical completeness
V593 EXP00-C. Use parentheses for precedence of operation
V594 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V595 EXP34-C. Do not dereference null pointers
V596 MSC13-C. Detect and remove unused values
V597 MSC06-C. Beware of compiler optimizations
V600 EXP08-C. Ensure pointer arithmetic is used correctly
V601 INT36-C. Converting a pointer to integer or integer to pointer
V603 MSC13-C. Detect and remove unused values
V604 ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V605 INT02-C. Understand integer conversion rules
V606 MSC12-C. Detect and remove code that has no effect or is never executed
V609 INT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
V610 INT34-C. Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand
V612 MSC01-C. Strive for logical completeness
V613 EXP08-C. Ensure pointer arithmetic is used correctly
V614 EXP33-C. Do not read uninitialized memory
V615 FLP34-C. Ensure that floating-point conversions are within range of the new type
V618 FIO30-C. Exclude user input from format strings
V619 EXP08-C. Ensure pointer arithmetic is used correctly
V620 EXP08-C. Ensure pointer arithmetic is used correctly
V621 MSC21-C. Use robust loop termination conditions
V622 DCL41-C. Do not declare variables inside a switch statement before the first case label
V623 DCL30-C. Declare objects with appropriate storage durations
V628 EXP19-C. Use braces for the body of an if, for, or while statement
V629 INT00-C. Understand the data model used by your implementation(s)
V632 EXP37-C. Call functions with the correct number and type of arguments
V633 EXP45-C. Do not perform assignments in selection statements
V634 EXP00-C. Use parentheses for precedence of operation
V635 MEM35-C. Allocate sufficient memory for an object
V636 FLP06-C. Convert integers to floating point for floating-point operations
V639 EXP37-C. Call functions with the correct number and type of arguments
V640 EXP19-C. Use braces for the body of an if, for, or while statement
V641 EXP36-C. Do not cast pointers into more strictly aligned pointer types
V642 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V643 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V643 EXP08-C. Ensure pointer arithmetic is used correctly
V645 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V645 STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
V647 INT36-C. Converting a pointer to integer or integer to pointer
V648 EXP00-C. Use parentheses for precedence of operation
V649 MSC12-C. Detect and remove code that has no effect or is never executed
V650 EXP08-C. Ensure pointer arithmetic is used correctly
V658 INT30-C. Ensure that unsigned integer operations do not wrap
V664 EXP34-C. Do not dereference null pointers
V665 MSC00-C. Compile cleanly at high warning levels
V666 EXP37-C. Call functions with the correct number and type of arguments
V670 EXP33-C. Do not read uninitialized memory
V671 EXP37-C. Call functions with the correct number and type of arguments
V673 INT02-C. Understand integer conversion rules
V674 FLP36-C. Preserve precision when converting integral values to floating-point type
V675 STR30-C. Do not attempt to modify string literals
V675 ENV30-C. Do not modify the object referenced by the return value of certain functions
V676 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V677 DCL37-C. Do not declare or define a reserved identifier
V679 EXP33-C. Do not read uninitialized memory
V681 EXP10-C. Do not depend on the order of evaluation of subexpressions or the order in which side effects take place
V687 EXP08-C. Ensure pointer arithmetic is used correctly
V688 DCL01-C. Do not reuse variable names in subscopes
V692 STR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a string
V694 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V695 MSC01-C. Strive for logical completeness
V696 MSC01-C. Strive for logical completeness
V697 ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V698 EXP12-C. Do not ignore values returned by functions
V699 EXP45-C. Do not perform assignments in selection statements
V701 WIN30-C. Properly pair allocation and deallocation functions
V703 DCL01-C. Do not reuse variable names in subscopes
V705 EXP19-C. Use braces for the body of an if, for, or while statement
V709 EXP13-C. Treat relational and equality operators as if they were nonassociative
V711 DCL01-C. Do not reuse variable names in subscopes
V712 MSC06-C. Beware of compiler optimizations
V713 EXP34-C. Do not dereference null pointers
V714 MSC13-C. Detect and remove unused values
V715 EXP15-C. Do not place a semicolon on the same line as an if, for, or while statement
V716 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V719 MSC01-C. Strive for logical completeness
V721 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V722 MSC01-C. Strive for logical completeness
V723 DCL30-C. Declare objects with appropriate storage durations
V724 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V726 MEM34-C. Only free memory allocated dynamically
V727 STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
V732 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V733 PRE01-C. Use parentheses within macros around parameter names
V736 ARR36-C. Do not subtract or compare two pointers that do not refer to the same array
V738 DCL30-C. Declare objects with appropriate storage durations
V739 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V742 EXP37-C. Call functions with the correct number and type of arguments
V743 EXP37-C. Call functions with the correct number and type of arguments
V744 MSC13-C. Detect and remove unused values
V747 MSC01-C. Strive for logical completeness
V751 MSC13-C. Detect and remove unused values
V755 STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
V757 EXP12-C. Do not ignore values returned by functions
V763 MSC13-C. Detect and remove unused values
V764 EXP37-C. Call functions with the correct number and type of arguments
V769 EXP08-C. Ensure pointer arithmetic is used correctly
V772 MSC15-C. Do not depend on undefined behavior
V773 MEM31-C. Free dynamically allocated memory when no longer needed
V774 MEM30-C. Do not access freed memory
V779 MSC12-C. Detect and remove code that has no effect or is never executed
V781 MEM35-C. Allocate sufficient memory for an object
V781 API00-C. Functions should validate their parameters
V782 ARR36-C. Do not subtract or compare two pointers that do not refer to the same array
V784 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V785 MSC01-C. Strive for logical completeness
V786 MSC01-C. Strive for logical completeness
V793 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V796 MSC17-C. Finish every set of statements associated with a case label with a break statement
V797 EXP12-C. Do not ignore values returned by functions
V798 ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer
V821 DCL19-C. Minimize the scope of variables and functions
V1001 MSC13-C. Detect and remove unused values
V1004 EXP34-C. Do not dereference null pointers
V1004 EXP37-C. Call functions with the correct number and type of arguments
V1004 EXP08-C. Ensure pointer arithmetic is used correctly
V1012 INT30-C. Ensure that unsigned integer operations do not wrap
V1014 FLP37-C. Do not use object representations to compare floating-point values
V1015 EXP46-C. Do not use a bitwise operator with a Boolean-like operand
V1019 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V1024 FIO40-C. Reset strings on fgets() or fgetws() failure
V1026 INT32-C. Ensure that operations on signed integers do not result in overflow
V1028 INT30-C. Ensure that unsigned integer operations do not wrap
V1029 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V1031 DCL31-C. Declare identifiers before using them
V1032 EXP36-C. Do not cast pointers into more strictly aligned pointer types
V1034 FLP30-C. Do not use floating-point variables as loop counters
V1035 FIO44-C. Only use values for fsetpos() that are returned from fgetpos()
V1046 INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V1050 EXP33-C. Do not read uninitialized memory
V1058 EXP16-C. Do not compare function pointers to constant values
V1070 INT32-C. Ensure that operations on signed integers do not result in overflow
V1072 MEM03-C. Clear sensitive information stored in reusable resources
V1081 INT32-C. Ensure that operations on signed integers do not result in overflow
V1083 INT32-C. Ensure that operations on signed integers do not result in overflow
V1085 INT32-C. Ensure that operations on signed integers do not result in overflow
V1086 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V1086 ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V1088 CON43-C. Do not allow data races in multithreaded code
V1091 INT36-C. Converting a pointer to integer or integer to pointer
V2001 MSC24-C. Do not use deprecated or obsolescent functions
V2002 MSC24-C. Do not use deprecated or obsolescent functions
V2003 FLP34-C. Ensure that floating-point conversions are within range of the new type
V2004 FLP34-C. Ensure that floating-point conversions are within range of the new type
V2015 DCL01-C. Do not reuse variable names in subscopes
V5003 MSC13-C. Detect and remove unused values
V5004 INT00-C. Understand the data model used by your implementation(s)
V5005 INT30-C. Ensure that unsigned integer operations do not wrap
V5006 INT02-C. Understand integer conversion rules
V5010 INT32-C. Ensure that operations on signed integers do not result in overflow
V5011 INT30-C. Ensure that unsigned integer operations do not wrap