Lines Matching refs:ILE
46 InitListExpr *ILE);
66 bool Build(InitListExpr *ILE);
340 bool ConstStructBuilder::Build(InitListExpr *ILE) {
341 RecordDecl *RD = ILE->getType()->getAs<RecordType>()->getDecl();
362 if (RD->isUnion() && ILE->getInitializedFieldInUnion() != *Field)
374 if (ElementNo < ILE->getNumInits())
375 EltInit = CGM.EmitConstantExpr(ILE->getInit(ElementNo++),
429 BuildStruct(CodeGenModule &CGM, CodeGenFunction *CGF, InitListExpr *ILE) {
432 if (!Builder.Build(ILE))
440 llvm::Type *ILETy = CGM.getTypes().ConvertType(ILE->getType());
676 llvm::Constant *EmitArrayInitialization(InitListExpr *ILE) {
677 unsigned NumInitElements = ILE->getNumInits();
678 if (NumInitElements == 1 && ILE->getType() == ILE->getInit(0)->getType() &&
679 (isa<StringLiteral>(ILE->getInit(0)) ||
680 isa<ObjCEncodeExpr>(ILE->getInit(0))))
681 return Visit(ILE->getInit(0));
685 cast<llvm::ArrayType>(ConvertType(ILE->getType()));
697 Expr *Init = ILE->getInit(i);
708 if (Expr *filler = ILE->getArrayFiller())
731 llvm::Constant *EmitStructInitialization(InitListExpr *ILE) {
732 return ConstStructBuilder::BuildStruct(CGM, CGF, ILE);
735 llvm::Constant *EmitUnionInitialization(InitListExpr *ILE) {
736 return ConstStructBuilder::BuildStruct(CGM, CGF, ILE);
743 llvm::Constant *VisitInitListExpr(InitListExpr *ILE) {
744 if (ILE->getType()->isAnyComplexType() && ILE->getNumInits() == 2) {
746 Expr *Real = ILE->getInit(0);
747 Expr *Imag = ILE->getInit(1);
756 cast<llvm::StructType>(ConvertType(ILE->getType()));
760 if (ILE->getType()->isScalarType()) {
762 if (ILE->getNumInits() > 0) {
763 Expr *Init = ILE->getInit(0);
766 return CGM.EmitNullConstant(ILE->getType());
769 if (ILE->getType()->isArrayType())
770 return EmitArrayInitialization(ILE);
772 if (ILE->getType()->isRecordType())
773 return EmitStructInitialization(ILE);
775 if (ILE->getType()->isUnionType())
776 return EmitUnionInitialization(ILE);
778 // If ILE was a constant vector, we would have handled it already.
779 if (ILE->getType()->isVectorType())