...
Code Block | ||||
---|---|---|---|---|
| ||||
#include <stdio.h>
void func(void) {
int val = 0;
/* ... */
++val;
size_t align = _Alignof(int[val]);
printf("%zu, %d\n", align, val);
/* ... */
} |
...
Tool | Version | Checker | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Astrée |
| alignof-side-effect | Partially checked | Fully checked | |||||||||||||||
Axivion Bauhaus Suite |
| CertC-EXP44 | |||||||||||||||||
Clang |
| -Wunevaluated-expression | Can diagnose some instance of this rule, but not all (such as the _Alignof NCCE). | ||||||||||||||||
CodeSonar |
| LANG.STRUCT.SE.SIZEOF LANG.STRUCT.SE.CGEN | Side effects in sizeof Side Effects in C Generic Selection | ||||||||||||||||
Compass/ROSE | |||||||||||||||||||
Coverity |
| MISRA C 2004 Rule 12.3 | Partially implemented | ||||||||||||||||
| CC2.EXP06 | Fully implemented | |||||||||||||||||
Helix QAC |
| C3307 | |||||||||||||||||
Klocwork |
| MISRA.SIZEOF.SIDE_EFFECT | |||||||||||||||||
LDRA tool suite |
| 54 S, 653 S | Fully implemented | ||||||||||||||||
Parasoft C/C++test |
| MISRA2004-12_3_b, MISRA2004-12_3_c | CERT_C-EXP44-a | Object designated by a volatile lvalue should not be accessed in the operand of the sizeof operator | |||||||||||||||
PC-lint Plus |
| 9006 | Partially supported: reports use of sizeof with an expression that would have side effects | Fully implemented||||||||||||||||
R2018a | Side effect of expression ignored | sizeof, _Alignof, or _Generic operates on expression with side effect |
| Checks for situations when side effects of specified expressions are ignored (rule fully covered) | |||||||||||||||
PVS-Studio |
| PRQA QA-C | |||||||||||||||||
Include Page | PRQA QA-C_v | PRQA QA-C_v | 3307 | Fully implemented | PVS-Studio | 6.22 | V568 | ||||||||||||
RuleChecker |
| alignof-side-effect | Partially Fully checked |
Related Vulnerabilities
...