From 404b6d728364041407b2b6cdb8f0ae9092cc828a Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Sun, 25 Aug 2013 20:40:28 -0400 Subject: [PATCH] Bug 400204 - Unexpected syntax error in C struct declaration Change-Id: Idc8450517362e6f6d9f00c9dfc13034d6de456a2 Signed-off-by: Nathan Ridge Reviewed-on: https://git.eclipse.org/r/15838 Reviewed-by: Sergey Prigogin IP-Clean: Sergey Prigogin Tested-by: Sergey Prigogin --- .../parser/tests/ast2/GCCCompleteParseExtensionsTest.java | 8 ++++++++ .../core/dom/parser/AbstractGNUSourceCodeParser.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/GCCCompleteParseExtensionsTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/GCCCompleteParseExtensionsTest.java index 803f458c1db..1e281575767 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/GCCCompleteParseExtensionsTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/GCCCompleteParseExtensionsTest.java @@ -432,4 +432,12 @@ public class GCCCompleteParseExtensionsTest extends AST2TestBase { parseGCC(code); parseGPP(code); } + + // struct waldo { + // } __attribute__((__aligned__((1)))); + public void test__attribute__aligned_bug400204() throws Exception { + String code= getAboveComment(); + parseGCC(code); + parseGPP(code); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java index 05511bf2379..2b0793b547b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java @@ -2413,7 +2413,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { while ((t = LA(1)).getType() != endType) { consume(); IASTToken token; - switch (LT(1)) { + switch (t.getType()) { case IToken.tLPAREN: token = balancedTokenSeq(t.getOffset(), IToken.tRPAREN); break;