Lines Matching refs:Layout

97   getFieldOffset(const ASTRecordLayout &Layout, unsigned FieldNo) const {
98 uint64_t FieldOffset = Layout.getFieldOffset(FieldNo);
149 const ASTRecordLayout &Layout = Context.getASTRecordLayout(BaseDecl);
152 EmptySize = Layout.getSize();
155 EmptySize = Layout.getSizeOfLargestEmptySubobject();
175 const ASTRecordLayout &Layout = Context.getASTRecordLayout(MemberDecl);
178 EmptySize = Layout.getSize();
181 EmptySize = Layout.getSizeOfLargestEmptySubobject();
239 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
245 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base->Class);
267 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
290 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
296 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base->Class);
315 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
348 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
359 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(BaseDecl);
371 CharUnits VBaseOffset = Offset + Layout.getVBaseClassOffset(VBaseDecl);
384 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
415 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
428 ElementOffset += Layout.getSize();
460 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
471 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(BaseDecl);
482 CharUnits VBaseOffset = Offset + Layout.getVBaseClassOffset(VBaseDecl);
494 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
517 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
532 ElementOffset += Layout.getSize();
667 void Layout(const RecordDecl *D);
668 void Layout(const CXXRecordDecl *D);
669 void Layout(const ObjCInterfaceDecl *D);
896 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
897 if (Layout.isPrimaryBaseVirtual()) {
899 PrimaryVirtualBase = Layout.getPrimaryBase();
1061 // Layout the base.
1095 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
1101 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base->Class);
1116 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
1117 PrimaryBase = Layout.getPrimaryBase();
1118 PrimaryBaseIsVirtual = Layout.isPrimaryBaseVirtual();
1158 // Layout the base.
1170 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Base->Class);
1194 CharUnits UnpackedBaseAlign = Layout.getNonVirtualAlign();
1201 setSize(std::max(getSize(), Layout.getSize()));
1235 setDataSize(Offset + Layout.getNonVirtualSize());
1239 setSize(std::max(getSize(), Offset + Layout.getSize()));
1298 void RecordLayoutBuilder::Layout(const RecordDecl *D) {
1307 void RecordLayoutBuilder::Layout(const CXXRecordDecl *RD) {
1351 void RecordLayoutBuilder::Layout(const ObjCInterfaceDecl *D) {
1364 // Layout each ivar sequentially.
1375 // Layout each field, for now, just sequentially, respecting alignment. In
2249 const ASTRecordLayout &Layout = Context.getASTRecordLayout(BaseDecl);
2251 if (Layout.getAlignAfterVBases())
2255 VirtualAlignment = std::max(VirtualAlignment, Layout.getAlignment());
2260 if (!PrimaryBase && Layout.hasExtendableVFPtr()) {
2265 if (!SharedVBPtrBase && Layout.hasVBPtr()) {
2269 updateAlignment(Layout.getAlignment());
2332 const ASTRecordLayout *Layout = RD ? &Context.getASTRecordLayout(RD) : 0;
2345 if (RD && Layout->getNonVirtualSize().isZero()) {
2357 if (Layout->getNonVirtualSize().isZero()) {
2363 CharUnits BaseOffset = Size.RoundUpToAlignment(Layout->getAlignment());
2365 Size = BaseOffset + Layout->getDataSize();
2369 LastNonVirtualBaseHasVBPtr = Layout->hasVBPtr();
2376 const ASTRecordLayout &Layout = Context.getASTRecordLayout(SharedVBPtrBase);
2377 VBPtrOffset = Bases[SharedVBPtrBase] + Layout.getVBPtrOffset();
2556 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
2557 if (Layout.getNonVirtualSize().isZero() && !HasVtordisp) {
2562 CharUnits BaseNVSize = Layout.getNonVirtualSize();
2563 CharUnits BaseAlign = Layout.getAlignment();
2627 const ASTRecordLayout &Layout = Context.getASTRecordLayout(BaseDecl);
2629 bi = Layout.getVBaseOffsetsMap().begin(),
2630 be = Layout.getVBaseOffsetsMap().end();
2734 Builder.Layout(RD);
2765 Builder.Layout(D);
2778 llvm::outs() << "\n*** Dumping AST Record Layout\n";
2821 const ASTRecordLayout &Layout = C.getASTRecordLayout(FD->getParent());
2822 return Layout.getFieldOffset(FD->getFieldIndex());
2874 Builder.Layout(D);
2905 const ASTRecordLayout &Layout = C.getASTRecordLayout(RD);
2917 const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBase();
2918 bool HasOwnVFPtr = Layout.hasOwnVFPtr();
2919 bool HasOwnVBPtr = Layout.hasOwnVBPtr();
2942 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base);
2951 PrintOffset(OS, Offset + Layout.getVBPtrOffset(), IndentLevel);
2961 C.toCharUnitsFromBits(Layout.getFieldOffset(FieldNo));
2981 Layout.getVBaseOffsetsMap();
2988 CharUnits VBaseOffset = Offset + Layout.getVBaseClassOffset(VBase);
3002 OS << "[sizeof=" << Layout.getSize().getQuantity();
3004 OS << ", dsize=" << Layout.getDataSize().getQuantity();
3005 OS << ", align=" << Layout.getAlignment().getQuantity() << '\n';
3008 OS << " nvsize=" << Layout.getNonVirtualSize().getQuantity();
3009 OS << ", nvalign=" << Layout.getNonVirtualAlign().getQuantity() << "]\n";