From 11b3b8cbe7c427635b99b2d510a63cb0197875b7 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Mon, 27 Dec 2010 15:41:25 +0000 Subject: [PATCH] Bug 333200: Declaration ambiguity, bit-field versus member-initializer. --- .../eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java | 9 +++++++++ .../internal/core/dom/parser/cpp/GNUCPPSourceParser.java | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java index 5279ba4925e..44d7e876530 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java @@ -9317,4 +9317,13 @@ public class AST2CPPTests extends AST2BaseTest { public void testAutoTypeInRangeBasedFor_332883() throws Exception { parseAndCheckBindings(); } + + // typedef int T; + // struct B { + // int a, b; + // B(T) : a(0), b(0) {} + // }; + public void testMemberInitializer_333200() throws Exception { + parseAndCheckBindings(); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java index 84f2c388da7..eaa41141a75 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java @@ -3436,7 +3436,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { break loop; case IToken.tCOLON: - if (!option.fAllowBitField) + if (!option.fAllowBitField || nestedDeclarator != null) break loop; // no backtrack because typeid can be followed by colon result= bitFieldDeclarator();