[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] [FIXED] 77097, 77276
|
[FIXED][77276]Preprocessor problem -
Multi line #if are not accepted
[FIXED][77097]Preprocessor problem -
Multi line #defines are not accepted
Devin Steffler
IBM's Eclipse CDT
Ottawa (Palladium), Ontario, Canada
Index: parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java,v
retrieving revision 1.88
diff -u -r1.88 Scanner2.java
--- parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java 18 Nov 2004 20:30:27 -0000 1.88
+++ parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java 19 Nov 2004 15:38:09 -0000
@@ -2541,8 +2541,10 @@
case '\r':
if (escaped && bufferPos[bufferStackPos] < limit && buffer[bufferPos[bufferStackPos] + 1] == '\n') {
escaped = false;
+ bufferPos[bufferStackPos]++;
break;
} else if (!escaped && bufferPos[bufferStackPos] < limit && buffer[bufferPos[bufferStackPos] + 1] == '\n') {
+ bufferPos[bufferStackPos]++;
return;
}
break;
Index: parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java,v
retrieving revision 1.138
diff -u -r1.138 CompleteParseASTTest.java
--- parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java 18 Nov 2004 21:05:23 -0000 1.138
+++ parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java 19 Nov 2004 15:38:30 -0000
@@ -2416,5 +2416,22 @@
assertEquals(ip.getSourceLineNumber(), 4);
}
}
+
+ public void testBug77097() throws Exception {
+ Writer writer = new StringWriter();
+ writer.write("#define SOME_MACRO() { \\\r\n"); //$NON-NLS-1$
+ writer.write("printf(\"Hello World\"); \\\r\n"); //$NON-NLS-1$
+ writer.write("printf(\"Good morning\"); \\\r\n"); //$NON-NLS-1$
+ parse(writer.toString());
+ }
+
+ public void testBug77276() throws Exception {
+ Writer writer = new StringWriter();
+ writer.write("#if (!defined(OS_LIBMODE_R) && !defined(OS_LIBMODE_RP) && \\\r\n"); //$NON-NLS-1$
+ writer.write("!defined(OS_LIBMODE_T))\r\n"); //$NON-NLS-1$
+ writer.write("#define OS_LIBMODE_DP\r\n"); //$NON-NLS-1$
+ writer.write("#endif\r\n"); //$NON-NLS-1$
+ parse(writer.toString());
+ }
}