...
Code Block | ||||
---|---|---|---|---|
| ||||
int buf[INTBUFSIZE];
int *buf_ptr = buf;
while (havedata() && buf_ptr < &buf[INTBUFSIZE]) {
*buf_ptr++ = parseint(getdata());
}
|
...
Tool | Version | Checker | Description | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Astrée |
| Supported, but no explicit checker: Astrée reports potential runtime errors resulting from invalid pointer arithmetics. | ||||||||||||||
CodeSonar |
| LANG.STRUCT.PARITH | Pointer arithmetic | |||||||||||||
Helix QAC |
| C0488, C2930, C2931, C2932, C2933 | ||||||||||||||
Klocwork |
| ABV.ITERATOR ABV.GENERAL ABV.GENERAL.MULTIDIMENSION | ||||||||||||||
LDRA tool suite |
| 45 D | Partially implemented | |||||||||||||
Parasoft C/C++test |
| CERT_C-EXP08-a | Pointer arithmetic should not be used | |||||||||||||
Parasoft Insure++ | Runtime analysis | |||||||||||||||
PC-lint Plus |
| 416 | Partially supported | |||||||||||||
Polyspace Bug Finder |
| Implicit scaling in pointer arithmetic might be ignored Pointer dereferenced outside its bounds Standard library memory function called with invalid arguments | PRQA QA-C | |||||||||||||
Include Page | PRQA QA-C_v | PRQA QA-C_v | 0488, 2930, 2931, 2932, 2933, 2934 | Checks for:
Rec. fully supported.Partially implemented | ||||||||||||
PVS-Studio |
| V503, V520, V574, V600, V613, V619, V620, V643, V650, V687, V769, V1004 |
How long is 4 yards plus 3 feet? It is obvious from elementary arithmetic that any answer involving 7 is wrong, as the student did not take the units into account. The right method is to convert both numbers to reflect the same units.
...