diff options
-rw-r--r-- | lib/Parse/ParseTemplate.cpp | 2 | ||||
-rw-r--r-- | test/CXX/temp/temp.param/p15-cxx0x.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/Parse/ParseTemplate.cpp b/lib/Parse/ParseTemplate.cpp index aeafba8990..93f5c9ba43 100644 --- a/lib/Parse/ParseTemplate.cpp +++ b/lib/Parse/ParseTemplate.cpp @@ -677,7 +677,7 @@ Parser::ParseTemplateIdAfterTemplateName(TemplateTy Template, bool Invalid = false; { GreaterThanIsOperatorScope G(GreaterThanIsOperator, false); - if (Tok.isNot(tok::greater)) + if (Tok.isNot(tok::greater) && Tok.isNot(tok::greatergreater)) Invalid = ParseTemplateArgumentList(TemplateArgs); if (Invalid) { diff --git a/test/CXX/temp/temp.param/p15-cxx0x.cpp b/test/CXX/temp/temp.param/p15-cxx0x.cpp index 0ce669979c..f4be5b960b 100644 --- a/test/CXX/temp/temp.param/p15-cxx0x.cpp +++ b/test/CXX/temp/temp.param/p15-cxx0x.cpp @@ -20,3 +20,5 @@ void f(const X<int> x) { X<X<int>> *x1; } +template<typename T = void> struct X1 { }; +X1<X1<>> x1a; |