aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/ADT/ArrayRefTest.cpp
diff options
context:
space:
mode:
authorJay Foad <jay.foad@amd.com>2025-07-08 09:23:30 +0100
committerGitHub <noreply@github.com>2025-07-08 09:23:30 +0100
commit37f87194ed060481ff0d361a74ae3b60b7b3667d (patch)
tree4a974f1771a23ca328cc60436c7b76c878d7bf98 /llvm/unittests/ADT/ArrayRefTest.cpp
parent18f7655178a69daa52f4d4ef56169b90efc7f601 (diff)
downloadllvm-37f87194ed060481ff0d361a74ae3b60b7b3667d.zip
llvm-37f87194ed060481ff0d361a74ae3b60b7b3667d.tar.gz
llvm-37f87194ed060481ff0d361a74ae3b60b7b3667d.tar.bz2
[ADT] Implement ArrayRef::operator< and other comparisons (#147277)
Order ArrayRefs using std::lexicographical_compare, just like std::vector and SmallVector.
Diffstat (limited to 'llvm/unittests/ADT/ArrayRefTest.cpp')
-rw-r--r--llvm/unittests/ADT/ArrayRefTest.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/ArrayRefTest.cpp b/llvm/unittests/ADT/ArrayRefTest.cpp
index b5fc0a1..736c8fb 100644
--- a/llvm/unittests/ADT/ArrayRefTest.cpp
+++ b/llvm/unittests/ADT/ArrayRefTest.cpp
@@ -231,6 +231,27 @@ TEST(ArrayRefTest, EmptyEquals) {
EXPECT_TRUE(ArrayRef<unsigned>() == ArrayRef<unsigned>());
}
+TEST(ArrayRefTest, Compare) {
+ ArrayRef<char> Ban("Ban");
+ ArrayRef<char> Banana("Banana");
+ ArrayRef<char> Band("Band");
+
+ EXPECT_TRUE(Ban < Banana);
+ EXPECT_TRUE(Ban <= Banana);
+ EXPECT_FALSE(Ban > Banana);
+ EXPECT_FALSE(Ban >= Banana);
+
+ EXPECT_FALSE(Banana < Banana);
+ EXPECT_TRUE(Banana <= Banana);
+ EXPECT_FALSE(Banana > Banana);
+ EXPECT_TRUE(Banana >= Banana);
+
+ EXPECT_TRUE(Banana < Band);
+ EXPECT_TRUE(Banana <= Band);
+ EXPECT_FALSE(Banana > Band);
+ EXPECT_FALSE(Banana >= Band);
+}
+
TEST(ArrayRefTest, ConstConvert) {
int buf[4];
for (int i = 0; i < 4; ++i)