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
+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
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);