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 ); } }