https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99955
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Keywords| |diagnostic, wrong-code Ever confirmed|0 |1 CC| |jsm28 at gcc dot gnu.org Component|testsuite |c Last reconfirmed| |2021-04-07 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- It is typedef long long __m128i __attribute__((__may_alias__, __vector_size__(2 * sizeof (long long)))); so should be OK unless the FE somehow magically screws up. And it looks like it does!? The may-alias attribute isn't added to the built vector type (but vector type building is a bit iffy). It works when doing typedef long long __m128i __attribute__((__vector_size__(2 * sizeof (long long)), __may_alias__)); instead. Maybe we want to diagnose when the vector_size attribute isn't the first attribute? Maybe we want to handle all this gracefully anyway? Joseph? Meanwhile Alex, it's pre-approved to adjust the testcase to make __may_alias__ come last ...