We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 4c7bdcb commit 1adcadeCopy full SHA for 1adcade
llvm/include/llvm/IR/DebugInfoMetadata.h
@@ -993,11 +993,11 @@ class DIDerivedType : public DIType {
993
(AuthenticatesNullValues ? (1 << 22) : 0);
994
}
995
996
- unsigned Key() { return (RawData >> 0) & 0b1111; }
997
- bool IsAddressDiscriminated() { return (RawData >> 4) & 1; }
998
- unsigned ExtraDiscriminator() { return (RawData >> 5) & 0xffff; }
999
- bool IsaPointer() { return (RawData >> 21) & 1; }
1000
- bool AuthenticatesNullValues() { return (RawData >> 22) & 1; }
+ unsigned key() { return (RawData >> 0) & 0b1111; }
+ bool isAddressDiscriminated() { return (RawData >> 4) & 1; }
+ unsigned extraDiscriminator() { return (RawData >> 5) & 0xffff; }
+ bool isaPointer() { return (RawData >> 21) & 1; }
+ bool authenticatesNullValues() { return (RawData >> 22) & 1; }
1001
};
1002
1003
private:
llvm/lib/AsmParser/LLParser.cpp
@@ -5163,7 +5163,7 @@ bool LLParser::parseDIDerivedType(MDNode *&Result, bool IsDistinct) {
5163
DWARFAddressSpace = dwarfAddressSpace.Val;
5164
std::optional<DIDerivedType::PtrAuthData> PtrAuthData;
5165
if (ptrAuthKey.Val)
5166
- PtrAuthData = DIDerivedType::PtrAuthData(
+ PtrAuthData.emplace(
5167
(unsigned)ptrAuthKey.Val, ptrAuthIsAddressDiscriminated.Val,
5168
(unsigned)ptrAuthExtraDiscriminator.Val, ptrAuthIsaPointer.Val,
5169
ptrAuthAuthenticatesNullValues.Val);
llvm/lib/Bitcode/Reader/MetadataLoader.cpp
@@ -1574,9 +1574,8 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
1574
if (Record.size() > 14) {
1575
if (Record[13])
1576
Annotations = getMDOrNull(Record[13]);
1577
-
1578
if (Record[14])
1579
- PtrAuthData = DIDerivedType::PtrAuthData(Record[14]);
+ PtrAuthData.emplace(Record[14]);
1580
1581
1582
IsDistinct = Record[0];
llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
@@ -805,14 +805,14 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, const DIDerivedType *DTy) {
805
*DTy->getDWARFAddressSpace());
806
if (auto PtrAuthData = DTy->getPtrAuthData()) {
807
addUInt(Buffer, dwarf::DW_AT_LLVM_ptrauth_key, dwarf::DW_FORM_data1,
808
- PtrAuthData->Key());
809
- if (PtrAuthData->IsAddressDiscriminated())
+ PtrAuthData->key());
+ if (PtrAuthData->isAddressDiscriminated())
810
addFlag(Buffer, dwarf::DW_AT_LLVM_ptrauth_address_discriminated);
811
addUInt(Buffer, dwarf::DW_AT_LLVM_ptrauth_extra_discriminator,
812
- dwarf::DW_FORM_data2, PtrAuthData->ExtraDiscriminator());
813
- if (PtrAuthData->IsaPointer())
+ dwarf::DW_FORM_data2, PtrAuthData->extraDiscriminator());
+ if (PtrAuthData->isaPointer())
814
addFlag(Buffer, dwarf::DW_AT_LLVM_ptrauth_isa_pointer);
815
- if (PtrAuthData->AuthenticatesNullValues())
+ if (PtrAuthData->authenticatesNullValues())
816
addFlag(Buffer, dwarf::DW_AT_LLVM_ptrauth_authenticates_null_values);
817
818
llvm/lib/IR/AsmWriter.cpp
@@ -2136,14 +2136,14 @@ static void writeDIDerivedType(raw_ostream &Out, const DIDerivedType *N,
2136
/* ShouldSkipZero */ false);
2137
Printer.printMetadata("annotations", N->getRawAnnotations());
2138
if (auto PtrAuthData = N->getPtrAuthData()) {
2139
- Printer.printInt("ptrAuthKey", PtrAuthData->Key());
+ Printer.printInt("ptrAuthKey", PtrAuthData->key());
2140
Printer.printBool("ptrAuthIsAddressDiscriminated",
2141
- PtrAuthData->IsAddressDiscriminated());
+ PtrAuthData->isAddressDiscriminated());
2142
Printer.printInt("ptrAuthExtraDiscriminator",
2143
- PtrAuthData->ExtraDiscriminator());
2144
- Printer.printBool("ptrAuthIsaPointer", PtrAuthData->IsaPointer());
+ PtrAuthData->extraDiscriminator());
+ Printer.printBool("ptrAuthIsaPointer", PtrAuthData->isaPointer());
2145
Printer.printBool("ptrAuthAuthenticatesNullValues",
2146
- PtrAuthData->AuthenticatesNullValues());
+ PtrAuthData->authenticatesNullValues());
2147
2148
Out << ")";
2149
llvm/lib/IR/DIBuilder.cpp
@@ -303,13 +303,13 @@ DIDerivedType *DIBuilder::createPtrAuthQualifiedType(
303
DIType *FromTy, unsigned Key, bool IsAddressDiscriminated,
304
unsigned ExtraDiscriminator, bool IsaPointer,
305
bool AuthenticatesNullValues) {
306
- return DIDerivedType::get(
307
- VMContext, dwarf::DW_TAG_LLVM_ptrauth_type, "", nullptr, 0, nullptr,
308
- FromTy, 0, 0, 0, std::nullopt,
309
- std::optional<DIDerivedType::PtrAuthData>({Key, IsAddressDiscriminated,
310
- ExtraDiscriminator, IsaPointer,
311
- AuthenticatesNullValues}),
312
- DINode::FlagZero);
+ return DIDerivedType::get(VMContext, dwarf::DW_TAG_LLVM_ptrauth_type, "",
+ nullptr, 0, nullptr, FromTy, 0, 0, 0, std::nullopt,
+ std::optional<DIDerivedType::PtrAuthData>(
+ std::in_place, Key, IsAddressDiscriminated,
+ ExtraDiscriminator, IsaPointer,
+ AuthenticatesNullValues),
+ DINode::FlagZero);
313
314
315
DIDerivedType *
llvm/test/DebugInfo/AArch64/ptrauth.ll
@@ -41,7 +41,7 @@
41
42
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
43
44
-@p = common global i8* null, align 8, !dbg !0
+@p = global ptr null, align 8, !dbg !0
45
46
!llvm.dbg.cu = !{!10}
47
!llvm.module.flags = !{!19, !20}
llvm/unittests/IR/MetadataTest.cpp
@@ -1975,9 +1975,9 @@ TEST_F(DIDerivedTypeTest, getWithLargeValues) {
1975
UINT64_MAX, UINT32_MAX - 1, UINT64_MAX - 2, UINT32_MAX - 3,
1976
DIDerivedType::PtrAuthData(7, true, 0xffff, true, false), Flags,
1977
ExtraData);
1978
- EXPECT_EQ(7U, N1->getPtrAuthData()->Key());
1979
- EXPECT_EQ(true, N1->getPtrAuthData()->IsAddressDiscriminated());
1980
- EXPECT_EQ(0xffffU, N1->getPtrAuthData()->ExtraDiscriminator());
+ EXPECT_EQ(7U, N1->getPtrAuthData()->key());
+ EXPECT_EQ(true, N1->getPtrAuthData()->isAddressDiscriminated());
+ EXPECT_EQ(0xffffU, N1->getPtrAuthData()->extraDiscriminator());
1981
1982
1983
typedef MetadataTest DICompositeTypeTest;
0 commit comments