1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-08 10:16:03 +02:00

Fix for 176842, indexer hangs on code with missing closing bracket

This commit is contained in:
Markus Schorn 2007-03-12 15:57:12 +00:00
parent cb14d91f76
commit 84e36a84f9
2 changed files with 7 additions and 2 deletions

View file

@ -1839,9 +1839,13 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser {
templateIdScopes.push(IToken.tLPAREN); templateIdScopes.push(IToken.tLPAREN);
} }
IASTExpression lhs = expression(); IASTExpression lhs = expression();
int finalOffset = Integer.MAX_VALUE; int finalOffset= 0;
if (LT(1) == IToken.tRPAREN) if (LT(1) == IToken.tRPAREN) {
finalOffset = consume().getEndOffset(); finalOffset = consume().getEndOffset();
} else {
// missing parenthesis, assume it's there and keep going.
finalOffset = LA(1).getOffset();
}
if (templateIdScopes.size() > 0) { if (templateIdScopes.size() > 0) {
templateIdScopes.pop(); templateIdScopes.pop();
} }

View file

@ -1892,6 +1892,7 @@ public class LocationMap implements ILocationResolver, IScannerPreprocessorLog {
_WeightedContext[] result = new _WeightedContext[2]; _WeightedContext[] result = new _WeightedContext[2];
_Context cc = null; _Context cc = null;
int currentCount = 0; int currentCount = 0;
length= Math.min(tu.context_ends, length);
for (int i = offset; i < offset + length; ++i) { for (int i = offset; i < offset + length; ++i) {
_Context r = tu.findContextContainingOffset(i); _Context r = tu.findContextContainingOffset(i);
if (cc == null) { if (cc == null) {