aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/DIBuilder.cpp
diff options
context:
space:
mode:
authorAugusto Noronha <augusto2112@me.com>2023-11-15 12:46:06 -0800
committerGitHub <noreply@github.com>2023-11-15 12:46:06 -0800
commitd0ae2391897033c50225a20fd3024816dffd80b6 (patch)
treeb8f744cb18fe4928e712c89f748df7c6620b5a67 /llvm/lib/IR/DIBuilder.cpp
parentc05ab7b8507a33d5e069ebbe10a5c607995c9c11 (diff)
downloadllvm-d0ae2391897033c50225a20fd3024816dffd80b6.zip
llvm-d0ae2391897033c50225a20fd3024816dffd80b6.tar.gz
llvm-d0ae2391897033c50225a20fd3024816dffd80b6.tar.bz2
Add RunTimeLang to Class and Enumeration DIBuilder functions (#72011)
RunTimeLang is already supported by DICompositeType, and already used by structs and unions. Add a new parameter in the class and enumeration create methods, so they can use the RunTimeLang attribute as well.
Diffstat (limited to 'llvm/lib/IR/DIBuilder.cpp')
-rw-r--r--llvm/lib/IR/DIBuilder.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/llvm/lib/IR/DIBuilder.cpp b/llvm/lib/IR/DIBuilder.cpp
index 58a7e07..0946cf8 100644
--- a/llvm/lib/IR/DIBuilder.cpp
+++ b/llvm/lib/IR/DIBuilder.cpp
@@ -476,14 +476,15 @@ DICompositeType *DIBuilder::createClassType(
DIScope *Context, StringRef Name, DIFile *File, unsigned LineNumber,
uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits,
DINode::DIFlags Flags, DIType *DerivedFrom, DINodeArray Elements,
- DIType *VTableHolder, MDNode *TemplateParams, StringRef UniqueIdentifier) {
+ unsigned RunTimeLang, DIType *VTableHolder, MDNode *TemplateParams,
+ StringRef UniqueIdentifier) {
assert((!Context || isa<DIScope>(Context)) &&
"createClassType should be called with a valid Context");
auto *R = DICompositeType::get(
VMContext, dwarf::DW_TAG_structure_type, Name, File, LineNumber,
getNonCompileUnitScope(Context), DerivedFrom, SizeInBits, AlignInBits,
- OffsetInBits, Flags, Elements, 0, VTableHolder,
+ OffsetInBits, Flags, Elements, RunTimeLang, VTableHolder,
cast_or_null<MDTuple>(TemplateParams), UniqueIdentifier);
trackIfUnresolved(R);
return R;
@@ -534,15 +535,17 @@ DISubroutineType *DIBuilder::createSubroutineType(DITypeRefArray ParameterTypes,
return DISubroutineType::get(VMContext, Flags, CC, ParameterTypes);
}
-DICompositeType *DIBuilder::createEnumerationType(
- DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNumber,
- uint64_t SizeInBits, uint32_t AlignInBits, DINodeArray Elements,
- DIType *UnderlyingType, StringRef UniqueIdentifier, bool IsScoped) {
+DICompositeType *
+DIBuilder::createEnumerationType(DIScope *Scope, StringRef Name, DIFile *File,
+ unsigned LineNumber, uint64_t SizeInBits,
+ uint32_t AlignInBits, DINodeArray Elements,
+ DIType *UnderlyingType, unsigned RunTimeLang,
+ StringRef UniqueIdentifier, bool IsScoped) {
auto *CTy = DICompositeType::get(
VMContext, dwarf::DW_TAG_enumeration_type, Name, File, LineNumber,
getNonCompileUnitScope(Scope), UnderlyingType, SizeInBits, AlignInBits, 0,
- IsScoped ? DINode::FlagEnumClass : DINode::FlagZero, Elements, 0, nullptr,
- nullptr, UniqueIdentifier);
+ IsScoped ? DINode::FlagEnumClass : DINode::FlagZero, Elements,
+ RunTimeLang, nullptr, nullptr, UniqueIdentifier);
AllEnumTypes.emplace_back(CTy);
trackIfUnresolved(CTy);
return CTy;