From 893ef311350095748179112768ed953fa2227f35 Mon Sep 17 00:00:00 2001 From: John Camelon Date: Mon, 7 Feb 2005 19:10:45 +0000 Subject: [PATCH] Fixed Bug 84236 - variable sized array modifiers --- .../cdt/core/parser/tests/ast2/AST2Tests.java | 12 ++++++++++++ .../internal/core/dom/parser/c/GNUCSourceParser.java | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java index 39fe886193e..13ffac302af 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java @@ -2804,4 +2804,16 @@ public class AST2Tests extends AST2BaseTest { assertEquals( ds.length, 1 ); assertSame( ds[0], col.getName(11) ); } + + public void testBug84236() throws Exception + { + String code = "double maximum(double a[ ][*]);"; //$NON-NLS-1$ + IASTSimpleDeclaration d = (IASTSimpleDeclaration) parse( code, ParserLanguage.C ).getDeclarations()[0]; + IASTStandardFunctionDeclarator fd = (IASTStandardFunctionDeclarator) d.getDeclarators()[0]; + IASTParameterDeclaration p = fd.getParameters()[0]; + IASTArrayDeclarator a = (IASTArrayDeclarator) p.getDeclarator(); + ICASTArrayModifier star = (ICASTArrayModifier) a.getArrayModifiers()[1]; + assertTrue( star.isVariableSized() ); + + } } \ No newline at end of file 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 c24315e6758..17e0bb2a69f 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 @@ -2082,7 +2082,7 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser { int lastOffset = consume(IToken.tRBRACKET).getEndOffset(); IASTArrayModifier arrayMod = null; - if (!(isStatic || isRestrict || isConst || isVolatile)) + if (!(isStatic || isRestrict || isConst || isVolatile || isVarSized )) arrayMod = createArrayModifier(); else { ICASTArrayModifier temp = createCArrayModifier();