1  /* Copyright 1996, 1999, 2007 Free Software Foundation, Inc.
       2  
       3     This program is free software; you can redistribute it and/or modify
       4     it under the terms of the GNU General Public License as published by
       5     the Free Software Foundation; either version 3 of the License, or
       6     (at your option) any later version.
       7  
       8     This program is distributed in the hope that it will be useful,
       9     but WITHOUT ANY WARRANTY; without even the implied warranty of
      10     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      11     GNU General Public License for more details.
      12   
      13     You should have received a copy of the GNU General Public License
      14     along with GCC; see the file COPYING3.  If not see
      15     <http://www.gnu.org/licenses/>.
      16  
      17     Please email any bugs, comments, and/or additions to this file to:
      18     bug-gdb@prep.ai.mit.edu  */
      19  
      20  struct struct1 { char a;};
      21  struct struct2 { char a, b;};
      22  struct struct3 { char a, b, c; };
      23  struct struct4 { char a, b, c, d; };
      24  struct struct5 { char a, b, c, d, e; };
      25  struct struct6 { char a, b, c, d, e, f; };
      26  struct struct7 { char a, b, c, d, e, f, g; };
      27  struct struct8 { char a, b, c, d, e, f, g, h; };
      28  struct struct9 { char a, b, c, d, e, f, g, h, i; };
      29  struct struct10 { char a, b, c, d, e, f, g, h, i, j; };
      30  struct struct11 { char a, b, c, d, e, f, g, h, i, j, k; };
      31  struct struct12 { char a, b, c, d, e, f, g, h, i, j, k, l; };
      32  struct struct16 { char a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p; };
      33  
      34  struct struct1 foo1 = {'1'},  L1;
      35  struct struct2 foo2 = { 'a', 'b'},  L2;
      36  struct struct3 foo3 = { 'A', 'B', 'C'},  L3;
      37  struct struct4 foo4 = {'1', '2', '3', '4'},  L4;
      38  struct struct5 foo5 = {'a', 'b', 'c', 'd', 'e'},  L5;
      39  struct struct6 foo6 = {'A', 'B', 'C', 'D', 'E', 'F'},  L6;
      40  struct struct7 foo7 = {'1', '2', '3', '4', '5', '6', '7'},  L7;
      41  struct struct8 foo8 = {'1', '2', '3', '4', '5', '6', '7', '8'},  L8;
      42  struct struct9 foo9 = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'},  L9;
      43  struct struct10 foo10 = {
      44    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'},  L10;
      45  struct struct11 foo11 = {
      46    '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B'}, L11;
      47  struct struct12 foo12 = {
      48    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'}, L12;
      49  struct struct16 foo16 = {
      50    'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'}, L16;
      51  
      52  struct struct1  fun1()
      53  {
      54    return foo1;  
      55  }
      56  struct struct2  fun2()
      57  {
      58    return foo2;
      59  }
      60  struct struct3  fun3()
      61  {
      62    return foo3;
      63  }
      64  struct struct4  fun4()
      65  {
      66    return foo4;
      67  }
      68  struct struct5  fun5()
      69  {
      70    return foo5;
      71  }
      72  struct struct6  fun6()
      73  {
      74    return foo6;
      75  }
      76  struct struct7  fun7()
      77  {
      78    return foo7;
      79  }
      80  struct struct8  fun8()
      81  {
      82    return foo8;
      83  }
      84  struct struct9  fun9()
      85  {
      86    return foo9;
      87  }
      88  struct struct10 fun10()
      89  {
      90    return foo10; 
      91  }
      92  struct struct11 fun11()
      93  {
      94    return foo11; 
      95  }
      96  struct struct12 fun12()
      97  {
      98    return foo12; 
      99  }
     100  struct struct16 fun16()
     101  {
     102    return foo16; 
     103  }
     104  
     105  #ifdef PROTOTYPES
     106  void Fun1(struct struct1 foo1)
     107  #else
     108  void Fun1(foo1)
     109       struct struct1 foo1;
     110  #endif
     111  {
     112    L1 = foo1;
     113  }
     114  #ifdef PROTOTYPES
     115  void Fun2(struct struct2 foo2)
     116  #else
     117  void Fun2(foo2)
     118       struct struct2 foo2;
     119  #endif
     120  {
     121    L2 = foo2;
     122  }
     123  #ifdef PROTOTYPES
     124  void Fun3(struct struct3 foo3)
     125  #else
     126  void Fun3(foo3)
     127       struct struct3 foo3;
     128  #endif
     129  {
     130    L3 = foo3;
     131  }
     132  #ifdef PROTOTYPES
     133  void Fun4(struct struct4 foo4)
     134  #else
     135  void Fun4(foo4)
     136       struct struct4 foo4;
     137  #endif
     138  {
     139    L4 = foo4;
     140  }
     141  #ifdef PROTOTYPES
     142  void Fun5(struct struct5 foo5)
     143  #else
     144  void Fun5(foo5)
     145       struct struct5 foo5;
     146  #endif
     147  {
     148    L5 = foo5;
     149  }
     150  #ifdef PROTOTYPES
     151  void Fun6(struct struct6 foo6)
     152  #else
     153  void Fun6(foo6)
     154       struct struct6 foo6;
     155  #endif
     156  {
     157    L6 = foo6;
     158  }
     159  #ifdef PROTOTYPES
     160  void Fun7(struct struct7 foo7)
     161  #else
     162  void Fun7(foo7)
     163       struct struct7 foo7;
     164  #endif
     165  {
     166    L7 = foo7;
     167  }
     168  #ifdef PROTOTYPES
     169  void Fun8(struct struct8 foo8)
     170  #else
     171  void Fun8(foo8)
     172       struct struct8 foo8;
     173  #endif
     174  {
     175    L8 = foo8;
     176  }
     177  #ifdef PROTOTYPES
     178  void Fun9(struct struct9 foo9)
     179  #else
     180  void Fun9(foo9)
     181       struct struct9 foo9;
     182  #endif
     183  {
     184    L9 = foo9;
     185  }
     186  #ifdef PROTOTYPES
     187  void Fun10(struct struct10 foo10)
     188  #else
     189  void Fun10(foo10)
     190       struct struct10 foo10;
     191  #endif
     192  {
     193    L10 = foo10; 
     194  }
     195  #ifdef PROTOTYPES
     196  void Fun11(struct struct11 foo11)
     197  #else
     198  void Fun11(foo11)
     199       struct struct11 foo11;
     200  #endif
     201  {
     202    L11 = foo11; 
     203  }
     204  #ifdef PROTOTYPES
     205  void Fun12(struct struct12 foo12)
     206  #else
     207  void Fun12(foo12)
     208       struct struct12 foo12;
     209  #endif
     210  {
     211    L12 = foo12; 
     212  }
     213  #ifdef PROTOTYPES
     214  void Fun16(struct struct16 foo16)
     215  #else
     216  void Fun16(foo16)
     217       struct struct16 foo16;
     218  #endif
     219  {
     220    L16 = foo16; 
     221  }
     222  
     223  int main()
     224  {
     225  #ifdef usestubs
     226    set_debug_traps();
     227    breakpoint();
     228  #endif
     229  
     230    /* TEST C FUNCTIONS */
     231    L1  = fun1();	
     232    L2  = fun2();	
     233    L3  = fun3();	
     234    L4  = fun4();	
     235    L5  = fun5();	
     236    L6  = fun6();	
     237    L7  = fun7();	
     238    L8  = fun8();	
     239    L9  = fun9();	
     240    L10 = fun10();
     241    L11 = fun11();
     242    L12 = fun12();
     243    L16 = fun16();
     244  
     245    foo1.a = foo2.a = foo3.a = foo4.a = foo5.a = foo6.a = foo7.a = foo8.a =
     246      foo9.a = foo10.a = foo11.a = foo12.a = foo16.a = '$';
     247  
     248    Fun1(foo1);	
     249    Fun2(foo2);	
     250    Fun3(foo3);	
     251    Fun4(foo4);	
     252    Fun5(foo5);	
     253    Fun6(foo6);	
     254    Fun7(foo7);	
     255    Fun8(foo8);	
     256    Fun9(foo9);	
     257    Fun10(foo10);
     258    Fun11(foo11);
     259    Fun12(foo12);
     260    Fun16(foo16);
     261  
     262    return 0;
     263  }