// { dg-do run } // Produces ICE 980519. // Test case from Dirk Engelmann <Dirk.Engelmann@IWR.Uni-Heidelberg.De> namespace vector { // allocate memory for vector template <class T> inline T* alloc(const int aWidth) { // allocate memory return new T[aWidth]; } } namespace matrix { // allocate memory for matrix template <class T> T** alloc(const int aWidth,const int aHeight) { // allocate memory T **mat = vector::alloc<T*>(aHeight); T *data = vector::alloc<T> (aWidth*aHeight); // set pointer for (int i=0; i<aHeight; i++) mat[i] = &data[aWidth*i]; // ok return mat; } } int main(void) { // sample double **m=matrix::alloc<double>(10,20); }