• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 /* Point of this test is to generate some very long 'stabs' debug
3    strings, via the use of these exponentially large template types.
4    When compiled with -gstabs, this causes 3.1.1 to segfault at
5    startup.
6 */
7 
8 #include <stdio.h>
9 
10 template <class T, class U>
11 class Stack
12 {
13    public:
Stack(int=10)14       Stack(int = 10) { size=5; top=6; stackPtr=(T*)6;  };
~Stack()15       ~Stack() { }
16       int push(const T&, const U&);
17       int popT(T&);
18       int popU(U&);
isEmpty() const19       int isEmpty() const { return top == -1; }
isFull() const20       int isFull() const { return top == size - 1; }
21    private:
22       int size;
23       int top;
24       T* stackPtr;
25 } ;
26 
27 typedef  Stack<int,char>  Foo;
28 typedef  Stack<Foo,Foo>  Foo2;
29 typedef  Stack<Foo2,Foo2> Foo3;
30 typedef  Stack<Foo3,Foo3> Foo4;
31 typedef  Stack<Foo4,Foo4> Foo5;
32 typedef  Stack<Foo5,Foo5> Foo6;
33 typedef  Stack<Foo6,Foo6> Foo7;
34 typedef  Stack<Foo7,Foo7> Foo8;
35 typedef  Stack<Foo8,Foo8> Foo9;
36 typedef  Stack<Foo9,Foo9> Foo10;
37 typedef  Stack<Foo10,Foo10> Foo11;
38 typedef  Stack<Foo11,Foo11> Foo12;
39 
main(int argc,char ** argv)40 int main ( int argc, char** argv )
41 {
42   Stack<Foo12,Foo12> * x = new Stack<Foo12,Foo12>(3);
43   if (x == NULL)
44     printf("It's NULL (?!)\n");
45   else
46     printf("It's not NULL.  How DULL.\n");
47   delete x;
48   return 0;
49 }
50