diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java index 42c7b164a7d..826624c42d4 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java @@ -103,6 +103,17 @@ import org.eclipse.cdt.internal.core.parser.ParserException; public class AST2CPPTests extends AST2BaseTest { + +// public void testBug102825() throws Exception { +// StringBuffer buffer = new StringBuffer("#define CURLOPTTYPE_OBJECTPOINT 10000\n" ); //$NON-NLS-1$ +// buffer.append("#define CINIT(name,type,number) CURLOPT_ ## name = CURLOPTTYPE_ ## type + number\n" ); //$NON-NLS-1$ +// buffer.append("typedef enum {\n" ); //$NON-NLS-1$ +// buffer.append("CINIT(FILE, OBJECTPOINT, 1),\n" ); //$NON-NLS-1$ +// buffer.append(" CINIT(URL, OBJECTPOINT, 2)\n" ); //$NON-NLS-1$ +// buffer.append("} CURLoption ;\n" ); //$NON-NLS-1$ +// parseAndCheckBindings(buffer.toString()); +// } + public void testBug78883() throws Exception { StringBuffer buffer = new StringBuffer("class B {\n"); //$NON-NLS-1$ buffer.append("public:\n"); //$NON-NLS-1$ diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CompleteParser2Tests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CompleteParser2Tests.java index 21d37476bab..a980bd7faa1 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CompleteParser2Tests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CompleteParser2Tests.java @@ -2468,4 +2468,11 @@ public class CompleteParser2Tests extends TestCase { parse( writer.toString() ); } + public void testBug103560() throws Exception { + Writer writer = new StringWriter(); + writer.write("#define A( a, b ) a ## b \n"); //$NON-NLS-1$ + writer.write("#define FOOBAR 1 \n"); //$NON-NLS-1$ + writer.write("int i = A( FOO, BAR ); \n"); //$NON-NLS-1$ + parse( writer.toString() ); + } } diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner2/Scanner2Test.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner2/Scanner2Test.java index b843fe70c52..2eb672d075d 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner2/Scanner2Test.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/scanner2/Scanner2Test.java @@ -34,6 +34,16 @@ import org.eclipse.cdt.internal.core.parser.scanner2.FunctionStyleMacro; */ public class Scanner2Test extends BaseScanner2Test { +// public void testBug102825() throws Exception { +// StringBuffer buffer = new StringBuffer("#define CURLOPTTYPE_OBJECTPOINT 10000\n" ); //$NON-NLS-1$ +// buffer.append("#define CINIT(name,type,number) CURLOPT_##name = CURLOPTTYPE_##type + number\n" ); //$NON-NLS-1$ +// buffer.append("CINIT(FILE, OBJECTPOINT, 1)\n" ); //$NON-NLS-1$ +// initializeScanner(buffer.toString()); +// validateIdentifier( "CURLOPT_FILE"); //$NON-NLS-1$ +// validateToken( IToken.tASSIGN ); +// validateInteger( "10000"); //$NON-NLS-1$ +// } + public class TableRow { private int[] values; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java index a16d701e658..f908673f59b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java @@ -4274,11 +4274,10 @@ abstract class BaseScanner implements IScanner { replacedArgs.put(repObject, rep); repObject = rep; } + + if (result != null ) + System.arraycopy(repObject, 0, result, outpos, repObject.length); } - - if (result != null) - System.arraycopy(repObject, 0, result, outpos, - repObject.length); outpos += repObject.length; lastcopy = pos;