Hello,

Here's a little one-off patch that fixes
https://llvm.org/bugs/show_bug.cgi?id=19986 for me, by allowing a few
more things inside [] when trying to match a lambda capture section.

I hope someone can help it find its way into the main repo.

Cheers,
Jacek
Index: lib/Format/UnwrappedLineParser.cpp
===================================================================
--- lib/Format/UnwrappedLineParser.cpp  (revision 263181)
+++ lib/Format/UnwrappedLineParser.cpp  (working copy)
@@ -1080,8 +1080,25 @@
     if (!FormatTok->isOneOf(tok::identifier, tok::kw_this))
       return false;
     nextToken();
-    if (FormatTok->is(tok::ellipsis))
+    if (FormatTok->is(tok::equal)) {
       nextToken();
+      int parens = 0;
+      while (!eof()) {
+        if (FormatTok->isOneOf(tok::l_paren, tok::l_square)) {
+          ++parens;
+        } else if (parens && FormatTok->isOneOf(tok::r_paren, tok::r_square)) {
+          --parens;
+        } else if (FormatTok->isOneOf(tok::comma, tok::r_square)) {
+          break;
+        } else if (!FormatTok->isOneOf(tok::identifier, tok::coloncolon)) {
+          return false;
+        }
+
+        nextToken();
+      }
+    } else if (FormatTok->is(tok::ellipsis)) {
+      nextToken();
+    }
     if (FormatTok->is(tok::comma)) {
       nextToken();
     } else if (FormatTok->is(tok::r_square)) {
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to