JSAT
JSAT copied to clipboard
Fix nested conditions
Hi! This code fragment works not the way it is formatted.
if(label[i] == -1)
if(I0[i] && (i_low == -1 || fcache[i] > fcache[i_low]) )
{
i_low = i;
b_low = fcache[i];
}
else
if(I0[i] && (i_low == -1 || fcache[i] > fcache[i_up]) )
{
i_up = i;
b_up = fcache[i];
}
is actually this (else sticks to the previous if):
if(label[i] == -1)
if(I0[i] && (i_low == -1 || fcache[i] > fcache[i_low]) )
{
i_low = i;
b_low = fcache[i];
}
else if(I0[i] && (i_low == -1 || fcache[i] > fcache[i_up]) )
{
i_up = i;
b_up = fcache[i];
}
I think this is a bug. (I found this with the data-flow analyzer I'm working on. It warns that i_low == -1 is always false in the second condition.)