42 lines
901 B
C
42 lines
901 B
C
// { 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);
|
|
|
|
}
|