================ @@ -1354,6 +1354,8 @@ maybeFindIncludeReferences(ParsedAST &AST, Position Pos, ReferencesResult::Reference Result; const auto *Token = AST.getTokens().spelledTokenAt(Loc); + if (!Token) ---------------- kadircet wrote:
it's a little bit hard to see what issue we're fixing/preventing here, can you add some context? Looking at the test case, i guess we're getting a reference for the UDLs pointing at the middle of a token? If that's the case, i think we might as well fix the feature instead of working around. Moreover I don't think that broken behavior is specific to xrefs on includes, it'll show up on other places that use `spelledTokenAt` too. In this code path particularly, we actually don't want a `Token`, we can just use `Loc` and `Lexer::getLocForEndOfToken(Loc)` for the `range` calculation below. I think a more complete fix would be to actually change `spelledTokenAt` to return the `Token` as long as `Loc` is contained (or have a new method that returns the token containing the location). That one is more involved though, so if you choose not to do that, can you at least file a bug around clangd features not working properly with UDLs pointing into this PR? https://github.com/llvm/llvm-project/pull/94528 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits