[clang] 11dcd88 - [Tooling/Inclusion] Use the StdSpecialSymbolMap.inc in the stdlib
Haojian Wu via cfe-commits
cfe-commits at lists.llvm.org
Thu Feb 9 15:04:35 PST 2023
Author: Haojian Wu
Date: 2023-02-10T00:04:23+01:00
New Revision: 11dcd88577f4cba30db9c0d0d899008bbf57616d
URL: https://github.com/llvm/llvm-project/commit/11dcd88577f4cba30db9c0d0d899008bbf57616d
DIFF: https://github.com/llvm/llvm-project/commit/11dcd88577f4cba30db9c0d0d899008bbf57616d.diff
LOG: [Tooling/Inclusion] Use the StdSpecialSymbolMap.inc in the stdlib
Remove a special-case in clangd.
Differential Revision: https://reviews.llvm.org/D143559
Added:
Modified:
clang-tools-extra/clangd/index/CanonicalIncludes.cpp
clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp
clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp
clang/unittests/Tooling/StandardLibraryTest.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clangd/index/CanonicalIncludes.cpp b/clang-tools-extra/clangd/index/CanonicalIncludes.cpp
index 41d195f81298e..0c61a7bd7e929 100644
--- a/clang-tools-extra/clangd/index/CanonicalIncludes.cpp
+++ b/clang-tools-extra/clangd/index/CanonicalIncludes.cpp
@@ -716,8 +716,6 @@ llvm::StringRef CanonicalIncludes::mapSymbol(llvm::StringRef Scope,
// There are two std::move()s, this is by far the most common.
if (Scope == "std::" && Name == "move")
return "<utility>";
- if (Scope == "std::" && Name == "size_t")
- return "<cstddef>";
if (auto StdSym = tooling::stdlib::Symbol::named(Scope, Name, Lang))
return StdSym->header().name();
return "";
diff --git a/clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp b/clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp
index dfde5594956ef..0d6731ca59581 100644
--- a/clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp
+++ b/clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp
@@ -51,6 +51,7 @@ TEST(CanonicalIncludesTest, CXXStandardLibrary) {
EXPECT_EQ("<cstdio>", CI.mapSymbol("std::", "printf", Language));
// std::move is ambiguous, currently always mapped to <utility>
EXPECT_EQ("<utility>", CI.mapSymbol("std::", "move", Language));
+ EXPECT_EQ("<cstddef>", CI.mapSymbol("std::", "size_t", Language));
// Unknown std symbols aren't mapped.
EXPECT_EQ("", CI.mapSymbol("std::", "notathing", Language));
// iosfwd declares some symbols it doesn't own.
diff --git a/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp b/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp
index 0340a9151424d..2f8537951a0f3 100644
--- a/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp
+++ b/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp
@@ -62,6 +62,7 @@ static int countSymbols(Lang Language) {
break;
case Lang::CXX:
#include "StdSymbolMap.inc"
+#include "StdSpecialSymbolMap.inc"
break;
}
#undef SYMBOL
@@ -130,6 +131,7 @@ static int initialize(Lang Language) {
break;
case Lang::CXX:
#include "StdSymbolMap.inc"
+#include "StdSpecialSymbolMap.inc"
break;
}
#undef SYMBOL
diff --git a/clang/unittests/Tooling/StandardLibraryTest.cpp b/clang/unittests/Tooling/StandardLibraryTest.cpp
index aac13579a5f17..c7b83aa36195e 100644
--- a/clang/unittests/Tooling/StandardLibraryTest.cpp
+++ b/clang/unittests/Tooling/StandardLibraryTest.cpp
@@ -62,6 +62,16 @@ TEST(StdlibTest, All) {
ElementsAre(stdlib::Header::named("<istream>"),
stdlib::Header::named("<iostream>"),
stdlib::Header::named("<iosfwd>")));
+ EXPECT_THAT(stdlib::Symbol::named("std::", "size_t")->headers(),
+ ElementsAre(stdlib::Header::named("<cstddef>"),
+ stdlib::Header::named("<cstdlib>"),
+ stdlib::Header::named("<cstring>"),
+ stdlib::Header::named("<cwchar>"),
+ stdlib::Header::named("<cuchar>"),
+ stdlib::Header::named("<ctime>"),
+ stdlib::Header::named("<cstdio>")));
+ EXPECT_EQ(stdlib::Symbol::named("std::", "size_t")->header(),
+ stdlib::Header::named("<cstddef>"));
EXPECT_THAT(stdlib::Header::all(), Contains(*VectorH));
EXPECT_THAT(stdlib::Symbol::all(), Contains(*Vector));
More information about the cfe-commits
mailing list