Mercurial > hg > CbC > CbC_llvm
comparison lib/DebugInfo/PDB/PDBExtras.cpp @ 120:1172e4bd9c6f
update 4.0.0
author | mir3636 |
---|---|
date | Fri, 25 Nov 2016 19:14:25 +0900 |
parents | 7d135dc70f03 |
children | 803732b1fca8 |
comparison
equal
deleted
inserted
replaced
101:34baf5011add | 120:1172e4bd9c6f |
---|---|
10 #include "llvm/DebugInfo/PDB/PDBExtras.h" | 10 #include "llvm/DebugInfo/PDB/PDBExtras.h" |
11 | 11 |
12 #include "llvm/ADT/ArrayRef.h" | 12 #include "llvm/ADT/ArrayRef.h" |
13 | 13 |
14 using namespace llvm; | 14 using namespace llvm; |
15 using namespace llvm::pdb; | |
15 | 16 |
16 #define CASE_OUTPUT_ENUM_CLASS_STR(Class, Value, Str, Stream) \ | 17 #define CASE_OUTPUT_ENUM_CLASS_STR(Class, Value, Str, Stream) \ |
17 case Class::Value: \ | 18 case Class::Value: \ |
18 Stream << Str; \ | 19 Stream << Str; \ |
19 break; | 20 break; |
20 | 21 |
21 #define CASE_OUTPUT_ENUM_CLASS_NAME(Class, Value, Stream) \ | 22 #define CASE_OUTPUT_ENUM_CLASS_NAME(Class, Value, Stream) \ |
22 CASE_OUTPUT_ENUM_CLASS_STR(Class, Value, #Value, Stream) | 23 CASE_OUTPUT_ENUM_CLASS_STR(Class, Value, #Value, Stream) |
23 | 24 |
24 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_VariantType &Type) { | 25 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, |
26 const PDB_VariantType &Type) { | |
25 switch (Type) { | 27 switch (Type) { |
26 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_VariantType, Bool, OS) | 28 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_VariantType, Bool, OS) |
27 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_VariantType, Single, OS) | 29 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_VariantType, Single, OS) |
28 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_VariantType, Double, OS) | 30 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_VariantType, Double, OS) |
29 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_VariantType, Int8, OS) | 31 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_VariantType, Int8, OS) |
38 OS << "Unknown"; | 40 OS << "Unknown"; |
39 } | 41 } |
40 return OS; | 42 return OS; |
41 } | 43 } |
42 | 44 |
43 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_CallingConv &Conv) { | 45 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, |
46 const PDB_CallingConv &Conv) { | |
44 OS << "__"; | 47 OS << "__"; |
45 switch (Conv) { | 48 switch (Conv) { |
46 CASE_OUTPUT_ENUM_CLASS_STR(PDB_CallingConv, NearC , "cdecl", OS) | 49 CASE_OUTPUT_ENUM_CLASS_STR(PDB_CallingConv, NearC , "cdecl", OS) |
47 CASE_OUTPUT_ENUM_CLASS_STR(PDB_CallingConv, FarC , "cdecl", OS) | 50 CASE_OUTPUT_ENUM_CLASS_STR(PDB_CallingConv, FarC , "cdecl", OS) |
48 CASE_OUTPUT_ENUM_CLASS_STR(PDB_CallingConv, NearPascal , "pascal", OS) | 51 CASE_OUTPUT_ENUM_CLASS_STR(PDB_CallingConv, NearPascal , "pascal", OS) |
69 CASE_OUTPUT_ENUM_CLASS_STR(PDB_CallingConv, NearVector , "vectorcall", OS) | 72 CASE_OUTPUT_ENUM_CLASS_STR(PDB_CallingConv, NearVector , "vectorcall", OS) |
70 } | 73 } |
71 return OS; | 74 return OS; |
72 } | 75 } |
73 | 76 |
74 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_DataKind &Data) { | 77 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, const PDB_DataKind &Data) { |
75 switch (Data) { | 78 switch (Data) { |
76 CASE_OUTPUT_ENUM_CLASS_STR(PDB_DataKind, Unknown, "unknown", OS) | 79 CASE_OUTPUT_ENUM_CLASS_STR(PDB_DataKind, Unknown, "unknown", OS) |
77 CASE_OUTPUT_ENUM_CLASS_STR(PDB_DataKind, Local, "local", OS) | 80 CASE_OUTPUT_ENUM_CLASS_STR(PDB_DataKind, Local, "local", OS) |
78 CASE_OUTPUT_ENUM_CLASS_STR(PDB_DataKind, StaticLocal, "static local", OS) | 81 CASE_OUTPUT_ENUM_CLASS_STR(PDB_DataKind, StaticLocal, "static local", OS) |
79 CASE_OUTPUT_ENUM_CLASS_STR(PDB_DataKind, Param, "param", OS) | 82 CASE_OUTPUT_ENUM_CLASS_STR(PDB_DataKind, Param, "param", OS) |
85 CASE_OUTPUT_ENUM_CLASS_STR(PDB_DataKind, Constant, "const", OS) | 88 CASE_OUTPUT_ENUM_CLASS_STR(PDB_DataKind, Constant, "const", OS) |
86 } | 89 } |
87 return OS; | 90 return OS; |
88 } | 91 } |
89 | 92 |
90 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_RegisterId &Reg) { | 93 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, |
94 const codeview::RegisterId &Reg) { | |
91 switch (Reg) { | 95 switch (Reg) { |
92 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, AL, OS) | 96 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, AL, OS) |
93 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, CL, OS) | 97 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, CL, OS) |
94 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, DL, OS) | 98 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, DL, OS) |
95 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, BL, OS) | 99 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, BL, OS) |
96 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, AH, OS) | 100 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, AH, OS) |
97 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, CH, OS) | 101 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, CH, OS) |
98 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, DH, OS) | 102 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, DH, OS) |
99 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, BH, OS) | 103 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, BH, OS) |
100 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, AX, OS) | 104 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, AX, OS) |
101 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, CX, OS) | 105 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, CX, OS) |
102 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, DX, OS) | 106 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, DX, OS) |
103 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, BX, OS) | 107 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, BX, OS) |
104 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, SP, OS) | 108 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, SP, OS) |
105 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, BP, OS) | 109 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, BP, OS) |
106 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, SI, OS) | 110 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, SI, OS) |
107 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, DI, OS) | 111 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, DI, OS) |
108 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, EAX, OS) | 112 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, EAX, OS) |
109 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, ECX, OS) | 113 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, ECX, OS) |
110 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, EDX, OS) | 114 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, EDX, OS) |
111 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, EBX, OS) | 115 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, EBX, OS) |
112 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, ESP, OS) | 116 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, ESP, OS) |
113 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, EBP, OS) | 117 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, EBP, OS) |
114 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, ESI, OS) | 118 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, ESI, OS) |
115 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, EDI, OS) | 119 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, EDI, OS) |
116 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, ES, OS) | 120 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, ES, OS) |
117 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, CS, OS) | 121 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, CS, OS) |
118 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, SS, OS) | 122 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, SS, OS) |
119 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, DS, OS) | 123 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, DS, OS) |
120 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, FS, OS) | 124 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, FS, OS) |
121 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, GS, OS) | 125 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, GS, OS) |
122 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, IP, OS) | 126 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, IP, OS) |
123 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, RAX, OS) | 127 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, RAX, OS) |
124 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, RBX, OS) | 128 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, RBX, OS) |
125 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, RCX, OS) | 129 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, RCX, OS) |
126 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, RDX, OS) | 130 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, RDX, OS) |
127 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, RSI, OS) | 131 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, RSI, OS) |
128 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, RDI, OS) | 132 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, RDI, OS) |
129 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, RBP, OS) | 133 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, RBP, OS) |
130 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, RSP, OS) | 134 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, RSP, OS) |
131 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, R8, OS) | 135 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, R8, OS) |
132 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, R9, OS) | 136 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, R9, OS) |
133 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, R10, OS) | 137 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, R10, OS) |
134 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, R11, OS) | 138 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, R11, OS) |
135 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, R12, OS) | 139 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, R12, OS) |
136 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, R13, OS) | 140 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, R13, OS) |
137 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, R14, OS) | 141 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, R14, OS) |
138 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, R15, OS) | 142 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::RegisterId, R15, OS) |
139 default: | 143 default: |
140 OS << static_cast<int>(Reg); | 144 OS << static_cast<int>(Reg); |
141 } | 145 } |
142 return OS; | 146 return OS; |
143 } | 147 } |
144 | 148 |
145 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_LocType &Loc) { | 149 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, const PDB_LocType &Loc) { |
146 switch (Loc) { | 150 switch (Loc) { |
147 CASE_OUTPUT_ENUM_CLASS_STR(PDB_LocType, Static, "static", OS) | 151 CASE_OUTPUT_ENUM_CLASS_STR(PDB_LocType, Static, "static", OS) |
148 CASE_OUTPUT_ENUM_CLASS_STR(PDB_LocType, TLS, "tls", OS) | 152 CASE_OUTPUT_ENUM_CLASS_STR(PDB_LocType, TLS, "tls", OS) |
149 CASE_OUTPUT_ENUM_CLASS_STR(PDB_LocType, RegRel, "regrel", OS) | 153 CASE_OUTPUT_ENUM_CLASS_STR(PDB_LocType, RegRel, "regrel", OS) |
150 CASE_OUTPUT_ENUM_CLASS_STR(PDB_LocType, ThisRel, "thisrel", OS) | 154 CASE_OUTPUT_ENUM_CLASS_STR(PDB_LocType, ThisRel, "thisrel", OS) |
158 OS << "Unknown"; | 162 OS << "Unknown"; |
159 } | 163 } |
160 return OS; | 164 return OS; |
161 } | 165 } |
162 | 166 |
163 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_ThunkOrdinal &Thunk) { | 167 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, |
168 const codeview::ThunkOrdinal &Thunk) { | |
164 switch (Thunk) { | 169 switch (Thunk) { |
165 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_ThunkOrdinal, BranchIsland, OS) | 170 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::ThunkOrdinal, BranchIsland, OS) |
166 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_ThunkOrdinal, Pcode, OS) | 171 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::ThunkOrdinal, Pcode, OS) |
167 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_ThunkOrdinal, Standard, OS) | 172 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::ThunkOrdinal, Standard, OS) |
168 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_ThunkOrdinal, ThisAdjustor, OS) | 173 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::ThunkOrdinal, ThisAdjustor, OS) |
169 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_ThunkOrdinal, TrampIncremental, OS) | 174 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::ThunkOrdinal, TrampIncremental, OS) |
170 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_ThunkOrdinal, UnknownLoad, OS) | 175 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::ThunkOrdinal, UnknownLoad, OS) |
171 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_ThunkOrdinal, Vcall, OS) | 176 CASE_OUTPUT_ENUM_CLASS_NAME(codeview::ThunkOrdinal, Vcall, OS) |
172 } | 177 } |
173 return OS; | 178 return OS; |
174 } | 179 } |
175 | 180 |
176 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_Checksum &Checksum) { | 181 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, |
182 const PDB_Checksum &Checksum) { | |
177 switch (Checksum) { | 183 switch (Checksum) { |
178 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Checksum, None, OS) | 184 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Checksum, None, OS) |
179 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Checksum, MD5, OS) | 185 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Checksum, MD5, OS) |
180 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Checksum, SHA1, OS) | 186 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Checksum, SHA1, OS) |
181 } | 187 } |
182 return OS; | 188 return OS; |
183 } | 189 } |
184 | 190 |
185 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_Lang &Lang) { | 191 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, const PDB_Lang &Lang) { |
186 switch (Lang) { | 192 switch (Lang) { |
187 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Lang, C, OS) | 193 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Lang, C, OS) |
188 CASE_OUTPUT_ENUM_CLASS_STR(PDB_Lang, Cpp, "C++", OS) | 194 CASE_OUTPUT_ENUM_CLASS_STR(PDB_Lang, Cpp, "C++", OS) |
189 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Lang, Fortran, OS) | 195 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Lang, Fortran, OS) |
190 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Lang, Masm, OS) | 196 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Lang, Masm, OS) |
203 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Lang, HLSL, OS) | 209 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Lang, HLSL, OS) |
204 } | 210 } |
205 return OS; | 211 return OS; |
206 } | 212 } |
207 | 213 |
208 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_SymType &Tag) { | 214 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, const PDB_SymType &Tag) { |
209 switch (Tag) { | 215 switch (Tag) { |
210 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, Exe, OS) | 216 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, Exe, OS) |
211 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, Compiland, OS) | 217 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, Compiland, OS) |
212 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, CompilandDetails, OS) | 218 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, CompilandDetails, OS) |
213 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, CompilandEnv, OS) | 219 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, CompilandEnv, OS) |
241 OS << "Unknown"; | 247 OS << "Unknown"; |
242 } | 248 } |
243 return OS; | 249 return OS; |
244 } | 250 } |
245 | 251 |
246 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_MemberAccess &Access) { | 252 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, |
253 const PDB_MemberAccess &Access) { | |
247 switch (Access) { | 254 switch (Access) { |
248 CASE_OUTPUT_ENUM_CLASS_STR(PDB_MemberAccess, Public, "public", OS) | 255 CASE_OUTPUT_ENUM_CLASS_STR(PDB_MemberAccess, Public, "public", OS) |
249 CASE_OUTPUT_ENUM_CLASS_STR(PDB_MemberAccess, Protected, "protected", OS) | 256 CASE_OUTPUT_ENUM_CLASS_STR(PDB_MemberAccess, Protected, "protected", OS) |
250 CASE_OUTPUT_ENUM_CLASS_STR(PDB_MemberAccess, Private, "private", OS) | 257 CASE_OUTPUT_ENUM_CLASS_STR(PDB_MemberAccess, Private, "private", OS) |
251 } | 258 } |
252 return OS; | 259 return OS; |
253 } | 260 } |
254 | 261 |
255 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_UdtType &Type) { | 262 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, const PDB_UdtType &Type) { |
256 switch (Type) { | 263 switch (Type) { |
257 CASE_OUTPUT_ENUM_CLASS_STR(PDB_UdtType, Class, "class", OS) | 264 CASE_OUTPUT_ENUM_CLASS_STR(PDB_UdtType, Class, "class", OS) |
258 CASE_OUTPUT_ENUM_CLASS_STR(PDB_UdtType, Struct, "struct", OS) | 265 CASE_OUTPUT_ENUM_CLASS_STR(PDB_UdtType, Struct, "struct", OS) |
259 CASE_OUTPUT_ENUM_CLASS_STR(PDB_UdtType, Interface, "interface", OS) | 266 CASE_OUTPUT_ENUM_CLASS_STR(PDB_UdtType, Interface, "interface", OS) |
260 CASE_OUTPUT_ENUM_CLASS_STR(PDB_UdtType, Union, "union", OS) | 267 CASE_OUTPUT_ENUM_CLASS_STR(PDB_UdtType, Union, "union", OS) |
261 } | 268 } |
262 return OS; | 269 return OS; |
263 } | 270 } |
264 | 271 |
265 raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_UniqueId &Id) { | 272 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, const PDB_UniqueId &Id) { |
266 static const char *Lookup = "0123456789ABCDEF"; | 273 static const char *Lookup = "0123456789ABCDEF"; |
267 | 274 |
268 static_assert(sizeof(PDB_UniqueId) == 16, "Expected 16-byte GUID"); | 275 static_assert(sizeof(PDB_UniqueId) == 16, "Expected 16-byte GUID"); |
269 ArrayRef<uint8_t> GuidBytes(reinterpret_cast<const uint8_t*>(&Id), 16); | 276 ArrayRef<uint8_t> GuidBytes(reinterpret_cast<const uint8_t*>(&Id), 16); |
270 OS << "{"; | 277 OS << "{"; |
279 } | 286 } |
280 OS << "}"; | 287 OS << "}"; |
281 return OS; | 288 return OS; |
282 } | 289 } |
283 | 290 |
284 raw_ostream &llvm::operator<<(raw_ostream &OS, const Variant &Value) { | 291 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, |
292 const PDB_Machine &Machine) { | |
293 switch (Machine) { | |
294 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, Am33, OS) | |
295 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, Amd64, OS) | |
296 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, Arm, OS) | |
297 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, ArmNT, OS) | |
298 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, Ebc, OS) | |
299 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, x86, OS) | |
300 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, Ia64, OS) | |
301 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, M32R, OS) | |
302 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, Mips16, OS) | |
303 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, MipsFpu, OS) | |
304 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, MipsFpu16, OS) | |
305 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, PowerPC, OS) | |
306 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, PowerPCFP, OS) | |
307 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, R4000, OS) | |
308 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, SH3, OS) | |
309 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, SH3DSP, OS) | |
310 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, SH4, OS) | |
311 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, SH5, OS) | |
312 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, Thumb, OS) | |
313 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_Machine, WceMipsV2, OS) | |
314 default: | |
315 OS << "Unknown"; | |
316 } | |
317 return OS; | |
318 } | |
319 | |
320 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, const Variant &Value) { | |
285 switch (Value.Type) { | 321 switch (Value.Type) { |
286 case PDB_VariantType::Bool: | 322 case PDB_VariantType::Bool: |
287 OS << (Value.Bool ? "true" : "false"); | 323 OS << (Value.Value.Bool ? "true" : "false"); |
288 break; | 324 break; |
289 case PDB_VariantType::Double: | 325 case PDB_VariantType::Double: |
290 OS << Value.Double; | 326 OS << Value.Value.Double; |
291 break; | 327 break; |
292 case PDB_VariantType::Int16: | 328 case PDB_VariantType::Int16: |
293 OS << Value.Int16; | 329 OS << Value.Value.Int16; |
294 break; | 330 break; |
295 case PDB_VariantType::Int32: | 331 case PDB_VariantType::Int32: |
296 OS << Value.Int32; | 332 OS << Value.Value.Int32; |
297 break; | 333 break; |
298 case PDB_VariantType::Int64: | 334 case PDB_VariantType::Int64: |
299 OS << Value.Int64; | 335 OS << Value.Value.Int64; |
300 break; | 336 break; |
301 case PDB_VariantType::Int8: | 337 case PDB_VariantType::Int8: |
302 OS << static_cast<int>(Value.Int8); | 338 OS << static_cast<int>(Value.Value.Int8); |
303 break; | 339 break; |
304 case PDB_VariantType::Single: | 340 case PDB_VariantType::Single: |
305 OS << Value.Single; | 341 OS << Value.Value.Single; |
306 break; | 342 break; |
307 case PDB_VariantType::UInt16: | 343 case PDB_VariantType::UInt16: |
308 OS << Value.Double; | 344 OS << Value.Value.Double; |
309 break; | 345 break; |
310 case PDB_VariantType::UInt32: | 346 case PDB_VariantType::UInt32: |
311 OS << Value.UInt32; | 347 OS << Value.Value.UInt32; |
312 break; | 348 break; |
313 case PDB_VariantType::UInt64: | 349 case PDB_VariantType::UInt64: |
314 OS << Value.UInt64; | 350 OS << Value.Value.UInt64; |
315 break; | 351 break; |
316 case PDB_VariantType::UInt8: | 352 case PDB_VariantType::UInt8: |
317 OS << static_cast<unsigned>(Value.UInt8); | 353 OS << static_cast<unsigned>(Value.Value.UInt8); |
354 break; | |
355 case PDB_VariantType::String: | |
356 OS << Value.Value.String; | |
318 break; | 357 break; |
319 default: | 358 default: |
320 OS << Value.Type; | 359 OS << Value.Type; |
321 } | 360 } |
322 return OS; | 361 return OS; |
323 } | 362 } |
324 | 363 |
325 raw_ostream &llvm::operator<<(raw_ostream &OS, const VersionInfo &Version) { | 364 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, |
365 const VersionInfo &Version) { | |
326 OS << Version.Major << "." << Version.Minor << "." << Version.Build; | 366 OS << Version.Major << "." << Version.Minor << "." << Version.Build; |
327 return OS; | 367 return OS; |
328 } | 368 } |
329 | 369 |
330 raw_ostream &llvm::operator<<(raw_ostream &OS, const TagStats &Stats) { | 370 raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, const TagStats &Stats) { |
331 for (auto Tag : Stats) { | 371 for (auto Tag : Stats) { |
332 OS << Tag.first << ":" << Tag.second << " "; | 372 OS << Tag.first << ":" << Tag.second << " "; |
333 } | 373 } |
334 return OS; | 374 return OS; |
335 } | 375 } |