From fa50ca7bc0da3e51c4ad8774017d8d3c37a4e79c Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Mon, 25 Jun 2018 23:51:17 -0400 Subject: [PATCH] Bug 536268 - Find uses of overloaded operators when checking for unused symbols Change-Id: I4445b62d4419ffa12d505bcc8265492c22f49bb6 --- .../checkers/UnusedSymbolInFileScopeChecker.java | 1 + .../checkers/UnusedSymbolInFileScopeCheckerTest.java | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/UnusedSymbolInFileScopeChecker.java b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/UnusedSymbolInFileScopeChecker.java index 700dda57e5c..ebb2fca2dbc 100644 --- a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/UnusedSymbolInFileScopeChecker.java +++ b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/UnusedSymbolInFileScopeChecker.java @@ -233,6 +233,7 @@ public class UnusedSymbolInFileScopeChecker extends AbstractIndexAstChecker { ast.accept(new ASTVisitor() { { shouldVisitNames = true; + shouldVisitImplicitNames = true; shouldVisitDeclarations = true; } diff --git a/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/UnusedSymbolInFileScopeCheckerTest.java b/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/UnusedSymbolInFileScopeCheckerTest.java index 8da64b700a7..39455f99973 100644 --- a/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/UnusedSymbolInFileScopeCheckerTest.java +++ b/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/UnusedSymbolInFileScopeCheckerTest.java @@ -346,4 +346,16 @@ public class UnusedSymbolInFileScopeCheckerTest extends CheckerTestCase { loadCodeAndRunCpp(getAboveComment()); checkNoErrors(); } + + // class S {}; + // S operator+(S, S); + // + // int main() { + // S a, b; + // a + b; + // } + public void testOverloadedOperator_536268() throws Exception { + loadCodeAndRunCpp(getAboveComment()); + checkNoErrors(); + } }