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 8de6c9a2fee..2f83a129624 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 @@ -3133,4 +3133,14 @@ public class AST2Tests extends AST2BaseTest { tu.accept(col); assertNoProblemBindings(col); } + + public void testBug98502() throws Exception { + IASTTranslationUnit tu = parse("typedef enum { ONE } e;", ParserLanguage.C, true, true ); + CNameCollector col = new CNameCollector(); + tu.accept(col); + + IEnumeration etion = (IEnumeration) col.getName(0).resolveBinding(); + ITypedef e = (ITypedef) col.getName(2).resolveBinding(); + assertSame( e.getType(), etion ); + } } \ No newline at end of file diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CVisitor.java index 51cee220769..6a8490cc75b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CVisitor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CVisitor.java @@ -1643,7 +1643,10 @@ public class CVisitor { } else if( declSpec instanceof IASTElaboratedTypeSpecifier ){ name = ((IASTElaboratedTypeSpecifier) declSpec).getName(); } else if( declSpec instanceof IASTCompositeTypeSpecifier ){ - name = ((IASTCompositeTypeSpecifier) declSpec).getName(); } + name = ((IASTCompositeTypeSpecifier) declSpec).getName(); + } else if( declSpec instanceof IASTEnumerationSpecifier ){ + name = ((IASTEnumerationSpecifier)declSpec).getName(); + } binding = name.resolveBinding(); if( binding instanceof IType )