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.