diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-24 11:13:44 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-24 11:13:44 +0000 |
commit | abe0b5f98e0c3797e13608a31c45ff19cf502954 (patch) | |
tree | 6d91ab9996e6df76220a4c0d6b05500b9582649b | |
parent | 384763bb097da3cf23589bca8eca1e7d64db09ad (diff) | |
download | gcc-abe0b5f98e0c3797e13608a31c45ff19cf502954.tar.gz |
2008-11-24 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/38244
* include/std/bitset (bitset<>::bitset(const char*, char, char)):
Remove, do not implement DR 778.
* doc/xml/manual/intro.xml: Remove entry for DR 778.
* testsuite/23_containers/bitset/cons/2.cc: Remove.
* testsuite/23_containers/bitset/cons/dr396.cc: Tweak.
* testsuite/23_containers/bitset/cons/38244.cc: Add.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142152 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | libstdc++-v3/ChangeLog | 10 | ||||
-rw-r--r-- | libstdc++-v3/doc/xml/manual/intro.xml | 7 | ||||
-rw-r--r-- | libstdc++-v3/include/std/bitset | 11 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/23_containers/bitset/cons/38244.cc (renamed from libstdc++-v3/testsuite/23_containers/bitset/cons/2.cc) | 45 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/23_containers/bitset/cons/dr396.cc | 24 |
5 files changed, 36 insertions, 61 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index c2ebda51659..169a22b0016 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,13 @@ +2008-11-24 Paolo Carlini <paolo.carlini@oracle.com> + + PR libstdc++/38244 + * include/std/bitset (bitset<>::bitset(const char*, char, char)): + Remove, do not implement DR 778. + * doc/xml/manual/intro.xml: Remove entry for DR 778. + * testsuite/23_containers/bitset/cons/2.cc: Remove. + * testsuite/23_containers/bitset/cons/dr396.cc: Tweak. + * testsuite/23_containers/bitset/cons/38244.cc: Add. + 2008-11-21 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/22_locale/num_put/put/char/38210.cc: Tweak. diff --git a/libstdc++-v3/doc/xml/manual/intro.xml b/libstdc++-v3/doc/xml/manual/intro.xml index d60dd5df5d9..906d942f364 100644 --- a/libstdc++-v3/doc/xml/manual/intro.xml +++ b/libstdc++-v3/doc/xml/manual/intro.xml @@ -684,13 +684,6 @@ <listitem><para>In C++0x mode, remove assign, add fill. </para></listitem></varlistentry> - <varlistentry><term><ulink url="../ext/lwg-defects.html#778">778</ulink>: - <emphasis>std::bitset does not have any constructor taking a string - literal</emphasis> - </term> - <listitem><para>Add it. - </para></listitem></varlistentry> - <varlistentry><term><ulink url="../ext/lwg-defects.html#781">781</ulink>: <emphasis>std::complex should add missing C99 functions</emphasis> </term> diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset index b18440d39f8..10d60055c31 100644 --- a/libstdc++-v3/include/std/bitset +++ b/libstdc++-v3/include/std/bitset @@ -802,17 +802,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) _M_copy_from_string(__s, __position, __n, __zero, __one); } - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 778. std::bitset does not have any constructor taking a string literal - explicit - bitset(const char* __s, char __zero = '0', char __one = '1') - : _Base() - { - _M_copy_from_ptr<char, char_traits<char> >(__s, - char_traits<char>::length(__s), 0, size_t(-1), - __zero, __one); - } - // 23.3.5.2 bitset operations: //@{ /** diff --git a/libstdc++-v3/testsuite/23_containers/bitset/cons/2.cc b/libstdc++-v3/testsuite/23_containers/bitset/cons/38244.cc index 24bb6213e60..5d752325802 100644 --- a/libstdc++-v3/testsuite/23_containers/bitset/cons/2.cc +++ b/libstdc++-v3/testsuite/23_containers/bitset/cons/38244.cc @@ -1,5 +1,3 @@ -// 2008-05-21 Paolo Carlini <paolo.carlini@oracle.com> - // Copyright (C) 2008 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -18,32 +16,29 @@ // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // USA. +// { dg-do compile } + #include <bitset> -#include <testsuite_hooks.h> -// DR 778. std::bitset does not have any constructor taking a string literal. -void test01() +class C0 { - bool test __attribute__((unused)) = true; - - std::bitset<4> z1("1101"); - std::bitset<4> z1_ref(std::string("1101")); - VERIFY( z1.to_string() == "1101" ); - VERIFY( z1 == z1_ref ); - - std::bitset<8> z2("1011"); - std::bitset<8> z2_ref(std::string("1011")); - VERIFY( z2.to_string() == "00001011" ); - VERIFY( z2 == z2_ref ); + public: + C0() : b(0) { } + private: + std::bitset<1> b; +}; - std::bitset<2> z3("1101"); - std::bitset<2> z3_ref(std::string("1101")); - VERIFY( z3.to_string() == "11" ); - VERIFY( z3 == z3_ref ); -} - -int main() +class C1 +{ + public: + C1() : b(1) { } + private: + std::bitset<1> b; +}; + +// libstdc++/38244 +void func() { - test01(); - return 0; + C0 val0; + C1 val1; } diff --git a/libstdc++-v3/testsuite/23_containers/bitset/cons/dr396.cc b/libstdc++-v3/testsuite/23_containers/bitset/cons/dr396.cc index 3c8a576a96f..6218e8a840d 100644 --- a/libstdc++-v3/testsuite/23_containers/bitset/cons/dr396.cc +++ b/libstdc++-v3/testsuite/23_containers/bitset/cons/dr396.cc @@ -26,35 +26,23 @@ void test01() { bool test __attribute__((unused)) = true; - std::bitset<4> z1("bbab", 'a', 'b'); - std::bitset<4> z1_ref(std::string("bbab"), 0, std::string::npos, 'a', 'b'); + std::bitset<4> z1(std::string("bbab"), 0, std::string::npos, 'a', 'b'); VERIFY( z1.to_string('a', 'b') == "bbab" ); - VERIFY( z1 == z1_ref ); - std::bitset<4> z2("11a1", 'a'); - std::bitset<4> z2_ref(std::string("11a1"), 0, std::string::npos, 'a'); + std::bitset<4> z2(std::string("11a1"), 0, std::string::npos, 'a'); VERIFY( z2.to_string('a') == "11a1" ); - VERIFY( z2 == z2_ref ); - std::bitset<8> z3("babb", 'a', 'b'); - std::bitset<8> z3_ref(std::string("babb"), 0, std::string::npos, 'a', 'b'); + std::bitset<8> z3(std::string("babb"), 0, std::string::npos, 'a', 'b'); VERIFY( z3.to_string('a', 'b') == "aaaababb" ); - VERIFY( z3 == z3_ref ); - std::bitset<8> z4("1a11", 'a'); - std::bitset<8> z4_ref(std::string("1a11"), 0, std::string::npos, 'a'); + std::bitset<8> z4(std::string("1a11"), 0, std::string::npos, 'a'); VERIFY( z4.to_string('a') == "aaaa1a11" ); - VERIFY( z4 == z4_ref ); - std::bitset<2> z5("bbab", 'a', 'b'); - std::bitset<2> z5_ref(std::string("bbab"), 0, std::string::npos, 'a', 'b'); + std::bitset<2> z5(std::string("bbab"), 0, std::string::npos, 'a', 'b'); VERIFY( z5.to_string('a', 'b') == "bb" ); - VERIFY( z5 == z5_ref ); - std::bitset<2> z6("11a1", 'a'); - std::bitset<2> z6_ref(std::string("11a1"), 0, std::string::npos, 'a'); + std::bitset<2> z6(std::string("11a1"), 0, std::string::npos, 'a'); VERIFY( z6.to_string('a') == "11" ); - VERIFY( z6 == z6_ref ); } int main() |