1 #include <stdint.h>
2 #include <stdbool.h>
3
4
5
6
7 struct core_reloc_flavors {
8 int a;
9 int b;
10 int c;
11 };
12
13
14 struct core_reloc_flavors__err_wrong_name {
15 int a;
16 int b;
17 int c;
18 };
19
20
21
22
23
24 struct core_reloc_nesting_substruct {
25 int a;
26 };
27
28 union core_reloc_nesting_subunion {
29 int b;
30 };
31
32 struct core_reloc_nesting {
33 union {
34 struct core_reloc_nesting_substruct a;
35 } a;
36 struct {
37 union core_reloc_nesting_subunion b;
38 } b;
39 };
40
41
42 struct core_reloc_nesting___anon_embed {
43 int __just_for_padding;
44 union {
45 struct {
46 int a;
47 } a;
48 } a;
49 struct {
50 union {
51 int b;
52 } b;
53 } b;
54 };
55
56
57 struct core_reloc_nesting___struct_union_mixup {
58 int __a;
59 struct {
60 int __a;
61 union {
62 char __a;
63 int a;
64 } a;
65 } a;
66 int __b;
67 union {
68 int __b;
69 union {
70 char __b;
71 int b;
72 } b;
73 } b;
74 };
75
76
77 struct core_reloc_nesting___extra_nesting {
78 int __padding;
79 struct {
80 struct {
81 struct {
82 struct {
83 union {
84 int a;
85 } a;
86 };
87 };
88 } a;
89 int __some_more;
90 struct {
91 union {
92 union {
93 union {
94 struct {
95 int b;
96 };
97 } b;
98 };
99 } b;
100 };
101 };
102 };
103
104
105
106 struct core_reloc_nesting___dup_compat_types {
107 char __just_for_padding;
108
109 struct {
110 struct {
111 int a;
112 } a;
113 } a;
114 long long __more_padding;
115 struct {
116 struct {
117 int b;
118 } b;
119 } b;
120 };
121
122 struct core_reloc_nesting___dup_compat_types__2 {
123 int __aligned_padding;
124 struct {
125 int __trickier_noop[0];
126 struct {
127 char __some_more_noops[0];
128 int a;
129 } a;
130 } a;
131 int __more_padding;
132 struct {
133 struct {
134 struct {
135 int __critical_padding;
136 int b;
137 } b;
138 int __does_not_matter;
139 };
140 } b;
141 int __more_irrelevant_stuff;
142 };
143
144 struct core_reloc_nesting___dup_compat_types__3 {
145 char __correct_padding[4];
146 struct {
147 struct {
148 int a;
149 } a;
150 } a;
151
152 struct {
153 struct {
154 int b;
155 } b;
156 } b __attribute__((aligned(16)));
157 };
158
159
160 struct core_reloc_nesting___err_missing_field {
161 struct {
162 struct {
163 int a;
164 } a;
165 } a;
166 struct {
167 struct {
168 int x;
169 } b;
170 } b;
171 };
172
173
174 struct core_reloc_nesting___err_array_field {
175 struct {
176 struct {
177 int a;
178 } a;
179 } a;
180 struct {
181 struct {
182 int b[1];
183 } b;
184 } b;
185 };
186
187
188 struct core_reloc_nesting___err_missing_container {
189 struct {
190 struct {
191 int a;
192 } a;
193 } a;
194 struct {
195 int x;
196 } b;
197 };
198
199
200 struct core_reloc_nesting___err_nonstruct_container {
201 struct {
202 struct {
203 int a;
204 } a;
205 } a;
206 struct {
207 struct {
208 int b;
209 } *b;
210 } b;
211 };
212
213
214 struct core_reloc_nesting___err_array_container {
215 struct {
216 struct {
217 int a;
218 } a;
219 } a;
220 struct {
221 struct {
222 int b;
223 } b[1];
224 } b;
225 };
226
227
228 struct core_reloc_nesting___err_dup_incompat_types__1 {
229 struct {
230 struct {
231 int a;
232 } a;
233 } a;
234 struct {
235 struct {
236 int b;
237 } b;
238 } b;
239 };
240
241 struct core_reloc_nesting___err_dup_incompat_types__2 {
242 struct {
243 struct {
244 int a;
245 } a;
246 } a;
247 int __extra_padding;
248 struct {
249 struct {
250 int b;
251 } b;
252 } b;
253 };
254
255
256 struct core_reloc_nesting___err_partial_match_dups__a {
257 struct {
258 struct {
259 int a;
260 } a;
261 } a;
262 };
263
264 struct core_reloc_nesting___err_partial_match_dups__b {
265 struct {
266 struct {
267 int b;
268 } b;
269 } b;
270 };
271
272 struct core_reloc_nesting___err_too_deep {
273 struct {
274 struct {
275 int a;
276 } a;
277 } a;
278
279 struct {
280 struct {
281 struct { struct { struct { struct { struct {
282 struct { struct { struct { struct { struct {
283 struct { struct { struct { struct { struct {
284 struct { struct { struct { struct { struct {
285 struct { struct { struct { struct { struct {
286 struct { struct { struct { struct { struct {
287 struct { struct { struct { struct { struct {
288 struct { struct { struct { struct { struct {
289 struct { struct { struct { struct { struct {
290 struct { struct { struct { struct { struct {
291 struct { struct { struct { struct { struct {
292 struct { struct { struct { struct { struct {
293
294 struct {
295 int b;
296 };
297 }; }; }; }; };
298 }; }; }; }; };
299 }; }; }; }; };
300 }; }; }; }; };
301 }; }; }; }; };
302 }; }; }; }; };
303 }; }; }; }; };
304 }; }; }; }; };
305 }; }; }; }; };
306 }; }; }; }; };
307 }; }; }; }; };
308 }; }; }; }; };
309 } b;
310 } b;
311 };
312
313
314
315
316 struct core_reloc_arrays_output {
317 int a2;
318 char b123;
319 int c1c;
320 int d00d;
321 };
322
323 struct core_reloc_arrays_substruct {
324 int c;
325 int d;
326 };
327
328 struct core_reloc_arrays {
329 int a[5];
330 char b[2][3][4];
331 struct core_reloc_arrays_substruct c[3];
332 struct core_reloc_arrays_substruct d[1][2];
333 };
334
335
336 struct core_reloc_arrays___diff_arr_dim {
337 int a[7];
338 char b[3][4][5];
339 struct core_reloc_arrays_substruct c[4];
340 struct core_reloc_arrays_substruct d[2][3];
341 };
342
343
344 struct core_reloc_arrays___diff_arr_val_sz {
345 int a[5];
346 char b[2][3][4];
347 struct {
348 int __padding1;
349 int c;
350 int __padding2;
351 } c[3];
352 struct {
353 int __padding1;
354 int d;
355 int __padding2;
356 } d[1][2];
357 };
358
359 struct core_reloc_arrays___err_too_small {
360 int a[2];
361 char b[2][3][4];
362 struct core_reloc_arrays_substruct c[3];
363 struct core_reloc_arrays_substruct d[1][2];
364 };
365
366 struct core_reloc_arrays___err_too_shallow {
367 int a[5];
368 char b[2][3];
369 struct core_reloc_arrays_substruct c[3];
370 struct core_reloc_arrays_substruct d[1][2];
371 };
372
373 struct core_reloc_arrays___err_non_array {
374 int a;
375 char b[2][3][4];
376 struct core_reloc_arrays_substruct c[3];
377 struct core_reloc_arrays_substruct d[1][2];
378 };
379
380 struct core_reloc_arrays___err_wrong_val_type1 {
381 char a[5];
382 char b[2][3][4];
383 struct core_reloc_arrays_substruct c[3];
384 struct core_reloc_arrays_substruct d[1][2];
385 };
386
387 struct core_reloc_arrays___err_wrong_val_type2 {
388 int a[5];
389 char b[2][3][4];
390 int c[3];
391 struct core_reloc_arrays_substruct d[1][2];
392 };
393
394
395
396
397 enum core_reloc_primitives_enum {
398 A = 0,
399 B = 1,
400 };
401
402 struct core_reloc_primitives {
403 char a;
404 int b;
405 enum core_reloc_primitives_enum c;
406 void *d;
407 int (*f)(const char *);
408 };
409
410 struct core_reloc_primitives___diff_enum_def {
411 char a;
412 int b;
413 void *d;
414 int (*f)(const char *);
415 enum {
416 X = 100,
417 Y = 200,
418 } c;
419 };
420
421 struct core_reloc_primitives___diff_func_proto {
422 void (*f)(int);
423 void *d;
424 enum core_reloc_primitives_enum c;
425 int b;
426 char a;
427 };
428
429 struct core_reloc_primitives___diff_ptr_type {
430 const char * const d;
431 char a;
432 int b;
433 enum core_reloc_primitives_enum c;
434 int (*f)(const char *);
435 };
436
437 struct core_reloc_primitives___err_non_enum {
438 char a[1];
439 int b;
440 int c;
441 void *d;
442 int (*f)(const char *);
443 };
444
445 struct core_reloc_primitives___err_non_int {
446 char a[1];
447 int *b;
448 enum core_reloc_primitives_enum c;
449 void *d;
450 int (*f)(const char *);
451 };
452
453 struct core_reloc_primitives___err_non_ptr {
454 char a[1];
455 int b;
456 enum core_reloc_primitives_enum c;
457 int d;
458 int (*f)(const char *);
459 };
460
461
462
463
464 struct core_reloc_mods_output {
465 int a, b, c, d, e, f, g, h;
466 };
467
468 typedef const int int_t;
469 typedef const char *char_ptr_t;
470 typedef const int arr_t[7];
471
472 struct core_reloc_mods_substruct {
473 int x;
474 int y;
475 };
476
477 typedef struct {
478 int x;
479 int y;
480 } core_reloc_mods_substruct_t;
481
482 struct core_reloc_mods {
483 int a;
484 int_t b;
485 char *c;
486 char_ptr_t d;
487 int e[3];
488 arr_t f;
489 struct core_reloc_mods_substruct g;
490 core_reloc_mods_substruct_t h;
491 };
492
493
494 struct core_reloc_mods___mod_swap {
495 int b;
496 int_t a;
497 char *d;
498 char_ptr_t c;
499 int f[3];
500 arr_t e;
501 struct {
502 int y;
503 int x;
504 } h;
505 core_reloc_mods_substruct_t g;
506 };
507
508 typedef int int1_t;
509 typedef int1_t int2_t;
510 typedef int2_t int3_t;
511
512 typedef int arr1_t[5];
513 typedef arr1_t arr2_t;
514 typedef arr2_t arr3_t;
515 typedef arr3_t arr4_t;
516
517 typedef const char * const volatile fancy_char_ptr_t;
518
519 typedef core_reloc_mods_substruct_t core_reloc_mods_substruct_tt;
520
521
522 struct core_reloc_mods___typedefs {
523 core_reloc_mods_substruct_tt g;
524 core_reloc_mods_substruct_tt h;
525 arr4_t f;
526 arr4_t e;
527 fancy_char_ptr_t d;
528 fancy_char_ptr_t c;
529 int3_t b;
530 int3_t a;
531 };
532
533
534
535
536 struct core_reloc_ptr_as_arr {
537 int a;
538 };
539
540 struct core_reloc_ptr_as_arr___diff_sz {
541 int :32;
542 char __some_more_padding;
543 int a;
544 };
545
546
547
548
549 struct core_reloc_ints {
550 uint8_t u8_field;
551 int8_t s8_field;
552 uint16_t u16_field;
553 int16_t s16_field;
554 uint32_t u32_field;
555 int32_t s32_field;
556 uint64_t u64_field;
557 int64_t s64_field;
558 };
559
560
561 struct core_reloc_ints___reverse_sign {
562 int8_t u8_field;
563 uint8_t s8_field;
564 int16_t u16_field;
565 uint16_t s16_field;
566 int32_t u32_field;
567 uint32_t s32_field;
568 int64_t u64_field;
569 uint64_t s64_field;
570 };
571
572 struct core_reloc_ints___bool {
573 bool u8_field;
574 int8_t s8_field;
575 uint16_t u16_field;
576 int16_t s16_field;
577 uint32_t u32_field;
578 int32_t s32_field;
579 uint64_t u64_field;
580 int64_t s64_field;
581 };
582
583 struct core_reloc_ints___err_bitfield {
584 uint8_t u8_field;
585 int8_t s8_field;
586 uint16_t u16_field;
587 int16_t s16_field;
588 uint32_t u32_field: 32;
589 int32_t s32_field;
590 uint64_t u64_field;
591 int64_t s64_field;
592 };
593
594 struct core_reloc_ints___err_wrong_sz_8 {
595 uint16_t u8_field;
596 int16_t s8_field;
597
598 uint16_t u16_field;
599 int16_t s16_field;
600 uint32_t u32_field;
601 int32_t s32_field;
602 uint64_t u64_field;
603 int64_t s64_field;
604 };
605
606 struct core_reloc_ints___err_wrong_sz_16 {
607 uint8_t u8_field;
608 int8_t s8_field;
609
610 uint32_t u16_field;
611 int32_t s16_field;
612
613 uint32_t u32_field;
614 int32_t s32_field;
615 uint64_t u64_field;
616 int64_t s64_field;
617 };
618
619 struct core_reloc_ints___err_wrong_sz_32 {
620 uint8_t u8_field;
621 int8_t s8_field;
622 uint16_t u16_field;
623 int16_t s16_field;
624
625 uint64_t u32_field;
626 int64_t s32_field;
627
628 uint64_t u64_field;
629 int64_t s64_field;
630 };
631
632 struct core_reloc_ints___err_wrong_sz_64 {
633 uint8_t u8_field;
634 int8_t s8_field;
635 uint16_t u16_field;
636 int16_t s16_field;
637 uint32_t u32_field;
638 int32_t s32_field;
639
640 uint32_t u64_field;
641 int32_t s64_field;
642 };
643
644
645
646
647 struct core_reloc_misc_output {
648 int a, b, c;
649 };
650
651 struct core_reloc_misc___a {
652 int a1;
653 int a2;
654 };
655
656 struct core_reloc_misc___b {
657 int b1;
658 int b2;
659 };
660
661
662 struct core_reloc_misc_extensible {
663 int a;
664 int b;
665 int c;
666 int d;
667 };