aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbkoz <>2005-12-18 08:08:07 +0000
committerbkoz <>2005-12-18 08:08:07 +0000
commit7da11c5d459b539d6324df5f5b5ae3f529801119 (patch)
tree0efdb35c85d4cd38b0a777753a8c02442040322d
parent1f17f1ff673f5dadc65de3b07439d26d6f056c9a (diff)
2005-12-17 Benjamin Kosnik <bkoz@redhat.com>
* src/io-inst.cc: Separate instantiations into... * src/ios-inst.cc: .. this. * src/iostream-inst.cc: ... and this. * src/Makefile.am (sources): Update. * src/Makefile.in: Regenerate. 2005-12-17 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/25472 * include/c_std/std_cstdlib.h: Fix for freestanding. 2005-12-17 Benjamin Kosnik <bkoz@redhat.com> * testsuite/libstdc++-dg/normal.exp: Rename to.. * testsuite/libstdc++-dg/conformance.exp: ... this.
-rw-r--r--libstdc++-v3/ChangeLog18
-rw-r--r--libstdc++-v3/include/c_std/std_cstdlib.h63
-rw-r--r--libstdc++-v3/src/Makefile.am3
-rw-r--r--libstdc++-v3/src/Makefile.in13
-rw-r--r--libstdc++-v3/src/ios-inst.cc44
-rw-r--r--libstdc++-v3/src/iostream-inst.cc (renamed from libstdc++-v3/src/io-inst.cc)20
-rw-r--r--libstdc++-v3/testsuite/libstdc++-dg/conformance.exp (renamed from libstdc++-v3/testsuite/libstdc++-dg/normal.exp)0
7 files changed, 110 insertions, 51 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 2599c135ec5..638a77133a0 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,21 @@
+2005-12-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ * src/io-inst.cc: Separate instantiations into...
+ * src/ios-inst.cc: .. this.
+ * src/iostream-inst.cc: ... and this.
+ * src/Makefile.am (sources): Update.
+ * src/Makefile.in: Regenerate.
+
+2005-12-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/25472
+ * include/c_std/std_cstdlib.h: Fix for freestanding.
+
+2005-12-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/libstdc++-dg/normal.exp: Rename to..
+ * testsuite/libstdc++-dg/conformance.exp: ... this.
+
2005-12-17 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_vector.h (vector(const vector&)): Use
diff --git a/libstdc++-v3/include/c_std/std_cstdlib.h b/libstdc++-v3/include/c_std/std_cstdlib.h
index b5c47fa2d44..2139092f57d 100644
--- a/libstdc++-v3/include/c_std/std_cstdlib.h
+++ b/libstdc++-v3/include/c_std/std_cstdlib.h
@@ -50,13 +50,25 @@
#include <bits/c++config.h>
#include <cstddef>
-#if _GLIBCXX_HOSTED
-/* The C standard does not require a freestanding implementation to
- provide <stdlib.h>. However, the C++ standard does still require
- <cstdlib> -- but only the functionality mentioned in
- [lib.support.start.term]. */
+#if !_GLIBCXX_HOSTED
+// The C standard does not require a freestanding implementation to
+// provide <stdlib.h>. However, the C++ standard does still require
+// <cstdlib> -- but only the functionality mentioned in
+// [lib.support.start.term].
+
+#define EXIT_SUCCESS 0
+#define EXIT_FAILURE 1
+
+namespace std
+{
+ extern "C" void abort(void);
+ extern "C" int atexit(void (*)());
+ extern "C" void exit(int);
+} // namespace std
+
+#else
+
#include <stdlib.h>
-#endif
// Get rid of those macros defined in <stdlib.h> in lieu of real functions.
#undef abort
@@ -90,7 +102,6 @@
namespace std
{
-#if _GLIBCXX_HOSTED
using ::div_t;
using ::ldiv_t;
@@ -132,16 +143,7 @@ namespace std
inline ldiv_t
div(long __i, long __j) { return ldiv(__i, __j); }
-#else
- /* Provide the minimal set of definitions required of a freestanding
- implementation. */
- #define EXIT_SUCCESS 0
- #define EXIT_FAILURE 1
- extern "C" void abort(void);
- extern "C" int atexit(void (*)());
- extern "C" void exit(int);
-#endif
-}
+} // namespace std
#if _GLIBCXX_USE_C99
@@ -198,21 +200,24 @@ namespace __gnu_cxx
namespace std
{
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
- using __gnu_cxx::lldiv_t;
+ using ::__gnu_cxx::lldiv_t;
#endif
- using __gnu_cxx::_Exit;
- using __gnu_cxx::abs;
+ using ::__gnu_cxx::_Exit;
+ using ::__gnu_cxx::abs;
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
- using __gnu_cxx::llabs;
- using __gnu_cxx::div;
- using __gnu_cxx::lldiv;
+ using ::__gnu_cxx::llabs;
+ using ::__gnu_cxx::div;
+ using ::__gnu_cxx::lldiv;
#endif
- using __gnu_cxx::atoll;
- using __gnu_cxx::strtof;
- using __gnu_cxx::strtoll;
- using __gnu_cxx::strtoull;
- using __gnu_cxx::strtold;
+ using ::__gnu_cxx::atoll;
+ using ::__gnu_cxx::strtof;
+ using ::__gnu_cxx::strtoll;
+ using ::__gnu_cxx::strtoull;
+ using ::__gnu_cxx::strtold;
}
-#endif
+
+#endif // _GLIBCXX_USE_C99
+
+#endif // !_GLIBCXX_HOSTED
#endif
diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am
index 113f2dc0d31..b7cc1dd89ec 100644
--- a/libstdc++-v3/src/Makefile.am
+++ b/libstdc++-v3/src/Makefile.am
@@ -144,7 +144,8 @@ sources = \
concept-inst.cc \
fstream-inst.cc \
ext-inst.cc \
- io-inst.cc \
+ ios-inst.cc \
+ iostream-inst.cc \
istream-inst.cc \
istream.cc \
locale-inst.cc \
diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
index f285e898e68..c3a9d6efdf7 100644
--- a/libstdc++-v3/src/Makefile.in
+++ b/libstdc++-v3/src/Makefile.in
@@ -70,11 +70,11 @@ am__objects_3 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
list.lo locale.lo locale_init.lo locale_facets.lo \
localename.lo stdexcept.lo strstream.lo tree.lo \
allocator-inst.lo concept-inst.lo fstream-inst.lo ext-inst.lo \
- io-inst.lo istream-inst.lo istream.lo locale-inst.lo \
- locale-misc-inst.lo misc-inst.lo ostream-inst.lo \
- sstream-inst.lo streambuf-inst.lo streambuf.lo string-inst.lo \
- valarray-inst.lo wlocale-inst.lo wstring-inst.lo \
- $(am__objects_1) $(am__objects_2)
+ ios-inst.lo iostream-inst.lo istream-inst.lo istream.lo \
+ locale-inst.lo locale-misc-inst.lo misc-inst.lo \
+ ostream-inst.lo sstream-inst.lo streambuf-inst.lo streambuf.lo \
+ string-inst.lo valarray-inst.lo wlocale-inst.lo \
+ wstring-inst.lo $(am__objects_1) $(am__objects_2)
am_libstdc___la_OBJECTS = $(am__objects_3)
libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
@@ -334,7 +334,8 @@ sources = \
concept-inst.cc \
fstream-inst.cc \
ext-inst.cc \
- io-inst.cc \
+ ios-inst.cc \
+ iostream-inst.cc \
istream-inst.cc \
istream.cc \
locale-inst.cc \
diff --git a/libstdc++-v3/src/ios-inst.cc b/libstdc++-v3/src/ios-inst.cc
new file mode 100644
index 00000000000..83996f9cff9
--- /dev/null
+++ b/libstdc++-v3/src/ios-inst.cc
@@ -0,0 +1,44 @@
+// Explicit instantiation file.
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882:
+//
+
+#include <ios>
+
+namespace std
+{
+ template class basic_ios<char>;
+
+#ifdef _GLIBCXX_USE_WCHAR_T
+ template class basic_ios<wchar_t>;
+#endif
+}
diff --git a/libstdc++-v3/src/io-inst.cc b/libstdc++-v3/src/iostream-inst.cc
index c6f59d6e848..9f389e64f91 100644
--- a/libstdc++-v3/src/io-inst.cc
+++ b/libstdc++-v3/src/iostream-inst.cc
@@ -1,6 +1,6 @@
// Explicit instantiation file.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -32,28 +32,18 @@
// ISO C++ 14882:
//
-#include <ios>
+#include <iostream>
#include <iomanip>
namespace std
{
- // basic_ios
- template class basic_ios<char>;
-#ifdef _GLIBCXX_USE_WCHAR_T
- template class basic_ios<wchar_t>;
-#endif
-
- // iomanip
template class _Setfill<char>;
template _Setfill<char> setfill(char);
+ template class basic_iostream<char>;
+
#ifdef _GLIBCXX_USE_WCHAR_T
template class _Setfill<wchar_t>;
template _Setfill<wchar_t> setfill(wchar_t);
-#endif
-
- // iostream
- template class basic_iostream<char>;
-#ifdef _GLIBCXX_USE_WCHAR_T
template class basic_iostream<wchar_t>;
#endif
-} // namespace std
+}
diff --git a/libstdc++-v3/testsuite/libstdc++-dg/normal.exp b/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
index 21bc3c1b915..21bc3c1b915 100644
--- a/libstdc++-v3/testsuite/libstdc++-dg/normal.exp
+++ b/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp