diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionBugs.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionBugs.java index bca19402d2b..65726c27035 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionBugs.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionBugs.java @@ -60,7 +60,7 @@ public class IndexCPPBindingResolutionBugs extends IndexBindingResolutionTestBas // void foo() { // C::unresolvable(); // }; - public void _test185828() throws Exception { + public void test185828() throws Exception { // Bug 185828 reports a StackOverflowException is thrown before we get here. // That the SOE is thrown is detected in BaseTestCase via an Error IStatus diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java index ede31b12da7..6f0c15ab938 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java @@ -1170,7 +1170,12 @@ public class CPPSemantics { data.inheritanceChain = new ObjectSet( 2 ); data.inheritanceChain.put( lookIn ); - + + // workaround to fix 185828 + if(data.inheritanceChain.size() > 20) { + return null; + } + int size = bases.length; for( int i = 0; i < size; i++ ) {