now, now, he's still in the phase where he's suspicious of the compiler. give it anothe six months
Why only 6 months? You should
always be suspicious of what a C compiler is doing.
The output can vary between compilers.
The output can vary between optimisation levels.
The output can vary between language standards.
The output can vary over time as the compiler becomes capable of more optimisations. That's up to and including
starting to remove blocks of your code because you didn't understand where the nasal dæmons lie.
And, of course, because you[1] don't understand all the interacting "features" of the C language as well as you thought you do.
[1] I am, of course, using "you" in the modern English parlance, to "mean a generic person" rather than one specific person. Shame that it is now regarded as archaic to avoid using "And, of course, because one doesn't understand all the... of one's code..."