forked from OSchip/llvm-project
Revert "[DebugInfo] generate btf_tag annotations for DIComposite types"
This reverts commit 2fded193e7
.
Builtbot reports some test failures. Revert now so I can take time
to fix the issues.
This commit is contained in:
parent
2fded193e7
commit
c1169b8bd3
|
@ -586,7 +586,7 @@ namespace llvm {
|
|||
unsigned Tag, StringRef Name, DIScope *Scope, DIFile *F, unsigned Line,
|
||||
unsigned RuntimeLang = 0, uint64_t SizeInBits = 0,
|
||||
uint32_t AlignInBits = 0, DINode::DIFlags Flags = DINode::FlagFwdDecl,
|
||||
StringRef UniqueIdentifier = "", DINodeArray Annotations = nullptr);
|
||||
StringRef UniqueIdentifier = "");
|
||||
|
||||
/// Retain DIScope* in a module even if it is not referenced
|
||||
/// through debug info anchors.
|
||||
|
|
|
@ -1081,14 +1081,13 @@ class DICompositeType : public DIType {
|
|||
DITemplateParameterArray TemplateParams, StringRef Identifier,
|
||||
DIDerivedType *Discriminator, Metadata *DataLocation,
|
||||
Metadata *Associated, Metadata *Allocated, Metadata *Rank,
|
||||
DINodeArray Annotations, StorageType Storage,
|
||||
bool ShouldCreate = true) {
|
||||
StorageType Storage, bool ShouldCreate = true) {
|
||||
return getImpl(
|
||||
Context, Tag, getCanonicalMDString(Context, Name), File, Line, Scope,
|
||||
BaseType, SizeInBits, AlignInBits, OffsetInBits, Flags, Elements.get(),
|
||||
RuntimeLang, VTableHolder, TemplateParams.get(),
|
||||
getCanonicalMDString(Context, Identifier), Discriminator, DataLocation,
|
||||
Associated, Allocated, Rank, Annotations.get(), Storage, ShouldCreate);
|
||||
Associated, Allocated, Rank, Storage, ShouldCreate);
|
||||
}
|
||||
static DICompositeType *
|
||||
getImpl(LLVMContext &Context, unsigned Tag, MDString *Name, Metadata *File,
|
||||
|
@ -1098,16 +1097,16 @@ class DICompositeType : public DIType {
|
|||
Metadata *VTableHolder, Metadata *TemplateParams,
|
||||
MDString *Identifier, Metadata *Discriminator, Metadata *DataLocation,
|
||||
Metadata *Associated, Metadata *Allocated, Metadata *Rank,
|
||||
Metadata *Annotations, StorageType Storage, bool ShouldCreate = true);
|
||||
StorageType Storage, bool ShouldCreate = true);
|
||||
|
||||
TempDICompositeType cloneImpl() const {
|
||||
return getTemporary(
|
||||
getContext(), getTag(), getName(), getFile(), getLine(), getScope(),
|
||||
getBaseType(), getSizeInBits(), getAlignInBits(), getOffsetInBits(),
|
||||
getFlags(), getElements(), getRuntimeLang(), getVTableHolder(),
|
||||
getTemplateParams(), getIdentifier(), getDiscriminator(),
|
||||
getRawDataLocation(), getRawAssociated(), getRawAllocated(),
|
||||
getRawRank(), getAnnotations());
|
||||
return getTemporary(getContext(), getTag(), getName(), getFile(), getLine(),
|
||||
getScope(), getBaseType(), getSizeInBits(),
|
||||
getAlignInBits(), getOffsetInBits(), getFlags(),
|
||||
getElements(), getRuntimeLang(), getVTableHolder(),
|
||||
getTemplateParams(), getIdentifier(),
|
||||
getDiscriminator(), getRawDataLocation(),
|
||||
getRawAssociated(), getRawAllocated(), getRawRank());
|
||||
}
|
||||
|
||||
public:
|
||||
|
@ -1120,12 +1119,10 @@ public:
|
|||
DITemplateParameterArray TemplateParams = nullptr,
|
||||
StringRef Identifier = "", DIDerivedType *Discriminator = nullptr,
|
||||
Metadata *DataLocation = nullptr, Metadata *Associated = nullptr,
|
||||
Metadata *Allocated = nullptr, Metadata *Rank = nullptr,
|
||||
DINodeArray Annotations = nullptr),
|
||||
Metadata *Allocated = nullptr, Metadata *Rank = nullptr),
|
||||
(Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits,
|
||||
OffsetInBits, Flags, Elements, RuntimeLang, VTableHolder, TemplateParams,
|
||||
Identifier, Discriminator, DataLocation, Associated, Allocated, Rank,
|
||||
Annotations))
|
||||
Identifier, Discriminator, DataLocation, Associated, Allocated, Rank))
|
||||
DEFINE_MDNODE_GET(
|
||||
DICompositeType,
|
||||
(unsigned Tag, MDString *Name, Metadata *File, unsigned Line,
|
||||
|
@ -1135,11 +1132,10 @@ public:
|
|||
Metadata *TemplateParams = nullptr, MDString *Identifier = nullptr,
|
||||
Metadata *Discriminator = nullptr, Metadata *DataLocation = nullptr,
|
||||
Metadata *Associated = nullptr, Metadata *Allocated = nullptr,
|
||||
Metadata *Rank = nullptr, Metadata *Annotations = nullptr),
|
||||
Metadata *Rank = nullptr),
|
||||
(Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits,
|
||||
OffsetInBits, Flags, Elements, RuntimeLang, VTableHolder, TemplateParams,
|
||||
Identifier, Discriminator, DataLocation, Associated, Allocated, Rank,
|
||||
Annotations))
|
||||
Identifier, Discriminator, DataLocation, Associated, Allocated, Rank))
|
||||
|
||||
TempDICompositeType clone() const { return cloneImpl(); }
|
||||
|
||||
|
@ -1158,7 +1154,7 @@ public:
|
|||
unsigned RuntimeLang, Metadata *VTableHolder,
|
||||
Metadata *TemplateParams, Metadata *Discriminator,
|
||||
Metadata *DataLocation, Metadata *Associated, Metadata *Allocated,
|
||||
Metadata *Rank, Metadata *Annotations);
|
||||
Metadata *Rank);
|
||||
static DICompositeType *getODRTypeIfExists(LLVMContext &Context,
|
||||
MDString &Identifier);
|
||||
|
||||
|
@ -1179,7 +1175,7 @@ public:
|
|||
unsigned RuntimeLang, Metadata *VTableHolder,
|
||||
Metadata *TemplateParams, Metadata *Discriminator,
|
||||
Metadata *DataLocation, Metadata *Associated,
|
||||
Metadata *Allocated, Metadata *Rank, Metadata *Annotations);
|
||||
Metadata *Allocated, Metadata *Rank);
|
||||
|
||||
DIType *getBaseType() const { return cast_or_null<DIType>(getRawBaseType()); }
|
||||
DINodeArray getElements() const {
|
||||
|
@ -1232,11 +1228,6 @@ public:
|
|||
return dyn_cast_or_null<DIExpression>(getRawRank());
|
||||
}
|
||||
|
||||
Metadata *getRawAnnotations() const { return getOperand(13); }
|
||||
DINodeArray getAnnotations() const {
|
||||
return cast_or_null<MDTuple>(getRawAnnotations());
|
||||
}
|
||||
|
||||
/// Replace operands.
|
||||
///
|
||||
/// If this \a isUniqued() and not \a isResolved(), on a uniquing collision
|
||||
|
|
|
@ -4591,8 +4591,7 @@ bool LLParser::parseDICompositeType(MDNode *&Result, bool IsDistinct) {
|
|||
OPTIONAL(dataLocation, MDField, ); \
|
||||
OPTIONAL(associated, MDField, ); \
|
||||
OPTIONAL(allocated, MDField, ); \
|
||||
OPTIONAL(rank, MDSignedOrMDField, ); \
|
||||
OPTIONAL(annotations, MDField, );
|
||||
OPTIONAL(rank, MDSignedOrMDField, );
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
||||
|
@ -4610,7 +4609,7 @@ bool LLParser::parseDICompositeType(MDNode *&Result, bool IsDistinct) {
|
|||
scope.Val, baseType.Val, size.Val, align.Val, offset.Val, flags.Val,
|
||||
elements.Val, runtimeLang.Val, vtableHolder.Val, templateParams.Val,
|
||||
discriminator.Val, dataLocation.Val, associated.Val, allocated.Val,
|
||||
Rank, annotations.Val)) {
|
||||
Rank)) {
|
||||
Result = CT;
|
||||
return false;
|
||||
}
|
||||
|
@ -4622,8 +4621,8 @@ bool LLParser::parseDICompositeType(MDNode *&Result, bool IsDistinct) {
|
|||
(Context, tag.Val, name.Val, file.Val, line.Val, scope.Val, baseType.Val,
|
||||
size.Val, align.Val, offset.Val, flags.Val, elements.Val,
|
||||
runtimeLang.Val, vtableHolder.Val, templateParams.Val, identifier.Val,
|
||||
discriminator.Val, dataLocation.Val, associated.Val, allocated.Val, Rank,
|
||||
annotations.Val));
|
||||
discriminator.Val, dataLocation.Val, associated.Val, allocated.Val,
|
||||
Rank));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -1461,7 +1461,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
|
|||
break;
|
||||
}
|
||||
case bitc::METADATA_COMPOSITE_TYPE: {
|
||||
if (Record.size() < 16 || Record.size() > 22)
|
||||
if (Record.size() < 16 || Record.size() > 21)
|
||||
return error("Invalid record");
|
||||
|
||||
// If we have a UUID and this is not a forward declaration, lookup the
|
||||
|
@ -1489,7 +1489,6 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
|
|||
Metadata *Associated = nullptr;
|
||||
Metadata *Allocated = nullptr;
|
||||
Metadata *Rank = nullptr;
|
||||
Metadata *Annotations = nullptr;
|
||||
auto *Identifier = getMDString(Record[15]);
|
||||
// If this module is being parsed so that it can be ThinLTO imported
|
||||
// into another module, composite types only need to be imported
|
||||
|
@ -1521,9 +1520,6 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
|
|||
if (Record.size() > 20) {
|
||||
Rank = getMDOrNull(Record[20]);
|
||||
}
|
||||
if (Record.size() > 21) {
|
||||
Annotations = getMDOrNull(Record[21]);
|
||||
}
|
||||
}
|
||||
DICompositeType *CT = nullptr;
|
||||
if (Identifier)
|
||||
|
@ -1531,7 +1527,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
|
|||
Context, *Identifier, Tag, Name, File, Line, Scope, BaseType,
|
||||
SizeInBits, AlignInBits, OffsetInBits, Flags, Elements, RuntimeLang,
|
||||
VTableHolder, TemplateParams, Discriminator, DataLocation, Associated,
|
||||
Allocated, Rank, Annotations);
|
||||
Allocated, Rank);
|
||||
|
||||
// Create a node if we didn't get a lazy ODR type.
|
||||
if (!CT)
|
||||
|
@ -1540,7 +1536,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
|
|||
SizeInBits, AlignInBits, OffsetInBits, Flags,
|
||||
Elements, RuntimeLang, VTableHolder, TemplateParams,
|
||||
Identifier, Discriminator, DataLocation, Associated,
|
||||
Allocated, Rank, Annotations));
|
||||
Allocated, Rank));
|
||||
if (!IsNotUsedInTypeRef && Identifier)
|
||||
MetadataList.addTypeRef(*Identifier, *cast<DICompositeType>(CT));
|
||||
|
||||
|
|
|
@ -1714,7 +1714,6 @@ void ModuleBitcodeWriter::writeDICompositeType(
|
|||
Record.push_back(VE.getMetadataOrNullID(N->getRawAssociated()));
|
||||
Record.push_back(VE.getMetadataOrNullID(N->getRawAllocated()));
|
||||
Record.push_back(VE.getMetadataOrNullID(N->getRawRank()));
|
||||
Record.push_back(VE.getMetadataOrNullID(N->getAnnotations().get()));
|
||||
|
||||
Stream.EmitRecord(bitc::METADATA_COMPOSITE_TYPE, Record, Abbrev);
|
||||
Record.clear();
|
||||
|
|
|
@ -2072,7 +2072,6 @@ static void writeDICompositeType(raw_ostream &Out, const DICompositeType *N,
|
|||
/* ShouldSkipZero */ false);
|
||||
else
|
||||
Printer.printMetadata("rank", N->getRawRank(), /*ShouldSkipNull */ true);
|
||||
Printer.printMetadata("annotations", N->getRawAnnotations());
|
||||
Out << ")";
|
||||
}
|
||||
|
||||
|
|
|
@ -628,14 +628,12 @@ DIBuilder::createForwardDecl(unsigned Tag, StringRef Name, DIScope *Scope,
|
|||
DICompositeType *DIBuilder::createReplaceableCompositeType(
|
||||
unsigned Tag, StringRef Name, DIScope *Scope, DIFile *F, unsigned Line,
|
||||
unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits,
|
||||
DINode::DIFlags Flags, StringRef UniqueIdentifier,
|
||||
DINodeArray Annotations) {
|
||||
DINode::DIFlags Flags, StringRef UniqueIdentifier) {
|
||||
auto *RetTy =
|
||||
DICompositeType::getTemporary(
|
||||
VMContext, Tag, Name, F, Line, getNonCompileUnitScope(Scope), nullptr,
|
||||
SizeInBits, AlignInBits, 0, Flags, nullptr, RuntimeLang, nullptr,
|
||||
nullptr, UniqueIdentifier, nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||
Annotations)
|
||||
nullptr, UniqueIdentifier)
|
||||
.release();
|
||||
trackIfUnresolved(RetTy);
|
||||
return RetTy;
|
||||
|
|
|
@ -601,21 +601,19 @@ DICompositeType *DICompositeType::getImpl(
|
|||
Metadata *Elements, unsigned RuntimeLang, Metadata *VTableHolder,
|
||||
Metadata *TemplateParams, MDString *Identifier, Metadata *Discriminator,
|
||||
Metadata *DataLocation, Metadata *Associated, Metadata *Allocated,
|
||||
Metadata *Rank, Metadata *Annotations, StorageType Storage,
|
||||
bool ShouldCreate) {
|
||||
Metadata *Rank, StorageType Storage, bool ShouldCreate) {
|
||||
assert(isCanonical(Name) && "Expected canonical MDString");
|
||||
|
||||
// Keep this in sync with buildODRType.
|
||||
DEFINE_GETIMPL_LOOKUP(DICompositeType,
|
||||
(Tag, Name, File, Line, Scope, BaseType, SizeInBits,
|
||||
AlignInBits, OffsetInBits, Flags, Elements,
|
||||
RuntimeLang, VTableHolder, TemplateParams, Identifier,
|
||||
Discriminator, DataLocation, Associated, Allocated,
|
||||
Rank, Annotations));
|
||||
DEFINE_GETIMPL_LOOKUP(
|
||||
DICompositeType,
|
||||
(Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits,
|
||||
OffsetInBits, Flags, Elements, RuntimeLang, VTableHolder, TemplateParams,
|
||||
Identifier, Discriminator, DataLocation, Associated, Allocated, Rank));
|
||||
Metadata *Ops[] = {File, Scope, Name, BaseType,
|
||||
Elements, VTableHolder, TemplateParams, Identifier,
|
||||
Discriminator, DataLocation, Associated, Allocated,
|
||||
Rank, Annotations};
|
||||
Rank};
|
||||
DEFINE_GETIMPL_STORE(DICompositeType, (Tag, Line, RuntimeLang, SizeInBits,
|
||||
AlignInBits, OffsetInBits, Flags),
|
||||
Ops);
|
||||
|
@ -628,7 +626,7 @@ DICompositeType *DICompositeType::buildODRType(
|
|||
DIFlags Flags, Metadata *Elements, unsigned RuntimeLang,
|
||||
Metadata *VTableHolder, Metadata *TemplateParams, Metadata *Discriminator,
|
||||
Metadata *DataLocation, Metadata *Associated, Metadata *Allocated,
|
||||
Metadata *Rank, Metadata *Annotations) {
|
||||
Metadata *Rank) {
|
||||
assert(!Identifier.getString().empty() && "Expected valid identifier");
|
||||
if (!Context.isODRUniquingDebugTypes())
|
||||
return nullptr;
|
||||
|
@ -638,7 +636,7 @@ DICompositeType *DICompositeType::buildODRType(
|
|||
Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits,
|
||||
AlignInBits, OffsetInBits, Flags, Elements, RuntimeLang,
|
||||
VTableHolder, TemplateParams, &Identifier, Discriminator,
|
||||
DataLocation, Associated, Allocated, Rank, Annotations);
|
||||
DataLocation, Associated, Allocated, Rank);
|
||||
|
||||
// Only mutate CT if it's a forward declaration and the new operands aren't.
|
||||
assert(CT->getRawIdentifier() == &Identifier && "Wrong ODR identifier?");
|
||||
|
@ -651,7 +649,7 @@ DICompositeType *DICompositeType::buildODRType(
|
|||
Metadata *Ops[] = {File, Scope, Name, BaseType,
|
||||
Elements, VTableHolder, TemplateParams, &Identifier,
|
||||
Discriminator, DataLocation, Associated, Allocated,
|
||||
Rank, Annotations};
|
||||
Rank};
|
||||
assert((std::end(Ops) - std::begin(Ops)) == (int)CT->getNumOperands() &&
|
||||
"Mismatched number of operands");
|
||||
for (unsigned I = 0, E = CT->getNumOperands(); I != E; ++I)
|
||||
|
@ -667,7 +665,7 @@ DICompositeType *DICompositeType::getODRType(
|
|||
DIFlags Flags, Metadata *Elements, unsigned RuntimeLang,
|
||||
Metadata *VTableHolder, Metadata *TemplateParams, Metadata *Discriminator,
|
||||
Metadata *DataLocation, Metadata *Associated, Metadata *Allocated,
|
||||
Metadata *Rank, Metadata *Annotations) {
|
||||
Metadata *Rank) {
|
||||
assert(!Identifier.getString().empty() && "Expected valid identifier");
|
||||
if (!Context.isODRUniquingDebugTypes())
|
||||
return nullptr;
|
||||
|
@ -677,7 +675,7 @@ DICompositeType *DICompositeType::getODRType(
|
|||
Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits,
|
||||
AlignInBits, OffsetInBits, Flags, Elements, RuntimeLang, VTableHolder,
|
||||
TemplateParams, &Identifier, Discriminator, DataLocation, Associated,
|
||||
Allocated, Rank, Annotations);
|
||||
Allocated, Rank);
|
||||
return CT;
|
||||
}
|
||||
|
||||
|
|
|
@ -569,7 +569,6 @@ template <> struct MDNodeKeyImpl<DICompositeType> {
|
|||
Metadata *Associated;
|
||||
Metadata *Allocated;
|
||||
Metadata *Rank;
|
||||
Metadata *Annotations;
|
||||
|
||||
MDNodeKeyImpl(unsigned Tag, MDString *Name, Metadata *File, unsigned Line,
|
||||
Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits,
|
||||
|
@ -578,15 +577,14 @@ template <> struct MDNodeKeyImpl<DICompositeType> {
|
|||
Metadata *VTableHolder, Metadata *TemplateParams,
|
||||
MDString *Identifier, Metadata *Discriminator,
|
||||
Metadata *DataLocation, Metadata *Associated,
|
||||
Metadata *Allocated, Metadata *Rank, Metadata *Annotations)
|
||||
Metadata *Allocated, Metadata *Rank)
|
||||
: Tag(Tag), Name(Name), File(File), Line(Line), Scope(Scope),
|
||||
BaseType(BaseType), SizeInBits(SizeInBits), OffsetInBits(OffsetInBits),
|
||||
AlignInBits(AlignInBits), Flags(Flags), Elements(Elements),
|
||||
RuntimeLang(RuntimeLang), VTableHolder(VTableHolder),
|
||||
TemplateParams(TemplateParams), Identifier(Identifier),
|
||||
Discriminator(Discriminator), DataLocation(DataLocation),
|
||||
Associated(Associated), Allocated(Allocated), Rank(Rank),
|
||||
Annotations(Annotations) {}
|
||||
Associated(Associated), Allocated(Allocated), Rank(Rank) {}
|
||||
MDNodeKeyImpl(const DICompositeType *N)
|
||||
: Tag(N->getTag()), Name(N->getRawName()), File(N->getRawFile()),
|
||||
Line(N->getLine()), Scope(N->getRawScope()),
|
||||
|
@ -599,7 +597,7 @@ template <> struct MDNodeKeyImpl<DICompositeType> {
|
|||
Discriminator(N->getRawDiscriminator()),
|
||||
DataLocation(N->getRawDataLocation()),
|
||||
Associated(N->getRawAssociated()), Allocated(N->getRawAllocated()),
|
||||
Rank(N->getRawRank()), Annotations(N->getRawAnnotations()) {}
|
||||
Rank(N->getRawRank()) {}
|
||||
|
||||
bool isKeyOf(const DICompositeType *RHS) const {
|
||||
return Tag == RHS->getTag() && Name == RHS->getRawName() &&
|
||||
|
@ -616,8 +614,7 @@ template <> struct MDNodeKeyImpl<DICompositeType> {
|
|||
Discriminator == RHS->getRawDiscriminator() &&
|
||||
DataLocation == RHS->getRawDataLocation() &&
|
||||
Associated == RHS->getRawAssociated() &&
|
||||
Allocated == RHS->getRawAllocated() && Rank == RHS->getRawRank() &&
|
||||
Annotations == RHS->getRawAnnotations();
|
||||
Allocated == RHS->getRawAllocated() && Rank == RHS->getRawRank();
|
||||
}
|
||||
|
||||
unsigned getHashValue() const {
|
||||
|
@ -626,7 +623,7 @@ template <> struct MDNodeKeyImpl<DICompositeType> {
|
|||
// collision "most of the time". There is no correctness issue in case of
|
||||
// collision because of the full check above.
|
||||
return hash_combine(Name, File, Line, BaseType, Scope, Elements,
|
||||
TemplateParams, Annotations);
|
||||
TemplateParams);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
; REQUIRES: x86-registered-target
|
||||
; RUN: llvm-as < %s | llvm-dis | FileCheck %s
|
||||
|
||||
%struct.t = type { i32 }
|
||||
|
||||
@g = dso_local global %struct.t zeroinitializer, align 4, !dbg !0
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!13, !14, !15, !16, !17}
|
||||
!llvm.ident = !{!18}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
!1 = distinct !DIGlobalVariable(name: "g", scope: !2, file: !3, line: 2, type: !6, isLocal: false, isDefinition: true)
|
||||
!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 13.0.0 (https://github.com/llvm/llvm-project.git a20bed0ba269a4f9b67e58093c50af9ef0730fd1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5, splitDebugInlining: false, nameTableKind: None)
|
||||
!3 = !DIFile(filename: "struct.c", directory: "/home/yhs/work/tests/llvm/btf_tag")
|
||||
!4 = !{}
|
||||
!5 = !{!0}
|
||||
!6 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "t", file: !3, line: 1, size: 32, elements: !7, annotations: !10)
|
||||
!7 = !{!8}
|
||||
!8 = !DIDerivedType(tag: DW_TAG_member, name: "a", scope: !6, file: !3, line: 1, baseType: !9, size: 32)
|
||||
!9 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
|
||||
!10 = !{!11, !12}
|
||||
!11 = !{!"btf_tag", !"a"}
|
||||
!12 = !{!"btf_tag", !"b"}
|
||||
|
||||
; CHECK: distinct !DICompositeType(tag: DW_TAG_structure_type, name: "t"
|
||||
; CHECK-SAME: annotations: ![[ANNOT:[0-9]+]]
|
||||
; CHECK: ![[ANNOT]] = !{![[TAG1:[0-9]+]], ![[TAG2:[0-9]+]]}
|
||||
; CHECK: ![[TAG1]] = !{!"btf_tag", !"a"}
|
||||
; CHECK: ![[TAG2]] = !{!"btf_tag", !"b"}
|
||||
!13 = !{i32 7, !"Dwarf Version", i32 4}
|
||||
!14 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!15 = !{i32 1, !"wchar_size", i32 4}
|
||||
!16 = !{i32 7, !"uwtable", i32 1}
|
||||
!17 = !{i32 7, !"frame-pointer", i32 2}
|
||||
!18 = !{!"clang version 13.0.0 (https://github.com/llvm/llvm-project.git a20bed0ba269a4f9b67e58093c50af9ef0730fd1)"}
|
Loading…
Reference in New Issue