Testcase: template<class T> class a {} class temp {}; a<temp> b; struct b { } gcc-4.6: clang-2.C:3:15: error: multiple types in one declaration clang-2.C:4:7: error: non-template type ‘a’ used as a template clang-2.C:4:10: error: invalid type in declaration before ‘;’ token clang-2.C:6:1: error: expected unqualified-id at end of input clang: t.cc:2:11: error: expected ';' after class class a {} ^ ; t.cc:6:2: error: expected ';' after struct } ^ ;
This has been fixed by the fix for PR 45331. We now say: /home/froydnj/src/x.C:2:10: error: expected ';' after class definition /home/froydnj/src/x.C:6:1: error: expected ';' after struct definition