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 }