[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] [FIXED][76685] Outline view doesn't expand no param macros correctly
|
[FIXED][76685] Outline view doesn't
expand no param macros correctly
Here is a better patch for 76685...
It is a 2.0 patch that fixes this bug the same way the fix was applied
to CVS Head/AST2.
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/parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java,v
retrieving revision 1.15.2.16
diff -u -r1.15.2.16 Scanner2.java
--- parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java 8 Oct 2004 20:29:01 -0000 1.15.2.16
+++ parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java 25 Oct 2004 15:51:11 -0000
@@ -2245,12 +2245,6 @@
CharArrayObjectMap argmap = new CharArrayObjectMap(arglist.length);
while (bufferPos[bufferStackPos] < limit) {
- if (++currarg >= arglist.length || arglist[currarg] == null){
- // too many args
- handleProblem( IProblem.PREPROCESSOR_MACRO_USAGE_ERROR, bufferPos[bufferStackPos], macro.name );
- break;
- }
-
skipOverWhiteSpace();
int pos = ++bufferPos[bufferStackPos];
@@ -2264,6 +2258,12 @@
continue;
}
+ if (++currarg >= arglist.length || arglist[currarg] == null){
+ // too many args
+ handleProblem( IProblem.PREPROCESSOR_MACRO_USAGE_ERROR, bufferPos[bufferStackPos], macro.name );
+ break;
+ }
+
// peel off the arg
--bufferPos[bufferStackPos];
int argend = bufferPos[bufferStackPos];
Index: parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java,v
retrieving revision 1.107.2.6
diff -u -r1.107.2.6 CompleteParseASTTest.java
--- parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java 5 Oct 2004 18:51:46 -0000 1.107.2.6
+++ parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java 25 Oct 2004 15:51:25 -0000
@@ -2121,4 +2121,12 @@
IASTTypeId typeId = (IASTTypeId) typeIds.next();
assertEquals(typeId.getTypeOrClassName(), "Thrown");
}
+
+ public void testBug76685() throws Exception
+ {
+ Writer writer = new StringWriter();
+ writer.write( "#define foo() int\n" );
+ writer.write( "foo() i;" );
+ parse( writer.toString() );
+ }
}