Skip to content

Commit 2ac1bd2

Browse files
committed
[llvm][TextAPI] compare deployment versions for equality check
(cherry picked from commit f991f30)
1 parent 06deed4 commit 2ac1bd2

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

llvm/include/llvm/TextAPI/Target.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,21 @@ class Target {
4545
};
4646

4747
inline bool operator==(const Target &LHS, const Target &RHS) {
48-
return std::tie(LHS.Arch, LHS.Platform) == std::tie(RHS.Arch, RHS.Platform);
48+
bool CrossLinkMatch =
49+
std::tie(LHS.Arch, LHS.Platform) == std::tie(RHS.Arch, RHS.Platform);
50+
// Ignore potential mismatches due to missing deployment versions.
51+
if (LHS.MinDeployment.empty() || RHS.MinDeployment.empty())
52+
return CrossLinkMatch;
53+
return CrossLinkMatch && LHS.MinDeployment == RHS.MinDeployment;
4954
}
5055

5156
inline bool operator!=(const Target &LHS, const Target &RHS) {
52-
return std::tie(LHS.Arch, LHS.Platform) != std::tie(RHS.Arch, RHS.Platform);
57+
return !(LHS == RHS);
5358
}
5459

5560
inline bool operator<(const Target &LHS, const Target &RHS) {
56-
return std::tie(LHS.Arch, LHS.Platform) < std::tie(RHS.Arch, RHS.Platform);
61+
return std::tie(LHS.Arch, LHS.Platform, LHS.MinDeployment) <
62+
std::tie(RHS.Arch, RHS.Platform, RHS.MinDeployment);
5763
}
5864

5965
inline bool operator==(const Target &LHS, const Architecture &RHS) {

llvm/unittests/TextAPI/TextStubV5Tests.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,8 @@ TEST(TBDv5, ReadFile) {
192192

193193
TargetList AllTargets = {
194194
Target(AK_x86_64, PLATFORM_MACOS, VersionTuple(10, 14)),
195-
Target(AK_arm64, PLATFORM_MACOS, VersionTuple(10, 14)),
196-
Target(AK_arm64, PLATFORM_MACCATALYST, VersionTuple(12, 1)),
195+
Target(AK_arm64, PLATFORM_MACOS, VersionTuple(11, 0, 0)),
196+
Target(AK_arm64, PLATFORM_MACCATALYST, VersionTuple(14, 0)),
197197
};
198198
EXPECT_EQ(mapToPlatformSet(AllTargets), File->getPlatforms());
199199
EXPECT_EQ(mapToArchitectureSet(AllTargets), File->getArchitectures());
@@ -926,7 +926,7 @@ TEST(TBDv5, Target_Simulator) {
926926
EXPECT_EQ(FileType::TBD_V5, File->getFileType());
927927
TargetList ExpectedTargets = {
928928
Target(AK_x86_64, PLATFORM_IOSSIMULATOR, VersionTuple(11, 3)),
929-
Target(AK_arm64, PLATFORM_IOSSIMULATOR, VersionTuple(11, 0)),
929+
Target(AK_arm64, PLATFORM_IOSSIMULATOR, VersionTuple(14, 0)),
930930
};
931931
TargetList Targets{File->targets().begin(), File->targets().end()};
932932
llvm::sort(Targets);

0 commit comments

Comments
 (0)