[PATCH] D78740: [clangd] Handle PresumedLocations in IncludeCollector
Kadir Cetinkaya via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue May 5 04:16:27 PDT 2020
kadircet added inline comments.
================
Comment at: clang-tools-extra/clangd/Headers.cpp:39
SrcMgr::CharacteristicKind FileKind) override {
- if (isInsideMainFile(HashLoc, SM)) {
+ auto AddMainFileInc = [&](SourceLocation HashLoc) {
Out->MainFileIncludes.emplace_back();
----------------
sammccall wrote:
> sammccall wrote:
> > nit: Inc -> Include
> this structure is not terrible but the reverse-chronological-order hurts readability a bit.
>
> You could try:
> ```
> // If an include is part of the preamble patch, translate #line directives.
> if (BuiltinFileInStack) {
> auto PreLoc = ...;
> if (...) {
> HashLoc = ...; // now we'll hit the case below
> }
> }
> // Record main-file inclusions (including those mapped from the preamble patch).
> if (isInsideMainFile(HashLoc, SM)) {
> // add the include
> }
> ```
well this was the initial version :D moved away from it since you asked for an explicit function both cases can call, reverting back to it.
================
Comment at: clang-tools-extra/clangd/unittests/HeadersTests.cpp:314
+ HeaderContents += R"cpp(
+#line 1
+#include <a.h>)cpp";
----------------
sammccall wrote:
> Can we use more aribtrary placeholder here, like 42? :)
> We could easily hit 1 by mistake.
unfortunately we can't, at least not without having that line available in the main file. Since we need to get a `real` offset into it in the end.
changing it to be line 3 as a middle ground :P
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D78740/new/
https://reviews.llvm.org/D78740
More information about the cfe-commits
mailing list