summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/include-fixer/find-all-symbols/FindAllSymbols.cpp8
-rw-r--r--clang-tools-extra/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp5
2 files changed, 9 insertions, 4 deletions
diff --git a/clang-tools-extra/include-fixer/find-all-symbols/FindAllSymbols.cpp b/clang-tools-extra/include-fixer/find-all-symbols/FindAllSymbols.cpp
index b0648b2d989..15b6f91fc67 100644
--- a/clang-tools-extra/include-fixer/find-all-symbols/FindAllSymbols.cpp
+++ b/clang-tools-extra/include-fixer/find-all-symbols/FindAllSymbols.cpp
@@ -183,10 +183,10 @@ void FindAllSymbols::registerMatchers(MatchFinder *MatchFinder) {
this);
// Matchers for enum declarations.
- MatchFinder->addMatcher(
- enumDecl(CommonFilter, anyOf(HasNSOrTUCtxMatcher, ExternCMatcher))
- .bind("decl"),
- this);
+ MatchFinder->addMatcher(enumDecl(CommonFilter, isDefinition(),
+ anyOf(HasNSOrTUCtxMatcher, ExternCMatcher))
+ .bind("decl"),
+ this);
// Matchers for enum constant declarations.
// We only match the enum constants in non-scoped enum declarations which are
diff --git a/clang-tools-extra/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp b/clang-tools-extra/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp
index bc0d746cc6c..4a78f20650b 100644
--- a/clang-tools-extra/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp
+++ b/clang-tools-extra/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp
@@ -334,6 +334,7 @@ TEST_F(FindAllSymbolsTest, EnumTest) {
public:
enum A_ENUM { X1, X2 };
};
+ enum DECL : int;
)";
runFindAllSymbols(Code);
@@ -376,6 +377,10 @@ TEST_F(FindAllSymbolsTest, EnumTest) {
{{SymbolInfo::ContextType::EnumDecl, "A_ENUM"},
{SymbolInfo::ContextType::Record, "A"}});
EXPECT_FALSE(hasSymbol(Symbol));
+
+ Symbol =
+ SymbolInfo("DECL", SymbolInfo::SymbolKind::EnumDecl, HeaderName, 9, {});
+ EXPECT_FALSE(hasSymbol(Symbol));
}
TEST_F(FindAllSymbolsTest, IWYUPrivatePragmaTest) {
OpenPOWER on IntegriCloud