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); } }