diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java index 05c2f61d5b4..2506888c156 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java @@ -2483,8 +2483,10 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor, */ private void formatList(List elements, ListOptions options, boolean encloseInParen, boolean addEllipsis, Runnable tailFormatter, Runnable prefix) { - if (encloseInParen) - scribe.printNextToken(options.leftToken, options.fSpaceBeforeOpeningParen); + if (encloseInParen) { + if (peekNextToken() == options.leftToken) + scribe.printNextToken(options.leftToken, options.fSpaceBeforeOpeningParen); + } final int elementsLength = elements.size(); if (encloseInParen) { diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java index f7f52b193ad..c112ca61d88 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java @@ -4699,4 +4699,13 @@ public class CodeFormatterTest extends BaseUITestCase { public void testStructuredBindingInSwitchInitStatement() throws Exception { assertFormatterResult(); } + + //#define PROTO(X) X + //void foo PROTO((char* b)); + + //#define PROTO(X) X + //void foo PROTO((char* b)); + public void testMacroInFunctionParameters_Bug550096() throws Exception { + assertFormatterResult(); + } }