sammccall added inline comments.
================
Comment at: clang-tools-extra/clangd/Selection.cpp:373
+ if(!Range)
+ return SelectionTree::Unselected;
dlog("{1}claimRange: {0}", Range->printToString(SM), indent());
----------------
This isn't a sufficient fix, there are 5 callsites that don't check for failure.
Adding defenses to each of them is the right thing if we really can't handle
failure, but today they assume the invariant that if the inputs were from the
same file id, the output will be valid. Can we really not provide that
guarantee?
================
Comment at: clang-tools-extra/clangd/SourceCode.cpp:314
while (!FileRange.getBegin().isFileID()) {
- assert(!FileRange.getEnd().isFileID() &&
- "Both Begin and End should be MacroIDs.");
+ // FIXME: Investigate when this assert fails. Added a hack until then.
+ // assert(!FileRange.getEnd().isFileID() &&
----------------
We have a reproducer, why can't we investigate now?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D65574/new/
https://reviews.llvm.org/D65574
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits