summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/strings
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
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')
-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
-rw-r--r--libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp5
-rw-r--r--libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp5
-rw-r--r--libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp5
6 files changed, 28 insertions, 3 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));
diff --git a/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp
index 4505f1cf981..76487b16157 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp
@@ -18,7 +18,10 @@
template <typename CharT>
bool test ( const CharT *s, size_t len ) {
- std::basic_string_view<CharT> sv ( s, len );
+ typedef std::basic_string_view<CharT> SV;
+ SV sv ( s, len );
+ ASSERT_SAME_TYPE(decltype(sv.back()), typename SV::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( sv.back());
assert ( sv.length() == len );
assert ( sv.back() == s[len-1] );
return &sv.back() == s + len - 1;
diff --git a/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp
index 554ed1bab12..eb7138950a7 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp
@@ -18,7 +18,10 @@
template <typename CharT>
bool test ( const CharT *s, size_t len ) {
- std::basic_string_view<CharT> sv ( s, len );
+ typedef std::basic_string_view<CharT> SV;
+ SV sv ( s, len );
+ ASSERT_SAME_TYPE(decltype(sv.front()), typename SV::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( sv.front());
assert ( sv.length() == len );
assert ( sv.front() == s[0] );
return &sv.front() == s;
diff --git a/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp
index 33992de7c05..05b704c642a 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp
@@ -18,7 +18,10 @@
template <typename CharT>
void test ( const CharT *s, size_t len ) {
- std::basic_string_view<CharT> sv ( s, len );
+ typedef std::basic_string_view<CharT> SV;
+ SV sv ( s, len );
+ ASSERT_SAME_TYPE(decltype(sv[0]), typename SV::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT( sv[0]);
assert ( sv.length() == len );
for ( size_t i = 0; i < len; ++i ) {
assert ( sv[i] == s[i] );
OpenPOWER on IntegriCloud