http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55530
--- Comment #1 from Jaak Ristioja <jaak at ristioja dot ee> 2012-11-29 13:37:29 UTC --- Sorry, the minimal testcase should have been: struct __attribute__ ((visibility("internal"))) A {}; struct B { A * a; }; /* warning: 'B' declared with greater visibility than the type of its field 'B::a' [-Wattributes] */ struct C; struct D { C * c; }; /* No warning */ struct __attribute__ ((visibility("internal"))) C {};