summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/ADT/StringRefTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/ADT/StringRefTest.cpp')
-rw-r--r--llvm/unittests/ADT/StringRefTest.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/StringRefTest.cpp b/llvm/unittests/ADT/StringRefTest.cpp
index 0ab8fcf6f00..b240a87ef75 100644
--- a/llvm/unittests/ADT/StringRefTest.cpp
+++ b/llvm/unittests/ADT/StringRefTest.cpp
@@ -531,4 +531,22 @@ TEST(StringRefTest, joinStrings) {
EXPECT_TRUE(v2_join3);
}
+static void fn_stringref(StringRef str) {
+ EXPECT_TRUE(str == "hello");
+}
+static void fn_conststringref(ConstStringRef str) {
+ fn_stringref(str);
+}
+
+TEST(StringRefTest, constStringRef) {
+ LLVM_CONSTEXPR ConstStringRef csr("hello");
+#if __has_feature(cxx_constexpr) || defined(__GXX_EXPERIMENTAL_CXX0X__)
+ LLVM_STATIC_ASSERT(csr[0] != csr[1], "");
+ LLVM_STATIC_ASSERT(csr[2] == csr[3], "");
+ LLVM_STATIC_ASSERT(csr.size() == 5, "");
+#endif
+ llvm_expect(csr[2] == csr[3]);
+ fn_conststringref(csr);
+}
+
} // end anonymous namespace
OpenPOWER on IntegriCloud