Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:base

56   void AppendVTablePointer(BaseSubobject Base, llvm::Constant *VTable,
91 void ConstStructBuilder::AppendVTablePointer(BaseSubobject Base,
96 CGM.getVTableContext().getVTableLayout(VTableClass).getAddressPoint(Base);
105 AppendBytes(Base.getBaseOffset(), VTableAddressPoint);
461 for (CXXRecordDecl::base_class_const_iterator Base = CD->bases_begin(),
462 BaseEnd = CD->bases_end(); Base != BaseEnd; ++Base, ++BaseNo) {
463 assert(!Base->isVirtual() && "should not have virtual bases here");
464 const CXXRecordDecl *BD = Base->getType()->getAsCXXRecordDecl();
471 BaseInfo &Base = Bases[I];
473 bool IsPrimaryBase = Layout.getPrimaryBase() == Base.Decl;
474 Build(Val.getStructBase(Base.Index), Base.Decl, IsPrimaryBase,
475 VTable, VTableClass, Offset + Base.Offset);
1072 // An array can be represented as an lvalue referring to the base.
1340 const CXXRecordDecl *base);
1362 const CXXRecordDecl *base =
1366 if (base->isEmpty())
1369 unsigned fieldIndex = layout.getNonVirtualBaseLLVMFieldNo(base);
1371 elements[fieldIndex] = EmitNullConstantForBase(CGM, baseType, base);
1395 const CXXRecordDecl *base =
1399 if (base->isEmpty())
1402 unsigned fieldIndex = layout.getVirtualBaseIndex(base);
1408 elements[fieldIndex] = EmitNullConstantForBase(CGM, baseType, base);
1421 /// Emit the null constant for a base subobject.
1424 const CXXRecordDecl *base) {
1425 const CGRecordLayout &baseLayout = CGM.getTypes().getCGRecordLayout(base);
1431 // If the base type is a struct, we can just use its null constant.
1433 return EmitNullConstant(CGM, base, /*complete*/ false);
1437 // of the base is smaller than its corresponding LLVM type. Figure
1438 // out how many elements this base array has.
1444 FillInNullDataMemberPointers(CGM, CGM.getContext().getTypeDeclType(base),