I have a question about the following C code:
void my_function()
{
int i1;
int j1;
// Do something...
if (check_something())
{
The compiler is free to do whatever it wants, as long as the semantics of the language are reserved. In other words, i2
and j2
can be bound to memory places before the execution reaches the entry point of their block, and can be unbounded any time as long as that doesn't affect the semantics of your code.