diff options
Diffstat (limited to 'llvm/unittests/IR/MetadataTest.cpp')
-rw-r--r-- | llvm/unittests/IR/MetadataTest.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/unittests/IR/MetadataTest.cpp b/llvm/unittests/IR/MetadataTest.cpp index e710f78..45860d6 100644 --- a/llvm/unittests/IR/MetadataTest.cpp +++ b/llvm/unittests/IR/MetadataTest.cpp @@ -25,6 +25,10 @@ #include <optional> using namespace llvm; +namespace llvm { +extern cl::opt<bool> PickMergedSourceLocations; +} // namespace llvm + namespace { TEST(ContextAndReplaceableUsesTest, FromContext) { @@ -1444,6 +1448,25 @@ TEST_F(DILocationTest, Merge) { auto *M2 = DILocation::getMergedLocation(A2, B); EXPECT_EQ(M1, M2); } + + { + // If PickMergedSourceLocation is enabled, when one source location is null + // we should return the valid location. + PickMergedSourceLocations = true; + auto *A = DILocation::get(Context, 2, 7, N); + auto *M1 = DILocation::getMergedLocation(A, nullptr); + ASSERT_NE(nullptr, M1); + EXPECT_EQ(2u, M1->getLine()); + EXPECT_EQ(7u, M1->getColumn()); + EXPECT_EQ(N, M1->getScope()); + + auto *M2 = DILocation::getMergedLocation(nullptr, A); + ASSERT_NE(nullptr, M2); + EXPECT_EQ(2u, M2->getLine()); + EXPECT_EQ(7u, M2->getColumn()); + EXPECT_EQ(N, M2->getScope()); + PickMergedSourceLocations = false; + } } TEST_F(DILocationTest, getDistinct) { |