diff options
author | emsr <emsr@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-11-21 12:30:37 +0000 |
---|---|---|
committer | emsr <emsr@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-11-21 12:30:37 +0000 |
commit | 7f8a3f4983825df08d845b7093beb81ecd7bb320 (patch) | |
tree | 2c8203853e473a685d088ab1bfe274e96e46d383 /libstdc++-v3/testsuite/experimental/string_view | |
parent | 94612be7a540d99c1996776706c2d3c45f5f8e62 (diff) |
2013-11-21 Edward Smith-Rowland <3dw4rd@verizon.net>
* include/experimental/string_view: Rep empty string with unit-length
static constexpr string. Uncomment _GLIBCXX_VISIBILITY. Enforce
invariant of no nullptr string pointer.
* include/experimental/string_view.tcc: Ditto.
* testsuite/experimental/string_view/cons/char/1.cc: data() for empty
string_view is no longer nullptr.
* testsuite/experimental/string_view/cons/wchar_t/1.cc: Ditto.
* testsuite/experimental/string_view/operations/data/char/1.cc: Ditto.
* testsuite/experimental/string_view/operations/data/wchar_t/1.cc:
Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205213 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite/experimental/string_view')
4 files changed, 16 insertions, 14 deletions
diff --git a/libstdc++-v3/testsuite/experimental/string_view/cons/char/1.cc b/libstdc++-v3/testsuite/experimental/string_view/cons/char/1.cc index 4bb22098df1..982a4c76fb5 100644 --- a/libstdc++-v3/testsuite/experimental/string_view/cons/char/1.cc +++ b/libstdc++-v3/testsuite/experimental/string_view/cons/char/1.cc @@ -33,7 +33,7 @@ test01() // basic_string_view() const std::experimental::string_view str00{}; VERIFY( str00.length() == 0 ); - VERIFY( str00.data() == nullptr ); + VERIFY( str00.data() != nullptr ); // basic_string_view(const char*) const char str_lit01[] = "rodeo beach, marin"; @@ -53,10 +53,11 @@ test01() std::experimental::string_view str05{str_lit01, len_lit01}; VERIFY( str05.length() == len_lit01 ); VERIFY( str05.data() == str_lit01 ); - // This is invalid and unchecked. - //std::experimental::string_view str06{nullptr, len_lit01}; - //VERIFY( str06.length() == 0 ); - //VERIFY( str06.data() == nullptr ); + + // basic_string_view(const char* s, std::size_t l) + std::experimental::string_view str06{nullptr, len_lit01}; + VERIFY( str06.length() == 0 ); + VERIFY( str06.data() != nullptr ); // basic_string_view(basic_string& s) std::string istr07(10, 'z'); diff --git a/libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/1.cc b/libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/1.cc index 3028f654bf0..eb115fd5528 100644 --- a/libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/1.cc +++ b/libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/1.cc @@ -33,7 +33,7 @@ test01() // basic_string_view() const std::experimental::wstring_view str00{}; VERIFY( str00.length() == 0 ); - VERIFY( str00.data() == nullptr ); + VERIFY( str00.data() != nullptr ); // basic_string_view(const char*) const wchar_t str_lit01[] = L"rodeo beach, marin"; @@ -53,10 +53,11 @@ test01() std::experimental::wstring_view str05{str_lit01, len_lit01}; VERIFY( str05.length() == len_lit01 ); VERIFY( str05.data() == str_lit01 ); - // This is invalid and unchecked. - //std::experimental::wstring_view str06{nullptr, len_lit01}; - //VERIFY( str06.length() == 0 ); - //VERIFY( str06.data() == nullptr ); + + // basic_string_view(const wchar_t* s, std::size_t l) + std::experimental::wstring_view str06{nullptr, len_lit01}; + VERIFY( str06.length() == 0 ); + VERIFY( str06.data() != nullptr ); // basic_string_view(basic_string& s) std::wstring istr07(10, L'z'); diff --git a/libstdc++-v3/testsuite/experimental/string_view/operations/data/char/1.cc b/libstdc++-v3/testsuite/experimental/string_view/operations/data/char/1.cc index 4f2bd3dba5c..be75de91791 100644 --- a/libstdc++-v3/testsuite/experimental/string_view/operations/data/char/1.cc +++ b/libstdc++-v3/testsuite/experimental/string_view/operations/data/char/1.cc @@ -29,10 +29,10 @@ test01() std::experimental::string_view empty; - // data() for size == 0 is non-NULL? + // data() for size == 0 is non-NULL. VERIFY( empty.size() == 0 ); const std::experimental::string_view::value_type* p = empty.data(); - VERIFY( p == nullptr ); + VERIFY( p ); return 0; } diff --git a/libstdc++-v3/testsuite/experimental/string_view/operations/data/wchar_t/1.cc b/libstdc++-v3/testsuite/experimental/string_view/operations/data/wchar_t/1.cc index d577c9f3c0a..5e00b00b601 100644 --- a/libstdc++-v3/testsuite/experimental/string_view/operations/data/wchar_t/1.cc +++ b/libstdc++-v3/testsuite/experimental/string_view/operations/data/wchar_t/1.cc @@ -29,10 +29,10 @@ test01() std::experimental::wstring_view empty; - // data() for size == 0 is non-NULL? + // data() for size == 0 is non-NULL. VERIFY( empty.size() == 0 ); const std::experimental::wstring_view::value_type* p = empty.data(); - VERIFY( p == nullptr ); + VERIFY( p ); return 0; } |