Some cleanup for libpdb.

This patch implements a few of the optional suggestions from the
initial patch comitting libpdb.  In particular, it implements a
virtual function out of line for each of the concrete classes.

A few other minor cleanups exist as well, such as using override
instead of virtual, etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228516 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Zachary Turner 2015-02-08 00:29:29 +00:00
parent 3e7edda4aa
commit e642985be9
68 changed files with 838 additions and 95 deletions

View File

@ -14,12 +14,12 @@
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/COFF.h"
#include "llvm/Support/raw_ostream.h"
#include "PDBTypes.h"
namespace llvm {
class raw_ostream;
/// IPDBRawSymbol defines an interface used to represent an arbitrary symbol.
/// It exposes a monolithic interface consisting of accessors for the union of
/// all properties that are valid for any symbol type. This interface is then
@ -41,14 +41,12 @@ public:
findInlineFramesByRVA(uint32_t RVA) const = 0;
virtual void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const = 0;
virtual void getBackEndVersion(VersionInfo &Version) const = 0;
virtual PDB_MemberAccess getAccess() const = 0;
virtual uint32_t getAddressOffset() const = 0;
virtual uint32_t getAddressSection() const = 0;
virtual uint32_t getAge() const = 0;
virtual uint32_t getArrayIndexTypeId() const = 0;
virtual uint32_t getBackEndBuild() const = 0;
virtual uint32_t getBackEndMajor() const = 0;
virtual uint32_t getBackEndMinor() const = 0;
virtual uint32_t getBaseDataOffset() const = 0;
virtual uint32_t getBaseDataSlot() const = 0;
virtual uint32_t getBaseSymbolId() const = 0;
@ -59,9 +57,7 @@ public:
virtual std::string getCompilerName() const = 0;
virtual uint32_t getCount() const = 0;
virtual uint32_t getCountLiveRanges() const = 0;
virtual uint32_t getFrontEndBuild() const = 0;
virtual uint32_t getFrontEndMajor() const = 0;
virtual uint32_t getFrontEndMinor() const = 0;
virtual void getFrontEndVersion(VersionInfo &Version) const = 0;
virtual PDB_Lang getLanguage() const = 0;
virtual uint32_t getLexicalParentId() const = 0;
virtual std::string getLibraryName() const = 0;
@ -117,7 +113,7 @@ public:
virtual int32_t getThisAdjust() const = 0;
virtual int32_t getVirtualBasePointerOffset() const = 0;
virtual PDB_LocType getLocationType() const = 0;
virtual COFF::MachineTypes getMachineType() const = 0;
virtual PDB_Machine getMachineType() const = 0;
virtual PDB_ThunkOrdinal getThunkOrdinal() const = 0;
virtual uint64_t getLength() const = 0;
virtual uint64_t getLiveRangeLength() const = 0;

View File

@ -13,7 +13,6 @@
#include <memory>
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/Casting.h"
#include "IPDBRawSymbol.h"
@ -27,6 +26,7 @@
namespace llvm {
class IPDBRawSymbol;
class raw_ostream;
/// PDBSymbol defines the base of the inheritance hierarchy for concrete symbol
/// types (e.g. functions, executables, vtables, etc). All concrete symbol

View File

@ -16,10 +16,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolAnnotation : public PDBSymbol {
public:
PDBSymbolAnnotation(std::unique_ptr<IPDBRawSymbol> AnnotationSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getAddressOffset)
FORWARD_SYMBOL_METHOD(getAddressSection)
FORWARD_SYMBOL_METHOD(getDataKind)

View File

@ -16,10 +16,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolBlock : public PDBSymbol {
public:
PDBSymbolBlock(std::unique_ptr<IPDBRawSymbol> BlockSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getAddressOffset)
FORWARD_SYMBOL_METHOD(getAddressSection)
FORWARD_SYMBOL_METHOD(getLength)

View File

@ -16,10 +16,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolCompiland : public PDBSymbol {
public:
PDBSymbolCompiland(std::unique_ptr<IPDBRawSymbol> CompilandSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(isEditAndContinueEnabled)
FORWARD_SYMBOL_METHOD(getLexicalParentId)
FORWARD_SYMBOL_METHOD(getLibraryName)

View File

@ -15,18 +15,24 @@
namespace llvm {
class raw_ostream;
class PDBSymbolCompilandDetails : public PDBSymbol {
public:
PDBSymbolCompilandDetails(std::unique_ptr<IPDBRawSymbol> DetailsSymbol);
FORWARD_SYMBOL_METHOD(getBackEndBuild)
FORWARD_SYMBOL_METHOD(getBackEndMajor)
FORWARD_SYMBOL_METHOD(getBackEndMinor)
void dump(llvm::raw_ostream &OS) const override;
void getFrontEndVersion(VersionInfo &Version) const {
RawSymbol->getFrontEndVersion(Version);
}
void getBackEndVersion(VersionInfo &Version) const {
RawSymbol->getBackEndVersion(Version);
}
FORWARD_SYMBOL_METHOD(getCompilerName)
FORWARD_SYMBOL_METHOD(isEditAndContinueEnabled)
FORWARD_SYMBOL_METHOD(getFrontEndBuild)
FORWARD_SYMBOL_METHOD(getFrontEndMajor)
FORWARD_SYMBOL_METHOD(getFrontEndMinor)
FORWARD_SYMBOL_METHOD(hasDebugInfo)
FORWARD_SYMBOL_METHOD(hasManagedCode)
FORWARD_SYMBOL_METHOD(hasSecurityChecks)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolCompilandEnv : public PDBSymbol {
public:
PDBSymbolCompilandEnv(std::unique_ptr<IPDBRawSymbol> CompilandEnvSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getLexicalParentId)
FORWARD_SYMBOL_METHOD(getName)
FORWARD_SYMBOL_METHOD(getSymIndexId)

View File

@ -17,6 +17,8 @@
namespace llvm {
class raw_ostream;
/// PDBSymbolCustom represents symbols that are compiler-specific and do not
/// fit anywhere else in the lexical hierarchy.
/// https://msdn.microsoft.com/en-us/library/d88sf09h.aspx
@ -24,8 +26,9 @@ class PDBSymbolCustom : public PDBSymbol {
public:
PDBSymbolCustom(std::unique_ptr<IPDBRawSymbol> CustomSymbol);
void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes);
void dump(llvm::raw_ostream &OS) const override;
void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes);
FORWARD_SYMBOL_METHOD(getSymIndexId)
static bool classof(const PDBSymbol *S) {

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolData : public PDBSymbol {
public:
PDBSymbolData(std::unique_ptr<IPDBRawSymbol> DataSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getAccess)
FORWARD_SYMBOL_METHOD(getAddressOffset)
FORWARD_SYMBOL_METHOD(getAddressSection)

View File

@ -6,6 +6,7 @@
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_DEBUGINFO_PDB_PDBSYMBOLEXE_H
#define LLVM_DEBUGINFO_PDB_PDBSYMBOLEXE_H
@ -18,10 +19,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolExe : public PDBSymbol {
public:
PDBSymbolExe(std::unique_ptr<IPDBRawSymbol> ExeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getAge)
FORWARD_SYMBOL_METHOD(getGuid)
FORWARD_SYMBOL_METHOD(hasCTypes)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolFunc : public PDBSymbol {
public:
PDBSymbolFunc(std::unique_ptr<IPDBRawSymbol> FuncSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getAccess)
FORWARD_SYMBOL_METHOD(getAddressOffset)
FORWARD_SYMBOL_METHOD(getAddressSection)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolFuncDebugEnd : public PDBSymbol {
public:
PDBSymbolFuncDebugEnd(std::unique_ptr<IPDBRawSymbol> FuncDebugEndSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getAddressOffset)
FORWARD_SYMBOL_METHOD(getAddressSection)
FORWARD_SYMBOL_METHOD(hasCustomCallingConvention)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolFuncDebugStart : public PDBSymbol {
public:
PDBSymbolFuncDebugStart(std::unique_ptr<IPDBRawSymbol> FuncDebugStartSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getAddressOffset)
FORWARD_SYMBOL_METHOD(getAddressSection)
FORWARD_SYMBOL_METHOD(hasCustomCallingConvention)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolLabel : public PDBSymbol {
public:
PDBSymbolLabel(std::unique_ptr<IPDBRawSymbol> LabelSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getAddressOffset)
FORWARD_SYMBOL_METHOD(getAddressSection)
FORWARD_SYMBOL_METHOD(hasCustomCallingConvention)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolPublicSymbol : public PDBSymbol {
public:
PDBSymbolPublicSymbol(std::unique_ptr<IPDBRawSymbol> PublicSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getAddressOffset)
FORWARD_SYMBOL_METHOD(getAddressSection)
FORWARD_SYMBOL_METHOD(isCode)

View File

@ -6,6 +6,7 @@
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_DEBUGINFO_PDB_PDBSYMBOLTHUNK_H
#define LLVM_DEBUGINFO_PDB_PDBSYMBOLTHUNK_H
@ -16,10 +17,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolThunk : public PDBSymbol {
public:
PDBSymbolThunk(std::unique_ptr<IPDBRawSymbol> ThunkSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getAccess)
FORWARD_SYMBOL_METHOD(getAddressOffset)
FORWARD_SYMBOL_METHOD(getAddressSection)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeArray : public PDBSymbol {
public:
PDBSymbolTypeArray(std::unique_ptr<IPDBRawSymbol> ArrayTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getArrayIndexTypeId)
FORWARD_SYMBOL_METHOD(isConstType)
FORWARD_SYMBOL_METHOD(getCount)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeBaseClass : public PDBSymbol {
public:
PDBSymbolTypeBaseClass(std::unique_ptr<IPDBRawSymbol> BaseClassTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getAccess)
FORWARD_SYMBOL_METHOD(getClassParentId)
FORWARD_SYMBOL_METHOD(hasConstructor)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeBuiltin : public PDBSymbol {
public:
PDBSymbolTypeBuiltin(std::unique_ptr<IPDBRawSymbol> BuiltinTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getBuiltinType)
FORWARD_SYMBOL_METHOD(isConstType)
FORWARD_SYMBOL_METHOD(getLength)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeCustom : public PDBSymbol {
public:
PDBSymbolTypeCustom(std::unique_ptr<IPDBRawSymbol> CustomTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getOemId)
FORWARD_SYMBOL_METHOD(getOemSymbolId)
FORWARD_SYMBOL_METHOD(getSymIndexId)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeDimension : public PDBSymbol {
public:
PDBSymbolTypeDimension(std::unique_ptr<IPDBRawSymbol> DimensionTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getLowerBoundId)
FORWARD_SYMBOL_METHOD(getUpperBoundId)
FORWARD_SYMBOL_METHOD(getSymIndexId)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeEnum : public PDBSymbol {
public:
PDBSymbolTypeEnum(std::unique_ptr<IPDBRawSymbol> EnumTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getBuiltinType)
FORWARD_SYMBOL_METHOD(getClassParentId)
FORWARD_SYMBOL_METHOD(hasConstructor)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeFriend : public PDBSymbol {
public:
PDBSymbolTypeFriend(std::unique_ptr<IPDBRawSymbol> FriendTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getClassParentId)
FORWARD_SYMBOL_METHOD(getName)
FORWARD_SYMBOL_METHOD(getSymIndexId)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeFunctionArg : public PDBSymbol {
public:
PDBSymbolTypeFunctionArg(std::unique_ptr<IPDBRawSymbol> FuncArgTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getClassParentId)
FORWARD_SYMBOL_METHOD(getLexicalParentId)
FORWARD_SYMBOL_METHOD(getSymIndexId)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeFunctionSig : public PDBSymbol {
public:
PDBSymbolTypeFunctionSig(std::unique_ptr<IPDBRawSymbol> FuncSigTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getCallingConvention)
FORWARD_SYMBOL_METHOD(getClassParentId)
FORWARD_SYMBOL_METHOD(isConstType)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeManaged : public PDBSymbol {
public:
PDBSymbolTypeManaged(std::unique_ptr<IPDBRawSymbol> ManagedTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getName)
FORWARD_SYMBOL_METHOD(getSymIndexId)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypePointer : public PDBSymbol {
public:
PDBSymbolTypePointer(std::unique_ptr<IPDBRawSymbol> PointerTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(isConstType)
FORWARD_SYMBOL_METHOD(getLength)
FORWARD_SYMBOL_METHOD(getLexicalParentId)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeTypedef : public PDBSymbol {
public:
PDBSymbolTypeTypedef(std::unique_ptr<IPDBRawSymbol> TypedefSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getBuiltinType)
FORWARD_SYMBOL_METHOD(getClassParentId)
FORWARD_SYMBOL_METHOD(hasConstructor)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeUDT : public PDBSymbol {
public:
PDBSymbolTypeUDT(std::unique_ptr<IPDBRawSymbol> UDTSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getClassParentId)
FORWARD_SYMBOL_METHOD(hasConstructor)
FORWARD_SYMBOL_METHOD(isConstType)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeVTable : public PDBSymbol {
public:
PDBSymbolTypeVTable(std::unique_ptr<IPDBRawSymbol> VtblSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getClassParentId)
FORWARD_SYMBOL_METHOD(isConstType)
FORWARD_SYMBOL_METHOD(getLexicalParentId)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolTypeVTableShape : public PDBSymbol {
public:
PDBSymbolTypeVTableShape(std::unique_ptr<IPDBRawSymbol> VtblShapeSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(isConstType)
FORWARD_SYMBOL_METHOD(getCount)
FORWARD_SYMBOL_METHOD(getLexicalParentId)

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolUnknown : public PDBSymbol {
public:
PDBSymbolUnknown(std::unique_ptr<IPDBRawSymbol> UnknownSymbol);
void dump(llvm::raw_ostream &OS) const override;
static bool classof(const PDBSymbol *S) {
return (S->getSymTag() == PDB_SymType::None ||
S->getSymTag() >= PDB_SymType::Max);

View File

@ -15,10 +15,14 @@
namespace llvm {
class raw_ostream;
class PDBSymbolUsingNamespace : public PDBSymbol {
public:
PDBSymbolUsingNamespace(std::unique_ptr<IPDBRawSymbol> UsingSymbol);
void dump(llvm::raw_ostream &OS) const override;
FORWARD_SYMBOL_METHOD(getLexicalParentId)
FORWARD_SYMBOL_METHOD(getName)
FORWARD_SYMBOL_METHOD(getSymIndexId)

View File

@ -25,7 +25,7 @@ class IPDBRawSymbol;
class IPDBSession;
class IPDBSourceFile;
typedef IPDBEnumChildren<IPDBRawSymbol> IPDBEnumSymbols;
typedef IPDBEnumChildren<PDBSymbol> IPDBEnumSymbols;
typedef IPDBEnumChildren<IPDBSourceFile> IPDBEnumSourceFiles;
typedef IPDBEnumChildren<IPDBDataStream> IPDBEnumDataStreams;
typedef IPDBEnumChildren<PDBSymbolCompiland> IPDBEnumCompilands;
@ -171,6 +171,31 @@ enum class PDB_Cpu {
D3D11_Shader = 0x100,
};
enum class PDB_Machine {
Invalid = 0xffff,
Unknown = 0x0,
Am33 = 0x13,
Amd64 = 0x8664,
Arm = 0x1C0,
Armnt = 0x1C4,
Ebc = 0xEBC,
I386 = 0x14C,
Ia64 = 0x200,
M32r = 0x9041,
Mips16 = 0x266,
MipsFPU = 0x366,
MipsFPU16 = 0x466,
PowerPC = 0x1F0,
PowerPCFP = 0x1F1,
R4000 = 0x166,
SH3 = 0x1A2,
SH3DSP = 0x1A3,
SH4 = 0x1A6,
SH5 = 0x1A8,
Thumb = 0x1C2,
WceMipsV2 = 0x169
};
/// These values correspond to the CV_call_e enumeration, and are documented
/// at the following locations:
/// https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx
@ -345,6 +370,13 @@ enum class PDB_BuiltinType {
enum class PDB_MemberAccess { Private = 1, Protected = 2, Public = 3 };
struct VersionInfo {
uint32_t Major;
uint32_t Minor;
uint32_t Build;
uint32_t QFE;
};
} // namespace llvm
#endif

View File

@ -2,6 +2,35 @@ add_llvm_library(LLVMDebugInfoPDB
PDB.cpp
PDBInterfaceAnchors.cpp
PDBSymbol.cpp
PDBSymbolAnnotation.cpp
PDBSymbolBlock.cpp
PDBSymbolCompiland.cpp
PDBSymbolCompilandDetails.cpp
PDBSymbolCompilandEnv.cpp
PDBSymbolCustom.cpp
PDBSymbolData.cpp
PDBSymbolExe.cpp
PDBSymbolFunc.cpp
PDBSymbolFuncDebugEnd.cpp
PDBSymbolFuncDebugStart.cpp
PDBSymbolLabel.cpp
PDBSymbolPublicSymbol.cpp
PDBSymbolThunk.cpp
PDBSymbolTypeArray.cpp
PDBSymbolTypeBaseClass.cpp
PDBSymbolTypeBuiltin.cpp
PDBSymbolTypeCustom.cpp
PDBSymbolTypeDimension.cpp
PDBSymbolTypeEnum.cpp
PDBSymbolTypeFriend.cpp
PDBSymbolTypeFunctionArg.cpp
PDBSymbolTypeFunctionSig.cpp
PDBSymbolTypeManaged.cpp
PDBSymbolTypePointer.cpp
PDBSymbolTypeTypedef.cpp
PDBSymbolTypeUDT.cpp
PDBSymbolTypeVTable.cpp
PDBSymbolTypeVTableShape.cpp
PDBSymbolUnknown.cpp
PDBSymbolUsingNamespace.cpp
)

View File

@ -17,38 +17,6 @@
#include "llvm/DebugInfo/PDB/IPDBSourceFile.h"
#include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolAnnotation.h"
#include "llvm/DebugInfo/PDB/PDBSymbolBlock.h"
#include "llvm/DebugInfo/PDB/PDBSymbolCompiland.h"
#include "llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h"
#include "llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h"
#include "llvm/DebugInfo/PDB/PDBSymbolCustom.h"
#include "llvm/DebugInfo/PDB/PDBSymbolData.h"
#include "llvm/DebugInfo/PDB/PDBSymbolExe.h"
#include "llvm/DebugInfo/PDB/PDBSymbolFunc.h"
#include "llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h"
#include "llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h"
#include "llvm/DebugInfo/PDB/PDBSymbolLabel.h"
#include "llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolThunk.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeArray.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypePointer.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h"
#include "llvm/DebugInfo/PDB/PDBSymbolUnknown.h"
#include "llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h"
using namespace llvm;
IPDBSession::~IPDBSession() {}
@ -60,42 +28,3 @@ IPDBRawSymbol::~IPDBRawSymbol() {}
IPDBSourceFile::~IPDBSourceFile() {}
IPDBLineNumber::~IPDBLineNumber() {}
// All of the concrete symbol types have their methods declared inline through
// the use of a forwarding macro, so the constructor should be declared out of
// line to get the vtable in this file.
#define FORWARD_SYMBOL_CONSTRUCTOR(ClassName) \
ClassName::ClassName(std::unique_ptr<IPDBRawSymbol> Symbol) \
: PDBSymbol(std::move(Symbol)) {}
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolAnnotation)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolBlock)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolCompiland)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolCompilandDetails)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolCompilandEnv)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolCustom)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolData)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolExe)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolFunc)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolFuncDebugEnd)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolFuncDebugStart)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolLabel)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolPublicSymbol)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolThunk)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeArray)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeBaseClass)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeBuiltin)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeCustom)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeDimension)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeEnum)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeFriend)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeFunctionArg)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeFunctionSig)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeManaged)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypePointer)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeTypedef)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeUDT)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeVTable)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolTypeVTableShape)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolUnknown)
FORWARD_SYMBOL_CONSTRUCTOR(PDBSymbolUsingNamespace)

View File

@ -0,0 +1,20 @@
//===- PDBSymbolAnnotation.cpp - --------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolAnnotation.h"
using namespace llvm;
PDBSymbolAnnotation::PDBSymbolAnnotation(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolAnnotation::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,20 @@
//===- PDBSymbolBlock.cpp - -------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolBlock.h"
using namespace llvm;
PDBSymbolBlock::PDBSymbolBlock(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolBlock::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,24 @@
//===- PDBSymbolCompiland.cpp - compiland details --------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolCompiland.h"
#include "llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
PDBSymbolCompiland::PDBSymbolCompiland(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolCompiland::dump(llvm::raw_ostream &OS) const {
}

View File

@ -0,0 +1,21 @@
//===- PDBSymbolCompilandDetails.cpp - compiland details --------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h"
using namespace llvm;
PDBSymbolCompilandDetails::PDBSymbolCompilandDetails(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolCompilandDetails::dump(llvm::raw_ostream &OS) const {}

View File

@ -15,7 +15,13 @@
using namespace llvm;
PDBSymbolCompilandEnv::PDBSymbolCompilandEnv(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
std::string PDBSymbolCompilandEnv::getValue() const {
// call RawSymbol->getValue() and convert the result to an std::string.
return std::string();
}
void PDBSymbolCompilandEnv::dump(llvm::raw_ostream &OS) const {}

View File

@ -15,6 +15,11 @@
using namespace llvm;
PDBSymbolCustom::PDBSymbolCustom(std::unique_ptr<IPDBRawSymbol> CustomSymbol)
: PDBSymbol(std::move(CustomSymbol)) {}
void PDBSymbolCustom::getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) {
RawSymbol->getDataBytes(bytes);
}
void PDBSymbolCustom::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,17 @@
//===- PDBSymbolData.cpp - PDB data (e.g. variable) accessors ---*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "llvm/DebugInfo/PDB/PDBSymbolData.h"
using namespace llvm;
PDBSymbolData::PDBSymbolData(std::unique_ptr<IPDBRawSymbol> DataSymbol)
: PDBSymbol(std::move(DataSymbol)) {}
void PDBSymbolData::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,45 @@
//===- PDBSymbolExe.cpp - ---------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolExe.h"
#include "llvm/Support/ConvertUTF.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/raw_ostream.h"
#if defined(_WIN32)
#include <windows.h>
#endif
using namespace llvm;
namespace {
std::string GuidToString(PDB_UniqueId *Id) {
#if defined(_WIN32)
GUID *Guid = reinterpret_cast<GUID *>(Id);
OLECHAR GuidBuf[40];
int Result = StringFromGUID2(*Guid, GuidBuf, 39);
const char *InputBytes = reinterpret_cast<const char *>(GuidBuf);
std::string ResultString;
convertUTF16ToUTF8String(ArrayRef<char>(InputBytes, Result * 2),
ResultString);
return ResultString;
#else
return std::string();
#endif
}
}
PDBSymbolExe::PDBSymbolExe(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolExe::dump(llvm::raw_ostream &OS) const {
}

View File

@ -0,0 +1,20 @@
//===- PDBSymbolFunc.cpp - --------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolFunc.h"
using namespace llvm;
PDBSymbolFunc::PDBSymbolFunc(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolFunc::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,21 @@
//===- PDBSymbolFuncDebugEnd.cpp - ------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h"
using namespace llvm;
PDBSymbolFuncDebugEnd::PDBSymbolFuncDebugEnd(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolFuncDebugEnd::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,21 @@
//===- PDBSymbolFuncDebugStart.cpp - ----------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h"
using namespace llvm;
PDBSymbolFuncDebugStart::PDBSymbolFuncDebugStart(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolFuncDebugStart::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,20 @@
//===- PDBSymbolLabel.cpp - -------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolLabel.h"
using namespace llvm;
PDBSymbolLabel::PDBSymbolLabel(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolLabel::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,21 @@
//===- PDBSymbolPublicSymbol.cpp - ------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h"
using namespace llvm;
PDBSymbolPublicSymbol::PDBSymbolPublicSymbol(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolPublicSymbol::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,20 @@
//===- PDBSymbolThunk.cpp - -------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolThunk.h"
using namespace llvm;
PDBSymbolThunk::PDBSymbolThunk(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolThunk::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,20 @@
//===- PDBSymbolTypeArray.cpp - ---------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeArray.h"
using namespace llvm;
PDBSymbolTypeArray::PDBSymbolTypeArray(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeArray::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,21 @@
//===- PDBSymbolTypeBaseClass.cpp - -----------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h"
using namespace llvm;
PDBSymbolTypeBaseClass::PDBSymbolTypeBaseClass(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeBaseClass::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,21 @@
//===- PDBSymbolTypeBuiltin.cpp - ------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"
using namespace llvm;
PDBSymbolTypeBuiltin::PDBSymbolTypeBuiltin(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeBuiltin::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,20 @@
//===- PDBSymbolTypeCustom.cpp - --------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h"
using namespace llvm;
PDBSymbolTypeCustom::PDBSymbolTypeCustom(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeCustom::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,22 @@
//===- PDBSymbolTypeDimension.cpp - --------------------------------*- C++
//-*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h"
using namespace llvm;
PDBSymbolTypeDimension::PDBSymbolTypeDimension(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeDimension::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,20 @@
//===- PDBSymbolTypeEnum.cpp - --------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h"
using namespace llvm;
PDBSymbolTypeEnum::PDBSymbolTypeEnum(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeEnum::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,20 @@
//===- PDBSymbolTypeFriend.cpp - --------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h"
using namespace llvm;
PDBSymbolTypeFriend::PDBSymbolTypeFriend(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeFriend::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,21 @@
//===- PDBSymbolTypeFunctionArg.cpp - --------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h"
using namespace llvm;
PDBSymbolTypeFunctionArg::PDBSymbolTypeFunctionArg(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeFunctionArg::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,21 @@
//===- PDBSymbolTypeFunctionSig.cpp - --------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h"
using namespace llvm;
PDBSymbolTypeFunctionSig::PDBSymbolTypeFunctionSig(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeFunctionSig::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,21 @@
//===- PDBSymboTypelManaged.cpp - ------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h"
using namespace llvm;
PDBSymbolTypeManaged::PDBSymbolTypeManaged(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeManaged::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,22 @@
//===- PDBSymbolTypePointer.cpp - --------------------------------*- C++
//-*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypePointer.h"
using namespace llvm;
PDBSymbolTypePointer::PDBSymbolTypePointer(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypePointer::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,22 @@
//===- PDBSymbolTypeTypedef.cpp - --------------------------------*- C++
//-*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h"
using namespace llvm;
PDBSymbolTypeTypedef::PDBSymbolTypeTypedef(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeTypedef::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,20 @@
//===- PDBSymbolTypeUDT.cpp - --------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h"
using namespace llvm;
PDBSymbolTypeUDT::PDBSymbolTypeUDT(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeUDT::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,20 @@
//===- PDBSymbolTypeVTable.cpp - --------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h"
using namespace llvm;
PDBSymbolTypeVTable::PDBSymbolTypeVTable(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeVTable::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,21 @@
//===- PDBSymbolTypeVTableShape.cpp - ---------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h"
using namespace llvm;
PDBSymbolTypeVTableShape::PDBSymbolTypeVTableShape(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolTypeVTableShape::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,20 @@
//===- PDBSymbolUnknown.cpp - -----------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolUnknown.h"
using namespace llvm;
PDBSymbolUnknown::PDBSymbolUnknown(std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolUnknown::dump(llvm::raw_ostream &OS) const {}

View File

@ -0,0 +1,21 @@
//===- PDBSymbolUsingNamespace.cpp - ------------------- --------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <utility>
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
#include "llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h"
using namespace llvm;
PDBSymbolUsingNamespace::PDBSymbolUsingNamespace(
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(std::move(Symbol)) {}
void PDBSymbolUsingNamespace::dump(llvm::raw_ostream &OS) const {}

View File

@ -88,6 +88,8 @@ public:
}
void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const override {}
void getFrontEndVersion(VersionInfo &Version) const override {}
void getBackEndVersion(VersionInfo &Version) const override {}
PDB_SymType getSymTag() const override { return Type; }
@ -96,9 +98,6 @@ public:
MOCK_SYMBOL_ACCESSOR(getAddressSection)
MOCK_SYMBOL_ACCESSOR(getAge)
MOCK_SYMBOL_ACCESSOR(getArrayIndexTypeId)
MOCK_SYMBOL_ACCESSOR(getBackEndBuild)
MOCK_SYMBOL_ACCESSOR(getBackEndMajor)
MOCK_SYMBOL_ACCESSOR(getBackEndMinor)
MOCK_SYMBOL_ACCESSOR(getBaseDataOffset)
MOCK_SYMBOL_ACCESSOR(getBaseDataSlot)
MOCK_SYMBOL_ACCESSOR(getBaseSymbolId)
@ -109,9 +108,6 @@ public:
MOCK_SYMBOL_ACCESSOR(getCompilerName)
MOCK_SYMBOL_ACCESSOR(getCount)
MOCK_SYMBOL_ACCESSOR(getCountLiveRanges)
MOCK_SYMBOL_ACCESSOR(getFrontEndBuild)
MOCK_SYMBOL_ACCESSOR(getFrontEndMajor)
MOCK_SYMBOL_ACCESSOR(getFrontEndMinor)
MOCK_SYMBOL_ACCESSOR(getLanguage)
MOCK_SYMBOL_ACCESSOR(getLexicalParentId)
MOCK_SYMBOL_ACCESSOR(getLibraryName)