================
Comment at: lib/Parse/ParseDeclCXX.cpp:920-924
@@ -919,4 +919,7 @@
 
-    if (!Template)
+    if (!Template) {
+      SkipUntil(tok::greater, tok::greatergreater, /*StopAtSemi=*/true,
+                /*DontConsume=*/false);
       return true;
+    }
 
----------------
This recovery is not quite right.

    template<typename,typename> struct X {};
    struct A : Unknown<X<int,int>, X<int,int>> {
    };

will treat the second `X<int,int>` as a base class, not as more of the template 
arguments to `Unknown`. Also, what about `tok::greatergreatergreater`? :)


http://llvm-reviews.chandlerc.com/D924
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to