http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47723
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-02-14 16:46:28 UTC --- the code can be reduced to struct S { }; int main() { S* p = new S::S(); } which is rejected too. The Trinity code needs to be fixed as suggested above, doing that will work with all versions of GCC (and other compilers)