HI,
I encountered a case with below codes:
int data_0;
int motion_test1(int data, int v)
{
int i;
int t, u;
int x;
if (data)
i = data_0 + x;
else {
v = 2;
i = 5;
}
t = data_0 + x;
u = i;
return v * t * u;
}
The dump file for 023t.ccp1 is like:
motion_test1 (int data, int v)
{
int x;
int t;
int D.4723;
int D.4722;
int data_0.0;
<bb 2>:
if (data_3(D) != 0)
goto <bb 4>;
else
goto <bb 3>;
<bb 3>:
v_8 = 2;
<bb 4>:
# v_1 = PHI <v_7(D)(2), 2(3)>
data_0.0_10 = data_0;
t_11 = data_0.0_10 + x_5(D);
D.4723_13 = v_1 * t_11;
D.4722_14 = D.4723_13 * 5;
return D.4722_14;
}
Seems the result is computed as "v*(data_0+x)*5", which is wrong.
The question is whether it is a bug or intended behavior due to
unintialized "x"?
Any tips is welcome. Thanks.
--
Best Regards.