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);
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.
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.
struct clang::ReturnAdjustment::VirtualAdjustment::@113 Itanium
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.
bool Equals(const VirtualAdjustment &Other) const
union clang::ReturnAdjustment::VirtualAdjustment Virtual
struct clang::ThisAdjustment::VirtualAdjustment::@115 Itanium
CXXDtorType
C++ destructor types.
friend bool operator!=(const ThisAdjustment &LHS, const ThisAdjustment &RHS)
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.
struct clang::ReturnAdjustment::VirtualAdjustment::@114 Microsoft
Represents a static or instance method of a struct/union/class.
struct clang::ThisAdjustment::VirtualAdjustment::@116 Microsoft
bool Less(const VirtualAdjustment &RHS) 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)
ThisAdjustment This
The this pointer adjustment.
bool Less(const VirtualAdjustment &RHS) const
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
ReturnAdjustment Return
The return adjustment.
bool Equals(const VirtualAdjustment &Other) const
int32_t VtordispOffset
The offset of the vtordisp (in bytes), relative to the ECX.
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...