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: 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

CERT C: Rec. EXP08-C


Checks for:

  • Pointer points outside array after arithmetic on pointer operand
  • Subtraction between pointers to different arrays
  • Incorrect pointer scaling

Rec. fully supported.

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

...