diff options
Diffstat (limited to 'contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp')
| -rw-r--r-- | contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp | 21 | 
1 files changed, 13 insertions, 8 deletions
diff --git a/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp b/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp index 35251c0cc1c1..0734a1f8314a 100644 --- a/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp +++ b/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp @@ -85,10 +85,8 @@ private:  PDBSymbolFunc::PDBSymbolFunc(const IPDBSession &PDBSession,                               std::unique_ptr<IPDBRawSymbol> Symbol) -    : PDBSymbol(PDBSession, std::move(Symbol)) {} - -std::unique_ptr<PDBSymbolTypeFunctionSig> PDBSymbolFunc::getSignature() const { -  return Session.getConcreteSymbolById<PDBSymbolTypeFunctionSig>(getTypeId()); +    : PDBSymbol(PDBSession, std::move(Symbol)) { +  assert(RawSymbol->getSymTag() == PDB_SymType::Function);  }  std::unique_ptr<IPDBEnumChildren<PDBSymbolData>> @@ -96,8 +94,15 @@ PDBSymbolFunc::getArguments() const {    return llvm::make_unique<FunctionArgEnumerator>(Session, *this);  } -std::unique_ptr<PDBSymbolTypeUDT> PDBSymbolFunc::getClassParent() const { -  return Session.getConcreteSymbolById<PDBSymbolTypeUDT>(getClassParentId()); -} -  void PDBSymbolFunc::dump(PDBSymDumper &Dumper) const { Dumper.dump(*this); } + +bool PDBSymbolFunc::isDestructor() const { +  std::string Name = getName(); +  if (Name.empty()) +    return false; +  if (Name[0] == '~') +    return true; +  if (Name == "__vecDelDtor") +    return true; +  return false; +}  | 
