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 cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits