reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
103 return Constant<std::alignment_of<T>::value>();
include/llvm/Support/Allocator.h81 template <typename T> T *Allocate(size_t Num = 1) { 82 return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T))); 82 return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T))); 470 for (char *Ptr = Begin; Ptr + sizeof(T) <= End; Ptr += sizeof(T)) 470 for (char *Ptr = Begin; Ptr + sizeof(T) <= End; Ptr += sizeof(T)) 478 char *Begin = (char *)alignAddr(*I, Align::Of<T>()); 488 DestroyElements((char *)alignAddr(Ptr, Align::Of<T>()), 496 T *Allocate(size_t num = 1) { return Allocator.Allocate<T>(num); } 496 T *Allocate(size_t num = 1) { return Allocator.Allocate<T>(num); }tools/clang/lib/AST/RecordLayoutBuilder.cpp
46 SmallVector<BaseSubobjectInfo*, 4> Bases; 50 BaseSubobjectInfo *PrimaryVirtualBaseInfo; 53 const BaseSubobjectInfo *Derived; 126 void UpdateEmptyBaseSubobjects(const BaseSubobjectInfo *Info, 154 bool CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info, 178 bool CanPlaceBaseAtOffset(const BaseSubobjectInfo *Info, 269 EmptySubobjectMap::CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info, 281 for (const BaseSubobjectInfo *Base : Info->Bases) { 292 BaseSubobjectInfo *PrimaryVirtualBaseInfo = Info->PrimaryVirtualBaseInfo; 315 void EmptySubobjectMap::UpdateEmptyBaseSubobjects(const BaseSubobjectInfo *Info, 331 for (const BaseSubobjectInfo *Base : Info->Bases) { 340 BaseSubobjectInfo *PrimaryVirtualBaseInfo = Info->PrimaryVirtualBaseInfo; 359 bool EmptySubobjectMap::CanPlaceBaseAtOffset(const BaseSubobjectInfo *Info, 707 llvm::SpecificBumpPtrAllocator<BaseSubobjectInfo> BaseSubobjectInfoAllocator; 709 typedef llvm::DenseMap<const CXXRecordDecl *, BaseSubobjectInfo *> 726 BaseSubobjectInfo *ComputeBaseSubobjectInfo(const CXXRecordDecl *RD, 728 BaseSubobjectInfo *Derived); 742 void LayoutNonVirtualBase(const BaseSubobjectInfo *Base); 744 void AddPrimaryVirtualBaseOffsets(const BaseSubobjectInfo *Info, 752 void LayoutVirtualBase(const BaseSubobjectInfo *Base); 756 CharUnits LayoutBase(const BaseSubobjectInfo *Base); 885 BaseSubobjectInfo *ItaniumRecordLayoutBuilder::ComputeBaseSubobjectInfo( 886 const CXXRecordDecl *RD, bool IsVirtual, BaseSubobjectInfo *Derived) { 887 BaseSubobjectInfo *Info; 891 BaseSubobjectInfo *&InfoSlot = VirtualBaseInfo[RD]; 898 InfoSlot = new (BaseSubobjectInfoAllocator.Allocate()) BaseSubobjectInfo; 901 Info = new (BaseSubobjectInfoAllocator.Allocate()) BaseSubobjectInfo; 910 BaseSubobjectInfo *PrimaryVirtualBaseInfo = nullptr; 970 BaseSubobjectInfo *Info = ComputeBaseSubobjectInfo(BaseDecl, IsVirtual, 1016 BaseSubobjectInfo *PrimaryBaseInfo = VirtualBaseInfo.lookup(PrimaryBase); 1028 BaseSubobjectInfo *PrimaryBaseInfo = 1066 BaseSubobjectInfo *BaseInfo = NonVirtualBaseInfo.lookup(BaseDecl); 1074 const BaseSubobjectInfo *Base) { 1086 const BaseSubobjectInfo *Info, CharUnits Offset) { 1109 for (const BaseSubobjectInfo *Base : Info->Bases) { 1148 const BaseSubobjectInfo *BaseInfo = VirtualBaseInfo.lookup(BaseDecl); 1165 const BaseSubobjectInfo *Base) { 1180 ItaniumRecordLayoutBuilder::LayoutBase(const BaseSubobjectInfo *Base) {