OSDN Git Service

* libsupc++/eh_alloc.cc (__cxa_free_exception): Don't refer to the
authorbje <bje@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Feb 2007 04:04:34 +0000 (04:04 +0000)
committerbje <bje@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Feb 2007 04:04:34 +0000 (04:04 +0000)
emergency_buffer using `&array[0][0]' notation, use `array'.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121456 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/libsupc++/eh_alloc.cc

index 2b6b120..1718e5d 100644 (file)
@@ -1,3 +1,8 @@
+2007-02-01  Ben Elliston  <bje@au.ibm.com>
+
+       * libsupc++/eh_alloc.cc (__cxa_free_exception): Don't refer to the
+       emergency_buffer using `&array[0][0]' notation, use `array'.
+
 2007-01-30  Benjamin Kosnik  <bkoz@redhat.com>
 
        PR libstdc++/30571
index 217a8cd..553c1c1 100644 (file)
@@ -143,12 +143,13 @@ __cxxabiv1::__cxa_allocate_exception(std::size_t thrown_size) throw()
 extern "C" void
 __cxxabiv1::__cxa_free_exception(void *vptr) throw()
 {
+  char *base = (char *) emergency_buffer;
   char *ptr = (char *) vptr;
-  if (ptr >= &emergency_buffer[0][0]
-      && ptr < &emergency_buffer[0][0] + sizeof (emergency_buffer))
+  if (ptr >= base
+      && ptr < base + sizeof (emergency_buffer))
     {
       const unsigned int which
-       = (unsigned)(ptr - &emergency_buffer[0][0]) / EMERGENCY_OBJ_SIZE;
+       = (unsigned) (ptr - base) / EMERGENCY_OBJ_SIZE;
 
       __gnu_cxx::__scoped_lock sentry(emergency_mutex);
       emergency_used &= ~((bitmask_type)1 << which);