This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[v3] libstdc++/9580
- From: Paolo Carlini <pcarlini at unitus dot it>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 17 Feb 2003 21:09:34 +0100
- Subject: [v3] libstdc++/9580
Hi,
tested x86-linux, approved by Benjamin.
Paolo.
//////////
2003-02-17 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9580
* include/std/std_fstream.h: Declare underflow and uflow
specializations, change generic definitions to do nothing.
* src/fstream.cc: Add underflow and uflow specializations.
diff -urN libstdc++-v3-orig/include/std/std_fstream.h libstdc++-v3/include/std/std_fstream.h
--- libstdc++-v3-orig/include/std/std_fstream.h 2003-01-23 19:56:00.000000000 +0100
+++ libstdc++-v3/include/std/std_fstream.h 2003-02-13 23:49:57.000000000 +0100
@@ -439,23 +439,38 @@
basic_filebuf<char>::int_type
basic_filebuf<char>::_M_underflow_common(bool __bump);
+ template<>
+ basic_filebuf<char>::int_type
+ basic_filebuf<char>::underflow();
+
+ template<>
+ basic_filebuf<char>::int_type
+ basic_filebuf<char>::uflow();
+
#ifdef _GLIBCPP_USE_WCHAR_T
template<>
basic_filebuf<wchar_t>::int_type
basic_filebuf<wchar_t>::_M_underflow_common(bool __bump);
+
+ template<>
+ basic_filebuf<wchar_t>::int_type
+ basic_filebuf<wchar_t>::underflow();
+
+ template<>
+ basic_filebuf<wchar_t>::int_type
+ basic_filebuf<wchar_t>::uflow();
#endif
- // Generic definitions.
+ // Generic definitions do nothing.
template <typename _CharT, typename _Traits>
typename basic_filebuf<_CharT, _Traits>::int_type
basic_filebuf<_CharT, _Traits>::underflow()
- { return _M_underflow_common(false); }
+ { return int_type(); }
template <typename _CharT, typename _Traits>
typename basic_filebuf<_CharT, _Traits>::int_type
basic_filebuf<_CharT, _Traits>::uflow()
- { return _M_underflow_common(true); }
-
+ { return int_type(); }
// [27.8.1.5] Template class basic_ifstream
/**
diff -urN libstdc++-v3-orig/src/fstream.cc libstdc++-v3/src/fstream.cc
--- libstdc++-v3-orig/src/fstream.cc 2002-07-31 22:48:38.000000000 +0200
+++ libstdc++-v3/src/fstream.cc 2003-02-13 23:32:16.000000000 +0100
@@ -100,6 +100,16 @@
return __ret;
}
+ template<>
+ basic_filebuf<char>::int_type
+ basic_filebuf<char>::underflow()
+ { return _M_underflow_common(false); }
+
+ template<>
+ basic_filebuf<char>::int_type
+ basic_filebuf<char>::uflow()
+ { return _M_underflow_common(true); }
+
#ifdef _GLIBCPP_USE_WCHAR_T
template<>
basic_filebuf<wchar_t>::int_type
@@ -189,5 +199,15 @@
_M_last_overflowed = false;
return __ret;
}
+
+ template<>
+ basic_filebuf<wchar_t>::int_type
+ basic_filebuf<wchar_t>::underflow()
+ { return _M_underflow_common(false); }
+
+ template<>
+ basic_filebuf<wchar_t>::int_type
+ basic_filebuf<wchar_t>::uflow()
+ { return _M_underflow_common(true); }
#endif
} // namespace std