mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 14:12:10 +02:00
Patch for Devin Steffler.
Bug 98328 [Content Assist] infinite loop encountered in C projects (related to K&R C parameters)
This commit is contained in:
parent
8a37c61a8c
commit
6d35ccf9b4
1 changed files with 16 additions and 3 deletions
|
@ -2586,8 +2586,14 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser {
|
|||
|
||||
// look ahead for the start of the function body, if end of file is
|
||||
// found then return 0 parameters found (implies not KnR C)
|
||||
IToken previous=null;
|
||||
IToken next=null;
|
||||
while (LT(1) != IToken.tLBRACE) {
|
||||
consume();
|
||||
next = consume();
|
||||
if (next == previous) { // infinite loop detected
|
||||
break;
|
||||
}
|
||||
previous = next;
|
||||
}
|
||||
|
||||
backup(mark);
|
||||
|
@ -2612,8 +2618,15 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser {
|
|||
|
||||
// consume until LBRACE is found (to leave off at the function body and
|
||||
// continue from there)
|
||||
while (LT(1) != IToken.tLBRACE)
|
||||
consume();
|
||||
IToken previous=null;
|
||||
IToken next=null;
|
||||
while (LT(1) != IToken.tLBRACE) {
|
||||
next = consume();
|
||||
if (next == previous) { // infinite loop detected
|
||||
break;
|
||||
}
|
||||
previous = next;
|
||||
}
|
||||
|
||||
return pd;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue