From 7b05dbf7918045115fdaca53083746e3f6d0862f Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Fri, 27 Jan 2017 22:37:12 -0800 Subject: [PATCH] Added protection against ClassCastException. Change-Id: If22df485f21173841a0a5126ecc1246ea6651b4f --- .../core/dom/parser/cpp/semantics/EvalConstructor.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalConstructor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalConstructor.java index 6339c3c0eae..32d0f94b9c6 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalConstructor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalConstructor.java @@ -258,8 +258,13 @@ public final class EvalConstructor extends CPPDependentEvaluation { private static ICPPEvaluation[] evaluateArguments(IASTInitializerClause... clauses) { ICPPEvaluation[] args = new ICPPEvaluation[clauses.length]; for (int i = 0; i < clauses.length; i++) { - ICPPEvaluationOwner clause = (ICPPEvaluationOwner) clauses[i]; - args[i] = clause.getEvaluation(); + IASTInitializerClause initializerClause = clauses[i]; + if (initializerClause instanceof ICPPEvaluationOwner) { + ICPPEvaluationOwner clause = (ICPPEvaluationOwner) initializerClause; + args[i] = clause.getEvaluation(); + } else { + args[i] = EvalFixed.INCOMPLETE; + } } return args; }