From cf15755c35de1dc3fa6b275fd9de94fc3e29d665 Mon Sep 17 00:00:00 2001 From: John Camelon Date: Mon, 22 Nov 2004 15:10:37 +0000 Subject: [PATCH] New parser fixes. Remove NPE in consumeArrayModifiers(). Add stronger typing to bitfield expression in declarator(). --- .../internal/core/parser2/c/GNUCSourceParser.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser2/c/GNUCSourceParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser2/c/GNUCSourceParser.java index 1db4e6ee1e7..f831a0279a5 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser2/c/GNUCSourceParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser2/c/GNUCSourceParser.java @@ -1587,7 +1587,7 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser { List parameters = Collections.EMPTY_LIST; List arrayMods = Collections.EMPTY_LIST; boolean encounteredVarArgs = false; - Object bitField = null; + IASTExpression bitField = null; boolean isFunction = false; overallLoop: do { @@ -1720,7 +1720,7 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser { } else if (bitField != null) { IASTFieldDeclarator fl = createFieldDeclarator(); - fl.setBitFieldSize((IASTExpression) bitField); + fl.setBitFieldSize(bitField); d = fl; } else { @@ -1840,10 +1840,13 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser { } arrayMod = temp; } - arrayMod.setConstantExpression( exp ); ((CASTNode)arrayMod).setOffset( startOffset ); - exp.setParent( arrayMod ); - exp.setPropertyInParent( IASTArrayModifier.CONSTANT_EXPRESSION ); + if( exp != null ) + { + arrayMod.setConstantExpression( exp ); + exp.setParent( arrayMod ); + exp.setPropertyInParent( IASTArrayModifier.CONSTANT_EXPRESSION ); + } arrayMods.add( arrayMod ); } }