For the below test:
int main() {
volatile int foo = 4;
int read = foo;
int read1 = foo;
int result = 0;
if (read == 4) {
result = read1 + 2;
} else {
result = read1 - 2;
}
return result;
}Debug location information for 'result' is wrong with -O2.
When in the debugger, on the line "if (read == 4)", the value of "result"
is reported as '2', where it should be zero, as described by: