[all-commits] [llvm/llvm-project] 4317ee: [clangd] Make use of preamble bounds from the patc...
kadir çetinkaya via All-commits
all-commits at lists.llvm.org
Wed Jun 17 09:34:39 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 4317ee27bd64759b922438659f5b6883c0fbe404
https://github.com/llvm/llvm-project/commit/4317ee27bd64759b922438659f5b6883c0fbe404
Author: Kadir Cetinkaya <kadircet at google.com>
Date: 2020-06-17 (Wed, 17 Jun 2020)
Changed paths:
M clang-tools-extra/clangd/ParsedAST.cpp
M clang-tools-extra/clangd/Preamble.cpp
M clang-tools-extra/clangd/Preamble.h
M clang-tools-extra/clangd/unittests/ParsedASTTests.cpp
M clang-tools-extra/clangd/unittests/PreambleTests.cpp
Log Message:
-----------
[clangd] Make use of preamble bounds from the patch inside ReplayPreamble
Summary:
Clangd was using bounds from the stale preamble, which might result in
crashes. For example:
```
#include "a.h"
#include "b.h" // this line is newly inserted
#include "c.h"
```
PreambleBounds for the baseline only contains first two lines, but
ReplayPreamble logic contains an include from the third line. This would
result in a crash as we only lex preamble part of the current file
during ReplayPreamble.
This patch adds a `preambleBounds` method to PreamblePatch, which can be
used to figure out preamble bounds for the current version of the file.
Then uses it when attaching ReplayPreamble, so that it can lex the
up-to-date preamble region.
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D81964
More information about the All-commits
mailing list