16 #ifndef LLVM_CLANG_BASIC_ABI_H 17 #define LLVM_CLANG_BASIC_ABI_H 19 #include "llvm/Support/DataTypes.h" 68 memset(
this, 0,
sizeof(*
this));
72 return memcmp(
this, &Other,
sizeof(Other)) == 0;
81 return memcmp(
this, &RHS,
sizeof(RHS)) < 0;
136 memset(
this, 0,
sizeof(*
this));
140 return memcmp(
this, &Other,
sizeof(Other)) == 0;
149 return memcmp(
this, &RHS,
sizeof(RHS)) < 0;
163 return !(LHS == RHS);
197 : This(This), Return(Return), Method(Method) {}
friend bool operator==(const ThisAdjustment &LHS, const ThisAdjustment &RHS)
uint32_t VBPtrOffset
The offset (in bytes) of the vbptr, relative to the beginning of the derived class.
The COMDAT used for ctors.
bool Less(const VirtualAdjustment &RHS) const
int64_t NonVirtual
The non-virtual adjustment from the derived object to its nearest virtual base.
Default closure variant of a ctor.
Holds the ABI-specific information about the virtual return adjustment, if needed.
A this pointer adjustment.
const CXXMethodDecl * Method
Holds a pointer to the overridden method this thunk is for, if needed by the ABI to distinguish diffe...
friend bool operator!=(const ReturnAdjustment &LHS, const ReturnAdjustment &RHS)
int32_t VBOffsetOffset
The offset (in bytes) of the vbase offset in the vbtable.
The this pointer adjustment as well as an optional return adjustment for a thunk. ...
friend bool operator==(const ReturnAdjustment &LHS, const ReturnAdjustment &RHS)
friend bool operator<(const ReturnAdjustment &LHS, const ReturnAdjustment &RHS)
Holds the ABI-specific information about the virtual this adjustment, if needed.
union clang::ReturnAdjustment::VirtualAdjustment Virtual
CXXDtorType
C++ destructor types.
friend bool operator!=(const ThisAdjustment &LHS, const ThisAdjustment &RHS)
bool Equals(const VirtualAdjustment &Other) const
The COMDAT used for dtors.
ThunkInfo(const ThisAdjustment &This, const ReturnAdjustment &Return, const CXXMethodDecl *Method=nullptr)
int64_t NonVirtual
The non-virtual adjustment from the derived object to its nearest virtual base.
bool Less(const VirtualAdjustment &RHS) const
Represents a static or instance method of a struct/union/class.
bool Equals(const VirtualAdjustment &Other) const
int64_t VCallOffsetOffset
The offset (in bytes), relative to the address point, of the virtual call offset. ...
CXXCtorType
C++ constructor types.
friend bool operator==(const ThunkInfo &LHS, const ThunkInfo &RHS)
Dataflow Directional Tag Classes.
ThisAdjustment This
The this pointer adjustment.
int64_t VBaseOffsetOffset
The offset (in bytes), relative to the address point of the virtual base class offset.
friend bool operator<(const ThisAdjustment &LHS, const ThisAdjustment &RHS)
union clang::ThisAdjustment::VirtualAdjustment Virtual
struct clang::ReturnAdjustment::VirtualAdjustment::@116 Itanium
ReturnAdjustment Return
The return adjustment.
int32_t VtordispOffset
The offset of the vtordisp (in bytes), relative to the ECX.
struct clang::ReturnAdjustment::VirtualAdjustment::@117 Microsoft
Copying closure variant of a ctor.
uint32_t VBIndex
Index of the virtual base in the vbtable.
int32_t VBPtrOffset
The offset of the vbptr of the derived class (in bytes), relative to the ECX after vtordisp adjustmen...