Versions Compared

Key

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

...

Tool

Version

Checker

Description

Astrée
Include Page
Astrée_V
Astrée_V

Supported, but no explicit checker: Astrée reports potential runtime errors resulting from invalid pointer arithmetics.
CodeSonar
Include Page
CodeSonar_V
CodeSonar_V

LANG.STRUCT.PARITH

LANG.MEM.BO
LANG.MEM.BU
LANG.STRUCT.PBB
LANG.STRUCT.PPE
LANG.MEM.TBA
LANG.MEM.TO
LANG.MEM.TU

Pointer arithmetic

Buffer overrun
Buffer underrun
Pointer before beginning of object
Pointer past end of object
Tainted buffer access
Type overrun
Type underrun

Klocwork
Include Page
Klocwork_V
Klocwork_V
ABV.ITERATOR
ABV.GENERAL

LDRA tool suite
Include Page
LDRA_V
LDRA_V

45 D
53 D
54 D
438 S
576 S

Partially implemented

Parasoft C/C++test
Include Page
Parasoft_V
Parasoft_V

CERT_C-EXP08-a
CERT_C-EXP08-b


Pointer arithmetic should not be used
Avoid accessing arrays out of bounds

Parasoft Insure++

Runtime analysis
Polyspace Bug Finder

Include Page
Polyspace Bug Finder_V
Polyspace Bug Finder_V

Incorrect pointer scaling

Pointer access out of bounds

Invalid use of standard library memory routine

MISRA C:2012 Rule 18.1

MISRA C:2012 Rule 18.2

MISRA C:2012 Rule 18.3

Implicit scaling in pointer arithmetic might be ignored

Pointer dereferenced outside its bounds

Standard library memory function called with invalid arguments

A pointer resulting from arithmetic on a pointer operand shall address an element of the same array as that pointer operand

Subtraction between pointers shall only be applied to pointers that address elements of the same array

The relational operators >, >=, < and <= shall not be applied to objects of pointer type except where they point into the same object

PRQA QA-C
Include Page
PRQA QA-C_v
PRQA QA-C_v

0488, 2930, 2931, 2932, 2933, 2934

Partially implemented


PVS-Studio

Include Page
PVS-Studio_V
PVS-Studio_V

V503, V520, V574, V600, V613, V619, V620, V643, V650, V687, V769, V1004

...