+2003-12-09 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/linker-map.gnu: Remove private ios_base members from
+ export list.
+
+ * config/cpu/alpha/atomicity.h: Consistently format.
+ * config/cpu/cris/atomicity.h: Same.
+ * config/cpu/generic/atomicity.h: Same.
+ * config/cpu/hppa/atomicity.h: Same.
+ * config/cpu/i386/atomicity.h: Same.
+ * config/cpu/i486/atomicity.h: Same.
+ * config/cpu/ia64/atomicity.h: Same.
+ * config/cpu/m68k/atomicity.h: Same.
+ * config/cpu/mips/atomicity.h: Same.
+ * config/cpu/powerpc/atomicity.h: Same.
+ * config/cpu/s390/atomicity.h: Same.
+ * config/cpu/sparc/atomicity.h: Same.
+
2003-12-09 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/13296
// Low-level functions for atomic operations: Alpha version -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2003 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
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word* __mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
register int __result, __tmp;
static inline void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word* __mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
register _Atomic_word __result;
// Low-level functions for atomic operations: CRIS version -*- C++ -*-
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003 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
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (_Atomic_word* __mem, int __val)
+__exchange_and_add(_Atomic_word* __mem, int __val)
{
int __tmp;
_Atomic_word __result;
static inline void
__attribute__ ((__unused__))
-__atomic_add (_Atomic_word* __mem, int __val)
+__atomic_add(_Atomic_word* __mem, int __val)
{
- __exchange_and_add (__mem, __val);
+ __exchange_and_add(__mem, __val);
}
#endif /* atomicity.h */
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word* __mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
#ifndef __GTHREAD_MUTEX_INIT
- __gthread_once (&__gnu_cxx::_Atomic_add_mutex_once,
- __gnu_cxx::__gthread_atomic_add_mutex_once);
+ __gthread_once(&__gnu_cxx::_Atomic_add_mutex_once,
+ __gnu_cxx::__gthread_atomic_add_mutex_once);
#endif
_Atomic_word __result;
- __gthread_mutex_lock (&__gnu_cxx::_Atomic_add_mutex);
+ __gthread_mutex_lock(&__gnu_cxx::_Atomic_add_mutex);
__result = *__mem;
*__mem += __val;
- __gthread_mutex_unlock (&__gnu_cxx::_Atomic_add_mutex);
+ __gthread_mutex_unlock(&__gnu_cxx::_Atomic_add_mutex);
return __result;
}
static inline void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word* __mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
- (void) __exchange_and_add (__mem, __val);
+ (void) __exchange_and_add(__mem, __val);
}
#endif /* atomicity.h */
static inline int
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word* __mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
_Atomic_word result;
int tmp;
static inline void
__attribute__ ((__unused__))
-__atomic_add (_Atomic_word* __mem, int __val)
+__atomic_add(_Atomic_word* __mem, int __val)
{
int tmp;
volatile int& lock = __Atomicity_lock<0>::_S_atomicity_lock;
typedef int _Atomic_word;
-template <int __inst>
-struct __Atomicity_lock
-{
- static volatile _Atomic_word _S_atomicity_lock;
-};
+template<int __inst>
+ struct __Atomicity_lock
+ {
+ static volatile _Atomic_word _S_atomicity_lock;
+ };
-template <int __inst>
+template<int __inst>
volatile _Atomic_word __Atomicity_lock<__inst>::_S_atomicity_lock = 0;
template volatile _Atomic_word __Atomicity_lock<0>::_S_atomicity_lock;
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
register _Atomic_word __result, __tmp = 1;
static inline void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word* __mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
- __exchange_and_add (__mem, __val);
+ __exchange_and_add(__mem, __val);
}
#endif /* atomicity.h */
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
register _Atomic_word __result;
__asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}"
static inline void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word* __mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
__asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}"
: "+m" (*__mem) : "ir" (__val) : "memory");
}
#endif /* atomicity.h */
-
-
// Low-level functions for atomic operations: IA64 version -*- C++ -*-
-// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2003 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
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
- return __sync_fetch_and_add (__mem, __val);
+ return __sync_fetch_and_add(__mem, __val);
}
static inline void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word* __mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
- __sync_fetch_and_add (__mem, __val);
+ __sync_fetch_and_add(__mem, __val);
}
#endif /* atomicity.h */
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
register _Atomic_word __result = *__mem;
register _Atomic_word __temp;
*/
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
_Atomic_word __result;
short __level, __tmpsr;
#else
-template <int __inst>
-struct __Atomicity_lock
-{
- static volatile unsigned char _S_atomicity_lock;
-};
+template<int __inst>
+ struct __Atomicity_lock
+ {
+ static volatile unsigned char _S_atomicity_lock;
+ };
-template <int __inst>
+template<int __inst>
volatile unsigned char __Atomicity_lock<__inst>::_S_atomicity_lock = 0;
template volatile unsigned char __Atomicity_lock<0>::_S_atomicity_lock;
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
_Atomic_word __result;
static inline void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word* __mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
// Careful: using add.l with a memory destination is not
// architecturally guaranteed to be atomic.
- (void) __exchange_and_add (__mem, __val);
+ (void) __exchange_and_add(__mem, __val);
}
#endif /* !_GLIBCXX_ATOMICITY_H */
static inline int
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
int __result, __tmp;
static inline void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word *__mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
int __result;
// Low-level functions for atomic operations: PowerPC version -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2003 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
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word* __mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
_Atomic_word __tmp, __res;
__asm__ __volatile__ (
static inline void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word *__mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
_Atomic_word __tmp;
__asm__ __volatile__ (
// Low-level functions for atomic operations: S/390 version -*- C++ -*-
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003 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
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
register _Atomic_word __old_val, __new_val;
static inline void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word *__mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
- __exchange_and_add (__mem, __val);
+ __exchange_and_add(__mem, __val);
}
#endif /* atomicity.h */
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
_Atomic_word __tmp1, __tmp2;
_Atomic_word __val_extended = __val;
static inline void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word* __mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
_Atomic_word __tmp1, __tmp2;
_Atomic_word __val_extended = __val;
typedef int _Atomic_word;
-template <int __inst>
-struct __Atomicity_lock
-{
- static unsigned char _S_atomicity_lock;
-};
+template<int __inst>
+ struct __Atomicity_lock
+ {
+ static unsigned char _S_atomicity_lock;
+ };
-template <int __inst>
+template<int __inst>
unsigned char __Atomicity_lock<__inst>::_S_atomicity_lock = 0;
template unsigned char __Atomicity_lock<0>::_S_atomicity_lock;
static int
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word* __mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
_Atomic_word __result, __tmp;
static void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word* __mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
_Atomic_word __tmp;
# Names inside the 'extern' block are demangled names.
extern "C++"
{
- std::[A-Za-k]*;
+ std::[A-Za-h]*;
+ std::i[a-n]*;
+ std::ios_base::[A-Ha-z]*;
+ std::ios_base::_M_grow_words*;
+ std::ios_base::_M_init*;
+ std::ios_base::Init::[A-Za-z]*;
+ std::ios_base::Init::_S_initialized*;
+ std::ios_base::[J-Za-z]*;
+ std::i[p-z]*;
+ std::[A-Zj-k]*;
std::length_error*;
std::logic_error*;
std::locale::[A-Za-e]*;
_ZNSt6locale5_ImplC*;
_ZNSt6locale5_ImplD*;
+ # std::ios_base, std::ios_base::Init destructors
+ _ZNSt8ios_baseD*;
+ _ZNSt8ios_base4InitD*;
+
# bool has_facet
_ZSt9has_facet*;