------- 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

Reply via email to