>> I got no diagnostic when compiling it with "-Wall >> -O2" switches. Is it expected ? > > Yes. -O0 implies -fno-strict-aliasing. I misread, you asked for -O2. The compiler cannot always detect these situations -- if it could, it could simply always do what the user expects! You can try -Wstrict-aliasing=N for different N; levels 1 and 2 probably work. The N is a tradeoff between false negatives and false positives; see the manual for what they do exactly. Segher