Lines Matching defs:Layout
143 getFieldOffset(const ASTRecordLayout &Layout, unsigned FieldNo) const {
144 uint64_t FieldOffset = Layout.getFieldOffset(FieldNo);
193 const ASTRecordLayout &Layout = Context.getASTRecordLayout(BaseDecl);
196 EmptySize = Layout.getSize();
199 EmptySize = Layout.getSizeOfLargestEmptySubobject();
217 const ASTRecordLayout &Layout = Context.getASTRecordLayout(MemberDecl);
220 EmptySize = Layout.getSize();
223 EmptySize = Layout.getSizeOfLargestEmptySubobject();
281 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
286 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base->Class);
308 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
331 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
336 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base->Class);
355 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
388 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
397 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(BaseDecl);
407 CharUnits VBaseOffset = Offset + Layout.getVBaseClassOffset(VBaseDecl);
420 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
449 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
462 ElementOffset += Layout.getSize();
499 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
508 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(BaseDecl);
518 CharUnits VBaseOffset = Offset + Layout.getVBaseClassOffset(VBaseDecl);
531 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
553 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
570 ElementOffset += Layout.getSize();
717 void Layout(const RecordDecl *D);
718 void Layout(const CXXRecordDecl *D);
719 void Layout(const ObjCInterfaceDecl *D);
943 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
944 if (Layout.isPrimaryBaseVirtual()) {
946 PrimaryVirtualBase = Layout.getPrimaryBase();
1108 // Layout the base.
1141 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
1146 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base->Class);
1160 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
1161 PrimaryBase = Layout.getPrimaryBase();
1162 PrimaryBaseIsVirtual = Layout.isPrimaryBaseVirtual();
1201 // Layout the base.
1216 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Base->Class);
1239 CharUnits UnpackedBaseAlign = Layout.getNonVirtualAlignment();
1240 CharUnits UnpackedPreferredBaseAlign = Layout.getPreferredNVAlignment();
1270 setSize(std::max(getSize(), Layout.getSize()));
1310 setDataSize(Offset + Layout.getNonVirtualSize());
1314 setSize(std::max(getSize(), Offset + Layout.getSize()));
1381 void ItaniumRecordLayoutBuilder::Layout(const RecordDecl *D) {
1390 void ItaniumRecordLayoutBuilder::Layout(const CXXRecordDecl *RD) {
1430 void ItaniumRecordLayoutBuilder::Layout(const ObjCInterfaceDecl *D) {
1443 // Layout each ivar sequentially.
1454 // Layout each field, for now, just sequentially, respecting alignment. In
1926 const ASTRecordLayout &Layout = Context.getASTRecordLayout(FieldClass);
1928 std::max(Layout.getNonVirtualSize(), Layout.getDataSize());
2601 ElementInfo getAdjustedElementInfo(const ASTRecordLayout &Layout);
2685 const ASTRecordLayout &Layout) {
2687 Info.Alignment = Layout.getAlignment();
2692 EndsWithZeroSizedObject = Layout.endsWithZeroSizedObject();
2697 RequiredAlignment = std::max(RequiredAlignment, Layout.getRequiredAlignment());
2698 Info.Alignment = std::max(Info.Alignment, Layout.getRequiredAlignment());
2699 Info.Size = Layout.getNonVirtualSize();
2726 auto const &Layout = Context.getASTRecordLayout(RT->getDecl());
2727 EndsWithZeroSizedObject = Layout.endsWithZeroSizedObject();
2729 Layout.getRequiredAlignment());
2913 const ASTRecordLayout &Layout = Context.getASTRecordLayout(SharedVBPtrBase);
2914 VBPtrOffset = Bases[SharedVBPtrBase] + Layout.getVBPtrOffset();
3273 const ASTRecordLayout &Layout = Context.getASTRecordLayout(BaseDecl);
3274 if (Layout.hasExtendableVFPtr())
3284 const ASTRecordLayout &Layout = Context.getASTRecordLayout(BaseDecl);
3285 for (const auto &bi : Layout.getVBaseOffsetsMap())
3385 Builder.Layout(RD);
3411 Builder.Layout(D);
3424 llvm::outs() << "\n*** Dumping AST Record Layout\n";
3478 const ASTRecordLayout &Layout = C.getASTRecordLayout(FD->getParent());
3479 return Layout.getFieldOffset(FD->getFieldIndex());
3566 Builder.Layout(D);
3615 const ASTRecordLayout &Layout = C.getASTRecordLayout(RD);
3630 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase();
3631 bool HasOwnVFPtr = Layout.hasOwnVFPtr();
3632 bool HasOwnVBPtr = Layout.hasOwnVBPtr();
3656 return Layout.getBaseClassOffset(L) < Layout.getBaseClassOffset(R);
3661 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base);
3670 PrintOffset(OS, Offset + Layout.getVBPtrOffset(), IndentLevel);
3680 uint64_t LocalFieldOffsetInBits = Layout.getFieldOffset(FieldNo);
3710 Layout.getVBaseOffsetsMap();
3716 CharUnits VBaseOffset = Offset + Layout.getVBaseClassOffset(VBase);
3724 VBase == Layout.getPrimaryBase() ?
3734 OS << "[sizeof=" << Layout.getSize().getQuantity();
3736 OS << ", dsize=" << Layout.getDataSize().getQuantity();
3737 OS << ", align=" << Layout.getAlignment().getQuantity();
3739 OS << ", preferredalign=" << Layout.getPreferredAlignment().getQuantity();
3744 OS << " nvsize=" << Layout.getNonVirtualSize().getQuantity();
3745 OS << ", nvalign=" << Layout.getNonVirtualAlignment().getQuantity();
3748 << Layout.getPreferredNVAlignment().getQuantity();