Source:
private ICPPEvaluation createInitialValue(IType type, ActivationRecord record, ConstexprEvaluationContext context) { if(initializerEval == null) { return createDefaultInitializedCompositeValue(type); } ICPPEvaluation computedInitializerEval = initializerEval.computeForFunctionCall(record, context.recordStep()); IType nestedType = SemanticUtil.getNestedType(type, TDEF | REF | CVTYPE); if(isClassType(nestedType) && computedInitializerEval instanceof EvalFixed) { EvalFixed evalFixed = (EvalFixed) computedInitializerEval; IValue val = evalFixed.getValue(); if(!(val instanceof CompositeValue)) { CompositeValue compVal = new CompositeValue(initializerEval, new ICPPEvaluation[]{evalFixed}); computedInitializerEval = new EvalFixed(type, computedInitializerEval.getValueCategory(null), compVal); } } if (isReferenceType(type)) { return createReferenceValue(record, context, computedInitializerEval); } else if (isPointerType(nestedType) && !isCStringType(nestedType)) { return createPointerValue(record, context, computedInitializerEval); } else if(isArrayType(nestedType) && !isCStringType(nestedType)) { IValue value = CompositeValue.create((EvalInitList)computedInitializerEval,(IArrayType) (type)); return new EvalFixed(type, computedInitializerEval.getValueCategory(null), value); } else if (isValueInitialization(computedInitializerEval)){ ICPPEvaluation defaultValue = new EvalTypeId(type, context.getPoint(), new ICPPEvaluation[]{}); return new EvalFixed(type, defaultValue.getValueCategory(null), defaultValue.getValue(null)); } else { return new EvalFixed(type, computedInitializerEval.getValueCategory(null), computedInitializerEval.getValue(null)); } }

Target:
private ICPPEvaluation createInitialValue(IType type, ActivationRecord record, ConstexprEvaluationContext context) { if(initializerEval == null) { return createDefaultInitializedCompositeValue(type); } ICPPEvaluation computedInitializerEval = initializerEval.computeForFunctionCall(record, context.recordStep()); IType nestedType = SemanticUtil.getNestedType(type, TDEF | REF | CVTYPE); if(isClassType(nestedType) && computedInitializerEval instanceof EvalFixed) { EvalFixed evalFixed = (EvalFixed) computedInitializerEval; IValue val = evalFixed.getValue(); if(!(val instanceof CompositeValue)) { CompositeValue compVal = new CompositeValue(initializerEval, new ICPPEvaluation[]{evalFixed}); computedInitializerEval = new EvalFixed(type, computedInitializerEval.getValueCategory(context.getPoint()), compVal); } } if (isReferenceType(type)) { return createReferenceValue(record, context, computedInitializerEval); } else if (isPointerType(nestedType) && !isCStringType(nestedType)) { return createPointerValue(record, context, computedInitializerEval); } else if(isArrayType(nestedType) && !isCStringType(nestedType)) { IValue value = CompositeValue.create((EvalInitList)computedInitializerEval,(IArrayType) (type)); return new EvalFixed(type, computedInitializerEval.getValueCategory(context.getPoint()), value); } else if (isValueInitialization(computedInitializerEval)){ ICPPEvaluation defaultValue = new EvalTypeId(type, context.getPoint(), false, new ICPPEvaluation[]{}); return new EvalFixed(type, defaultValue.getValueCategory(context.getPoint()), defaultValue.getValue(context.getPoint())); } else { return new EvalFixed(type, computedInitializerEval.getValueCategory(context.getPoint()), computedInitializerEval.getValue(context.getPoint())); } }