diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/includes/BindingClassifierTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/includes/BindingClassifierTest.java index 8e6c0127fca..1e484cb69cb 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/includes/BindingClassifierTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/includes/BindingClassifierTest.java @@ -648,4 +648,14 @@ public class BindingClassifierTest extends OneSourceMultipleHeadersTestCase { assertDefined("MACRO"); assertDeclared(); } + + // void f(int); + // #define MACRO(name, arg) void name() { f(arg); } + + // int bar; + // MACRO(foo, bar); + public void testMacro_4() throws Exception { + assertDefined("MACRO"); + assertDeclared(); + } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java index 05045831072..9581c245e69 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/includes/BindingClassifier.java @@ -692,6 +692,8 @@ public class BindingClassifier { */ IASTFunctionCallExpression functionCallExpression = (IASTFunctionCallExpression) expression; IASTExpression functionNameExpression = functionCallExpression.getFunctionNameExpression(); + if (isPartOfExternalMacroDefinition(functionNameExpression)) + return PROCESS_CONTINUE; IBinding binding = getBindingOfExpression(functionNameExpression); if (binding != null) {