summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/strings/basic.string/string.access
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2019-03-19 03:30:07 +0000
committerMarshall Clow <mclow.lists@gmail.com>2019-03-19 03:30:07 +0000
commit9ea0e473f0b96455b918eefcf8fc535638674a1f (patch)
tree7d4d56a0ab1298b8cd8b065695ff2b9d6b06582f /libcxx/test/std/strings/basic.string/string.access
parent89251edefcb46f0b5e0caf2bb47f38d115e12fa4 (diff)
downloadbcm5719-llvm-9ea0e473f0b96455b918eefcf8fc535638674a1f.tar.gz
bcm5719-llvm-9ea0e473f0b96455b918eefcf8fc535638674a1f.zip
Mark 'front()' and 'back()' as noexcept for array/deque/string/string_view. These are just rebranded 'operator[]', and should be noexcept like it is.
llvm-svn: 356435
Diffstat (limited to 'libcxx/test/std/strings/basic.string/string.access')
-rw-r--r--libcxx/test/std/strings/basic.string/string.access/back.pass.cpp4
-rw-r--r--libcxx/test/std/strings/basic.string/string.access/front.pass.cpp4
-rw-r--r--libcxx/test/std/strings/basic.string/string.access/index.pass.cpp8
3 files changed, 16 insertions, 0 deletions
diff --git a/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp b/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp
index 3831da0845c..dd2a59a7615 100644
--- a/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp
@@ -25,6 +25,10 @@ void
test(S s)
{
const S& cs = s;
+ ASSERT_SAME_TYPE(decltype( s.back()), typename S::reference);
+ ASSERT_SAME_TYPE(decltype(cs.back()), typename S::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( s.back());
+ LIBCPP_ASSERT_NOEXCEPT( cs.back());
assert(&cs.back() == &cs[cs.size()-1]);
assert(&s.back() == &s[cs.size()-1]);
s.back() = typename S::value_type('z');
diff --git a/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp b/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp
index d51a12f0a77..b666c9c6870 100644
--- a/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp
@@ -25,6 +25,10 @@ void
test(S s)
{
const S& cs = s;
+ ASSERT_SAME_TYPE(decltype( s.front()), typename S::reference);
+ ASSERT_SAME_TYPE(decltype(cs.front()), typename S::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( s.front());
+ LIBCPP_ASSERT_NOEXCEPT( cs.front());
assert(&cs.front() == &cs[0]);
assert(&s.front() == &s[0]);
s.front() = typename S::value_type('z');
diff --git a/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp b/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp
index 3a1224ca301..ec02fa4c32b 100644
--- a/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp
@@ -26,6 +26,10 @@ int main(int, char**)
typedef std::string S;
S s("0123456789");
const S& cs = s;
+ ASSERT_SAME_TYPE(decltype( s[0]), typename S::reference);
+ ASSERT_SAME_TYPE(decltype(cs[0]), typename S::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( s[0]);
+ LIBCPP_ASSERT_NOEXCEPT( cs[0]);
for (S::size_type i = 0; i < cs.size(); ++i)
{
assert(s[i] == static_cast<char>('0' + i));
@@ -40,6 +44,10 @@ int main(int, char**)
typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
S s("0123456789");
const S& cs = s;
+ ASSERT_SAME_TYPE(decltype( s[0]), typename S::reference);
+ ASSERT_SAME_TYPE(decltype(cs[0]), typename S::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( s[0]);
+ LIBCPP_ASSERT_NOEXCEPT( cs[0]);
for (S::size_type i = 0; i < cs.size(); ++i)
{
assert(s[i] == static_cast<char>('0' + i));
OpenPOWER on IntegriCloud