diff -ruN grass-6.4.2.orig/include/iostream/minmaxheap.h grass-6.4.2/include/iostream/minmaxheap.h --- grass-6.4.2.orig/include/iostream/minmaxheap.h 2010-04-17 14:15:22.000000000 +0200 +++ grass-6.4.2/include/iostream/minmaxheap.h 2012-08-26 16:00:35.903788778 +0200 @@ -744,7 +744,7 @@ //heap must be empty assert(this->size()==0); for (i = 0; !full() && i<n; i++) { - insert(arr[i]); + this->insert(arr[i]); } if (i < n) { assert(i == this->maxsize); @@ -777,13 +777,13 @@ 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 -ruN grass-6.4.2.orig/include/iostream/mm.h grass-6.4.2/include/iostream/mm.h --- grass-6.4.2.orig/include/iostream/mm.h 2008-12-19 21:29:33.000000000 +0100 +++ grass-6.4.2/include/iostream/mm.h 2012-08-26 15:19:27.345743801 +0200 @@ -110,10 +110,10 @@ 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 -ruN grass-6.4.2.orig/lib/iostream/mm.cc grass-6.4.2/lib/iostream/mm.cc --- grass-6.4.2.orig/lib/iostream/mm.cc 2011-10-10 22:03:42.000000000 +0200 +++ grass-6.4.2/lib/iostream/mm.cc 2012-08-26 15:21:59.016842053 +0200 @@ -256,7 +256,7 @@ /* ************************************************************ */ -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) throw(std::bad_alloc) { void *p; MM_DEBUG cout << "new: sz=" << sz << ", register " @@ -359,7 +359,7 @@ /* ---------------------------------------------------------------------- */ -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) throw() { size_t sz; void *p;