diff options
Diffstat (limited to 'llvm/lib/IR/DIBuilder.cpp')
| -rw-r--r-- | llvm/lib/IR/DIBuilder.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/llvm/lib/IR/DIBuilder.cpp b/llvm/lib/IR/DIBuilder.cpp index dc5768dd4f26..34ffc9425281 100644 --- a/llvm/lib/IR/DIBuilder.cpp +++ b/llvm/lib/IR/DIBuilder.cpp @@ -19,7 +19,6 @@ #include "llvm/IR/IRBuilder.h" #include "llvm/IR/Module.h" #include "llvm/Support/CommandLine.h" -#include "llvm/Support/Debug.h" using namespace llvm; using namespace llvm::dwarf; @@ -293,6 +292,22 @@ DIStringType *DIBuilder::createStringType(StringRef Name, uint64_t SizeInBits) { SizeInBits, 0); } +DIStringType *DIBuilder::createStringType(StringRef Name, + DIVariable *StringLength, + DIExpression *StrLocationExp) { + assert(!Name.empty() && "Unable to create type without name"); + return DIStringType::get(VMContext, dwarf::DW_TAG_string_type, Name, + StringLength, nullptr, StrLocationExp, 0, 0, 0); +} + +DIStringType *DIBuilder::createStringType(StringRef Name, + DIExpression *StringLengthExp, + DIExpression *StrLocationExp) { + assert(!Name.empty() && "Unable to create type without name"); + return DIStringType::get(VMContext, dwarf::DW_TAG_string_type, Name, nullptr, + StringLengthExp, StrLocationExp, 0, 0, 0); +} + DIDerivedType *DIBuilder::createQualifiedType(unsigned Tag, DIType *FromTy) { return DIDerivedType::get(VMContext, Tag, "", nullptr, 0, nullptr, FromTy, 0, 0, 0, None, DINode::FlagZero); @@ -831,14 +846,15 @@ DISubprogram *DIBuilder::createFunction( unsigned LineNo, DISubroutineType *Ty, unsigned ScopeLine, DINode::DIFlags Flags, DISubprogram::DISPFlags SPFlags, DITemplateParameterArray TParams, DISubprogram *Decl, - DITypeArray ThrownTypes, DINodeArray Annotations) { + DITypeArray ThrownTypes, DINodeArray Annotations, + StringRef TargetFuncName) { bool IsDefinition = SPFlags & DISubprogram::SPFlagDefinition; auto *Node = getSubprogram( /*IsDistinct=*/IsDefinition, VMContext, getNonCompileUnitScope(Context), Name, LinkageName, File, LineNo, Ty, ScopeLine, nullptr, 0, 0, Flags, SPFlags, IsDefinition ? CUNode : nullptr, TParams, Decl, MDTuple::getTemporary(VMContext, None).release(), ThrownTypes, - Annotations); + Annotations, TargetFuncName); if (IsDefinition) AllSubprograms.push_back(Node); |
