mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 10:05:29 +00:00
50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
|
|
/* 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;
|
|
}
|