diff -up grass-6.4.2/include/iostream/minmaxheap.h.gcc47 grass-6.4.2/include/iostream/minmaxheap.h --- grass-6.4.2/include/iostream/minmaxheap.h.gcc47 2010-04-17 08:15:22.000000000 -0400 +++ grass-6.4.2/include/iostream/minmaxheap.h 2012-03-02 14:35:37.158208306 -0500 @@ -744,7 +744,7 @@ HeapIndex MinMaxHeap::fill(T* arr, He //heap must be empty assert(this->size()==0); for (i = 0; !full() && iinsert(arr[i]); } if (i < n) { assert(i == this->maxsize); @@ -777,13 +777,13 @@ void UnboundedMinMaxHeap::grow() { if(old) { HeapIndex n = this->size(); - this->A = allocateHeap(this->maxsize); /* allocate a new array */ + this->A = this->allocateHeap(this->maxsize); /* allocate a new array */ /* copy over the old values */ assert(this->maxsize > n); for(HeapIndex i=0; i<=n; i++) { /* why extra value? -RW */ this->A[i] = old[i]; } - freeHeap(old); /* free up old storage */ + this->freeHeap(old); /* free up old storage */ } } diff -up grass-6.4.2/include/iostream/mm.h.gcc47 grass-6.4.2/include/iostream/mm.h --- grass-6.4.2/include/iostream/mm.h.gcc47 2008-12-19 15:29:33.000000000 -0500 +++ grass-6.4.2/include/iostream/mm.h 2012-03-02 14:31:37.673584708 -0500 @@ -110,10 +110,10 @@ public: void print(); friend class mm_register_init; - friend void * operator new(size_t); - friend void * operator new[](size_t); - friend void operator delete(void *); - friend void operator delete[](void *); + friend void * operator new(size_t) throw(std::bad_alloc); + friend void * operator new[](size_t) throw(std::bad_alloc); + friend void operator delete(void *) throw(); + friend void operator delete[](void *) throw(); }; diff -up grass-6.4.2/lib/iostream/mm.cc.gcc47 grass-6.4.2/lib/iostream/mm.cc --- grass-6.4.2/lib/iostream/mm.cc.gcc47 2011-10-10 16:03:42.000000000 -0400 +++ grass-6.4.2/lib/iostream/mm.cc 2012-03-02 14:31:29.171669076 -0500 @@ -256,7 +256,7 @@ MM_err MM_register::register_deallocatio /* ************************************************************ */ -void* operator new[] (size_t sz) { +void* operator new[] (size_t sz) throw(std::bad_alloc) { void *p; MM_DEBUG cout << "new: sz=" << sz << ", register " @@ -307,7 +307,7 @@ void* operator new[] (size_t sz) { /* ************************************************************ */ -void* operator new (size_t sz) { +void* operator new (size_t sz) throw(std::bad_alloc) { void *p; MM_DEBUG cout << "new: sz=" << sz << ", register " @@ -359,7 +359,7 @@ void* operator new (size_t sz) { /* ---------------------------------------------------------------------- */ -void operator delete (void *ptr) { +void operator delete (void *ptr) throw() { size_t sz; void *p; @@ -399,7 +399,7 @@ void operator delete (void *ptr) { /* ---------------------------------------------------------------------- */ -void operator delete[] (void *ptr) { +void operator delete[] (void *ptr) throw() { size_t sz; void *p;