home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / gdb-4.9 / gdb / testsuite / gdb.t21 / gdbme.cc < prev    next >
Encoding:
C/C++ Source or Header  |  1993-05-12  |  6.6 KB  |  171 lines

  1. class foo {
  2. public:
  3.   foo  (int);
  4.   foo  (int, const char *);
  5.   foo  (foo&);
  6.   ~foo ();
  7.  
  8.   void  operator *      (foo&);
  9.   void  operator %      (foo&);
  10.   void  operator -      (foo&);
  11.   void  operator >>     (foo&);
  12.   void  operator !=     (foo&);
  13.   void  operator >      (foo&);
  14.   void  operator >=     (foo&);
  15.   void  operator |      (foo&);
  16.   void  operator &&     (foo&);
  17.   void  operator !      (void);
  18.   void  operator ++     (int);
  19.   void  operator =      (foo&);
  20.   void  operator +=     (foo&);
  21.   void  operator *=     (foo&);
  22.   void  operator %=     (foo&);
  23.   void  operator >>=    (foo&);
  24.   void  operator |=     (foo&);
  25.   void  operator ,      (foo&);
  26.   void  operator /      (foo&);
  27.   void  operator +      (foo&);
  28.   void  operator <<     (foo&);
  29.   void  operator ==     (foo&);
  30.   void  operator <      (foo&);
  31.   void  operator <=     (foo&);
  32.   void  operator &      (foo&);
  33.   void  operator ^      (foo&);
  34.   void  operator ||     (foo&);
  35.   void  operator ~      (void);
  36.   void  operator --     (int);
  37.   void  operator ->     (void);
  38.   void  operator -=     (foo&);
  39.   void  operator /=     (foo&);
  40.   void  operator <<=    (foo&);
  41.   void  operator &=     (foo&);
  42.   void  operator ^=     (foo&);
  43.   void  operator ->*    (foo&);
  44.   void  operator []     (foo&);
  45.   void  operator ()     (foo&);
  46.   void* operator new    (int);
  47.   void  operator delete (void *);
  48.   /**/  operator int    ();
  49.   /**/  operator char*  ();
  50.  
  51.   foofunc (int);
  52.   foofunc (int, signed char *);
  53.   int ifoo;
  54.   const char *ccpfoo;
  55. };
  56.  
  57. main () {}
  58.  
  59. foo::foo  (int i)                  { ifoo = i;}
  60. foo::foo  (int i, const char *ccp) { ifoo = i; ccpfoo = ccp; }
  61. foo::foo  (foo& afoo)              { afoo.ifoo = 0; }
  62. foo::~foo ()                       {}
  63.  
  64. void  foo::operator *      (foo& afoo) { afoo.ifoo = 0; }
  65. void  foo::operator %      (foo& afoo) { afoo.ifoo = 0; }
  66. void  foo::operator -      (foo& afoo) { afoo.ifoo = 0; }
  67. void  foo::operator >>     (foo& afoo) { afoo.ifoo = 0; }
  68. void  foo::operator !=     (foo& afoo) { afoo.ifoo = 0; }
  69. void  foo::operator >      (foo& afoo) { afoo.ifoo = 0; }
  70. void  foo::operator >=     (foo& afoo) { afoo.ifoo = 0; }
  71. void  foo::operator |      (foo& afoo) { afoo.ifoo = 0; }
  72. void  foo::operator &&     (foo& afoo) { afoo.ifoo = 0; }
  73. void  foo::operator !      (void) {}
  74. void  foo::operator ++     (int ival) { ival = 0; }
  75. void  foo::operator =      (foo& afoo) { afoo.ifoo = 0; }
  76. void  foo::operator +=     (foo& afoo) { afoo.ifoo = 0; }
  77. void  foo::operator *=     (foo& afoo) { afoo.ifoo = 0; }
  78. void  foo::operator %=     (foo& afoo) { afoo.ifoo = 0; }
  79. void  foo::operator >>=    (foo& afoo) { afoo.ifoo = 0; }
  80. void  foo::operator |=     (foo& afoo) { afoo.ifoo = 0; }
  81. void  foo::operator ,      (foo& afoo) { afoo.ifoo = 0; }
  82. void  foo::operator /      (foo& afoo) { afoo.ifoo = 0; }
  83. void  foo::operator +      (foo& afoo) { afoo.ifoo = 0; }
  84. void  foo::operator <<     (foo& afoo) { afoo.ifoo = 0; }
  85. void  foo::operator ==     (foo& afoo) { afoo.ifoo = 0; }
  86. void  foo::operator <      (foo& afoo) { afoo.ifoo = 0; }
  87. void  foo::operator <=     (foo& afoo) { afoo.ifoo = 0; }
  88. void  foo::operator &      (foo& afoo) { afoo.ifoo = 0; }
  89. void  foo::operator ^      (foo& afoo) { afoo.ifoo = 0; }
  90. void  foo::operator ||     (foo& afoo) { afoo.ifoo = 0; }
  91. void  foo::operator ~      (void) {}
  92. void  foo::operator --     (int ival) { ival = 0; }
  93. void  foo::operator ->     (void) {}
  94. void  foo::operator -=     (foo& afoo) { afoo.ifoo = 0; }
  95. void  foo::operator /=     (foo& afoo) { afoo.ifoo = 0; }
  96. void  foo::operator <<=    (foo& afoo) { afoo.ifoo = 0; }
  97. void  foo::operator &=     (foo& afoo) { afoo.ifoo = 0; }
  98. void  foo::operator ^=     (foo& afoo) { afoo.ifoo = 0; }
  99. void  foo::operator ->*    (foo& afoo) { afoo.ifoo = 0; }
  100. void  foo::operator []     (foo& afoo) { afoo.ifoo = 0; }
  101. void  foo::operator ()     (foo& afoo) { afoo.ifoo = 0; }
  102. void* foo::operator new    (int ival) { ival = 0; return 0; }
  103. void  foo::operator delete (void *ptr) { ptr = 0; }
  104. int   foo::operator int    () { return 0; }
  105. char* foo::operator char*  () { return 0; }
  106.  
  107. /* Some functions to test overloading by varying one argument type. */
  108.  
  109. void overload1arg (void)        {          }
  110. void overload1arg (char arg)        { arg = 0; }
  111. void overload1arg (signed char arg)    { arg = 0; }
  112. void overload1arg (unsigned char arg)    { arg = 0; }
  113. void overload1arg (short arg)        { arg = 0; }
  114. void overload1arg (unsigned short arg)    { arg = 0; }
  115. void overload1arg (int arg)        { arg = 0; }
  116. void overload1arg (unsigned int arg)    { arg = 0; }
  117. void overload1arg (long arg)        { arg = 0; }
  118. void overload1arg (unsigned long arg)    { arg = 0; }
  119. void overload1arg (float arg)        { arg = 0; }
  120. void overload1arg (double arg)        { arg = 0; }
  121.  
  122. /* Some functions to test overloading by varying argument count. */
  123.  
  124. void overloadargs (int a1)                { a1 = 0; }
  125. void overloadargs (int a1, int a2)            { a1 = a2 = 0; }
  126. void overloadargs (int a1, int a2, int a3)        { a1 = a2 = a3 = 0; }
  127. void overloadargs (int a1, int a2, int a3, int a4)
  128.             { a1 = a2 = a3 = a4 = 0; }
  129. void overloadargs (int a1, int a2, int a3, int a4, int a5)
  130.             { a1 = a2 = a3 = a4 = a5 = 0; }
  131. void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6)
  132.             { a1 = a2 = a3 = a4 = a5 = a6 = 0; }
  133. void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7)
  134.             { a1 = a2 = a3 = a4 = a5 = a6 = a7 = 0; }
  135. void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
  136.            int a8)
  137.             { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = 0; }
  138. void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
  139.            int a8, int a9)
  140.             { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0; }
  141. void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
  142.            int a8, int a9, int a10)
  143.             { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
  144.               a10 = 0; }
  145. void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
  146.            int a8, int a9, int a10, int a11)
  147.             { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
  148.               a10 = a11 == 0; }
  149.  
  150. /* Some hairy function definitions.
  151.    Use typedefs to help maintain sanity. */
  152.  
  153. typedef int   (*PFPc_i)(char *);
  154. typedef short (*PFPl_s)(long *);
  155. typedef short (*PFPc_s)(char *);
  156. typedef int   (*PFl_i)(long);
  157. typedef PFl_i (*PFPc_PFl_i)(char *);
  158. typedef PFl_i (*PFPi_PFl_i)(int *);
  159. typedef PFl_i (*PFPFPc_i_PFl_i)(PFPc_i);
  160. typedef PFl_i (*PFs_PFl_i)(short);
  161. typedef int   (*PFPFPl_s_i)(PFPl_s);
  162. typedef int   (*PFPFPc_s_i)(PFPc_s);
  163.  
  164. PFs_PFl_i hairyfunc1 (int arg)            { arg = 0; return 0; }
  165. int       hairyfunc2 (PFPc_i arg)        { arg = 0; return 0; }
  166. int      hairyfunc3 (PFPFPl_s_i arg)        { arg = 0; return 0; }
  167. int      hairyfunc4 (PFPFPc_s_i arg)        { arg = 0; return 0; }
  168. int      hairyfunc5 (PFPc_PFl_i arg)        { arg = 0; return 0; }
  169. int      hairyfunc6 (PFPi_PFl_i arg)        { arg = 0; return 0; }
  170. int      hairyfunc7 (PFPFPc_i_PFl_i arg)    { arg = 0; return 0; }
  171.