OLD | NEW |
(Empty) | |
| 1 /* This testcase is part of GDB, the GNU debugger. |
| 2 |
| 3 Copyright 2012 Free Software Foundation, Inc. |
| 4 |
| 5 This program is free software; you can redistribute it and/or modify |
| 6 it under the terms of the GNU General Public License as published by |
| 7 the Free Software Foundation; either version 3 of the License, or |
| 8 (at your option) any later version. |
| 9 |
| 10 This program is distributed in the hope that it will be useful, |
| 11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 13 GNU General Public License for more details. |
| 14 |
| 15 You should have received a copy of the GNU General Public License |
| 16 along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 17 */ |
| 18 |
| 19 #define ARRAY_SIZE 10 |
| 20 |
| 21 struct SimpleStruct |
| 22 { |
| 23 int a; |
| 24 double d; |
| 25 }; |
| 26 |
| 27 union SimpleUnion |
| 28 { |
| 29 int i; |
| 30 char c; |
| 31 float f; |
| 32 double d; |
| 33 }; |
| 34 |
| 35 typedef struct SimpleStruct SS; |
| 36 |
| 37 struct ComplexStruct |
| 38 { |
| 39 struct SimpleStruct s; |
| 40 union SimpleUnion u; |
| 41 SS sa[ARRAY_SIZE]; |
| 42 }; |
| 43 |
| 44 union ComplexUnion |
| 45 { |
| 46 SS s; |
| 47 struct SimpleStruct sa[ARRAY_SIZE]; |
| 48 }; |
| 49 |
| 50 int |
| 51 main (void) |
| 52 { |
| 53 struct SimpleStruct ss; |
| 54 struct SimpleStruct* ss_ptr = &ss; |
| 55 SS ss_t; |
| 56 |
| 57 union SimpleUnion su; |
| 58 struct ComplexStruct cs; |
| 59 struct ComplexStruct* cs_ptr = &cs; |
| 60 union ComplexUnion cu; |
| 61 int i; |
| 62 double darray[5] = {0.1, 0.2, 0.3, 0.4, 0.5}; |
| 63 double *darray_ref = darray; |
| 64 |
| 65 ss.a = 10; |
| 66 ss.d = 100.01; |
| 67 ss_t = ss; |
| 68 |
| 69 su.d = 100.1; |
| 70 |
| 71 cs.s = ss; |
| 72 cs.u = su; |
| 73 for (i = 0; i < ARRAY_SIZE; i++) |
| 74 { |
| 75 cs.sa[i].a = i; |
| 76 cs.sa[i].d = 10.10 + i; |
| 77 cu.sa[i].a = i; |
| 78 cu.sa[i].d = 100.10 + i; |
| 79 } |
| 80 |
| 81 return 0; /* Break here. */ |
| 82 } |
OLD | NEW |