diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java index 01160620e8b..ddf37729a08 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java @@ -304,4 +304,14 @@ public class SelectionParseTest extends SelectionParseBaseTest { IASTNode node = parse( code, startIndex, startIndex + 5 ); assertNotNull( node ); } + + public void testBug68527() throws Exception + { + Writer writer = new StringWriter(); + writer.write("struct X;\n"); //$NON-NLS-1$ + writer.write("struct X anA;"); //$NON-NLS-1$ + String code = writer.toString(); + int startIndex = code.indexOf( "X anA"); //$NON-NLS-1$ + parse( code, startIndex, startIndex + 1 ); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java index df58e350e0c..9ba4f464527 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java @@ -1939,8 +1939,11 @@ public abstract class Parser extends ExpressionParser implements IParser sdw.setTypeSpecifier(elaboratedTypeSpec); if (isForewardDecl) + { ((IASTElaboratedTypeSpecifier) elaboratedTypeSpec).acceptElement( requestor, astFactory.getReferenceManager()); + handleOffsetableNamedElement((IASTOffsetableNamedElement) elaboratedTypeSpec); + } } /** * Parses the initDeclarator construct of the ANSI C++ spec.