...
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 |
| 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||||||||||||
| Side effect of expression ignored MISRA CERT C: 2012 Rule 13.6 | sizeof, _Alignof, or _Generic operates on expression with side effect The operand of the sizeof operator shall not contain any expression which has potential side effects | Checks for situations when side effects of specified expressions are ignored (rule fully covered) | ||||||||||||
PRQA QA-C | |||||||||||||||
Include Page | PRQA QA-C_v | PRQA QA-C_v | 3307 | Fully implemented | PVS-Studio |
| V568 | ||||||||
RuleChecker |
| alignof-side-effect | Partially Fully checked |
Related Vulnerabilities
...