diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index d03f003853eaa966fba05dd5203cbab41b1d507c..e45c891df2444c4010576ca198e723d1180fc470 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,63 @@ +2011-08-18 Marc Glisse <marc.glisse@normalesup.org> + Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR libstdc++-v3/1773 + * config/os/solaris2.7: Rename to config/os/solaris2.9. + * config/os/solaris/solaris2.9/os_defines.h + (__CORRECT_ISO_CPP_MATH_H_PROTO1) + (__CORRECT_ISO_CPP_STDLIB_H_PROTO) + (__CORRECT_ISO_CPP_STRING_H_PROTO) + (__CORRECT_ISO_CPP_WCHAR_H_PROTO): Define. + * config/os/solaris2.8/ctype_base.h, + config/os/solaris2.8/ctype_configure_char.cc, + config/solaris2.8/ctype_inline.h, + config/os/solaris2.8/os_defines.h: New files. + + * configure.host (solaris2.[89], solaris2.1[0-9]): + Split into ... + (solaris2.8): ... this. + Use os/solaris/solaris2.8. + (solaris2.9, solaris2.1[0-9]): ... and this. + Use os/solaris/solaris2.9. + + * include/c_global/cmath (double abs(double)): Wrap in + !__CORRECT_ISO_CPP_MATH_H_PROTO1 && + !__CORRECT_ISO_CPP_MATH_H_PROTO2. + (float abs(float), long double abs(long double): Wrap in + !__CORRECT_ISO_CPP_MATH_H_PROTO1. + (float acos(float), long double acos(long double)): Likewise. + (float asin(float), long double asin(long double)): Likewise. + (float atan(float), long double atan(long double)): Likewise. + (float atan2(float, float), long double atan2(long double, long + double)): Likewise. + (float ceil(float), long double ceil(long double)): Likewise. + (float cos(float), long double cos(long double)): Likewise. + (float cosh(float), long double cosh(long double)): Likewise. + (float exp(float), long double exp(long double)): Likewise. + (float fabs(float), long double fabs(long double)): Likewise. + (float floor(float), long double floor(long double)): Likewise. + (float fmod(float, float), long double fmod(long double, long + double)): Likewise. + (float frexp(float, int*), long double frexp(long double, int*)): + Likewise. + (float ldexp(float, int), long double ldexp(long double, int)): + Likewise. + (float log(float), long double log(long double)): Likewise. + (float log10(float), long double log10(long double)): Likewise. + (float modf(float, float*), long double modf(long double, long + double*))): Likewise. + (float pow(float, float), long double pow(long double, long + double)): Likewise. + (float sin(float), long double sin(long double)): Likewise. + (float sinh(float), long double sinh(long double)): Likewise. + (float sqrt(float), long double sqrt(long double)): Likewise. + (float tan(float), long double tan(long double)): Likewise. + (float tanh(float), long double tanh(long double)): Likewise. + * include/c_global/cstdlib (long abs(long), ldiv_t div(long, + long)): Wrap in !__CORRECT_ISO_CPP_STDLIB_H_PROTO. + * include/tr1/cmath (float fabs(float), long double fabs(long + double)): Wrap in !__CORRECT_ISO_CPP_MATH_H_PROTO1. + 2011-08-14 Benjamin Kosnik <bkoz@redhat.com> * doc/xml/images/*: Image and image filename changes. diff --git a/libstdc++-v3/config/os/solaris/solaris2.7/ctype_base.h b/libstdc++-v3/config/os/solaris/solaris2.8/ctype_base.h similarity index 100% rename from libstdc++-v3/config/os/solaris/solaris2.7/ctype_base.h rename to 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 similarity index 100% rename from libstdc++-v3/config/os/solaris/solaris2.7/ctype_configure_char.cc rename to 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 similarity index 100% rename from libstdc++-v3/config/os/solaris/solaris2.7/ctype_inline.h rename to 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 similarity index 78% rename from libstdc++-v3/config/os/solaris/solaris2.7/os_defines.h rename to libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h index 2b7ba1840f925ad546f2cd3a255af4ee3675b291..c58126bb7cbcf44e129dc424fc2f37751a35cc1b 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 0000000000000000000000000000000000000000..1ae3874a6dbb1f7d2279f577225b27501b3a7fcb --- /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 0000000000000000000000000000000000000000..d3519429a015b7edd7bb7b0390c1da659b23b8ef --- /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 0000000000000000000000000000000000000000..d6b8df484611c77e0cfdc617745d59cae6e82746 --- /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 0000000000000000000000000000000000000000..bf84f6152454c2cef3197aa9e7d131f205c95b63 --- /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 + diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host index a9575403a7f0269fc3e0f2c952b68ebfc88cdd38..6aa164821301aca6a4924f487824426eb1b07b48 100644 --- a/libstdc++-v3/configure.host +++ b/libstdc++-v3/configure.host @@ -284,8 +284,11 @@ case "${host_os}" in echo "Please specify the full version of Solaris, ie. solaris2.9 " 1>&2 exit 1 ;; - solaris2.[89] | solaris2.1[0-9]) - os_include_dir="os/solaris/solaris2.7" + solaris2.8) + os_include_dir="os/solaris/solaris2.8" + ;; + solaris2.9 | solaris2.1[0-9]) + os_include_dir="os/solaris/solaris2.9" ;; tpf) os_include_dir="os/tpf" diff --git a/libstdc++-v3/include/c_global/cmath b/libstdc++-v3/include/c_global/cmath index 6711d90caed3a20dda52abd8a3fca1b983cb287b..016bdba040872b2ffbebad27960decc14802346f 100644 --- a/libstdc++-v3/include/c_global/cmath +++ b/libstdc++-v3/include/c_global/cmath @@ -78,10 +78,14 @@ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION +#if !defined(__CORRECT_ISO_CPP_MATH_H_PROTO1) \ + && !defined(__CORRECT_ISO_CPP_MATH_H_PROTO2) inline _GLIBCXX_CONSTEXPR double abs(double __x) { return __builtin_fabs(__x); } +#endif +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float abs(float __x) { return __builtin_fabsf(__x); } @@ -89,6 +93,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double abs(long double __x) { return __builtin_fabsl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -99,6 +104,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::acos; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float acos(float __x) { return __builtin_acosf(__x); } @@ -106,6 +112,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double acos(long double __x) { return __builtin_acosl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -116,6 +123,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::asin; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float asin(float __x) { return __builtin_asinf(__x); } @@ -123,6 +131,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double asin(long double __x) { return __builtin_asinl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -133,6 +142,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::atan; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float atan(float __x) { return __builtin_atanf(__x); } @@ -140,6 +150,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double atan(long double __x) { return __builtin_atanl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -150,6 +161,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::atan2; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float atan2(float __y, float __x) { return __builtin_atan2f(__y, __x); } @@ -157,6 +169,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double atan2(long double __y, long double __x) { return __builtin_atan2l(__y, __x); } +#endif template<typename _Tp, typename _Up> inline _GLIBCXX_CONSTEXPR @@ -172,6 +185,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::ceil; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float ceil(float __x) { return __builtin_ceilf(__x); } @@ -179,6 +193,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double ceil(long double __x) { return __builtin_ceill(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -189,6 +204,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::cos; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float cos(float __x) { return __builtin_cosf(__x); } @@ -196,6 +212,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double cos(long double __x) { return __builtin_cosl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -206,6 +223,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::cosh; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float cosh(float __x) { return __builtin_coshf(__x); } @@ -213,6 +231,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double cosh(long double __x) { return __builtin_coshl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -223,6 +242,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::exp; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float exp(float __x) { return __builtin_expf(__x); } @@ -230,6 +250,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double exp(long double __x) { return __builtin_expl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -240,6 +261,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::fabs; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float fabs(float __x) { return __builtin_fabsf(__x); } @@ -247,6 +269,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double fabs(long double __x) { return __builtin_fabsl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -257,6 +280,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::floor; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float floor(float __x) { return __builtin_floorf(__x); } @@ -264,6 +288,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double floor(long double __x) { return __builtin_floorl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -274,6 +299,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::fmod; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float fmod(float __x, float __y) { return __builtin_fmodf(__x, __y); } @@ -281,6 +307,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double fmod(long double __x, long double __y) { return __builtin_fmodl(__x, __y); } +#endif template<typename _Tp, typename _Up> inline _GLIBCXX_CONSTEXPR @@ -296,6 +323,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::frexp; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float frexp(float __x, int* __exp) { return __builtin_frexpf(__x, __exp); } @@ -303,6 +331,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double frexp(long double __x, int* __exp) { return __builtin_frexpl(__x, __exp); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -313,6 +342,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::ldexp; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float ldexp(float __x, int __exp) { return __builtin_ldexpf(__x, __exp); } @@ -320,6 +350,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double ldexp(long double __x, int __exp) { return __builtin_ldexpl(__x, __exp); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -330,6 +361,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::log; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float log(float __x) { return __builtin_logf(__x); } @@ -337,6 +369,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double log(long double __x) { return __builtin_logl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -347,6 +380,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::log10; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float log10(float __x) { return __builtin_log10f(__x); } @@ -354,6 +388,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double log10(long double __x) { return __builtin_log10l(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -364,6 +399,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::modf; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float modf(float __x, float* __iptr) { return __builtin_modff(__x, __iptr); } @@ -371,9 +407,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double modf(long double __x, long double* __iptr) { return __builtin_modfl(__x, __iptr); } +#endif using ::pow; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float pow(float __x, float __y) { return __builtin_powf(__x, __y); } @@ -396,6 +434,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline long double pow(long double __x, int __n) { return __builtin_powil(__x, __n); } +#endif #endif template<typename _Tp, typename _Up> @@ -412,6 +451,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::sin; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float sin(float __x) { return __builtin_sinf(__x); } @@ -419,6 +459,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double sin(long double __x) { return __builtin_sinl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -429,6 +470,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::sinh; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float sinh(float __x) { return __builtin_sinhf(__x); } @@ -436,6 +478,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double sinh(long double __x) { return __builtin_sinhl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -446,6 +489,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::sqrt; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float sqrt(float __x) { return __builtin_sqrtf(__x); } @@ -453,6 +497,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double sqrt(long double __x) { return __builtin_sqrtl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -463,6 +508,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::tan; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float tan(float __x) { return __builtin_tanf(__x); } @@ -470,6 +516,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double tan(long double __x) { return __builtin_tanl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR @@ -480,6 +527,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::tanh; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline _GLIBCXX_CONSTEXPR float tanh(float __x) { return __builtin_tanhf(__x); } @@ -487,6 +535,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_CONSTEXPR long double tanh(long double __x) { return __builtin_tanhl(__x); } +#endif template<typename _Tp> inline _GLIBCXX_CONSTEXPR diff --git a/libstdc++-v3/include/c_global/cstdlib b/libstdc++-v3/include/c_global/cstdlib index aa7530d380aba4a5ed6f4da1db7164f427f3b147..f4785b4ad93b58c43767d25845f739853805024f 100644 --- a/libstdc++-v3/include/c_global/cstdlib +++ b/libstdc++-v3/include/c_global/cstdlib @@ -1,7 +1,7 @@ // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, -// 2006, 2007, 2008, 2009, 2010 +// 2006, 2007, 2008, 2009, 2010, 2011 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -135,11 +135,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using ::wctomb; #endif // _GLIBCXX_USE_WCHAR_T +#ifndef __CORRECT_ISO_CPP_STDLIB_H_PROTO inline long abs(long __i) { return labs(__i); } inline ldiv_t div(long __i, long __j) { return ldiv(__i, __j); } +#endif _GLIBCXX_END_NAMESPACE_VERSION } // namespace diff --git a/libstdc++-v3/include/tr1/cmath b/libstdc++-v3/include/tr1/cmath index 9ada6379a772a9bb90bc5200c2a7bc3853b7c4e7..d104572088f39eaba6ccfb19d00a3719baf4580a 100644 --- a/libstdc++-v3/include/tr1/cmath +++ b/libstdc++-v3/include/tr1/cmath @@ -569,6 +569,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // mode have a different return type. using ::fabs; +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1 inline float fabs(float __x) { return __builtin_fabsf(__x); } @@ -582,6 +583,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION double>::__type fabs(_Tp __x) { return __builtin_fabs(__x); } +#endif inline float fdim(float __x, float __y)