This C++ test case works with gcc 4.1.1. With gcc 4.2 and with mainline it gets an inexplicable error. typedef void v; typedef v (*pf)(v); foo.cc:2: error: ‘’ has incomplete type foo.cc:2: error: invalid use of ‘v’ -- Summary: C++ error on valid code: has incomplete type Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ian at airs dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33101