[clang-tools-extra] 526fb5f - [include-cleaner] Fix walkUsed only report a single macro ref.
Haojian Wu via cfe-commits
cfe-commits at lists.llvm.org
Fri Dec 9 03:12:56 PST 2022
Author: Haojian Wu
Date: 2022-12-09T12:12:16+01:00
New Revision: 526fb5fae79f1b037eb084783d5eb082258ede9b
URL: https://github.com/llvm/llvm-project/commit/526fb5fae79f1b037eb084783d5eb082258ede9b
DIFF: https://github.com/llvm/llvm-project/commit/526fb5fae79f1b037eb084783d5eb082258ede9b.diff
LOG: [include-cleaner] Fix walkUsed only report a single macro ref.
The fix 962343a979d51cea9363167e9121c446abbdfdbc was reverted during a
rebase of a later patch. Added a test.
Added:
Modified:
clang-tools-extra/include-cleaner/lib/Analysis.cpp
clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/include-cleaner/lib/Analysis.cpp b/clang-tools-extra/include-cleaner/lib/Analysis.cpp
index 95cf8ab7550a5..fa3bbaab27c24 100644
--- a/clang-tools-extra/include-cleaner/lib/Analysis.cpp
+++ b/clang-tools-extra/include-cleaner/lib/Analysis.cpp
@@ -52,7 +52,7 @@ void walkUsed(llvm::ArrayRef<Decl *> ASTRoots,
}
for (const SymbolReference &MacroRef : MacroRefs) {
assert(MacroRef.Target.kind() == Symbol::Macro);
- return CB(MacroRef, headersForSymbol(MacroRef.Target, SM, PI));
+ CB(MacroRef, headersForSymbol(MacroRef.Target, SM, PI));
}
}
diff --git a/clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp b/clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
index 9a1f4fce801c3..13f5aad4912a4 100644
--- a/clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
+++ b/clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
@@ -145,25 +145,33 @@ TEST_F(WalkUsedTest, MultipleProviders) {
TEST_F(WalkUsedTest, MacroRefs) {
llvm::Annotations Code(R"cpp(
#include "hdr.h"
- int x = ^ANSWER;
+ int x = $1^ANSWER;
+ int y = $2^ANSWER;
)cpp");
llvm::Annotations Hdr(guard("#define ^ANSWER 42"));
Inputs.Code = Code.code();
Inputs.ExtraFiles["hdr.h"] = Hdr.code();
TestAST AST(Inputs);
auto &SM = AST.sourceManager();
- auto HdrFile = SM.getFileManager().getFile("hdr.h").get();
+ const auto *HdrFile = SM.getFileManager().getFile("hdr.h").get();
auto HdrID = SM.translateFile(HdrFile);
IdentifierTable Idents;
- Symbol Answer =
+ Symbol Answer1 =
+ Macro{&Idents.get("ANSWER"), SM.getComposedLoc(HdrID, Hdr.point())};
+ Symbol Answer2 =
Macro{&Idents.get("ANSWER"), SM.getComposedLoc(HdrID, Hdr.point())};
EXPECT_THAT(
- offsetToProviders(
- AST, SM,
- {SymbolReference{SM.getComposedLoc(SM.getMainFileID(), Code.point()),
- Answer, RefType::Explicit}}),
- UnorderedElementsAre(Pair(Code.point(), UnorderedElementsAre(HdrFile))));
+ offsetToProviders(AST, SM,
+ {SymbolReference{SM.getComposedLoc(SM.getMainFileID(),
+ Code.point("1")),
+ Answer1, RefType::Explicit},
+ SymbolReference{SM.getComposedLoc(SM.getMainFileID(),
+ Code.point("2")),
+ Answer2, RefType::Explicit}}),
+ UnorderedElementsAre(
+ Pair(Code.point("1"), UnorderedElementsAre(HdrFile)),
+ Pair(Code.point("2"), UnorderedElementsAre(HdrFile))));
}
TEST(Analyze, Basic) {
More information about the cfe-commits
mailing list