Run dos2unix against llvm-pdbdump.
[oota-llvm.git] / tools / llvm-pdbdump / DIASymbol.cpp
1 //===- DIASymbol.cpp - Dump debug info from a PDB file ----------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #include "llvm-pdbdump.h"
11 #include "DIASymbol.h"
12
13 using namespace llvm::sys::windows;
14
15 DIASymbol::DIASymbol(IDiaSymbol *DiaSymbol) : Symbol(DiaSymbol) {
16   Symbol->AddRef();
17 }
18
19 DIASymbol::~DIASymbol() { Symbol->Release(); }
20
21 void DIASymbol::fullDump(int IndentLevel) {
22   getLexicalParent().dump("Lexical parent", IndentLevel);
23   getClassParent().dump("Class parent", IndentLevel);
24   getType().dump("Type", IndentLevel);
25   getArrayIndexType().dump("Array index type", IndentLevel);
26   getVirtualTableShape().dump("Vtable shape", IndentLevel);
27   getLowerBound().dump("Lower bound", IndentLevel);
28   getUpperBound().dump("Upper bound", IndentLevel);
29   getObjectPointerType().dump("Object pointer type", IndentLevel);
30   getContainer().dump("Container", IndentLevel);
31   getVirtualBaseTableType().dump("Virtual base table type", IndentLevel);
32   getUnmodifiedType().dump("Unmodified type", IndentLevel);
33   getSubType().dump("Sub type", IndentLevel);
34   getBaseSymbol().dump("Base symbol", IndentLevel);
35
36 #if (_MSC_FULL_VER >= 180031101)
37   // These methods are only available on VS 2013 SP4 and higher.
38   isPGO().dump("Is PGO", IndentLevel);
39   hasValidPGOCounts().dump("Has valid PGO counts", IndentLevel);
40   isOptimizedForSpeed().dump("Is optimized for speed", IndentLevel);
41   getPGOEntryCount().dump("PGO entry count", IndentLevel);
42   getPGOEdgeCount().dump("PGO edge count", IndentLevel);
43   getPGODynamicInstructionCount().dump("PGO dynamic instruction count",
44                                        IndentLevel);
45   getStaticSize().dump("Static size", IndentLevel);
46   getFinalLiveStaticSize().dump("Final live static size", IndentLevel);
47   getPhaseName().dump("Phase name", IndentLevel);
48   hasControlFlowCheck().dump("Has control flow check", IndentLevel);
49 #endif
50
51   getAccess().dump("Access", IndentLevel);
52   getAddressOffset().dump("Address Offset", IndentLevel);
53   getAddressSection().dump("Address Section", IndentLevel);
54   getAddressTaken().dump("Address Taken", IndentLevel);
55   getAge().dump("Age", IndentLevel);
56   getArrayIndexTypeId().dump("Array Index Type Id", IndentLevel);
57   getBackEndMajor().dump("Back End Major", IndentLevel);
58   getBackEndMinor().dump("Back End Minor", IndentLevel);
59   getBackEndBuild().dump("Back End Build", IndentLevel);
60   getBaseDataOffset().dump("Base Data Offset", IndentLevel);
61   getBaseDataSlot().dump("Base Data Slot", IndentLevel);
62   getBaseSymbolId().dump("Base Symbol Id", IndentLevel);
63   getBaseType().dump("Base Type", IndentLevel);
64   getBitPosition().dump("Bit Position", IndentLevel);
65   getBuiltInKind().dump("Built In Kind", IndentLevel);
66   getCallingConvention().dump("Calling Convention", IndentLevel);
67   getClassParentId().dump("Class Parent Id", IndentLevel);
68   isCode().dump("Code", IndentLevel);
69   isCompilerGenerated().dump("Compiler Generated", IndentLevel);
70   getCompilerName().dump("Compiler Name", IndentLevel);
71   hasConstructor().dump("Constructor", IndentLevel);
72   isConstType().dump("Const Type", IndentLevel);
73   getCount().dump("Count", IndentLevel);
74   getCountLiveRanges().dump("Count Live Ranges", IndentLevel);
75   hasCustomCallingConvention().dump("Custom Calling Convention", IndentLevel);
76   getDataKind().dump("Data Kind", IndentLevel);
77   isEditAndContinueEnabled().dump("Edit and Continue Enabled", IndentLevel);
78   hasFarReturn().dump("Far Return", IndentLevel);
79   getFrontEndMajor().dump("Front End Major", IndentLevel);
80   getFrontEndMinor().dump("Front End Minor", IndentLevel);
81   getFrontEndBuild().dump("Front End Build", IndentLevel);
82   isFunction().dump("Function", IndentLevel);
83   getGuid().dump("GUID", IndentLevel);
84   hasAlloca().dump("Has Alloca", IndentLevel);
85   hasAssignmentOperator().dump("Has Assignment Operator", IndentLevel);
86   hasCastOperator().dump("Has Cast Operator", IndentLevel);
87   hasDebugInfo().dump("Has Debug Info", IndentLevel);
88   hasEH().dump("Has EH", IndentLevel);
89   hasEHa().dump("Has EHa", IndentLevel);
90   hasInlAsm().dump("Has Inline Asm", IndentLevel);
91   hasLongJump().dump("Has longjmp", IndentLevel);
92   hasManagedCode().dump("Has Managed Code", IndentLevel);
93   hasNestedTypes().dump("Has Nested Types", IndentLevel);
94   hasSecurityChecks().dump("Has Security Checks", IndentLevel);
95   hasSEH().dump("Has SEH", IndentLevel);
96   hasSetJump().dump("Has setjmp", IndentLevel);
97   isIndirectVirtualBaseClass().dump("Is indirect virtual base", IndentLevel);
98   hasInlineAttribute().dump("Has inline declspec", IndentLevel);
99   hasInterruptReturn().dump("Has interrupt return", IndentLevel);
100   isBaseVirtualFunction().dump("Is base virtual function", IndentLevel);
101   isAcceleratorGroupSharedLocal().dump("Is Accelerator Group Shared Local",
102                                        IndentLevel);
103   isAcceleratorPointerTagLiveRange().dump(
104       "Is Accelerator Pointer Tag Live Range", IndentLevel);
105   isAcceleratorStubFunction().dump("Is Accelerator Stub Function", IndentLevel);
106   isAggregated().dump("Is aggregated", IndentLevel);
107   hasCTypes().dump("Has C types", IndentLevel);
108   isCVTCIL().dump("Was converted from MSIL", IndentLevel);
109   isDataAligned().dump("Is data aligned", IndentLevel);
110   isHLSLData().dump("Is HLSL data", IndentLevel);
111   isHotpatchable().dump("Is hot-patchable", IndentLevel);
112   isLTCG().dump("Is LTCG", IndentLevel);
113   isMatrixRowMajor().dump("Is matrix row major", IndentLevel);
114   isMSILNetmodule().dump("Is MSIL .netmodule", IndentLevel);
115   isMultipleInheritance().dump("Is multiple inheritance", IndentLevel);
116   isNaked().dump("Is naked", IndentLevel);
117   isOptimizedAway().dump("Is optimized away", IndentLevel);
118   isPointerBasedOnSymbolValue().dump("Is pointer based on symbol value",
119                                      IndentLevel);
120   isPointerToDataMember().dump("Is pointer to data member", IndentLevel);
121   isPointerToMemberFunction().dump("Is pointer to member function",
122                                    IndentLevel);
123   isReturnValue().dump("Is return value", IndentLevel);
124   isSdl().dump("Is SDL", IndentLevel);
125   isSingleInheritance().dump("Is single inheritance", IndentLevel);
126   isSplitted().dump("Is splitted", IndentLevel);
127   isStatic().dump("Is staic", IndentLevel);
128   isStripped().dump("Is stripped", IndentLevel);
129   isVirtualInheritance().dump("Is virtual inheritance", IndentLevel);
130   getLanguage().dump("Language", IndentLevel);
131   getLength().dump("Length", IndentLevel);
132   getLexicalParentId().dump("Lexical parent id", IndentLevel);
133   getLibraryName().dump("Library name", IndentLevel);
134   getLiveRangeLength().dump("Live range length", IndentLevel);
135   getLiveRangeStartAddressSection().dump("Live range start address section",
136                                          IndentLevel);
137   getLiveRangeStartAddressOffset().dump("Live range start address offset",
138                                         IndentLevel);
139   getLiveRangeStartRelativeVirtualAddress().dump("Live range start address RVA",
140                                                  IndentLevel);
141   getLocationType().dump("Location type", IndentLevel);
142   getLowerBoundId().dump("Lower bound id", IndentLevel);
143   getMachineType().dump("Machine type", IndentLevel);
144   isManagedRef().dump("Managed", IndentLevel);
145   getMemorySpaceKind().dump("Memory space kind", IndentLevel);
146   isMsilRef().dump("MSIL", IndentLevel);
147   getName().dump("Name", IndentLevel);
148   isNested().dump("Nested", IndentLevel);
149   hasNoInlineAttribute().dump("Has noinline declspec", IndentLevel);
150   hasNoReturnAttribute().dump("Has noreturn declspec", IndentLevel);
151   getNoStackOrdering().dump("No stack ordering", IndentLevel);
152   isUnreached().dump("Not reached", IndentLevel);
153   getNumberOfAcceleratorPointerTags().dump("Number of accelerator pointer tags",
154                                            IndentLevel);
155   getNumberOfModifiers().dump("Number of modifiers", IndentLevel);
156   getNumberOfRegisterIndices().dump("Number of register indices", IndentLevel);
157   getNumberOfRows().dump("Number of rows", IndentLevel);
158   getNumberOfColumns().dump("Number of columns", IndentLevel);
159   getObjectFileName().dump("Object file name", IndentLevel);
160   getOemSymbolId().dump("OEM symbol id", IndentLevel);
161   getOffset().dump("Offset", IndentLevel);
162   hasOptimizedCodeDebugInfo().dump("Optimized code debug info", IndentLevel);
163   hasOverloadedOperator().dump("Overloaded operator", IndentLevel);
164   isPacked().dump("Packed", IndentLevel);
165   getPlatform().dump("Platform", IndentLevel);
166   isPureVirtual().dump("Pure", IndentLevel);
167   getRank().dump("Rank", IndentLevel);
168   isReference().dump("Reference", IndentLevel);
169   getRegisterId().dump("Register ID", IndentLevel);
170   getRegisterType().dump("Register type", IndentLevel);
171   getRelativeVirtualAddress().dump("RVA", IndentLevel);
172   isRestrictedType().dump("Restricted type", IndentLevel);
173   getSamplerSlot().dump("Sampler slot", IndentLevel);
174   isScoped().dump("Scoped", IndentLevel);
175   getSignature().dump("Signature", IndentLevel);
176   getSizeInUdt().dump("Size in UDT", IndentLevel);
177   getSlot().dump("Slot", IndentLevel);
178   getSourceFileName().dump("Source file name", IndentLevel);
179   getStride().dump("Stride", IndentLevel);
180   getSubTypeId().dump("Sub type ID", IndentLevel);
181   getSymbolsFileName().dump("File name", IndentLevel);
182   getSymIndexId().dump("Sym index ID", IndentLevel);
183   getSymTag().dump("Sym tag", IndentLevel);
184   getTargetOffset().dump("Target offset", IndentLevel);
185   getTargetRelativeVirtualAddress().dump("Target RVA", IndentLevel);
186   getTargetSection().dump("Target section", IndentLevel);
187   getTargetVirtualAddress().dump("Target virtual address", IndentLevel);
188   getTextureSlot().dump("Texture slot", IndentLevel);
189   getThisAdjust().dump("This adjust", IndentLevel);
190   getThunkOrdinal().dump("Thunk ordinal", IndentLevel);
191   getTimeStamp().dump("Time stamp", IndentLevel);
192   getToken().dump("Token", IndentLevel);
193   getUavSlot().dump("UAV slot", IndentLevel);
194   getUdtKind().dump("UDT kind", IndentLevel);
195   isUnalignedType().dump("Unaligned type", IndentLevel);
196   getUndecoratedName().dump("Undecorated name", IndentLevel);
197   getUnmodifiedTypeId().dump("Unmodified type id", IndentLevel);
198   getUpperBoundId().dump("Upper bound id", IndentLevel);
199   isVirtual().dump("Virtual", IndentLevel);
200   getVirtualAddress().dump("Virtual address", IndentLevel);
201   isVirtualBaseClass().dump("Virtual base class", IndentLevel);
202   getVirtualBaseDispIndex().dump("Virtual base disp index", IndentLevel);
203   getVirtualBaseOffset().dump("Virtual base offset", IndentLevel);
204   getVirtualBasePointerOffset().dump("Virtual base pointer offset",
205                                      IndentLevel);
206   getVirtualTableShapeId().dump("Vtable shape ID", IndentLevel);
207   isVolatileType().dump("Volatile type", IndentLevel);
208 }
209
210 #if (_MSC_FULL_VER >= 180031101)
211 DIAResult<BOOL> DIASymbol::isPGO() {
212   return InternalGetDIAValue(&IDiaSymbol::get_isPGO);
213 }
214
215 DIAResult<BOOL> DIASymbol::hasValidPGOCounts() {
216   return InternalGetDIAValue(&IDiaSymbol::get_hasValidPGOCounts);
217 }
218
219 DIAResult<BOOL> DIASymbol::isOptimizedForSpeed() {
220   return InternalGetDIAValue(&IDiaSymbol::get_isOptimizedForSpeed);
221 }
222
223 DIAResult<DWORD> DIASymbol::getPGOEntryCount() {
224   return InternalGetDIAValue(&IDiaSymbol::get_PGOEntryCount);
225 }
226
227 DIAResult<DWORD> DIASymbol::getPGOEdgeCount() {
228   return InternalGetDIAValue(&IDiaSymbol::get_PGOEdgeCount);
229 }
230
231 DIAResult<ULONGLONG> DIASymbol::getPGODynamicInstructionCount() {
232   return InternalGetDIAValue(&IDiaSymbol::get_PGODynamicInstructionCount);
233 }
234
235 DIAResult<DWORD> DIASymbol::getStaticSize() {
236   return InternalGetDIAValue(&IDiaSymbol::get_staticSize);
237 }
238
239 DIAResult<DWORD> DIASymbol::getFinalLiveStaticSize() {
240   return InternalGetDIAValue(&IDiaSymbol::get_finalLiveStaticSize);
241 }
242
243 DIAResult<DIAString> DIASymbol::getPhaseName() {
244   return InternalGetDIAStringValue(&IDiaSymbol::get_phaseName);
245 }
246
247 DIAResult<BOOL> DIASymbol::hasControlFlowCheck() {
248   return InternalGetDIAValue(&IDiaSymbol::get_hasControlFlowCheck);
249 }
250 #endif
251
252 DIAResult<DiaSymbolPtr> DIASymbol::getClassParent() {
253   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
254       &IDiaSymbol::get_classParent);
255 }
256
257 DIAResult<DiaSymbolPtr> DIASymbol::getType() {
258   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(&IDiaSymbol::get_type);
259 }
260
261 DIAResult<DiaSymbolPtr> DIASymbol::getArrayIndexType() {
262   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
263       &IDiaSymbol::get_arrayIndexType);
264 }
265
266 DIAResult<DiaSymbolPtr> DIASymbol::getVirtualTableShape() {
267   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
268       &IDiaSymbol::get_virtualTableShape);
269 }
270
271 DIAResult<DiaSymbolPtr> DIASymbol::getLowerBound() {
272   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
273       &IDiaSymbol::get_lowerBound);
274 }
275
276 DIAResult<DiaSymbolPtr> DIASymbol::getUpperBound() {
277   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
278       &IDiaSymbol::get_upperBound);
279 }
280
281 DIAResult<DiaSymbolPtr> DIASymbol::getObjectPointerType() {
282   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
283       &IDiaSymbol::get_objectPointerType);
284 }
285
286 DIAResult<DiaSymbolPtr> DIASymbol::getContainer() {
287   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
288       &IDiaSymbol::get_container);
289 }
290
291 DIAResult<DiaSymbolPtr> DIASymbol::getVirtualBaseTableType() {
292   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
293       &IDiaSymbol::get_virtualBaseTableType);
294 }
295
296 DIAResult<DiaSymbolPtr> DIASymbol::getUnmodifiedType() {
297   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
298       &IDiaSymbol::get_unmodifiedType);
299 }
300
301 DIAResult<DiaSymbolPtr> DIASymbol::getSubType() {
302   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
303       &IDiaSymbol::get_subType);
304 }
305
306 DIAResult<DiaSymbolPtr> DIASymbol::getBaseSymbol() {
307   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
308       &IDiaSymbol::get_baseSymbol);
309 }
310
311 DIAResult<DWORD> DIASymbol::getAccess() {
312   return InternalGetDIAValue(&IDiaSymbol::get_access);
313 }
314
315 DIAResult<DWORD> DIASymbol::getAddressOffset() {
316   return InternalGetDIAValue(&IDiaSymbol::get_addressOffset);
317 }
318
319 DIAResult<DWORD> DIASymbol::getAddressSection() {
320   return InternalGetDIAValue(&IDiaSymbol::get_addressSection);
321 }
322
323 DIAResult<BOOL> DIASymbol::getAddressTaken() {
324   return InternalGetDIAValue(&IDiaSymbol::get_addressTaken);
325 }
326
327 DIAResult<DWORD> DIASymbol::getAge() {
328   return InternalGetDIAValue(&IDiaSymbol::get_age);
329 }
330
331 DIAResult<DWORD> DIASymbol::getArrayIndexTypeId() {
332   return InternalGetDIAValue(&IDiaSymbol::get_arrayIndexTypeId);
333 }
334
335 DIAResult<DWORD> DIASymbol::getBackEndMajor() {
336   return InternalGetDIAValue(&IDiaSymbol::get_backEndMajor);
337 }
338
339 DIAResult<DWORD> DIASymbol::getBackEndMinor() {
340
341   return InternalGetDIAValue(&IDiaSymbol::get_backEndMinor);
342 }
343
344 DIAResult<DWORD> DIASymbol::getBackEndBuild() {
345   return InternalGetDIAValue(&IDiaSymbol::get_backEndBuild);
346 }
347
348 DIAResult<DWORD> DIASymbol::getBackEndQFE() {
349   return InternalGetDIAValue(&IDiaSymbol::get_backEndQFE);
350 }
351
352 DIAResult<DWORD> DIASymbol::getBaseDataOffset() {
353   return InternalGetDIAValue(&IDiaSymbol::get_baseDataOffset);
354 }
355
356 DIAResult<DWORD> DIASymbol::getBaseDataSlot() {
357   return InternalGetDIAValue(&IDiaSymbol::get_baseDataSlot);
358 }
359
360 DIAResult<DWORD> DIASymbol::getBaseSymbolId() {
361   return InternalGetDIAValue(&IDiaSymbol::get_baseSymbolId);
362 }
363
364 DIAResult<DWORD> DIASymbol::getBaseType() {
365   return InternalGetDIAValue(&IDiaSymbol::get_baseType);
366 }
367
368 DIAResult<DWORD> DIASymbol::getBitPosition() {
369   return InternalGetDIAValue(&IDiaSymbol::get_bitPosition);
370 }
371
372 DIAResult<DWORD> DIASymbol::getBuiltInKind() {
373   return InternalGetDIAValue(&IDiaSymbol::get_builtInKind);
374 }
375
376 DIAResult<CV_call_e> DIASymbol::getCallingConvention() {
377   return InternalGetDIAValue<DWORD, CV_call_e>(
378       &IDiaSymbol::get_callingConvention);
379 }
380
381 DIAResult<DWORD> DIASymbol::getClassParentId() {
382   return InternalGetDIAValue(&IDiaSymbol::get_classParentId);
383 }
384
385 DIAResult<BOOL> DIASymbol::isCode() {
386   return InternalGetDIAValue(&IDiaSymbol::get_code);
387 }
388
389 DIAResult<BOOL> DIASymbol::isCompilerGenerated() {
390   return InternalGetDIAValue(&IDiaSymbol::get_compilerGenerated);
391 }
392
393 DIAResult<DIAString> DIASymbol::getCompilerName() {
394   return InternalGetDIAStringValue(&IDiaSymbol::get_compilerName);
395 }
396
397 DIAResult<BOOL> DIASymbol::hasConstructor() {
398   return InternalGetDIAValue(&IDiaSymbol::get_constructor);
399 }
400
401 DIAResult<BOOL> DIASymbol::isConstType() {
402   return InternalGetDIAValue(&IDiaSymbol::get_constType);
403 }
404
405 DIAResult<DWORD> DIASymbol::getCount() {
406   return InternalGetDIAValue(&IDiaSymbol::get_count);
407 }
408
409 DIAResult<DWORD> DIASymbol::getCountLiveRanges() {
410   return InternalGetDIAValue(&IDiaSymbol::get_countLiveRanges);
411 }
412
413 DIAResult<BOOL> DIASymbol::hasCustomCallingConvention() {
414   return InternalGetDIAValue(&IDiaSymbol::get_customCallingConvention);
415 }
416
417 DIAResult<DataKind> DIASymbol::getDataKind() {
418   return InternalGetDIAValue<DWORD, DataKind>(&IDiaSymbol::get_dataKind);
419 }
420
421 DIAResult<BOOL> DIASymbol::isEditAndContinueEnabled() {
422   return InternalGetDIAValue(&IDiaSymbol::get_editAndContinueEnabled);
423 }
424
425 DIAResult<BOOL> DIASymbol::hasFarReturn() {
426   return InternalGetDIAValue(&IDiaSymbol::get_farReturn);
427 }
428
429 DIAResult<DWORD> DIASymbol::getFrontEndMajor() {
430   return InternalGetDIAValue(&IDiaSymbol::get_frontEndMajor);
431 }
432
433 DIAResult<DWORD> DIASymbol::getFrontEndMinor() {
434   return InternalGetDIAValue(&IDiaSymbol::get_frontEndMinor);
435 }
436
437 DIAResult<DWORD> DIASymbol::getFrontEndBuild() {
438   return InternalGetDIAValue(&IDiaSymbol::get_frontEndBuild);
439 }
440
441 DIAResult<DWORD> DIASymbol::getFrontEndQFE() {
442   return InternalGetDIAValue(&IDiaSymbol::get_frontEndQFE);
443 }
444
445 DIAResult<BOOL> DIASymbol::isFunction() {
446   return InternalGetDIAValue(&IDiaSymbol::get_function);
447 }
448
449 DIAResult<GUID> DIASymbol::getGuid() {
450   return InternalGetDIAValue(&IDiaSymbol::get_guid);
451 }
452
453 DIAResult<BOOL> DIASymbol::hasAlloca() {
454   return InternalGetDIAValue(&IDiaSymbol::get_hasAlloca);
455 }
456
457 DIAResult<BOOL> DIASymbol::hasAssignmentOperator() {
458   return InternalGetDIAValue(&IDiaSymbol::get_hasAssignmentOperator);
459 }
460
461 DIAResult<BOOL> DIASymbol::hasCastOperator() {
462   return InternalGetDIAValue(&IDiaSymbol::get_hasCastOperator);
463 }
464
465 DIAResult<BOOL> DIASymbol::hasDebugInfo() {
466   return InternalGetDIAValue(&IDiaSymbol::get_hasDebugInfo);
467 }
468
469 DIAResult<BOOL> DIASymbol::hasEH() {
470   return InternalGetDIAValue(&IDiaSymbol::get_hasEH);
471 }
472
473 DIAResult<BOOL> DIASymbol::hasEHa() {
474   return InternalGetDIAValue(&IDiaSymbol::get_hasEHa);
475 }
476
477 DIAResult<BOOL> DIASymbol::hasInlAsm() {
478   return InternalGetDIAValue(&IDiaSymbol::get_hasInlAsm);
479 }
480
481 DIAResult<BOOL> DIASymbol::hasLongJump() {
482   return InternalGetDIAValue(&IDiaSymbol::get_hasLongJump);
483 }
484
485 DIAResult<BOOL> DIASymbol::hasManagedCode() {
486   return InternalGetDIAValue(&IDiaSymbol::get_hasManagedCode);
487 }
488
489 DIAResult<BOOL> DIASymbol::hasNestedTypes() {
490   return InternalGetDIAValue(&IDiaSymbol::get_hasNestedTypes);
491 }
492
493 DIAResult<BOOL> DIASymbol::hasSecurityChecks() {
494   return InternalGetDIAValue(&IDiaSymbol::get_hasSecurityChecks);
495 }
496
497 DIAResult<BOOL> DIASymbol::hasSEH() {
498   return InternalGetDIAValue(&IDiaSymbol::get_hasSEH);
499 }
500
501 DIAResult<BOOL> DIASymbol::hasSetJump() {
502   return InternalGetDIAValue(&IDiaSymbol::get_hasSetJump);
503 }
504
505 DIAResult<BOOL> DIASymbol::isIndirectVirtualBaseClass() {
506   return InternalGetDIAValue(&IDiaSymbol::get_indirectVirtualBaseClass);
507 }
508
509 DIAResult<BOOL> DIASymbol::hasInlineAttribute() {
510   return InternalGetDIAValue(&IDiaSymbol::get_inlSpec);
511 }
512
513 DIAResult<BOOL> DIASymbol::hasInterruptReturn() {
514   return InternalGetDIAValue(&IDiaSymbol::get_interruptReturn);
515 }
516
517 DIAResult<BOOL> DIASymbol::isBaseVirtualFunction() {
518   return InternalGetDIAValue(&IDiaSymbol::get_intro);
519 }
520
521 DIAResult<BOOL> DIASymbol::isIntrinsic() {
522   return InternalGetDIAValue(&IDiaSymbol::get_intrinsic);
523 }
524
525 DIAResult<BOOL> DIASymbol::isAcceleratorGroupSharedLocal() {
526   return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorGroupSharedLocal);
527 }
528
529 DIAResult<BOOL> DIASymbol::isAcceleratorPointerTagLiveRange() {
530   return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorPointerTagLiveRange);
531 }
532
533 DIAResult<BOOL> DIASymbol::isAcceleratorStubFunction() {
534   return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorStubFunction);
535 }
536
537 DIAResult<BOOL> DIASymbol::isAggregated() {
538   return InternalGetDIAValue(&IDiaSymbol::get_isAggregated);
539 }
540
541 DIAResult<BOOL> DIASymbol::isConstructorVirtualBase() {
542   return InternalGetDIAValue(&IDiaSymbol::get_isConstructorVirtualBase);
543 }
544
545 DIAResult<BOOL> DIASymbol::hasStrictGSCheck() {
546   return InternalGetDIAValue(&IDiaSymbol::get_strictGSCheck);
547 }
548
549 DIAResult<BOOL> DIASymbol::isLocationControlFlowDependent() {
550   return InternalGetDIAValue(&IDiaSymbol::get_isLocationControlFlowDependent);
551 }
552
553 DIAResult<BOOL> DIASymbol::hasCTypes() {
554   return InternalGetDIAValue(&IDiaSymbol::get_isCTypes);
555 }
556
557 DIAResult<BOOL> DIASymbol::isCVTCIL() {
558   return InternalGetDIAValue(&IDiaSymbol::get_isCVTCIL);
559 }
560
561 DIAResult<BOOL> DIASymbol::isDataAligned() {
562   return InternalGetDIAValue(&IDiaSymbol::get_isDataAligned);
563 }
564
565 DIAResult<BOOL> DIASymbol::isHLSLData() {
566   return InternalGetDIAValue(&IDiaSymbol::get_isHLSLData);
567 }
568
569 DIAResult<BOOL> DIASymbol::isHotpatchable() {
570   return InternalGetDIAValue(&IDiaSymbol::get_isHotpatchable);
571 }
572
573 DIAResult<BOOL> DIASymbol::isLTCG() {
574   return InternalGetDIAValue(&IDiaSymbol::get_isLTCG);
575 }
576
577 DIAResult<BOOL> DIASymbol::isMatrixRowMajor() {
578   return InternalGetDIAValue(&IDiaSymbol::get_isMatrixRowMajor);
579 }
580
581 DIAResult<BOOL> DIASymbol::isMSILNetmodule() {
582   return InternalGetDIAValue(&IDiaSymbol::get_isMSILNetmodule);
583 }
584
585 DIAResult<BOOL> DIASymbol::isMultipleInheritance() {
586   return InternalGetDIAValue(&IDiaSymbol::get_isMultipleInheritance);
587 }
588
589 DIAResult<BOOL> DIASymbol::isNaked() {
590   return InternalGetDIAValue(&IDiaSymbol::get_isNaked);
591 }
592
593 DIAResult<BOOL> DIASymbol::isOptimizedAway() {
594   return InternalGetDIAValue(&IDiaSymbol::get_isOptimizedAway);
595 }
596
597 DIAResult<BOOL> DIASymbol::isPointerBasedOnSymbolValue() {
598   return InternalGetDIAValue(&IDiaSymbol::get_isPointerBasedOnSymbolValue);
599 }
600
601 DIAResult<BOOL> DIASymbol::isPointerToDataMember() {
602   return InternalGetDIAValue(&IDiaSymbol::get_isPointerToDataMember);
603 }
604
605 DIAResult<BOOL> DIASymbol::isPointerToMemberFunction() {
606   return InternalGetDIAValue(&IDiaSymbol::get_isPointerToMemberFunction);
607 }
608
609 DIAResult<BOOL> DIASymbol::isReturnValue() {
610   return InternalGetDIAValue(&IDiaSymbol::get_isReturnValue);
611 }
612
613 DIAResult<BOOL> DIASymbol::isSdl() {
614   return InternalGetDIAValue(&IDiaSymbol::get_isSdl);
615 }
616
617 DIAResult<BOOL> DIASymbol::isSingleInheritance() {
618   return InternalGetDIAValue(&IDiaSymbol::get_isSingleInheritance);
619 }
620
621 DIAResult<BOOL> DIASymbol::isSplitted() {
622   return InternalGetDIAValue(&IDiaSymbol::get_isSplitted);
623 }
624
625 DIAResult<BOOL> DIASymbol::isStatic() {
626   return InternalGetDIAValue(&IDiaSymbol::get_isStatic);
627 }
628
629 DIAResult<BOOL> DIASymbol::isStripped() {
630   return InternalGetDIAValue(&IDiaSymbol::get_isStripped);
631 }
632
633 DIAResult<BOOL> DIASymbol::isVirtualInheritance() {
634   return InternalGetDIAValue(&IDiaSymbol::get_isVirtualInheritance);
635 }
636
637 DIAResult<CV_CFL_LANG> DIASymbol::getLanguage() {
638   return InternalGetDIAValue<DWORD, CV_CFL_LANG>(&IDiaSymbol::get_language);
639 }
640
641 DIAResult<BOOL> DIASymbol::isSafeBuffers() {
642   return InternalGetDIAValue(&IDiaSymbol::get_isSafeBuffers);
643 }
644
645 DIAResult<ULONGLONG> DIASymbol::getLength() {
646   return InternalGetDIAValue(&IDiaSymbol::get_length);
647 }
648
649 DIAResult<DWORD> DIASymbol::getLexicalParentId() {
650   return InternalGetDIAValue(&IDiaSymbol::get_lexicalParentId);
651 }
652
653 DIAResult<DiaSymbolPtr> DIASymbol::getLexicalParent() {
654   return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
655       &IDiaSymbol::get_lexicalParent);
656 }
657
658 DIAResult<DWORD> DIASymbol::getLocalBasePointerRegisterId() {
659   return InternalGetDIAValue(&IDiaSymbol::get_localBasePointerRegisterId);
660 }
661
662 DIAResult<DIAString> DIASymbol::getLibraryName() {
663   return InternalGetDIAStringValue(&IDiaSymbol::get_libraryName);
664 }
665
666 DIAResult<ULONGLONG> DIASymbol::getLiveRangeLength() {
667   return InternalGetDIAValue(&IDiaSymbol::get_liveRangeLength);
668 }
669
670 DIAResult<DWORD> DIASymbol::getLiveRangeStartAddressSection() {
671   return InternalGetDIAValue(&IDiaSymbol::get_liveRangeStartAddressSection);
672 }
673
674 DIAResult<DWORD> DIASymbol::getLiveRangeStartAddressOffset() {
675   return InternalGetDIAValue(&IDiaSymbol::get_liveRangeStartAddressOffset);
676 }
677
678 DIAResult<DWORD> DIASymbol::getLiveRangeStartRelativeVirtualAddress() {
679   return InternalGetDIAValue(
680       &IDiaSymbol::get_liveRangeStartRelativeVirtualAddress);
681 }
682
683 DIAResult<LocationType> DIASymbol::getLocationType() {
684   return InternalGetDIAValue<DWORD, LocationType>(
685       &IDiaSymbol::get_locationType);
686 }
687
688 DIAResult<DWORD> DIASymbol::getLowerBoundId() {
689   return InternalGetDIAValue(&IDiaSymbol::get_lowerBoundId);
690 }
691
692 DIAResult<MachineTypeEnum> DIASymbol::getMachineType() {
693   return InternalGetDIAValue<DWORD, MachineTypeEnum>(
694       &IDiaSymbol::get_machineType);
695 }
696
697 DIAResult<BOOL> DIASymbol::isManagedRef() {
698   return InternalGetDIAValue(&IDiaSymbol::get_managed);
699 }
700
701 DIAResult<DWORD> DIASymbol::getMemorySpaceKind() {
702   return InternalGetDIAValue(&IDiaSymbol::get_memorySpaceKind);
703 }
704
705 DIAResult<BOOL> DIASymbol::isMsilRef() {
706   return InternalGetDIAValue(&IDiaSymbol::get_msil);
707 }
708
709 DIAResult<DIAString> DIASymbol::getName() {
710   return InternalGetDIAStringValue(&IDiaSymbol::get_name);
711 }
712
713 DIAResult<BOOL> DIASymbol::isNested() {
714   return InternalGetDIAValue(&IDiaSymbol::get_nested);
715 }
716
717 DIAResult<BOOL> DIASymbol::hasNoInlineAttribute() {
718   return InternalGetDIAValue(&IDiaSymbol::get_noInline);
719 }
720
721 DIAResult<BOOL> DIASymbol::hasNoReturnAttribute() {
722   return InternalGetDIAValue(&IDiaSymbol::get_noReturn);
723 }
724
725 DIAResult<BOOL> DIASymbol::getNoStackOrdering() {
726   return InternalGetDIAValue(&IDiaSymbol::get_noStackOrdering);
727 }
728
729 DIAResult<BOOL> DIASymbol::isUnreached() {
730   return InternalGetDIAValue(&IDiaSymbol::get_notReached);
731 }
732
733 DIAResult<DWORD> DIASymbol::getNumberOfAcceleratorPointerTags() {
734   return InternalGetDIAValue(&IDiaSymbol::get_numberOfAcceleratorPointerTags);
735 }
736
737 DIAResult<DWORD> DIASymbol::getNumberOfModifiers() {
738   return InternalGetDIAValue(&IDiaSymbol::get_numberOfModifiers);
739 }
740
741 DIAResult<DWORD> DIASymbol::getNumberOfRegisterIndices() {
742   return InternalGetDIAValue(&IDiaSymbol::get_numberOfRegisterIndices);
743 }
744
745 DIAResult<DWORD> DIASymbol::getNumberOfRows() {
746   return InternalGetDIAValue(&IDiaSymbol::get_numberOfRows);
747 }
748
749 DIAResult<DWORD> DIASymbol::getNumberOfColumns() {
750   return InternalGetDIAValue(&IDiaSymbol::get_numberOfColumns);
751 }
752
753 DIAResult<DIAString> DIASymbol::getObjectFileName() {
754   return InternalGetDIAStringValue(&IDiaSymbol::get_objectFileName);
755 }
756
757 DIAResult<DWORD> DIASymbol::getOemSymbolId() {
758   return InternalGetDIAValue(&IDiaSymbol::get_oemSymbolId);
759 }
760
761 DIAResult<LONG> DIASymbol::getOffset() {
762   return InternalGetDIAValue(&IDiaSymbol::get_offset);
763 }
764
765 DIAResult<DWORD> DIASymbol::getOffsetInUdt() {
766   return InternalGetDIAValue(&IDiaSymbol::get_offsetInUdt);
767 }
768
769 DIAResult<BOOL> DIASymbol::hasOptimizedCodeDebugInfo() {
770   return InternalGetDIAValue(&IDiaSymbol::get_optimizedCodeDebugInfo);
771 }
772
773 DIAResult<BOOL> DIASymbol::hasOverloadedOperator() {
774   return InternalGetDIAValue(&IDiaSymbol::get_overloadedOperator);
775 }
776
777 DIAResult<BOOL> DIASymbol::isPacked() {
778   return InternalGetDIAValue(&IDiaSymbol::get_packed);
779 }
780
781 DIAResult<CV_CPU_TYPE_e> DIASymbol::getPlatform() {
782   return InternalGetDIAValue<DWORD, CV_CPU_TYPE_e>(&IDiaSymbol::get_platform);
783 }
784
785 DIAResult<BOOL> DIASymbol::isPureVirtual() {
786   return InternalGetDIAValue(&IDiaSymbol::get_pure);
787 }
788
789 DIAResult<DWORD> DIASymbol::getRank() {
790   return InternalGetDIAValue(&IDiaSymbol::get_rank);
791 }
792
793 DIAResult<BOOL> DIASymbol::isReference() {
794   return InternalGetDIAValue(&IDiaSymbol::get_reference);
795 }
796
797 DIAResult<BOOL> DIASymbol::isRValueReference() {
798   return InternalGetDIAValue(&IDiaSymbol::get_RValueReference);
799 }
800
801 DIAResult<DWORD> DIASymbol::getRegisterId() {
802   return InternalGetDIAValue(&IDiaSymbol::get_registerId);
803 }
804
805 DIAResult<DWORD> DIASymbol::getRegisterType() {
806   return InternalGetDIAValue(&IDiaSymbol::get_registerType);
807 }
808
809 DIAResult<DWORD> DIASymbol::getRelativeVirtualAddress() {
810   return InternalGetDIAValue(&IDiaSymbol::get_relativeVirtualAddress);
811 }
812
813 DIAResult<BOOL> DIASymbol::isRestrictedType() {
814   return InternalGetDIAValue(&IDiaSymbol::get_restrictedType);
815 }
816
817 DIAResult<DWORD> DIASymbol::getSamplerSlot() {
818   return InternalGetDIAValue(&IDiaSymbol::get_samplerSlot);
819 }
820
821 DIAResult<BOOL> DIASymbol::isScoped() {
822   return InternalGetDIAValue(&IDiaSymbol::get_scoped);
823 }
824
825 DIAResult<BOOL> DIASymbol::isRefUdt() {
826   return InternalGetDIAValue(&IDiaSymbol::get_isRefUdt);
827 }
828
829 DIAResult<BOOL> DIASymbol::isValueUdt() {
830   return InternalGetDIAValue(&IDiaSymbol::get_isValueUdt);
831 }
832
833 DIAResult<BOOL> DIASymbol::isInterfaceUdt() {
834   return InternalGetDIAValue(&IDiaSymbol::get_isInterfaceUdt);
835 }
836
837 DIAResult<BOOL> DIASymbol::isCxxReturnUdt() {
838   return InternalGetDIAValue(&IDiaSymbol::get_isCxxReturnUdt);
839 }
840
841 DIAResult<DWORD> DIASymbol::getSignature() {
842   return InternalGetDIAValue(&IDiaSymbol::get_signature);
843 }
844
845 DIAResult<DWORD> DIASymbol::getSizeInUdt() {
846   return InternalGetDIAValue(&IDiaSymbol::get_sizeInUdt);
847 }
848
849 DIAResult<DWORD> DIASymbol::getSlot() {
850   return InternalGetDIAValue(&IDiaSymbol::get_slot);
851 }
852
853 DIAResult<DIAString> DIASymbol::getSourceFileName() {
854   return InternalGetDIAStringValue(&IDiaSymbol::get_sourceFileName);
855 }
856
857 DIAResult<DWORD> DIASymbol::getStride() {
858   return InternalGetDIAValue(&IDiaSymbol::get_stride);
859 }
860
861 DIAResult<DWORD> DIASymbol::getSubTypeId() {
862   return InternalGetDIAValue(&IDiaSymbol::get_subTypeId);
863 }
864
865 DIAResult<DIAString> DIASymbol::getSymbolsFileName() {
866   return InternalGetDIAStringValue(&IDiaSymbol::get_symbolsFileName);
867 }
868
869 DIAResult<DWORD> DIASymbol::getSymIndexId() {
870   return InternalGetDIAValue(&IDiaSymbol::get_symIndexId);
871 }
872
873 DIAResult<DiaSymTagEnum> DIASymbol::getSymTag() {
874   return InternalGetDIAValue<DWORD, DiaSymTagEnum>(&IDiaSymbol::get_symTag);
875 }
876
877 DIAResult<DWORD> DIASymbol::getTargetOffset() {
878   return InternalGetDIAValue(&IDiaSymbol::get_targetOffset);
879 }
880
881 DIAResult<DWORD> DIASymbol::getTargetRelativeVirtualAddress() {
882   return InternalGetDIAValue(&IDiaSymbol::get_targetRelativeVirtualAddress);
883 }
884
885 DIAResult<DWORD> DIASymbol::getTargetSection() {
886   return InternalGetDIAValue(&IDiaSymbol::get_targetSection);
887 }
888
889 DIAResult<ULONGLONG> DIASymbol::getTargetVirtualAddress() {
890   return InternalGetDIAValue(&IDiaSymbol::get_targetVirtualAddress);
891 }
892
893 DIAResult<DWORD> DIASymbol::getTextureSlot() {
894   return InternalGetDIAValue(&IDiaSymbol::get_textureSlot);
895 }
896
897 DIAResult<LONG> DIASymbol::getThisAdjust() {
898   return InternalGetDIAValue(&IDiaSymbol::get_thisAdjust);
899 }
900
901 DIAResult<THUNK_ORDINAL> DIASymbol::getThunkOrdinal() {
902   return InternalGetDIAValue<DWORD, THUNK_ORDINAL>(
903       &IDiaSymbol::get_thunkOrdinal);
904 }
905
906 DIAResult<DWORD> DIASymbol::getTimeStamp() {
907   return InternalGetDIAValue(&IDiaSymbol::get_timeStamp);
908 }
909
910 DIAResult<DWORD> DIASymbol::getToken() {
911   return InternalGetDIAValue(&IDiaSymbol::get_token);
912 }
913
914 DIAResult<DWORD> DIASymbol::getUavSlot() {
915   return InternalGetDIAValue(&IDiaSymbol::get_uavSlot);
916 }
917
918 DIAResult<UdtKind> DIASymbol::getUdtKind() {
919   return InternalGetDIAValue<DWORD, UdtKind>(&IDiaSymbol::get_udtKind);
920 }
921
922 DIAResult<BOOL> DIASymbol::isUnalignedType() {
923   return InternalGetDIAValue(&IDiaSymbol::get_unalignedType);
924 }
925
926 DIAResult<DIAString> DIASymbol::getUndecoratedName() {
927   return InternalGetDIAStringValue(&IDiaSymbol::get_undecoratedName);
928 }
929
930 DIAResult<DWORD> DIASymbol::getUnmodifiedTypeId() {
931   return InternalGetDIAValue(&IDiaSymbol::get_unmodifiedTypeId);
932 }
933
934 DIAResult<DWORD> DIASymbol::getUpperBoundId() {
935   return InternalGetDIAValue(&IDiaSymbol::get_upperBoundId);
936 }
937
938 DIAResult<BOOL> DIASymbol::isVirtual() {
939   return InternalGetDIAValue(&IDiaSymbol::get_virtual);
940 }
941
942 DIAResult<ULONGLONG> DIASymbol::getVirtualAddress() {
943   return InternalGetDIAValue(&IDiaSymbol::get_virtualAddress);
944 }
945
946 DIAResult<BOOL> DIASymbol::isVirtualBaseClass() {
947   return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseClass);
948 }
949
950 DIAResult<DWORD> DIASymbol::getVirtualBaseDispIndex() {
951   return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseDispIndex);
952 }
953
954 DIAResult<DWORD> DIASymbol::getVirtualBaseOffset() {
955   return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseOffset);
956 }
957
958 DIAResult<LONG> DIASymbol::getVirtualBasePointerOffset() {
959   return InternalGetDIAValue(&IDiaSymbol::get_virtualBasePointerOffset);
960 }
961
962 DIAResult<DWORD> DIASymbol::getVirtualTableShapeId() {
963   return InternalGetDIAValue(&IDiaSymbol::get_virtualTableShapeId);
964 }
965
966 DIAResult<BOOL> DIASymbol::isVolatileType() {
967   return InternalGetDIAValue(&IDiaSymbol::get_volatileType);
968 }