diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/implementmethod/ImplementMethodRefactoringTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/implementmethod/ImplementMethodRefactoringTest.java index f48cb2f736c..4457674db91 100755 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/implementmethod/ImplementMethodRefactoringTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/implementmethod/ImplementMethodRefactoringTest.java @@ -864,4 +864,17 @@ public class ImplementMethodRefactoringTest extends RefactoringTestBase { expectedFinalInfos = 1; assertRefactoringSuccess(); } + + //A.h + // + ///*$*/int PrintfToStdStr(const char *pszFmt, ...);/*$$*/ + // + + //A.cpp + //==================== + //int PrintfToStdStr(const char *pszFmt, ...) { + //} + public void testFreeFunctionWithVarArgs_Bug384793() throws Exception { + assertRefactoringSuccess(); + } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ImplementMethodRefactoring.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ImplementMethodRefactoring.java index 5d60ae6252c..844378ec79b 100755 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ImplementMethodRefactoring.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ImplementMethodRefactoring.java @@ -326,6 +326,7 @@ public class ImplementMethodRefactoring extends CRefactoring { createdMethodDeclarator = nodeFactory.newFunctionDeclarator(qName); createdMethodDeclarator.setConst(functionDeclarator.isConst()); createdMethodDeclarator.setRefQualifier(functionDeclarator.getRefQualifier()); + createdMethodDeclarator.setVarArgs(functionDeclarator.takesVarArgs()); for (IASTPointerOperator pop : functionDeclarator.getPointerOperators()) { createdMethodDeclarator.addPointerOperator(pop.copy(CopyStyle.withLocations)); }