diff options
author | Mark Mitchell <mark@codesourcery.com> | 2003-12-31 00:45:27 +0000 |
---|---|---|
committer | Mark Mitchell <mark@codesourcery.com> | 2003-12-31 00:45:27 +0000 |
commit | bd51323a0fde3e8a60299a95eb64f705f6162d13 (patch) | |
tree | f1e0c7a519aa1e332c7c10a8a8e599ba99f615f8 /libstdc++-v3 | |
parent | c9b0b5e83e93dd604c0c5cef4c0bbc5d95d24c3f (diff) |
Merge from mainline
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl-arm-branch@75254 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 33 | ||||
-rw-r--r-- | libstdc++-v3/acinclude.m4 | 7 | ||||
-rw-r--r-- | libstdc++-v3/aclocal.m4 | 7 | ||||
-rw-r--r-- | libstdc++-v3/config/cpu/i386/atomicity.h | 5 | ||||
-rwxr-xr-x | libstdc++-v3/configure | 3 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/c++config | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/locale_facets.h | 7 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/locale_facets.tcc | 21 | ||||
-rw-r--r-- | libstdc++-v3/include/c_std/std_cmath.h | 1 | ||||
-rw-r--r-- | libstdc++-v3/include/ext/pool_allocator.h | 8 |
10 files changed, 68 insertions, 26 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 81d4b742d3b..a5becacb17b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,23 @@ +2003-12-30 Paolo Carlini <pcarlini@suse.de> + + PR libstdc++/13369 + * include/bits/locale_facets.tcc (__verify_grouping): + Fix to deal properly with __grouping_tmp.size() > + __grouping.size(). + * testsuite/22_locale/num_get/get/char/13.cc: New. + * testsuite/22_locale/num_get/get/wchar_t/13.cc: Ditto. + +2003-12-29 Jerry Quinn <jlquinn@optonline.net> + + * include/bits/locale_facets.h (ctype.narrow,widen): Add cast. + +2003-12-29 Paolo Carlini <pcarlini@suse.de> + + * acinclude.m4 (GLIBCXX_CHECK_LFS): Add -fno-exceptions + to CXXFLAGS. + * aclocal.m4: Regenerate. + * configure: Likewise. + 2003-12-29 Mark Mitchell <mark@codesourcery.com> * acconfig.h: Add _GLIBCXX_USE_C99_MATH. @@ -26,6 +46,11 @@ * testsuite/27_io/objects/char/9.cc: Likewise. * testsuite/ext/stdio_filebuf/char/10063-2.cc: Likewise. +2003-12-28 Paolo Carlini <pcarlini@suse.de> + + * include/ext/pool_allocator.h (class __pool_alloc): Use + operator new and operator delete. + 2003-12-24 Mark Mitchell <mark@codesourcery.com> * 27_io/basic_filebuf/close/char/4879.cc: Skip on newlib targets. @@ -37,6 +62,14 @@ * 27_io/objects/char/7.cc: Likewise. * 27_io/objects/char/9661-1.cc: Likewise. +2003-12-24 Andrew Pinski <pinskia@physics.uc.edu> + + * config/cpu/i386/atomicity.h (__exchange_and_add): Fix output + constraint. + + PR libstdc++/13480 + * config/cpu/i386/atomicity.h: Split up read-write memory operand. + 2003-12-23 Benjamin Kosnik <bkoz@redhat.com> * include/ext/new_allocator.h (new_allocator): Proper allocator class. diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index f4c449f5765..93bb23874a3 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -594,7 +594,9 @@ dnl Check whether LFS support is available. dnl AC_DEFUN(GLIBCXX_CHECK_LFS, [ AC_LANG_SAVE - AC_LANG_CPLUSPLUS + AC_LANG_CPLUSPLUS + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fno-exceptions" AC_CACHE_VAL(glibcxx_cv_LFS, [ AC_TRY_LINK( [#include <unistd.h> @@ -611,7 +613,8 @@ AC_DEFUN(GLIBCXX_CHECK_LFS, [ if test $glibcxx_cv_LFS = yes; then AC_DEFINE(_GLIBCXX_USE_LFS) fi - AC_LANG_RESTORE + CXXFLAGS="$ac_save_CXXFLAGS" + AC_LANG_RESTORE ]) diff --git a/libstdc++-v3/aclocal.m4 b/libstdc++-v3/aclocal.m4 index a2fcf8af16b..6e00fe0070d 100644 --- a/libstdc++-v3/aclocal.m4 +++ b/libstdc++-v3/aclocal.m4 @@ -607,7 +607,9 @@ dnl Check whether LFS support is available. dnl AC_DEFUN(GLIBCXX_CHECK_LFS, [ AC_LANG_SAVE - AC_LANG_CPLUSPLUS + AC_LANG_CPLUSPLUS + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fno-exceptions" AC_CACHE_VAL(glibcxx_cv_LFS, [ AC_TRY_LINK( [#include <unistd.h> @@ -624,7 +626,8 @@ AC_DEFUN(GLIBCXX_CHECK_LFS, [ if test $glibcxx_cv_LFS = yes; then AC_DEFINE(_GLIBCXX_USE_LFS) fi - AC_LANG_RESTORE + CXXFLAGS="$ac_save_CXXFLAGS" + AC_LANG_RESTORE ]) diff --git a/libstdc++-v3/config/cpu/i386/atomicity.h b/libstdc++-v3/config/cpu/i386/atomicity.h index 70d38fe3269..7a949c30fa5 100644 --- a/libstdc++-v3/config/cpu/i386/atomicity.h +++ b/libstdc++-v3/config/cpu/i386/atomicity.h @@ -52,8 +52,9 @@ __exchange_and_add(volatile _Atomic_word* __mem, int __val) /* obtain the atomic exchange/add spin lock */ do { __asm__ __volatile__ ("xchg{l} {%0,%1|%1,%0}" - : "+m" (__Atomicity_lock<0>::_S_atomicity_lock), - "+r" (__tmp)); + : "=m" (__Atomicity_lock<0>::_S_atomicity_lock), + "+r" (__tmp) + : "m" (__Atomicity_lock<0>::_S_atomicity_lock)); } while (__tmp); __result = *__mem; diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 3d4909b7cac..2aaca2812dd 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -26707,6 +26707,8 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fno-exceptions" if test "${glibcxx_cv_LFS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -26767,6 +26769,7 @@ fi _ACEOF fi + CXXFLAGS="$ac_save_CXXFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config index 13e4ebbed7d..cb880917e55 100644 --- a/libstdc++-v3/include/bits/c++config +++ b/libstdc++-v3/include/bits/c++config @@ -35,7 +35,7 @@ #include <bits/os_defines.h> // The current version of the C++ library in compressed ISO date format. -#define __GLIBCXX__ 20031223 +#define __GLIBCXX__ 20031230 // Allow use of "export template." This is currently not a feature // that g++ supports. diff --git a/libstdc++-v3/include/bits/locale_facets.h b/libstdc++-v3/include/bits/locale_facets.h index eecb15c1b74..2d3f776b26f 100644 --- a/libstdc++-v3/include/bits/locale_facets.h +++ b/libstdc++-v3/include/bits/locale_facets.h @@ -878,7 +878,7 @@ namespace std char_type widen(char __c) const { - if (_M_widen_ok) return _M_widen[__c]; + if (_M_widen_ok) return _M_widen[static_cast<unsigned char>(__c)]; this->_M_widen_init(); return this->do_widen(__c); } @@ -934,9 +934,10 @@ namespace std char narrow(char_type __c, char __dfault) const { - if (_M_narrow[__c]) return _M_narrow[__c]; + if (_M_narrow[static_cast<unsigned char>(__c)]) + return _M_narrow[static_cast<unsigned char>(__c)]; const char __t = do_narrow(__c, __dfault); - if (__t != __dfault) _M_narrow[__c] = __t; + if (__t != __dfault) _M_narrow[static_cast<unsigned char>(__c)] = __t; return __t; } diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc index 265c1437eba..40b612c1dde 100644 --- a/libstdc++-v3/include/bits/locale_facets.tcc +++ b/libstdc++-v3/include/bits/locale_facets.tcc @@ -2263,23 +2263,22 @@ namespace std bool __verify_grouping(const basic_string<_CharT>& __grouping, const basic_string<_CharT>& __grouping_tmp) - { - size_t __i = 0; - size_t __j = 0; - const size_t __len = __grouping.size(); - const size_t __n = __grouping_tmp.size(); + { + const size_t __n = __grouping_tmp.size() - 1; + const size_t __min = std::min(__n, __grouping.size() - 1); + size_t __i = __n; bool __test = true; - + // Parsed number groupings have to match the // numpunct::grouping string exactly, starting at the // right-most point of the parsed sequence of elements ... - while (__test && __i < __n - 1) - for (__j = 0; __test && __j < __len && __i < __n - 1; ++__j, ++__i) - __test = __grouping[__j] == __grouping_tmp[__n - __i - 1]; + for (size_t __j = 0; __j < __min && __test; --__i, ++__j) + __test = __grouping_tmp[__i] == __grouping[__j]; + for (; __i && __test; --__i) + __test = __grouping_tmp[__i] == __grouping[__min]; // ... but the last parsed grouping can be <= numpunct // grouping. - __j == __len ? __j = 0 : __j; - __test &= __grouping[__j] >= __grouping_tmp[__n - __i - 1]; + __test &= __grouping_tmp[0] <= __grouping[__min]; return __test; } diff --git a/libstdc++-v3/include/c_std/std_cmath.h b/libstdc++-v3/include/c_std/std_cmath.h index 8f22d5bd5ab..66866b2cc3a 100644 --- a/libstdc++-v3/include/c_std/std_cmath.h +++ b/libstdc++-v3/include/c_std/std_cmath.h @@ -436,7 +436,6 @@ namespace std { return __builtin_tanh(__x); } } - #if _GLIBCXX_USE_C99_MATH #if !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC // These are possible macros imported from C99-land. For strict diff --git a/libstdc++-v3/include/ext/pool_allocator.h b/libstdc++-v3/include/ext/pool_allocator.h index cb2df02997e..02303de31fd 100644 --- a/libstdc++-v3/include/ext/pool_allocator.h +++ b/libstdc++-v3/include/ext/pool_allocator.h @@ -200,7 +200,7 @@ namespace __gnu_cxx ((_Obj*)(void*)_S_start_free)->_M_free_list_link = *__free_list; *__free_list = (_Obj*)(void*)_S_start_free; } - _S_start_free = new char[__bytes_to_get]; + _S_start_free = static_cast<char*>(::operator new(__bytes_to_get)); if (_S_start_free == 0) { size_t __i; @@ -225,7 +225,7 @@ namespace __gnu_cxx } } _S_end_free = 0; // In case of exception. - _S_start_free = new char[__bytes_to_get]; + _S_start_free = static_cast<char*>(::operator new(__bytes_to_get)); // This should either throw an exception or remedy the situation. // Thus we assume it succeeded. } @@ -290,7 +290,7 @@ namespace __gnu_cxx } if ((__n > (size_t) _S_max_bytes) || (_S_force_new > 0)) - __ret = new char[__n]; + __ret = ::operator new(__n); else { _Obj* volatile* __free_list = _S_free_list + _S_freelist_index(__n); @@ -317,7 +317,7 @@ namespace __gnu_cxx __pool_alloc<__threads, __inst>::deallocate(void* __p, size_t __n) { if ((__n > (size_t) _S_max_bytes) || (_S_force_new > 0)) - delete [] __p; + ::operator delete(__p); else { _Obj* volatile* __free_list = _S_free_list + _S_freelist_index(__n); |