From 5ba7b6a7040cce18df2964aff7cf7f012355daf3 Mon Sep 17 00:00:00 2001 From: John Camelon Date: Fri, 18 Feb 2005 21:05:55 +0000 Subject: [PATCH] Patch for Devin Steffler. FIXED 84176 - compound literal C example from C99 6.5.2.5-16 has 2 IASTProblemStatements --- .../org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java | 2 +- .../cdt/internal/core/dom/parser/c/GNUCSourceParser.java | 4 ++++ 2 files changed, 5 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 392a223d728..89a8910ce3c 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 @@ -2735,7 +2735,7 @@ public class AST2Tests extends AST2BaseTest { buffer.append("q = p;\n"); //$NON-NLS-1$ buffer.append("p = &((struct s){ j++ }); \n"); //$NON-NLS-1$ buffer.append("}\n"); //$NON-NLS-1$ - parse(buffer.toString(), ParserLanguage.C); + parse(buffer.toString(), ParserLanguage.C, false, true); } public void testBug84266() throws Exception { 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 35a45d2d2d0..e27a06d68d8 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 @@ -341,6 +341,10 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser { && (LT(1) == IToken.tIDENTIFIER || LT(1) == IToken.tLBRACKET)) { if (LT(1) == IToken.tIDENTIFIER) { + // fix for 84176: if reach identifier and it's not a designator then return empty designator list + if (LT(2) != IToken.tCOLON) + return designatorList; + IToken identifier = identifier(); int lastOffset = consume(IToken.tCOLON).getEndOffset(); ICASTFieldDesignator designator = createFieldDesignator();