RecordDecl::field_iterator field = record->field_begin();
if (field == record->field_end()) {
CGF.ErrorUnsupported(initList, "weird std::initializer_list");
+ return;
}
QualType elementPtr = ctx.getPointerType(element.withConst());
// Start pointer.
if (!ctx.hasSameType(field->getType(), elementPtr)) {
CGF.ErrorUnsupported(initList, "weird std::initializer_list");
+ return;
}
LValue start = CGF.EmitLValueForFieldInitialization(destPtr, *field, 0);
llvm::Value *arrayStart = Builder.CreateStructGEP(alloc, 0, "arraystart");
if (field == record->field_end()) {
CGF.ErrorUnsupported(initList, "weird std::initializer_list");
+ return;
}
LValue endOrLength = CGF.EmitLValueForFieldInitialization(destPtr, *field, 0);
if (ctx.hasSameType(field->getType(), elementPtr)) {
CGF.EmitStoreThroughLValue(RValue::get(Builder.getInt(size)), endOrLength);
} else {
CGF.ErrorUnsupported(initList, "weird std::initializer_list");
+ return;
}
if (!Dest.isExternallyDestructed())