[clangd] Fix isInsideMainFile to be aware of preamble.
Reviewers: kadircet
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75460
diff --git a/clang-tools-extra/clangd/SourceCode.cpp b/clang-tools-extra/clangd/SourceCode.cpp
index d18daa9..7515472 100644
--- a/clang-tools-extra/clangd/SourceCode.cpp
+++ b/clang-tools-extra/clangd/SourceCode.cpp
@@ -420,7 +420,10 @@
}
bool isInsideMainFile(SourceLocation Loc, const SourceManager &SM) {
- return Loc.isValid() && SM.isWrittenInMainFile(SM.getExpansionLoc(Loc));
+ if (!Loc.isValid())
+ return false;
+ FileID FID = SM.getFileID(SM.getExpansionLoc(Loc));
+ return FID == SM.getMainFileID() || FID == SM.getPreambleFileID();
}
llvm::Optional<SourceRange> toHalfOpenFileRange(const SourceManager &SM,