------- Comment #6 from rguenth at gcc dot gnu dot org 2009-03-14 09:32 ------- You can work around it in a gcc specific way by doing
typedef int my_aliased_int __attribute__((may_alias)); and using my_aliased_int *data = (int *) v; my_aliased_int *N; This forces TBAA not to be applied to references through data and N. Otherwise it is hard to do without knowing the original object types (basically you would need to make sure to do the memory accesses using the original type). Or you can do all the memory accesses via memcpy like memcpy (&t0, &N[0], 4); (which the compiler will optimize to the may_alias variant). That would be even portable to non-GCC compilers. Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39460