malaperle added inline comments.
================ Comment at: clangd/ClangdUnit.cpp:1071 +Location getDeclarationLocation(ParsedAST &AST, + const SourceRange &ValSourceRange) { ---------------- llvm::ErrorOr<Location> ================ Comment at: clangd/ClangdUnit.cpp:1075 + const LangOptions &LangOpts = AST.getASTContext().getLangOpts(); + SourceLocation LocStart = ValSourceRange.getBegin(); + SourceLocation LocEnd = Lexer::getLocForEndOfToken(ValSourceRange.getEnd(), 0, ---------------- To fix the macro expansion crash: ``` SourceLocation LocStart = SourceMgr.getExpansionLoc(ValSourceRange.getBegin()); const FileEntry *F = SourceMgr.getFileEntryForID(SourceMgr.getFileID(LocStart)); ``` and simple early return ``` if (!F) return llvm::errc::no_such_file_or_directory; ``` ================ Comment at: clangd/ClangdUnit.cpp:1079 + Position Begin; + Begin.line = SourceMgr.getSpellingLineNumber(LocStart) - 1; + Begin.character = SourceMgr.getSpellingColumnNumber(LocStart) - 1; ---------------- getExpansionLineNumber ================ Comment at: clangd/ClangdUnit.cpp:1080 + Begin.line = SourceMgr.getSpellingLineNumber(LocStart) - 1; + Begin.character = SourceMgr.getSpellingColumnNumber(LocStart) - 1; + Position End; ---------------- getExpansionColumnNumber ================ Comment at: clangd/ClangdUnit.cpp:1082 + Position End; + End.line = SourceMgr.getSpellingLineNumber(LocEnd) - 1; + End.character = SourceMgr.getSpellingColumnNumber(LocEnd) - 1; ---------------- getExpansionLineNumber ================ Comment at: clangd/ClangdUnit.cpp:1083 + End.line = SourceMgr.getSpellingLineNumber(LocEnd) - 1; + End.character = SourceMgr.getSpellingColumnNumber(LocEnd) - 1; + Range R = {Begin, End}; ---------------- getExpansionColumnNumber ================ Comment at: clangd/ClangdUnit.cpp:1087 + + const FileEntry *F = + SourceMgr.getFileEntryForID(SourceMgr.getFileID(LocStart)); ---------------- You can do this earlier and simpler, see comment above. Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D35894 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits