From 41b15da6681b52c3221ee98d4a7930e4475ce3c6 Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Tue, 11 Apr 2017 01:20:11 -0400 Subject: [PATCH] Bug 515068 - ClassCastException in CPPASTDeclarator.getExecution() Change-Id: I8b4a9612b820dd8677b740479f774fb68620169c --- .../cdt/internal/core/dom/parser/cpp/CPPASTDeclarator.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarator.java index 18d20bd8bee..d1fb569acc1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarator.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarator.java @@ -310,7 +310,9 @@ public class CPPASTDeclarator extends CPPASTAttributeOwner implements ICPPASTDec @Override public ICPPExecution getExecution() { - final ICPPBinding binding = (ICPPBinding) getName().resolveBinding(); + final IBinding binding = getName().resolveBinding(); + if (!(binding instanceof ICPPBinding)) // ProblemBinding + return ExecIncomplete.INSTANCE; ICPPEvaluation initializerEval = null; if (binding instanceof CPPVariable) { CPPVariable variable = (CPPVariable) binding; @@ -319,6 +321,6 @@ public class CPPASTDeclarator extends CPPASTAttributeOwner implements ICPPASTDec if (initializerEval == EvalFixed.INCOMPLETE) { return ExecIncomplete.INSTANCE; } - return new ExecDeclarator(binding, initializerEval); + return new ExecDeclarator((ICPPBinding) binding, initializerEval); } }