diff options
Diffstat (limited to 'llvm/unittests/IR')
| -rw-r--r-- | llvm/unittests/IR/DebugInfoTest.cpp | 25 | ||||
| -rw-r--r-- | llvm/unittests/IR/DebugTypeODRUniquingTest.cpp | 29 | ||||
| -rw-r--r-- | llvm/unittests/IR/IRBuilderTest.cpp | 8 | ||||
| -rw-r--r-- | llvm/unittests/IR/MetadataTest.cpp | 106 |
4 files changed, 86 insertions, 82 deletions
diff --git a/llvm/unittests/IR/DebugInfoTest.cpp b/llvm/unittests/IR/DebugInfoTest.cpp index c089ff375b3..a80df3c54fd 100644 --- a/llvm/unittests/IR/DebugInfoTest.cpp +++ b/llvm/unittests/IR/DebugInfoTest.cpp @@ -55,27 +55,28 @@ TEST(DINodeTest, getFlagString) { DINode::getFlagString(DINode::FlagPublic | DINode::FlagVector)); EXPECT_EQ(StringRef(), DINode::getFlagString(DINode::FlagFwdDecl | DINode::FlagArtificial)); - EXPECT_EQ(StringRef(), DINode::getFlagString(0xffff)); + EXPECT_EQ(StringRef(), + DINode::getFlagString(static_cast<DINode::DIFlags>(0xffff))); } TEST(DINodeTest, splitFlags) { // Some valid flags. #define CHECK_SPLIT(FLAGS, VECTOR, REMAINDER) \ { \ - SmallVector<unsigned, 8> V; \ + SmallVector<DINode::DIFlags, 8> V; \ EXPECT_EQ(REMAINDER, DINode::splitFlags(FLAGS, V)); \ EXPECT_TRUE(makeArrayRef(V).equals(VECTOR)); \ } - CHECK_SPLIT(DINode::FlagPublic, {DINode::FlagPublic}, 0u); - CHECK_SPLIT(DINode::FlagProtected, {DINode::FlagProtected}, 0u); - CHECK_SPLIT(DINode::FlagPrivate, {DINode::FlagPrivate}, 0u); - CHECK_SPLIT(DINode::FlagVector, {DINode::FlagVector}, 0u); - CHECK_SPLIT(DINode::FlagRValueReference, {DINode::FlagRValueReference}, 0u); - unsigned Flags[] = {DINode::FlagFwdDecl, DINode::FlagVector}; - CHECK_SPLIT(DINode::FlagFwdDecl | DINode::FlagVector, Flags, 0u); - CHECK_SPLIT(0x200000u, {}, 0x200000u); - CHECK_SPLIT(0x200000u | DINode::FlagVector, {DINode::FlagVector}, 0x200000u); - CHECK_SPLIT(0x200000u | DINode::FlagNoReturn, {DINode::FlagNoReturn}, 0x200000u); + CHECK_SPLIT(DINode::FlagPublic, {DINode::FlagPublic}, DINode::FlagZero); + CHECK_SPLIT(DINode::FlagProtected, {DINode::FlagProtected}, DINode::FlagZero); + CHECK_SPLIT(DINode::FlagPrivate, {DINode::FlagPrivate}, DINode::FlagZero); + CHECK_SPLIT(DINode::FlagVector, {DINode::FlagVector}, DINode::FlagZero); + CHECK_SPLIT(DINode::FlagRValueReference, {DINode::FlagRValueReference}, + DINode::FlagZero); + DINode::DIFlags Flags[] = {DINode::FlagFwdDecl, DINode::FlagVector}; + CHECK_SPLIT(DINode::FlagFwdDecl | DINode::FlagVector, Flags, + DINode::FlagZero); + CHECK_SPLIT(DINode::FlagZero, {}, DINode::FlagZero); #undef CHECK_SPLIT } diff --git a/llvm/unittests/IR/DebugTypeODRUniquingTest.cpp b/llvm/unittests/IR/DebugTypeODRUniquingTest.cpp index 2c899d85d1f..7cf1cd22a2f 100644 --- a/llvm/unittests/IR/DebugTypeODRUniquingTest.cpp +++ b/llvm/unittests/IR/DebugTypeODRUniquingTest.cpp @@ -30,7 +30,7 @@ TEST(DebugTypeODRUniquingTest, getODRType) { // Without a type map, this should return null. EXPECT_FALSE(DICompositeType::getODRType( Context, UUID, dwarf::DW_TAG_class_type, nullptr, nullptr, 0, nullptr, - nullptr, 0, 0, 0, 0, nullptr, 0, nullptr, nullptr)); + nullptr, 0, 0, 0, DINode::FlagZero, nullptr, 0, nullptr, nullptr)); // Enable the mapping. There still shouldn't be a type. Context.enableDebugTypeODRUniquing(); @@ -39,19 +39,20 @@ TEST(DebugTypeODRUniquingTest, getODRType) { // Create some ODR-uniqued type. auto &CT = *DICompositeType::getODRType( Context, UUID, dwarf::DW_TAG_class_type, nullptr, nullptr, 0, nullptr, - nullptr, 0, 0, 0, 0, nullptr, 0, nullptr, nullptr); + nullptr, 0, 0, 0, DINode::FlagZero, nullptr, 0, nullptr, nullptr); EXPECT_EQ(UUID.getString(), CT.getIdentifier()); // Check that we get it back, even if we change a field. EXPECT_EQ(&CT, DICompositeType::getODRTypeIfExists(Context, UUID)); - EXPECT_EQ( - &CT, DICompositeType::getODRType(Context, UUID, dwarf::DW_TAG_class_type, - nullptr, nullptr, 0, nullptr, nullptr, 0, - 0, 0, 0, nullptr, 0, nullptr, nullptr)); EXPECT_EQ(&CT, DICompositeType::getODRType( - Context, UUID, dwarf::DW_TAG_class_type, - MDString::get(Context, "name"), nullptr, 0, nullptr, - nullptr, 0, 0, 0, 0, nullptr, 0, nullptr, nullptr)); + Context, UUID, dwarf::DW_TAG_class_type, nullptr, nullptr, + 0, nullptr, nullptr, 0, 0, 0, DINode::FlagZero, nullptr, 0, + nullptr, nullptr)); + EXPECT_EQ(&CT, + DICompositeType::getODRType( + Context, UUID, dwarf::DW_TAG_class_type, + MDString::get(Context, "name"), nullptr, 0, nullptr, nullptr, 0, + 0, 0, DINode::FlagZero, nullptr, 0, nullptr, nullptr)); // Check that it's discarded with the type map. Context.disableDebugTypeODRUniquing(); @@ -82,8 +83,9 @@ TEST(DebugTypeODRUniquingTest, buildODRType) { // Update with a definition. This time we should see a change. EXPECT_EQ(&CT, DICompositeType::buildODRType( - Context, UUID, dwarf::DW_TAG_structure_type, nullptr, nullptr, 0, nullptr, - nullptr, 0, 0, 0, 0, nullptr, 0, nullptr, nullptr)); + Context, UUID, dwarf::DW_TAG_structure_type, nullptr, + nullptr, 0, nullptr, nullptr, 0, 0, 0, DINode::FlagZero, + nullptr, 0, nullptr, nullptr)); EXPECT_EQ(dwarf::DW_TAG_structure_type, CT.getTag()); // Further updates should be ignored. @@ -92,8 +94,9 @@ TEST(DebugTypeODRUniquingTest, buildODRType) { nullptr, 0, 0, 0, DINode::FlagFwdDecl, nullptr, 0, nullptr, nullptr)); EXPECT_EQ(dwarf::DW_TAG_structure_type, CT.getTag()); EXPECT_EQ(&CT, DICompositeType::buildODRType( - Context, UUID, dwarf::DW_TAG_class_type, nullptr, nullptr, 0, nullptr, - nullptr, 0, 0, 0, 0, nullptr, 0, nullptr, nullptr)); + Context, UUID, dwarf::DW_TAG_class_type, nullptr, nullptr, + 0, nullptr, nullptr, 0, 0, 0, DINode::FlagZero, nullptr, 0, + nullptr, nullptr)); EXPECT_EQ(dwarf::DW_TAG_structure_type, CT.getTag()); } diff --git a/llvm/unittests/IR/IRBuilderTest.cpp b/llvm/unittests/IR/IRBuilderTest.cpp index 58fd71b8a35..01423a5b412 100644 --- a/llvm/unittests/IR/IRBuilderTest.cpp +++ b/llvm/unittests/IR/IRBuilderTest.cpp @@ -343,12 +343,12 @@ TEST_F(IRBuilderTest, DIBuilder) { auto CU = DIB.createCompileUnit(dwarf::DW_LANG_Cobol74, "F.CBL", "/", "llvm-cobol74", true, "", 0); auto Type = DIB.createSubroutineType(DIB.getOrCreateTypeArray(None)); - auto SP = - DIB.createFunction(CU, "foo", "", File, 1, Type, false, true, 1, 0, true); + auto SP = DIB.createFunction(CU, "foo", "", File, 1, Type, false, true, 1, + DINode::FlagZero, true); F->setSubprogram(SP); AllocaInst *I = Builder.CreateAlloca(Builder.getInt8Ty()); - auto BarSP = - DIB.createFunction(CU, "bar", "", File, 1, Type, false, true, 1, 0, true); + auto BarSP = DIB.createFunction(CU, "bar", "", File, 1, Type, false, true, 1, + DINode::FlagZero, true); auto BadScope = DIB.createLexicalBlockFile(BarSP, File, 0); I->setDebugLoc(DebugLoc::get(2, 0, BadScope)); DIB.finalize(); diff --git a/llvm/unittests/IR/MetadataTest.cpp b/llvm/unittests/IR/MetadataTest.cpp index 01770ea8f8e..def2ddee262 100644 --- a/llvm/unittests/IR/MetadataTest.cpp +++ b/llvm/unittests/IR/MetadataTest.cpp @@ -80,12 +80,13 @@ protected: MDTuple *getTuple() { return MDTuple::getDistinct(Context, None); } DISubroutineType *getSubroutineType() { - return DISubroutineType::getDistinct(Context, 0, 0, getNode(nullptr)); + return DISubroutineType::getDistinct(Context, DINode::FlagZero, 0, + getNode(nullptr)); } DISubprogram *getSubprogram() { return DISubprogram::getDistinct(Context, nullptr, "", "", nullptr, 0, - nullptr, false, false, 0, nullptr, - 0, 0, 0, 0, false, nullptr); + nullptr, false, false, 0, nullptr, 0, 0, 0, + DINode::FlagZero, false, nullptr); } DIFile *getFile() { return DIFile::getDistinct(Context, "file.c", "/path/to/dir"); @@ -100,9 +101,9 @@ protected: return DIBasicType::get(Context, dwarf::DW_TAG_unspecified_type, Name); } DIType *getDerivedType() { - return DIDerivedType::getDistinct(Context, dwarf::DW_TAG_pointer_type, "", - nullptr, 0, nullptr, - getBasicType("basictype"), 1, 2, 0, 0); + return DIDerivedType::getDistinct( + Context, dwarf::DW_TAG_pointer_type, "", nullptr, 0, nullptr, + getBasicType("basictype"), 1, 2, 0, DINode::FlagZero); } Constant *getConstant() { return ConstantInt::get(Type::getInt32Ty(Context), Counter++); @@ -113,7 +114,7 @@ protected: DIType *getCompositeType() { return DICompositeType::getDistinct( Context, dwarf::DW_TAG_structure_type, "", nullptr, 0, nullptr, nullptr, - 32, 32, 0, 0, nullptr, 0, nullptr, nullptr, ""); + 32, 32, 0, DINode::FlagZero, nullptr, 0, nullptr, nullptr, ""); } Function *getFunction(StringRef Name) { return cast<Function>(M.getOrInsertFunction( @@ -1028,19 +1029,21 @@ TEST_F(DITypeTest, setFlags) { Metadata *TypesOps[] = {nullptr}; Metadata *Types = MDTuple::get(Context, TypesOps); - DIType *D = DISubroutineType::getDistinct(Context, 0u, 0, Types); - EXPECT_EQ(0u, D->getFlags()); + DIType *D = + DISubroutineType::getDistinct(Context, DINode::FlagZero, 0, Types); + EXPECT_EQ(DINode::FlagZero, D->getFlags()); D->setFlags(DINode::FlagRValueReference); EXPECT_EQ(DINode::FlagRValueReference, D->getFlags()); - D->setFlags(0u); - EXPECT_EQ(0u, D->getFlags()); + D->setFlags(DINode::FlagZero); + EXPECT_EQ(DINode::FlagZero, D->getFlags()); - TempDIType T = DISubroutineType::getTemporary(Context, 0u, 0, Types); - EXPECT_EQ(0u, T->getFlags()); + TempDIType T = + DISubroutineType::getTemporary(Context, DINode::FlagZero, 0, Types); + EXPECT_EQ(DINode::FlagZero, T->getFlags()); T->setFlags(DINode::FlagRValueReference); EXPECT_EQ(DINode::FlagRValueReference, T->getFlags()); - T->setFlags(0u); - EXPECT_EQ(0u, T->getFlags()); + T->setFlags(DINode::FlagZero); + EXPECT_EQ(DINode::FlagZero, T->getFlags()); } typedef MetadataTest DIDerivedTypeTest; @@ -1050,9 +1053,12 @@ TEST_F(DIDerivedTypeTest, get) { DIScope *Scope = getSubprogram(); DIType *BaseType = getBasicType("basic"); MDTuple *ExtraData = getTuple(); + DINode::DIFlags Flags5 = static_cast<DINode::DIFlags>(5); + DINode::DIFlags Flags4 = static_cast<DINode::DIFlags>(4); - auto *N = DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", - File, 1, Scope, BaseType, 2, 3, 4, 5, ExtraData); + auto *N = + DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", File, + 1, Scope, BaseType, 2, 3, 4, Flags5, ExtraData); EXPECT_EQ(dwarf::DW_TAG_pointer_type, N->getTag()); EXPECT_EQ("something", N->getName()); EXPECT_EQ(File, N->getFile()); @@ -1066,41 +1072,41 @@ TEST_F(DIDerivedTypeTest, get) { EXPECT_EQ(ExtraData, N->getExtraData()); EXPECT_EQ(N, DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", File, 1, Scope, BaseType, 2, 3, - 4, 5, ExtraData)); + 4, Flags5, ExtraData)); EXPECT_NE(N, DIDerivedType::get(Context, dwarf::DW_TAG_reference_type, "something", File, 1, Scope, BaseType, 2, 3, - 4, 5, ExtraData)); + 4, Flags5, ExtraData)); EXPECT_NE(N, DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "else", - File, 1, Scope, BaseType, 2, 3, 4, 5, + File, 1, Scope, BaseType, 2, 3, 4, Flags5, ExtraData)); EXPECT_NE(N, DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", getFile(), 1, Scope, BaseType, 2, - 3, 4, 5, ExtraData)); + 3, 4, Flags5, ExtraData)); EXPECT_NE(N, DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", File, 2, Scope, BaseType, 2, 3, - 4, 5, ExtraData)); + 4, Flags5, ExtraData)); EXPECT_NE(N, DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", File, 1, getSubprogram(), - BaseType, 2, 3, 4, 5, ExtraData)); + BaseType, 2, 3, 4, Flags5, ExtraData)); EXPECT_NE(N, DIDerivedType::get( Context, dwarf::DW_TAG_pointer_type, "something", File, 1, - Scope, getBasicType("basic2"), 2, 3, 4, 5, ExtraData)); + Scope, getBasicType("basic2"), 2, 3, 4, Flags5, ExtraData)); EXPECT_NE(N, DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", File, 1, Scope, BaseType, 3, 3, - 4, 5, ExtraData)); + 4, Flags5, ExtraData)); EXPECT_NE(N, DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", File, 1, Scope, BaseType, 2, 2, - 4, 5, ExtraData)); + 4, Flags5, ExtraData)); EXPECT_NE(N, DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", File, 1, Scope, BaseType, 2, 3, - 5, 5, ExtraData)); + 5, Flags5, ExtraData)); EXPECT_NE(N, DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", File, 1, Scope, BaseType, 2, 3, - 4, 4, ExtraData)); + 4, Flags4, ExtraData)); EXPECT_NE(N, DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", File, 1, Scope, BaseType, 2, 3, - 4, 5, getTuple())); + 4, Flags5, getTuple())); TempDIDerivedType Temp = N->clone(); EXPECT_EQ(N, MDNode::replaceWithUniqued(std::move(Temp))); @@ -1111,10 +1117,11 @@ TEST_F(DIDerivedTypeTest, getWithLargeValues) { DIScope *Scope = getSubprogram(); DIType *BaseType = getBasicType("basic"); MDTuple *ExtraData = getTuple(); + DINode::DIFlags Flags = static_cast<DINode::DIFlags>(5); - auto *N = DIDerivedType::get(Context, dwarf::DW_TAG_pointer_type, "something", - File, 1, Scope, BaseType, UINT64_MAX, - UINT64_MAX - 1, UINT64_MAX - 2, 5, ExtraData); + auto *N = DIDerivedType::get( + Context, dwarf::DW_TAG_pointer_type, "something", File, 1, Scope, + BaseType, UINT64_MAX, UINT64_MAX - 1, UINT64_MAX - 2, Flags, ExtraData); EXPECT_EQ(UINT64_MAX, N->getSizeInBits()); EXPECT_EQ(UINT64_MAX - 1, N->getAlignInBits()); EXPECT_EQ(UINT64_MAX - 2, N->getOffsetInBits()); @@ -1132,7 +1139,7 @@ TEST_F(DICompositeTypeTest, get) { uint64_t SizeInBits = 2; uint64_t AlignInBits = 3; uint64_t OffsetInBits = 4; - unsigned Flags = 5; + DINode::DIFlags Flags = static_cast<DINode::DIFlags>(5); MDTuple *Elements = getTuple(); unsigned RuntimeLang = 6; DIType *VTableHolder = getCompositeType(); @@ -1200,9 +1207,10 @@ TEST_F(DICompositeTypeTest, get) { Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, OffsetInBits + 1, Flags, Elements, RuntimeLang, VTableHolder, TemplateParams, Identifier)); + DINode::DIFlags FlagsPOne = static_cast<DINode::DIFlags>(Flags + 1); EXPECT_NE(N, DICompositeType::get( Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, - AlignInBits, OffsetInBits, Flags + 1, Elements, RuntimeLang, + AlignInBits, OffsetInBits, FlagsPOne, Elements, RuntimeLang, VTableHolder, TemplateParams, Identifier)); EXPECT_NE(N, DICompositeType::get( Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, @@ -1251,7 +1259,7 @@ TEST_F(DICompositeTypeTest, getWithLargeValues) { uint64_t SizeInBits = UINT64_MAX; uint64_t AlignInBits = UINT64_MAX - 1; uint64_t OffsetInBits = UINT64_MAX - 2; - unsigned Flags = 5; + DINode::DIFlags Flags = static_cast<DINode::DIFlags>(5); MDTuple *Elements = getTuple(); unsigned RuntimeLang = 6; DIType *VTableHolder = getCompositeType(); @@ -1277,7 +1285,7 @@ TEST_F(DICompositeTypeTest, replaceOperands) { uint64_t SizeInBits = 2; uint64_t AlignInBits = 3; uint64_t OffsetInBits = 4; - unsigned Flags = 5; + DINode::DIFlags Flags = static_cast<DINode::DIFlags>(5); unsigned RuntimeLang = 6; StringRef Identifier = "some id"; @@ -1310,7 +1318,8 @@ TEST_F(DICompositeTypeTest, replaceOperands) { typedef MetadataTest DISubroutineTypeTest; TEST_F(DISubroutineTypeTest, get) { - unsigned Flags = 1; + DINode::DIFlags Flags = static_cast<DINode::DIFlags>(1); + DINode::DIFlags FlagsPOne = static_cast<DINode::DIFlags>(Flags + 1); MDTuple *TypeArray = getTuple(); auto *N = DISubroutineType::get(Context, Flags, 0, TypeArray); @@ -1319,7 +1328,7 @@ TEST_F(DISubroutineTypeTest, get) { EXPECT_EQ(TypeArray, N->getTypeArray().get()); EXPECT_EQ(N, DISubroutineType::get(Context, Flags, 0, TypeArray)); - EXPECT_NE(N, DISubroutineType::get(Context, Flags + 1, 0, TypeArray)); + EXPECT_NE(N, DISubroutineType::get(Context, FlagsPOne, 0, TypeArray)); EXPECT_NE(N, DISubroutineType::get(Context, Flags, 0, getTuple())); // Test the hashing of calling conventions. @@ -1481,8 +1490,7 @@ TEST_F(DISubprogramTest, get) { unsigned Virtuality = 2; unsigned VirtualIndex = 5; int ThisAdjustment = -3; - unsigned Flags = 6; - unsigned NotFlags = (~Flags) & ((1 << 27) - 1); + DINode::DIFlags Flags = static_cast<DINode::DIFlags>(6); bool IsOptimized = false; MDTuple *TemplateParams = getTuple(); DISubprogram *Declaration = getSubprogram(); @@ -1585,11 +1593,6 @@ TEST_F(DISubprogramTest, get) { EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit, IsDefinition, ScopeLine, ContainingType, Virtuality, VirtualIndex, - ThisAdjustment, NotFlags, IsOptimized, Unit, - TemplateParams, Declaration, Variables)); - EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line, - Type, IsLocalToUnit, IsDefinition, ScopeLine, - ContainingType, Virtuality, VirtualIndex, ThisAdjustment, Flags, !IsOptimized, Unit, TemplateParams, Declaration, Variables)); EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line, @@ -1889,8 +1892,7 @@ TEST_F(DILocalVariableTest, get) { unsigned Line = 5; DIType *Type = getDerivedType(); unsigned Arg = 6; - unsigned Flags = 7; - unsigned NotFlags = (~Flags) & ((1 << 16) - 1); + DINode::DIFlags Flags = static_cast<DINode::DIFlags>(7); auto *N = DILocalVariable::get(Context, Scope, Name, File, Line, Type, Arg, Flags); @@ -1920,8 +1922,6 @@ TEST_F(DILocalVariableTest, get) { getDerivedType(), Arg, Flags)); EXPECT_NE(N, DILocalVariable::get(Context, Scope, Name, File, Line, Type, Arg + 1, Flags)); - EXPECT_NE(N, DILocalVariable::get(Context, Scope, Name, File, Line, Type, Arg, - NotFlags)); TempDILocalVariable Temp = N->clone(); EXPECT_EQ(N, MDNode::replaceWithUniqued(std::move(Temp))); @@ -1929,17 +1929,17 @@ TEST_F(DILocalVariableTest, get) { TEST_F(DILocalVariableTest, getArg256) { EXPECT_EQ(255u, DILocalVariable::get(Context, getSubprogram(), "", getFile(), - 0, nullptr, 255, 0) + 0, nullptr, 255, DINode::FlagZero) ->getArg()); EXPECT_EQ(256u, DILocalVariable::get(Context, getSubprogram(), "", getFile(), - 0, nullptr, 256, 0) + 0, nullptr, 256, DINode::FlagZero) ->getArg()); EXPECT_EQ(257u, DILocalVariable::get(Context, getSubprogram(), "", getFile(), - 0, nullptr, 257, 0) + 0, nullptr, 257, DINode::FlagZero) ->getArg()); unsigned Max = UINT16_MAX; EXPECT_EQ(Max, DILocalVariable::get(Context, getSubprogram(), "", getFile(), - 0, nullptr, Max, 0) + 0, nullptr, Max, DINode::FlagZero) ->getArg()); } |

