summaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/stllike
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2019-02-06 14:09:57 +0100
committerTor Egge <Tor.Egge@broadpark.no>2019-02-06 14:09:57 +0100
commitd93960e181aa7010f4de80b5b3c5ac21c602ed41 (patch)
treef349126505986e84c0af787b7f69c3c4d396227d /vespalib/src/tests/stllike
parent7e93d5dac4c722f1efa0e85e511a90084264a99f (diff)
Eliminate clang warning in vespalib
Diffstat (limited to 'vespalib/src/tests/stllike')
-rw-r--r--vespalib/src/tests/stllike/string_test.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/vespalib/src/tests/stllike/string_test.cpp b/vespalib/src/tests/stllike/string_test.cpp
index 96c095667ee..885c13172b1 100644
--- a/vespalib/src/tests/stllike/string_test.cpp
+++ b/vespalib/src/tests/stllike/string_test.cpp
@@ -27,12 +27,27 @@ TEST("test iterator assignment") {
EXPECT_TRUE(strstr(s.c_str(), "mumbo jumbo.") == nullptr);
}
+namespace {
+
+template <typename S>
+void assign(S &lhs, const S &rhs) __attribute__((noinline));
+
+template <typename S>
+void
+assign(S &lhs, const S &rhs)
+{
+ lhs = rhs;
+}
+
+}
+
+
TEST("test self assignment of small string") {
const char * text = "abc";
string s(text);
const char * addr(reinterpret_cast<const char *>(&s));
EXPECT_TRUE((addr < s.c_str()) && (s.c_str() < addr + sizeof(s)));
- s = s;
+ assign(s, s);
EXPECT_EQUAL(text, s);
}
@@ -41,7 +56,7 @@ TEST("test self assignment of big string") {
string s(text);
const char * addr(reinterpret_cast<const char *>(&s));
EXPECT_TRUE((addr > s.c_str()) || (s.c_str() > addr + sizeof(s)));
- s = s;
+ assign(s, s);
EXPECT_EQUAL(text, s);
}