MISRAC2004-1.2_b
Synopsis
(Required) No reliance shall be placed on undefined or unspecified behavior. Using uninitialized values might cause unexpected results or unpredictable behavior, particularly in the case of pointer fields.
Enabled by default
Yes
Severity/Certainty
High/Medium

Full description
On all execution paths, one or more fields are read from a struct before they are initialized. This check is identical to MISRAC2012-Rule-9.1_d, CERT-EXP33-C_e.
Coding standards
- CERT EXP33-C
Do not reference uninitialized memory
- CWE 457
Use of Uninitialized Variable
- MISRA C:2004 1.2
(Required) No reliance shall be placed on undefined or unspecified behavior.
- MISRA C:2012 Rule-9.1
(Mandatory) The value of an object with automatic storage duration shall not be read before it has been set
Code examples
The following code example fails the check and will give a warning:
struct st {
int x;
int y;
};
void example(void) {
int a;
struct st str;
a = str.x;
}
The following code example passes the check and will not give a warning about this issue:
struct st {
int x;
int y;
};
void example(int i) {
int a;
struct st str;
str.x = i;
a = str.x;
}