diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/prefix/BasicCompletionTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/prefix/BasicCompletionTest.java index 0de954e24fc..e035183a6f3 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/prefix/BasicCompletionTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/prefix/BasicCompletionTest.java @@ -267,4 +267,12 @@ public class BasicCompletionTest extends CompletionTestBase { String[] expected= {"tint"}; checkCompletion(code, false, expected); } + + // void f(x) int y( + public void testIncompleteKnrFunction_Bug324384b() throws Exception { + // Content assist won't work here, just verify that we don't run out of memory + String code = getAboveComment(); + String[] expected= {}; + checkCompletion(code, false, expected); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java index fc74d21bfdc..75303b006be 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java @@ -1935,7 +1935,7 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser { IToken next=null; while (LT(1) != IToken.tLBRACE) { next = consume(); - if (next == previous) { // infinite loop detected + if (next == previous || next.getType() == IToken.tEOC) { // infinite loop detected break; } previous = next;