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