https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71255
--- Comment #13 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
I'd like to point out that the test case
struct sockaddr;
struct sockaddr *f();
struct __attribute__((may_alias)) sockaddr {};
struct sockaddr *f()
{
return nullptr;
}
(from https://sourceware.org/bugzilla/show_bug.cgi?id=19622#c1)
no longer errors/ICEs and compiles fine with gcc6/trunk. It used to ICE since
r222419 and the ICE was fixed in r234768.
But we still warn on
__attribute__((may_alias)) struct S s;
struct S { int i; } s2;
w.c:1:35: warning: ignoring attributes applied to ‘struct S’ after definition
[-Wattributes]
__attribute__((may_alias)) struct S s;
^
So I suppose we still need the new pragma.