r214051 - Fix default argument comma disambiguation bug following the 'template' keyword.

Richard Smith richard-llvm at metafoo.co.uk
Sat Jul 26 22:38:12 PDT 2014


Author: rsmith
Date: Sun Jul 27 00:38:12 2014
New Revision: 214051

URL: http://llvm.org/viewvc/llvm-project?rev=214051&view=rev
Log:
Fix default argument comma disambiguation bug following the 'template' keyword.

Modified:
    cfe/trunk/lib/Parse/ParseCXXInlineMethods.cpp
    cfe/trunk/test/Parser/cxx-ambig-init-templ.cpp

Modified: cfe/trunk/lib/Parse/ParseCXXInlineMethods.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseCXXInlineMethods.cpp?rev=214051&r1=214050&r2=214051&view=diff
==============================================================================
--- cfe/trunk/lib/Parse/ParseCXXInlineMethods.cpp (original)
+++ cfe/trunk/lib/Parse/ParseCXXInlineMethods.cpp Sun Jul 27 00:38:12 2014
@@ -1014,6 +1014,7 @@ bool Parser::ConsumeAndStoreInitializer(
         Toks.push_back(Tok);
         ConsumeToken();
         if (Tok.is(tok::less)) {
+          ++AngleCount;
           ++KnownTemplateCount;
           Toks.push_back(Tok);
           ConsumeToken();

Modified: cfe/trunk/test/Parser/cxx-ambig-init-templ.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/cxx-ambig-init-templ.cpp?rev=214051&r1=214050&r2=214051&view=diff
==============================================================================
--- cfe/trunk/test/Parser/cxx-ambig-init-templ.cpp (original)
+++ cfe/trunk/test/Parser/cxx-ambig-init-templ.cpp Sun Jul 27 00:38:12 2014
@@ -169,3 +169,9 @@ namespace ElaboratedTypeSpecifiers {
     enum E {};
   };
 }
+
+namespace PR20459 {
+  template <typename EncTraits> struct A {
+     void foo(int = EncTraits::template TypeEnc<int, int>::val); // ok
+  };
+}





More information about the cfe-commits mailing list