Kevin P. Fleming wrote: > Nikos Chantziaras wrote: > >> Thanks for the tip. Looking at the generated assembly files, I finally >> solved the "mystery": GCC uses SSE/SSE2 instructions to fetch both >> variables in one CPU instruction. It's faster but circumvents >> short-circuit "if" rules and Valgrind prints an error. > > Then that seems very broken; you should not have to have initialized a > variable to avoid this issue, since short-circuit evaluation is defined > in the C standard. Yes, but it's covered by the "as if" rule: if no conforming program could ever notice the difference, an optimization is allowed. Andrew.