diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-02-20 00:58:17 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-02-20 00:58:17 +0000 |
commit | 4cfc8a1b73ee091478ce3928f9d7e3c6653b6e5a (patch) | |
tree | f3627f9498d0f292542ccf48c21296eb39d55218 /libstdc++-v3 | |
parent | 20f2763e865a6e951f81dee90d626d69e017c23b (diff) | |
download | gcc-4cfc8a1b73ee091478ce3928f9d7e3c6653b6e5a.tar.gz |
2002-02-19 Benjamin Kosnik <bkoz@redhat.com>
* include/std/std_iomanip.h: Inline, tweaks.
* config/linker-map.gnu: Remove hacks.
* testsuite/21_strings/capacity.cc: Add explicit instantiations.
* testsuite/27_io/ios_init.cc: Same.
* testsuite/22_locale/money_get_members_char.cc (test07): Fix.
* testsuite/22_locale/money_get_members_wchar_t.cc (test07): Same.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49884 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 10 | ||||
-rw-r--r-- | libstdc++-v3/config/linker-map.gnu | 41 | ||||
-rw-r--r-- | libstdc++-v3/include/std/std_iomanip.h | 54 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/21_strings/capacity.cc | 16 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/22_locale/money_get_members_char.cc | 12 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc | 11 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/ios_init.cc | 9 |
7 files changed, 88 insertions, 65 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4f84eaa5837..e006bfca7d1 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,4 +1,14 @@ 2002-02-19 Benjamin Kosnik <bkoz@redhat.com> + + * include/std/std_iomanip.h: Inline, tweaks. + * config/linker-map.gnu: Remove hacks. + + * testsuite/21_strings/capacity.cc: Add explicit instantiations. + * testsuite/27_io/ios_init.cc: Same. + * testsuite/22_locale/money_get_members_char.cc (test07): Fix. + * testsuite/22_locale/money_get_members_wchar_t.cc (test07): Same. + +2002-02-19 Benjamin Kosnik <bkoz@redhat.com> * config/linker-map.gnu: Export global vtable, typeinfo, guard variable, and thunk info as per CXXABI docs. diff --git a/libstdc++-v3/config/linker-map.gnu b/libstdc++-v3/config/linker-map.gnu index 6c5b5ff3f2f..7d76b9dd6a7 100644 --- a/libstdc++-v3/config/linker-map.gnu +++ b/libstdc++-v3/config/linker-map.gnu @@ -25,8 +25,8 @@ GLIBCPP_3.1 { global: - ## Names inside the 'extern' block are demangled names. - ## All but the last are terminated with a semicolon. + # Names inside the 'extern' block are demangled names. + # All but the last are terminated with a semicolon. extern "C++" { std::[A-Za-z]*; @@ -36,17 +36,17 @@ GLIBCPP_3.1 { std::__timepunct* }; - ## Names not in an 'extern' block are mangled names. - ## operator new(unsigned) + # Names not in an 'extern' block are mangled names. + # operator new(unsigned) _Znwj; - ## operator delete(void*) + # operator delete(void*) _ZdlPv; - ## operator new[](unsigned) + # operator new[](unsigned) _Znaj; - ## operator delete[](void*) + # operator delete[](void*) _ZdaPv; # vtable @@ -65,41 +65,26 @@ GLIBCPP_3.1 { _ZTv*; _ZTc*; - # XXX + # libsupc++ __cxa_*; __gxx_personality_v0; __dynamic_cast; - ## std::_S_rb_tree_red + # std::_S_rb_tree_red _ZSt14_S_rb_tree_red; - ## std::_S_rb_tree_black + # std::_S_rb_tree_black _ZSt16_S_rb_tree_black; - ## std::__stl_threshold + # std::__stl_threshold _ZSt15__stl_threshold; - ## std::__stl_chunk_size + # std::__stl_chunk_size _ZSt16__stl_chunk_size; - # this is a function, "void std::__convert_to_v(stuff)", and as such - # doesn't work well in the demangled section above + # std::__convert_to_v _ZSt14__convert_to_v*; - # likewise for "std::_Setfill<char> std::setfill<char>(char)" - _ZSt7setfillIcESt8_SetfillIT_ES1_; - - # likewise for "bool std::has_facet<std::ctype<char> >(std::locale const&)" - _ZSt9has_facetISt5ctypeIcEEbRKSt6locale; - - # likewise for "bool - # std::has_facet<std::num_put<char, std::ostreambuf_iterator<char, - # std::char_traits<char> > > >(std::locale const&)" - _ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale; - - # ditto for istreambuf_iterator - _ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale; - local: *; }; diff --git a/libstdc++-v3/include/std/std_iomanip.h b/libstdc++-v3/include/std/std_iomanip.h index d2e3d3182d4..e046c82f8fa 100644 --- a/libstdc++-v3/include/std/std_iomanip.h +++ b/libstdc++-v3/include/std/std_iomanip.h @@ -57,16 +57,16 @@ namespace std return __x; } - template <class _CharT, class _Traits> - basic_istream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Resetiosflags __f) { __is.setf(ios_base::fmtflags(0), __f._M_mask); return __is; } - template <class _CharT, class _Traits> - basic_ostream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Resetiosflags __f) { __os.setf(ios_base::fmtflags(0), __f._M_mask); @@ -84,16 +84,16 @@ namespace std return __x; } - template <class _CharT, class _Traits> - basic_istream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Setiosflags __f) { __is.setf(__f._M_mask); return __is; } - template <class _CharT, class _Traits> - basic_ostream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Setiosflags __f) { __os.setf(__f._M_mask); @@ -111,8 +111,8 @@ namespace std return __x; } - template <class _CharT, class _Traits> - basic_istream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Setbase __f) { __is.setf(__f._M_base == 8 ? ios_base::oct : @@ -122,8 +122,8 @@ namespace std return __is; } - template <class _CharT, class _Traits> - basic_ostream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Setbase __f) { __os.setf(__f._M_base == 8 ? ios_base::oct : @@ -134,11 +134,11 @@ namespace std } - template<class _CharT> + template<typename _CharT> struct _Setfill { _CharT _M_c; }; - template<class _CharT> - _Setfill<_CharT> + template<typename _CharT> + inline _Setfill<_CharT> setfill(_CharT __c) { _Setfill<_CharT> __x; @@ -146,16 +146,16 @@ namespace std return __x; } - template <class _CharT, class _Traits> - basic_istream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Setfill<_CharT> __f) { __is.fill(__f._M_c); return __is; } - template <class _CharT, class _Traits> - basic_ostream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Setfill<_CharT> __f) { __os.fill(__f._M_c); @@ -173,16 +173,16 @@ namespace std return __x; } - template <class _CharT, class _Traits> - basic_istream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Setprecision __f) { __is.precision(__f._M_n); return __is; } - template <class _CharT, class _Traits> - basic_ostream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Setprecision __f) { __os.precision(__f._M_n); @@ -200,16 +200,16 @@ namespace std return __x; } - template <class _CharT, class _Traits> - basic_istream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Setw __f) { __is.width(__f._M_n); return __is; } - template <class _CharT, class _Traits> - basic_ostream<_CharT,_Traits>& + template<typename _CharT, typename _Traits> + inline basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Setw __f) { __os.width(__f._M_n); diff --git a/libstdc++-v3/testsuite/21_strings/capacity.cc b/libstdc++-v3/testsuite/21_strings/capacity.cc index 8239f1b6488..c8f78890f9b 100644 --- a/libstdc++-v3/testsuite/21_strings/capacity.cc +++ b/libstdc++-v3/testsuite/21_strings/capacity.cc @@ -29,11 +29,11 @@ template<typename T> template<typename T> bool - operator==(const A<T>& a, const A<T>& b) { } + operator==(const A<T>& a, const A<T>& b) { return true; } template<typename T> bool - operator<(const A<T>& a, const A<T>& b) { } + operator<(const A<T>& a, const A<T>& b) { return true; } struct B { }; @@ -188,6 +188,14 @@ bool test02() return test; } +// Explicitly instantiate for systems with no COMDAT or weak support. +template + std::basic_string< A<B> >::size_type + std::basic_string< A<B> >::_Rep::_S_max_size; + +template + A<B> + std::basic_string< A<B> >::_Rep::_S_terminal; int main() { @@ -196,3 +204,7 @@ int main() return 0; } + + + + diff --git a/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc b/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc index e26189c32c3..efe806fed33 100644 --- a/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc +++ b/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc @@ -352,13 +352,13 @@ struct My_money_io : public std::moneypunct<char,false> pattern do_pos_format() const { - static pattern pat = { { symbol, none, sign, value } }; + pattern pat = { { symbol, none, sign, value } }; return pat; } pattern do_neg_format() const { - static pattern pat = { { symbol, none, sign, value } }; + pattern pat = { { symbol, none, sign, value } }; return pat; } }; @@ -369,6 +369,8 @@ void test05() using namespace std; typedef istreambuf_iterator<char> InIt; + bool test = true; + locale loc(locale::classic(), new My_money_io); string bufferp("$1234.56"); @@ -416,6 +418,7 @@ void test05() void test06() { using namespace std; + bool test = true; typedef istreambuf_iterator<char> InIt; InIt iend1, iend2, iend3; @@ -461,7 +464,7 @@ struct My_money_io_a : public std::moneypunct<char,false> pattern do_pos_format() const { - static pattern pat = { { sign, value, space, symbol } }; + pattern pat = { { sign, value, space, symbol } }; return pat; } }; @@ -478,7 +481,7 @@ struct My_money_io_b : public std::moneypunct<char,false> pattern do_pos_format() const { - static pattern pat = { { sign, value, symbol, none } }; + pattern pat = { { sign, value, symbol, none } }; return pat; } }; @@ -493,6 +496,7 @@ void test07() typedef istreambuf_iterator<char> InIt; bool intl = false; + bool test = true; ios_base::iostate err; locale loc_a(locale::classic(), new My_money_io_a); diff --git a/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc b/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc index 9f79661a080..2229de87ef6 100644 --- a/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc +++ b/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc @@ -354,13 +354,13 @@ struct My_money_io : public std::moneypunct<wchar_t,false> pattern do_pos_format() const { - static pattern pat = { { symbol, none, sign, value } }; + pattern pat = { { symbol, none, sign, value } }; return pat; } pattern do_neg_format() const { - static pattern pat = { { symbol, none, sign, value } }; + pattern pat = { { symbol, none, sign, value } }; return pat; } }; @@ -369,6 +369,7 @@ struct My_money_io : public std::moneypunct<wchar_t,false> void test05() { using namespace std; + bool test = true; typedef istreambuf_iterator<wchar_t> InIt; locale loc(locale::classic(), new My_money_io); @@ -418,6 +419,7 @@ void test05() void test06() { using namespace std; + bool test = true; typedef istreambuf_iterator<wchar_t> InIt; InIt iend1, iend2, iend3; @@ -463,7 +465,7 @@ struct My_money_io_a : public std::moneypunct<wchar_t,false> pattern do_pos_format() const { - static pattern pat = { { sign, value, space, symbol } }; + pattern pat = { { sign, value, space, symbol } }; return pat; } }; @@ -480,7 +482,7 @@ struct My_money_io_b : public std::moneypunct<wchar_t,false> pattern do_pos_format() const { - static pattern pat = { { sign, value, symbol, none } }; + pattern pat = { { sign, value, symbol, none } }; return pat; } }; @@ -492,6 +494,7 @@ struct My_money_io_b : public std::moneypunct<wchar_t,false> void test07() { using namespace std; + bool test = true; typedef istreambuf_iterator<wchar_t> InIt; bool intl = false; diff --git a/libstdc++-v3/testsuite/27_io/ios_init.cc b/libstdc++-v3/testsuite/27_io/ios_init.cc index 8356448af9d..626439bdb8b 100644 --- a/libstdc++-v3/testsuite/27_io/ios_init.cc +++ b/libstdc++-v3/testsuite/27_io/ios_init.cc @@ -131,6 +131,15 @@ void test02() VERIFY( test ); } +// Explicitly instantiate for systems with no COMDAT or weak support. +template + std::basic_string<unsigned short>::size_type + std::basic_string<unsigned short>::_Rep::_S_max_size; + +template + unsigned short + std::basic_string<unsigned short>::_Rep::_S_terminal; + int main() { test01(); |