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