[Bug c/60819] dse1 removing not-dead insn (aliasing issue?)
rguenther at suse dot de
gcc-bugzilla@gcc.gnu.org
Fri Apr 11 12:31:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60819
--- Comment #6 from rguenther at suse dot de <rguenther at suse dot de> ---
On Fri, 11 Apr 2014, glisse at gcc dot gnu.org wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60819
>
> --- Comment #5 from Marc Glisse <glisse at gcc dot gnu.org> ---
> typedef int v2si __attribute__((vector_size (8),may_alias));
> typedef short v4hi __attribute__((vector_size (8),may_alias));
> int f (v2si __A, int __N)
> { return (*(v4hi*)&__A)[__N]; }
>
> also fails.
>
> Reading the documentation of may_alias, I have the impression that this example
> is doing exactly what may_alias is supposed to allow, no?
Not exactly - it's again the wrapping that will fail.
typedef int aint __attribute__((may_alias));
return ((aint*)&__A)[__N];
would make it valid.
More information about the Gcc-bugs
mailing list