[PATCH] D130460: [pseudo] Add recovery for declarations

Haojian Wu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 21 06:36:42 PDT 2022


hokein commandeered this revision.
hokein edited reviewers, added: sammccall; removed: hokein.
hokein added inline comments.


================
Comment at: clang-tools-extra/pseudo/lib/cxx/CXX.cpp:333
+  // Walk over tokens at the appropriate bracket nesting level.
+  for (const Token *T = &P.Tokens.tokens()[P.Begin].next(); T->Kind != tok::eof;
+       T = &T->next()) {
----------------
`P.Tokens.tokens()[P.Begin].next()` doesn't seem like correct, we should start with `P.Tokens.tokens()[P.Begin]`, otherwise we will ignore the first token, 

example:

```
namespace XXXX {
}
foo foo;
```


================
Comment at: clang-tools-extra/pseudo/lib/cxx/CXX.cpp:342
+               "How did we parse an unmatched closing bracket?!");
+        return P.Tokens.index(*T);
+      }
----------------
we should return `index() +1`


================
Comment at: clang-tools-extra/pseudo/lib/cxx/CXX.cpp:347
+          P.Tokens.index(*B) >= P.Cursor)
+        return P.Tokens.index(*B);
+      // Skip over opening/closing bracket pair.
----------------
the same, +1.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D130460/new/

https://reviews.llvm.org/D130460



More information about the cfe-commits mailing list