Skip to content

Commit 11dcd88

Browse files
committed
[Tooling/Inclusion] Use the StdSpecialSymbolMap.inc in the stdlib
Remove a special-case in clangd. Differential Revision: https://reviews.llvm.org/D143559
1 parent 350c89f commit 11dcd88

File tree

4 files changed

+13
-2
lines changed

4 files changed

+13
-2
lines changed

clang-tools-extra/clangd/index/CanonicalIncludes.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -716,8 +716,6 @@ llvm::StringRef CanonicalIncludes::mapSymbol(llvm::StringRef Scope,
716716
// There are two std::move()s, this is by far the most common.
717717
if (Scope == "std::" && Name == "move")
718718
return "<utility>";
719-
if (Scope == "std::" && Name == "size_t")
720-
return "<cstddef>";
721719
if (auto StdSym = tooling::stdlib::Symbol::named(Scope, Name, Lang))
722720
return StdSym->header().name();
723721
return "";

clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ TEST(CanonicalIncludesTest, CXXStandardLibrary) {
5151
EXPECT_EQ("<cstdio>", CI.mapSymbol("std::", "printf", Language));
5252
// std::move is ambiguous, currently always mapped to <utility>
5353
EXPECT_EQ("<utility>", CI.mapSymbol("std::", "move", Language));
54+
EXPECT_EQ("<cstddef>", CI.mapSymbol("std::", "size_t", Language));
5455
// Unknown std symbols aren't mapped.
5556
EXPECT_EQ("", CI.mapSymbol("std::", "notathing", Language));
5657
// iosfwd declares some symbols it doesn't own.

clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ static int countSymbols(Lang Language) {
6262
break;
6363
case Lang::CXX:
6464
#include "StdSymbolMap.inc"
65+
#include "StdSpecialSymbolMap.inc"
6566
break;
6667
}
6768
#undef SYMBOL
@@ -130,6 +131,7 @@ static int initialize(Lang Language) {
130131
break;
131132
case Lang::CXX:
132133
#include "StdSymbolMap.inc"
134+
#include "StdSpecialSymbolMap.inc"
133135
break;
134136
}
135137
#undef SYMBOL

clang/unittests/Tooling/StandardLibraryTest.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,16 @@ TEST(StdlibTest, All) {
6262
ElementsAre(stdlib::Header::named("<istream>"),
6363
stdlib::Header::named("<iostream>"),
6464
stdlib::Header::named("<iosfwd>")));
65+
EXPECT_THAT(stdlib::Symbol::named("std::", "size_t")->headers(),
66+
ElementsAre(stdlib::Header::named("<cstddef>"),
67+
stdlib::Header::named("<cstdlib>"),
68+
stdlib::Header::named("<cstring>"),
69+
stdlib::Header::named("<cwchar>"),
70+
stdlib::Header::named("<cuchar>"),
71+
stdlib::Header::named("<ctime>"),
72+
stdlib::Header::named("<cstdio>")));
73+
EXPECT_EQ(stdlib::Symbol::named("std::", "size_t")->header(),
74+
stdlib::Header::named("<cstddef>"));
6575

6676
EXPECT_THAT(stdlib::Header::all(), Contains(*VectorH));
6777
EXPECT_THAT(stdlib::Symbol::all(), Contains(*Vector));

0 commit comments

Comments
 (0)