diff options
author | Sam McCall <sam.mccall@gmail.com> | 2020-07-09 00:13:54 +0200 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2020-07-09 10:20:18 +0200 |
commit | f36518637d7dfe5f8e619db1bd65dc90c92b5afa (patch) | |
tree | 1f398063fe1cf152a963c6c9967326a199396a8c /llvm/lib/Support/CommandLine.cpp | |
parent | e2b93185b84bd88264377f785465933a89faa4f8 (diff) | |
download | llvm-f36518637d7dfe5f8e619db1bd65dc90c92b5afa.zip llvm-f36518637d7dfe5f8e619db1bd65dc90c92b5afa.tar.gz llvm-f36518637d7dfe5f8e619db1bd65dc90c92b5afa.tar.bz2 |
[clangd] Fix error handling in config.yaml parsing.
Summary:
A few things were broken:
- use of Document::parseBlockNode() is incorrect and prevents moving to the
next doc in error cases. Use getRoot() instead.
- bailing out in the middle of iterating over a list/dict isn't allowed,
unless you are going to throw away the parser: the next skip() asserts.
Always consume all items.
- There were two concepts of fatal errors: error-diagnostics and drop-fragment.
(The latter is the "return false" case in the parser). They didn't coincide.
Now, parser errors and explicitly emitted error diagnostics are fatal.
Fixes https://github.com/clangd/clangd/issues/452
Reviewers: hokein
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D83436
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
0 files changed, 0 insertions, 0 deletions