clang: include/clang/Basic/Thunk.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_CLANG_BASIC_THUNK_H

16#define LLVM_CLANG_BASIC_THUNK_H

17

18#include

19#include

20

22

23class CXXMethodDecl;

25

26

28

29

31

32

33

35

36 struct {

37

38

41

42

43 struct {

44

45

47

48

51

53

55 return memcmp(this, &Other, sizeof(Other)) == 0;

56 }

57

61 }

62

64 return memcmp(this, &RHS, sizeof(RHS)) < 0;

65 }

67

69

71

75 }

76

79 return !(LHS == RHS);

80 }

81

85 return true;

86

88 }

89};

90

91

93

94

96

97

98

100

101 struct {

102

103

106

107 struct {

108

110

111

112

114

115

118

120

122 return memcmp(this, &Other, sizeof(Other)) == 0;

123 }

124

128 }

129

131 return memcmp(this, &RHS, sizeof(RHS)) < 0;

132 }

134

136

138

141 }

142

144 return !(LHS == RHS);

145 }

146

149 return true;

150

152 }

153};

154

155

156

158

160

161

163

164

165

166

167

168

169

170

171

174

176

180

184 }

185

188 }

189};

190

191}

192

193#endif

__DEVICE__ void * memset(void *__a, int __b, size_t __c)

Represents a static or instance method of a struct/union/class.

The base class of the type hierarchy.

The JSON file list parser is used to communicate input to InstallAPI.

@ Other

Other implicit parameter.

friend bool operator==(const ReturnAdjustment &LHS, const ReturnAdjustment &RHS)

friend bool operator!=(const ReturnAdjustment &LHS, const ReturnAdjustment &RHS)

union clang::ReturnAdjustment::VirtualAdjustment Virtual

int64_t NonVirtual

The non-virtual adjustment from the derived object to its nearest virtual base.

friend bool operator<(const ReturnAdjustment &LHS, const ReturnAdjustment &RHS)

ReturnAdjustment()=default

A this pointer adjustment.

friend bool operator<(const ThisAdjustment &LHS, const ThisAdjustment &RHS)

friend bool operator==(const ThisAdjustment &LHS, const ThisAdjustment &RHS)

union clang::ThisAdjustment::VirtualAdjustment Virtual

friend bool operator!=(const ThisAdjustment &LHS, const ThisAdjustment &RHS)

int64_t NonVirtual

The non-virtual adjustment from the derived object to its nearest virtual base.

The this pointer adjustment as well as an optional return adjustment for a thunk.

ThisAdjustment This

The 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...

ReturnAdjustment Return

The return adjustment.

friend bool operator==(const ThunkInfo &LHS, const ThunkInfo &RHS)

ThunkInfo(const ThisAdjustment &This, const ReturnAdjustment &Return, const Type *ThisT, const CXXMethodDecl *Method=nullptr)

Holds the ABI-specific information about the virtual return adjustment, if needed.

struct clang::ReturnAdjustment::VirtualAdjustment::@193 Microsoft

bool Less(const VirtualAdjustment &RHS) const

uint32_t VBPtrOffset

The offset (in bytes) of the vbptr, relative to the beginning of the derived class.

struct clang::ReturnAdjustment::VirtualAdjustment::@192 Itanium

bool Equals(const VirtualAdjustment &Other) const

int64_t VBaseOffsetOffset

The offset (in bytes), relative to the address point of the virtual base class offset.

uint32_t VBIndex

Index of the virtual base in the vbtable.

Holds the ABI-specific information about the virtual this adjustment, if needed.

bool Equals(const VirtualAdjustment &Other) const

int32_t VtordispOffset

The offset of the vtordisp (in bytes), relative to the ECX.

bool Less(const VirtualAdjustment &RHS) const

int32_t VBOffsetOffset

The offset (in bytes) of the vbase offset in the vbtable.

int64_t VCallOffsetOffset

The offset (in bytes), relative to the address point, of the virtual call offset.

int32_t VBPtrOffset

The offset of the vbptr of the derived class (in bytes), relative to the ECX after vtordisp adjustmen...

struct clang::ThisAdjustment::VirtualAdjustment::@195 Microsoft

struct clang::ThisAdjustment::VirtualAdjustment::@194 Itanium