The enclosed demonstrates. define either SUPPRESS_BUG or SUPPRESS_BUG2 to show that either not using inheritance or using a template called typer instead of type will suppress the bug.
Created attachment 11136 [details] Preprocessed C++ source
Do you have a shorter testcase? It is hard to figure out if this is valid code (though it does look like it is).
I'm afraid I don't.
The test case compiles with today's trunk (7.0) as well all supported versions (all the way back to 4.9.3). Resolving as Fixed.
For the record, it seems to have first been fixed for GCC 4.5