diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTNode.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTNode.java index 189031670be..c1a5ad2c70c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTNode.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTNode.java @@ -161,8 +161,9 @@ public abstract class ASTNode implements IASTNode { } protected char[] getRawSignatureChars() { - final IASTFileLocation floc= getFileLocation(); - final IASTTranslationUnit ast = getTranslationUnit(); + final IASTNode originalNode = getOriginalNode(); + final IASTFileLocation floc= originalNode.getFileLocation(); + final IASTTranslationUnit ast = originalNode.getTranslationUnit(); if (floc != null && ast != null) { ILocationResolver lr= (ILocationResolver) ast.getAdapter(ILocationResolver.class); if (lr != null) { diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/togglefunction/ToggleRefactoringTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/togglefunction/ToggleRefactoringTest.java index 0aa964d016f..37598c4125e 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/togglefunction/ToggleRefactoringTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/togglefunction/ToggleRefactoringTest.java @@ -2863,4 +2863,24 @@ public class ToggleRefactoringTest extends RefactoringTestBase { public void testImplToHeaderTopCommentWithoutDeclaration() throws Exception { assertRefactoringSuccess(); } + + //A.h + //#define MACRO 1 + //int /*$*/freefunction/*$$*/() { + // return MACRO; + //} + //==================== + //#define MACRO 1 + //int freefunction(); + + //A.cpp + //==================== + //#include "A.h" + // + //int freefunction() { + // return MACRO; + //} + public void testFunctionWithMacroReference_399215() throws Exception { + assertRefactoringSuccess(); + } }