kadircet created this revision. kadircet added reviewers: sammccall, hokein. Herald added subscribers: usaxena95, arphaman. kadircet requested review of this revision. Herald added subscribers: cfe-commits, MaskRay, ilya-biryukov. Herald added a project: clang.
This is a common symbol that's missing from our mapping because cppreference yields multiple headers. Add it manually by picking cstddef to prevent insertion of some stdlib-internal headers instead. Fixes https://github.com/clangd/clangd/issues/666. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D95423 Files: clang-tools-extra/clangd/index/CanonicalIncludes.cpp Index: clang-tools-extra/clangd/index/CanonicalIncludes.cpp =================================================================== --- clang-tools-extra/clangd/index/CanonicalIncludes.cpp +++ clang-tools-extra/clangd/index/CanonicalIncludes.cpp @@ -92,6 +92,8 @@ #include "StdSymbolMap.inc" // There are two std::move()s, this is by far the most common. SYMBOL(move, std::, <utility>) + // There are multiple headers for size_t, pick one. + SYMBOL(size_t, std::, <cstddef>) #undef SYMBOL }); StdSymbolMapping = Symbols; @@ -99,6 +101,8 @@ static const auto *CSymbols = new llvm::StringMap<llvm::StringRef>({ #define SYMBOL(Name, NameSpace, Header) {#Name, #Header}, #include "CSymbolMap.inc" + // There are multiple headers for size_t, pick one. + SYMBOL(size_t, None, <stddef.h>) #undef SYMBOL }); StdSymbolMapping = CSymbols;
Index: clang-tools-extra/clangd/index/CanonicalIncludes.cpp =================================================================== --- clang-tools-extra/clangd/index/CanonicalIncludes.cpp +++ clang-tools-extra/clangd/index/CanonicalIncludes.cpp @@ -92,6 +92,8 @@ #include "StdSymbolMap.inc" // There are two std::move()s, this is by far the most common. SYMBOL(move, std::, <utility>) + // There are multiple headers for size_t, pick one. + SYMBOL(size_t, std::, <cstddef>) #undef SYMBOL }); StdSymbolMapping = Symbols; @@ -99,6 +101,8 @@ static const auto *CSymbols = new llvm::StringMap<llvm::StringRef>({ #define SYMBOL(Name, NameSpace, Header) {#Name, #Header}, #include "CSymbolMap.inc" + // There are multiple headers for size_t, pick one. + SYMBOL(size_t, None, <stddef.h>) #undef SYMBOL }); StdSymbolMapping = CSymbols;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits