/* Point of this test is to generate some very long 'stabs' debug strings, via the use of these exponentially large template types. When compiled with -gstabs, this causes 3.1.1 to segfault at startup. */ #include <stdio.h> template <class T, class U> class Stack { public: Stack(int = 10) { size=5; top=6; stackPtr=(T*)6; }; ~Stack() { } int push(const T&, const U&); int popT(T&); int popU(U&); int isEmpty() const { return top == -1; } int isFull() const { return top == size - 1; } private: int size; int top; T* stackPtr; } ; typedef Stack<int,char> Foo; typedef Stack<Foo,Foo> Foo2; typedef Stack<Foo2,Foo2> Foo3; typedef Stack<Foo3,Foo3> Foo4; typedef Stack<Foo4,Foo4> Foo5; typedef Stack<Foo5,Foo5> Foo6; typedef Stack<Foo6,Foo6> Foo7; typedef Stack<Foo7,Foo7> Foo8; typedef Stack<Foo8,Foo8> Foo9; typedef Stack<Foo9,Foo9> Foo10; typedef Stack<Foo10,Foo10> Foo11; typedef Stack<Foo11,Foo11> Foo12; int main ( int argc, char** argv ) { Stack<Foo12,Foo12> * x = new Stack<Foo12,Foo12>(3); if (x == NULL) printf("It's NULL (?!)\n"); else printf("It's not NULL. How DULL.\n"); delete x; return 0; }