------- Comment #2 from pinskia at gcc dot gnu dot org 2007-01-24 23:48 ------- First you are violating C aliasing rules here: u8 d[33] = {0}, *e = (u8 *)d; *((unsigned int *)a) = strlen(e);
And a couple other places. What options are you running this program with? if -O2, try -O2 -fno-strict-aliasing. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30581