Small testcase demonstrating template-free memory explosion problem.

Corey Kosak kosak@cs.cmu.edu
Thu Jan 8 17:02:00 GMT 1998


I have managed to isolate a half-decent (note: template-free!) test case that
will not compile with -O2, given 300M of virtual memory.  I hope it proves
helpful.

% g++ -v
Reading specs from /usr2/aloco/lib/gcc-lib/alpha-dec-osf3.2/egcs-2.91.03/specs
gcc version egcs-2.91.03 971225 (gcc-2.8.0)
% limit datasize 300M
% g++ -O2 big.cc
big.cc: In function `int main()':
big.cc:59: virtual memory exhausted


------------------------------------------------------------------------

class class4_t {
public:
  ~class4_t() {}
};

class class3_t {
public:
  class4_t x;
  ~class3_t() { }
};


class class2_t {
public:
  class3_t x;
  class2_t () { }
};

class class1_t {
public:
  class1_t() {
    class2_t x;
  }
};

class class0_t {
public:
  class1_t x;
  class0_t() { }
};

int main()
{
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
  new class0_t;  new class0_t;  new class0_t;  new class0_t;
}




More information about the Gcc-bugs mailing list