aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/config/os
diff options
context:
space:
mode:
authorMarc Glisse <marc.glisse@normalesup.org>2011-08-18 14:59:47 +0000
committerRainer Orth <ro@gcc.gnu.org>2011-08-18 14:59:47 +0000
commita1998fab44f12c5d4553e62d33b974f7ec189477 (patch)
treee1ac4cec20e9f3be646050a685354d96a5798a90 /libstdc++-v3/config/os
parent9181a6e5b0beb4486bcd8c5d5b53d6e10cfc89ad (diff)
downloadgcc-a1998fab44f12c5d4553e62d33b974f7ec189477.zip
gcc-a1998fab44f12c5d4553e62d33b974f7ec189477.tar.gz
gcc-a1998fab44f12c5d4553e62d33b974f7ec189477.tar.bz2
Use Solaris prototypes if possible (PR libstdc++-v3/1773)
Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> From-SVN: r177866
Diffstat (limited to 'libstdc++-v3/config/os')
-rw-r--r--libstdc++-v3/config/os/solaris/solaris2.8/ctype_base.h (renamed from libstdc++-v3/config/os/solaris/solaris2.7/ctype_base.h)0
-rw-r--r--libstdc++-v3/config/os/solaris/solaris2.8/ctype_configure_char.cc (renamed from libstdc++-v3/config/os/solaris/solaris2.7/ctype_configure_char.cc)0
-rw-r--r--libstdc++-v3/config/os/solaris/solaris2.8/ctype_inline.h (renamed from libstdc++-v3/config/os/solaris/solaris2.7/ctype_inline.h)0
-rw-r--r--libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h (renamed from libstdc++-v3/config/os/solaris/solaris2.7/os_defines.h)11
-rw-r--r--libstdc++-v3/config/os/solaris/solaris2.9/ctype_base.h60
-rw-r--r--libstdc++-v3/config/os/solaris/solaris2.9/ctype_configure_char.cc99
-rw-r--r--libstdc++-v3/config/os/solaris/solaris2.9/ctype_inline.h76
-rw-r--r--libstdc++-v3/config/os/solaris/solaris2.9/os_defines.h40
8 files changed, 284 insertions, 2 deletions
diff --git a/libstdc++-v3/config/os/solaris/solaris2.7/ctype_base.h b/libstdc++-v3/config/os/solaris/solaris2.8/ctype_base.h
index 1ae3874..1ae3874 100644
--- a/libstdc++-v3/config/os/solaris/solaris2.7/ctype_base.h
+++ b/libstdc++-v3/config/os/solaris/solaris2.8/ctype_base.h
diff --git a/libstdc++-v3/config/os/solaris/solaris2.7/ctype_configure_char.cc b/libstdc++-v3/config/os/solaris/solaris2.8/ctype_configure_char.cc
index d351942..d351942 100644
--- a/libstdc++-v3/config/os/solaris/solaris2.7/ctype_configure_char.cc
+++ b/libstdc++-v3/config/os/solaris/solaris2.8/ctype_configure_char.cc
diff --git a/libstdc++-v3/config/os/solaris/solaris2.7/ctype_inline.h b/libstdc++-v3/config/os/solaris/solaris2.8/ctype_inline.h
index d6b8df4..d6b8df4 100644
--- a/libstdc++-v3/config/os/solaris/solaris2.7/ctype_inline.h
+++ b/libstdc++-v3/config/os/solaris/solaris2.8/ctype_inline.h
diff --git a/libstdc++-v3/config/os/solaris/solaris2.7/os_defines.h b/libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h
index 2b7ba18..c58126b 100644
--- a/libstdc++-v3/config/os/solaris/solaris2.7/os_defines.h
+++ b/libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h
@@ -1,6 +1,6 @@
-// Specific definitions for Solaris 7,8 -*- C++ -*-
+// Specific definitions for Solaris 8 -*- C++ -*-
-// Copyright (C) 2000, 2002, 2005, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2002, 2005, 2009, 2011 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
@@ -28,5 +28,12 @@
// System-specific #define, typedefs, corrections, etc, go here. This
// file will come before all others.
+// FIXME: Autoconf if possible.
+#if __cplusplus >= 199711L
+#define __CORRECT_ISO_CPP_MATH_H_PROTO2
+#define __CORRECT_ISO_CPP_STRING_H_PROTO
+#define __CORRECT_ISO_CPP_WCHAR_H_PROTO
+#endif
+
#endif
diff --git a/libstdc++-v3/config/os/solaris/solaris2.9/ctype_base.h b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_base.h
new file mode 100644
index 0000000..1ae3874
--- /dev/null
+++ b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_base.h
@@ -0,0 +1,60 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2003, 2009 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 3, 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.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h. Looks like this
+// only works with solaris2.7 and solaris2.8. Thanks for not changing
+// things, sun engineers!
+
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+ /// @brief Base class for ctype.
+ struct ctype_base
+ {
+ // Non-standard typedefs.
+ typedef int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef unsigned int mask;
+ static const mask upper = _ISUPPER;
+ static const mask lower = _ISLOWER;
+ static const mask alpha = _ISALPHA;
+ static const mask digit = _ISDIGIT;
+ static const mask xdigit = _ISXDIGIT;
+ static const mask space = _ISSPACE;
+ static const mask print = _ISPRINT;
+ static const mask graph = _ISALPHA | _ISDIGIT | _ISPUNCT;
+ static const mask cntrl = _ISCNTRL;
+ static const mask punct = _ISPUNCT;
+ static const mask alnum = _ISALPHA | _ISDIGIT;
+ };
+
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace
diff --git a/libstdc++-v3/config/os/solaris/solaris2.9/ctype_configure_char.cc b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_configure_char.cc
new file mode 100644
index 0000000..d351942
--- /dev/null
+++ b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_configure_char.cc
@@ -0,0 +1,99 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2011 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 3, 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.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+/** @file ctype_configure_char.cc */
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+#include <locale>
+#include <cstdlib>
+#include <cstring>
+
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+// Information as gleaned from /usr/include/ctype.h
+
+ const ctype_base::mask*
+ ctype<char>::classic_table() throw()
+ { return __ctype_mask; }
+
+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ size_t __refs)
+ : facet(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(__trans_upper), _M_tolower(__trans_lower),
+ _M_table(__table ? __table : classic_table())
+ {
+ memset(_M_widen, 0, sizeof(_M_widen));
+ _M_widen_ok = 0;
+ memset(_M_narrow, 0, sizeof(_M_narrow));
+ _M_narrow_ok = 0;
+ }
+
+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+ : facet(__refs), _M_del(__table != 0 && __del),
+ _M_toupper(__trans_upper), _M_tolower(__trans_lower),
+ _M_table(__table ? __table : classic_table())
+ {
+ memset(_M_widen, 0, sizeof(_M_widen));
+ _M_widen_ok = 0;
+ memset(_M_narrow, 0, sizeof(_M_narrow));
+ _M_narrow_ok = 0;
+ }
+
+ char
+ ctype<char>::do_toupper(char __c) const
+ { return _M_toupper[static_cast<unsigned char>(__c)]; }
+
+ const char*
+ ctype<char>::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = _M_toupper[static_cast<unsigned char>(*__low)];
+ ++__low;
+ }
+ return __high;
+ }
+
+ char
+ ctype<char>::do_tolower(char __c) const
+ { return _M_tolower[static_cast<unsigned char>(__c)]; }
+
+ const char*
+ ctype<char>::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low < __high)
+ {
+ *__low = _M_tolower[static_cast<unsigned char>(*__low)];
+ ++__low;
+ }
+ return __high;
+ }
+
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace
diff --git a/libstdc++-v3/config/os/solaris/solaris2.9/ctype_inline.h b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_inline.h
new file mode 100644
index 0000000..d6b8df4
--- /dev/null
+++ b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_inline.h
@@ -0,0 +1,76 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2002, 2009, 2010 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 3, 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.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+/** @file bits/ctype_inline.h
+ * This is an internal header file, included by other library headers.
+ * Do not attempt to use it directly. @headername{locale}
+ */
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
+ { return _M_table[static_cast<unsigned char>(__c)] & __m; }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+ return __high;
+ }
+
+ const char*
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
+ while (__low < __high
+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
+ ++__low;
+ return __low;
+ }
+
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace
diff --git a/libstdc++-v3/config/os/solaris/solaris2.9/os_defines.h b/libstdc++-v3/config/os/solaris/solaris2.9/os_defines.h
new file mode 100644
index 0000000..bf84f61
--- /dev/null
+++ b/libstdc++-v3/config/os/solaris/solaris2.9/os_defines.h
@@ -0,0 +1,40 @@
+// Specific definitions for Solaris 9+ -*- C++ -*-
+
+// Copyright (C) 2000, 2002, 2005, 2009, 2011 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 3, 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.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+#ifndef _GLIBCXX_OS_DEFINES
+#define _GLIBCXX_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here. This
+// file will come before all others.
+
+// FIXME: Autoconf if possible.
+#if __cplusplus >= 199711L
+#define __CORRECT_ISO_CPP_MATH_H_PROTO1
+#define __CORRECT_ISO_CPP_STDLIB_H_PROTO
+#define __CORRECT_ISO_CPP_STRING_H_PROTO
+#define __CORRECT_ISO_CPP_WCHAR_H_PROTO
+#endif
+
+#endif
+