modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/structs.c (about)

     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  }