Zachary Turner | 0e9e663 | 2015-02-06 20:30:52 +0000 | [diff] [blame^] | 1 | //===- PDBInterfaceAnchors.h - defines class anchor funcions ----*- 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 | // Class anchors are necessary per the LLVM Coding style guide, to ensure that |
| 10 | // the vtable is only generated in this object file, and not in every object |
| 11 | // file that incldues the corresponding header. |
| 12 | //===----------------------------------------------------------------------===// |
| 13 | |
| 14 | #include "llvm/DebugInfo/PDB/IPDBDataStream.h" |
| 15 | #include "llvm/DebugInfo/PDB/IPDBLineNumber.h" |
| 16 | #include "llvm/DebugInfo/PDB/IPDBSession.h" |
| 17 | #include "llvm/DebugInfo/PDB/IPDBSourceFile.h" |
| 18 | #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h" |
| 19 | |
| 20 | #include "llvm/DebugInfo/PDB/PDBSymbolAnnotation.h" |
| 21 | #include "llvm/DebugInfo/PDB/PDBSymbolBlock.h" |
| 22 | #include "llvm/DebugInfo/PDB/PDBSymbolCompiland.h" |
| 23 | #include "llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h" |
| 24 | #include "llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h" |
| 25 | #include "llvm/DebugInfo/PDB/PDBSymbolCustom.h" |
| 26 | #include "llvm/DebugInfo/PDB/PDBSymbolData.h" |
| 27 | #include "llvm/DebugInfo/PDB/PDBSymbolExe.h" |
| 28 | #include "llvm/DebugInfo/PDB/PDBSymbolFunc.h" |
| 29 | #include "llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h" |
| 30 | #include "llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h" |
| 31 | #include "llvm/DebugInfo/PDB/PDBSymbolLabel.h" |
| 32 | #include "llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h" |
| 33 | #include "llvm/DebugInfo/PDB/PDBSymbolThunk.h" |
| 34 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeArray.h" |
| 35 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h" |
| 36 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h" |
| 37 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h" |
| 38 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h" |
| 39 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h" |
| 40 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h" |
| 41 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h" |
| 42 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h" |
| 43 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h" |
| 44 | #include "llvm/DebugInfo/PDB/PDBSymbolTypePointer.h" |
| 45 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h" |
| 46 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h" |
| 47 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h" |
| 48 | #include "llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h" |
| 49 | #include "llvm/DebugInfo/PDB/PDBSymbolUnknown.h" |
| 50 | #include "llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h" |
| 51 | |
| 52 | using namespace llvm; |
| 53 | |
| 54 | IPDBSession::~IPDBSession() {} |
| 55 | |
| 56 | IPDBDataStream::~IPDBDataStream() {} |
| 57 | |
| 58 | IPDBRawSymbol::~IPDBRawSymbol() {} |
| 59 | |
| 60 | IPDBSourceFile::~IPDBSourceFile() {} |
| 61 | |
| 62 | IPDBLineNumber::~IPDBLineNumber() {} |
| 63 | |
| 64 | // All of the concrete symbol types have their methods declared inline through |
| 65 | // the use of a forwarding macro, so the constructor should be declared out of |
| 66 | // line to get the vtable in this file. |
| 67 | #define FORWARD_SYMBOL_CONSTRUCTOR(ClassName) \ |
| 68 | ClassName::ClassName(std::unique_ptr<IPDBRawSymbol> Symbol) \ |
| 69 | : PDBSymbol(std::move(Symbol)) {} |
| 70 | |
| 71 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolAnnotation) |
| 72 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolBlock) |
| 73 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolCompiland) |
| 74 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolCompilandDetails) |
| 75 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolCompilandEnv) |
| 76 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolCustom) |
| 77 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolData) |
| 78 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolExe) |
| 79 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolFunc) |
| 80 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolFuncDebugEnd) |
| 81 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolFuncDebugStart) |
| 82 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolLabel) |
| 83 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolPublicSymbol) |
| 84 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolThunk) |
| 85 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeArray) |
| 86 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeBaseClass) |
| 87 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeBuiltin) |
| 88 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeCustom) |
| 89 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeDimension) |
| 90 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeEnum) |
| 91 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeFriend) |
| 92 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeFunctionArg) |
| 93 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeFunctionSig) |
| 94 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeManaged) |
| 95 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypePointer) |
| 96 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeTypedef) |
| 97 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeUDT) |
| 98 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeVTable) |
| 99 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeVTableShape) |
| 100 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolUnknown) |
| 101 | FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolUsingNamespace) |