...
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 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 |
| JSF-166{b,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 | PRQA QA-C | ||||||||||||||
Include Page | PRQA QA-C_v | PRQA QA-C_v | 3307 |
| Checks for situations when side effects of specified expressions are ignored (rule fully covered) | ||||||||||||
PVS-Studio |
| V568 | Fully implemented|||||||||||||||
RuleChecker |
| alignof-side-effect | Partially Fully checked |
Related Vulnerabilities
...