LLVM: include/llvm/DebugInfo/CodeView/Line.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_DEBUGINFO_CODEVIEW_LINE_H

10#define LLVM_DEBUGINFO_CODEVIEW_LINE_H

11

14#include

15

16namespace llvm {

18

20

22public:

26 };

27

29

34 };

35

38

40

44

46

48

50

54

58

59private:

61};

62

64private:

65 static const uint32_t StartColumnMask = 0x0000ffffu;

66 static const uint32_t EndColumnMask = 0xffff0000u;

67 static const int EndColumnShift = 16;

68

69public:

71 ColumnData =

72 (static_cast<uint32_t>(StartColumn) & StartColumnMask) |

73 ((static_cast<uint32_t>(EndColumn) << EndColumnShift) & EndColumnMask);

74 }

75

77 return static_cast<uint16_t>(ColumnData & StartColumnMask);

78 }

79

81 return static_cast<uint16_t>((ColumnData & EndColumnMask) >>

82 EndColumnShift);

83 }

84

86

87private:

89};

90

92private:

93 int32_t CodeOffset;

96

97public:

100 : CodeOffset(CodeOffset), LineInf(StartLine, EndLine, IsStatement),

101 ColumnInf(StartColumn, EndColumn) {}

102

104 : CodeOffset(CodeOffset), LineInf(LineInf), ColumnInf(ColumnInf) {}

105

107

109

111

113

115

117

119

121

122 bool isStatement() const { return LineInf.isStatement(); }

123

125

127};

128

129}

130}

131

132#endif

ColumnInfo(uint16_t StartColumn, uint16_t EndColumn)

Definition Line.h:70

uint32_t getRawData() const

Definition Line.h:85

uint16_t getStartColumn() const

Definition Line.h:76

uint16_t getEndColumn() const

Definition Line.h:80

bool isNeverStepInto() const

Definition Line.h:55

bool isStatement() const

Definition Line.h:47

@ EndLineDeltaShift

Definition Line.h:28

uint32_t getRawData() const

Definition Line.h:49

LineInfo(uint32_t LineData)

Definition Line.h:37

@ NeverStepIntoLineNumber

Definition Line.h:25

@ AlwaysStepIntoLineNumber

Definition Line.h:24

@ StatementFlag

Definition Line.h:33

@ StartLineMask

Definition Line.h:31

@ EndLineDeltaMask

Definition Line.h:32

uint32_t getLineDelta() const

Definition Line.h:41

bool isAlwaysStepInto() const

Definition Line.h:51

uint32_t getEndLine() const

Definition Line.h:45

LLVM_ABI LineInfo(uint32_t StartLine, uint32_t EndLine, bool IsStatement)

uint32_t getStartLine() const

Definition Line.h:39

uint16_t getEndColumn() const

Definition Line.h:120

uint16_t getStartColumn() const

Definition Line.h:118

int32_t getCodeOffset() const

Definition Line.h:110

bool isAlwaysStepInto() const

Definition Line.h:124

uint32_t getLineDelta() const

Definition Line.h:114

ColumnInfo getColumnInfo() const

Definition Line.h:108

LineInfo getLineInfo() const

Definition Line.h:106

bool isStatement() const

Definition Line.h:122

uint32_t getStartLine() const

Definition Line.h:112

Line(int32_t CodeOffset, LineInfo LineInf, ColumnInfo ColumnInf)

Definition Line.h:103

bool isNeverStepInto() const

Definition Line.h:126

Line(int32_t CodeOffset, uint32_t StartLine, uint32_t EndLine, uint16_t StartColumn, uint16_t EndColumn, bool IsStatement)

Definition Line.h:98

uint32_t getEndLine() const

Definition Line.h:116

detail::packed_endian_specific_integral< uint32_t, llvm::endianness::little, unaligned > ulittle32_t

This is an optimization pass for GlobalISel generic memory operations.