changeset 435:a29baee68340

- suite_aggrs: simplified nested struct handling given upcoming api simplification (still not in depo, though, so test is ahead)
author Tassilo Philipp
date Mon, 24 Jan 2022 12:41:27 +0100
parents 3d2c5d156d78
children 23b12c7ad462
files test/suite_aggrs/cases.h test/suite_aggrs/design.txt test/suite_aggrs/main.c test/suite_aggrs/mk-cases.lua
diffstat 4 files changed, 581 insertions(+), 98 deletions(-) [+]
line wrap: on
line diff
--- a/test/suite_aggrs/cases.h	Sun Jan 23 23:20:02 2022 +0100
+++ b/test/suite_aggrs/cases.h	Mon Jan 24 12:41:27 2022 +0100
@@ -1,75 +1,374 @@
-/* {ici} */
-struct A2{ i m0; c m1; i m2; };
-void f_cpA2(struct A2 *x, const struct A2 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; };
-int f_cmpA2(const struct A2 *x, const struct A2 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2; };
-DCstruct* f_newdcstA2() { DCstruct* st = dcNewStruct(3, sizeof(struct A2), 0, 1); dcStructField(st, 'i', offsetof(struct A2, m0), 1); dcStructField(st, 'c', offsetof(struct A2, m1), 1); dcStructField(st, 'i', offsetof(struct A2, m2), 1);  dcCloseStruct(st); return st; };
-/* {ii} */
-struct A1{ i m0; i m1; };
-void f_cpA1(struct A1 *x, const struct A1 *y) { x->m0 = y->m0; x->m1 = y->m1; };
-int f_cmpA1(const struct A1 *x, const struct A1 *y) { return x->m0 == y->m0 && x->m1 == y->m1; };
-DCstruct* f_newdcstA1() { DCstruct* st = dcNewStruct(2, sizeof(struct A1), 0, 1); dcStructField(st, 'i', offsetof(struct A1, m0), 1); dcStructField(st, 'i', offsetof(struct A1, m1), 1);  dcCloseStruct(st); return st; };
-/* {ps} */
-struct A5{ p m0; s m1; };
-void f_cpA5(struct A5 *x, const struct A5 *y) { x->m0 = y->m0; x->m1 = y->m1; };
-int f_cmpA5(const struct A5 *x, const struct A5 *y) { return x->m0 == y->m0 && x->m1 == y->m1; };
-DCstruct* f_newdcstA5() { DCstruct* st = dcNewStruct(2, sizeof(struct A5), 0, 1); dcStructField(st, 'p', offsetof(struct A5, m0), 1); dcStructField(st, 's', offsetof(struct A5, m1), 1);  dcCloseStruct(st); return st; };
-/* {iiii} */
-struct A9{ i m0; i m1; i m2; i m3; };
-void f_cpA9(struct A9 *x, const struct A9 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; x->m3 = y->m3; };
-int f_cmpA9(const struct A9 *x, const struct A9 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2 && x->m3 == y->m3; };
-DCstruct* f_newdcstA9() { DCstruct* st = dcNewStruct(4, sizeof(struct A9), 0, 1); dcStructField(st, 'i', offsetof(struct A9, m0), 1); dcStructField(st, 'i', offsetof(struct A9, m1), 1); dcStructField(st, 'i', offsetof(struct A9, m2), 1); dcStructField(st, 'i', offsetof(struct A9, m3), 1);  dcCloseStruct(st); return st; };
-/* {iii} */
-struct A8{ i m0; i m1; i m2; };
-void f_cpA8(struct A8 *x, const struct A8 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; };
-int f_cmpA8(const struct A8 *x, const struct A8 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2; };
-DCstruct* f_newdcstA8() { DCstruct* st = dcNewStruct(3, sizeof(struct A8), 0, 1); dcStructField(st, 'i', offsetof(struct A8, m0), 1); dcStructField(st, 'i', offsetof(struct A8, m1), 1); dcStructField(st, 'i', offsetof(struct A8, m2), 1);  dcCloseStruct(st); return st; };
-/* {li} */
-struct A4{ l m0; i m1; };
-void f_cpA4(struct A4 *x, const struct A4 *y) { x->m0 = y->m0; x->m1 = y->m1; };
-int f_cmpA4(const struct A4 *x, const struct A4 *y) { return x->m0 == y->m0 && x->m1 == y->m1; };
-DCstruct* f_newdcstA4() { DCstruct* st = dcNewStruct(2, sizeof(struct A4), 0, 1); dcStructField(st, 'l', offsetof(struct A4, m0), 1); dcStructField(st, 'i', offsetof(struct A4, m1), 1);  dcCloseStruct(st); return st; };
 /* {} */
-struct A6{ };
-void f_cpA6(struct A6 *x, const struct A6 *y) { 1; };
-int f_cmpA6(const struct A6 *x, const struct A6 *y) { return 1; };
-DCstruct* f_newdcstA6() { DCstruct* st = dcNewStruct(0, sizeof(struct A6), 0, 1);  dcCloseStruct(st); return st; };
+struct A1 { };
+void f_cpA1(struct A1 *x, const struct A1 *y) { 1; };
+int f_cmpA1(const struct A1 *x, const struct A1 *y) { return 1; };
+DCstruct* f_newdcstA1() {
+	DCstruct* st = dcNewStruct(0, sizeof(struct A1), 0, 1);
+	dcCloseStruct(st);
+	return st;
+};
 /* {i} */
-struct A7{ i m0; };
-void f_cpA7(struct A7 *x, const struct A7 *y) { x->m0 = y->m0; };
-int f_cmpA7(const struct A7 *x, const struct A7 *y) { return x->m0 == y->m0; };
-DCstruct* f_newdcstA7() { DCstruct* st = dcNewStruct(1, sizeof(struct A7), 0, 1); dcStructField(st, 'i', offsetof(struct A7, m0), 1);  dcCloseStruct(st); return st; };
+struct A2 { i m0; };
+void f_cpA2(struct A2 *x, const struct A2 *y) { x->m0 = y->m0; };
+int f_cmpA2(const struct A2 *x, const struct A2 *y) { return x->m0 == y->m0; };
+DCstruct* f_newdcstA2() {
+	DCstruct* st = dcNewStruct(1, sizeof(struct A2), 0, 1);
+	dcStructField(st, 'i', offsetof(struct A2, m0), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {s} */
+struct A3 { s m0; };
+void f_cpA3(struct A3 *x, const struct A3 *y) { x->m0 = y->m0; };
+int f_cmpA3(const struct A3 *x, const struct A3 *y) { return x->m0 == y->m0; };
+DCstruct* f_newdcstA3() {
+	DCstruct* st = dcNewStruct(1, sizeof(struct A3), 0, 1);
+	dcStructField(st, 's', offsetof(struct A3, m0), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {dlclpfifpifsf} */
+struct A4 { d m0; l m1; c m2; l m3; p m4; f m5; i m6; f m7; p m8; i m9; f m10; s m11; f m12; };
+void f_cpA4(struct A4 *x, const struct A4 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; x->m3 = y->m3; x->m4 = y->m4; x->m5 = y->m5; x->m6 = y->m6; x->m7 = y->m7; x->m8 = y->m8; x->m9 = y->m9; x->m10 = y->m10; x->m11 = y->m11; x->m12 = y->m12; };
+int f_cmpA4(const struct A4 *x, const struct A4 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2 && x->m3 == y->m3 && x->m4 == y->m4 && x->m5 == y->m5 && x->m6 == y->m6 && x->m7 == y->m7 && x->m8 == y->m8 && x->m9 == y->m9 && x->m10 == y->m10 && x->m11 == y->m11 && x->m12 == y->m12; };
+DCstruct* f_newdcstA4() {
+	DCstruct* st = dcNewStruct(13, sizeof(struct A4), 0, 1);
+	dcStructField(st, 'd', offsetof(struct A4, m0), 1);
+	dcStructField(st, 'l', offsetof(struct A4, m1), 1);
+	dcStructField(st, 'c', offsetof(struct A4, m2), 1);
+	dcStructField(st, 'l', offsetof(struct A4, m3), 1);
+	dcStructField(st, 'p', offsetof(struct A4, m4), 1);
+	dcStructField(st, 'f', offsetof(struct A4, m5), 1);
+	dcStructField(st, 'i', offsetof(struct A4, m6), 1);
+	dcStructField(st, 'f', offsetof(struct A4, m7), 1);
+	dcStructField(st, 'p', offsetof(struct A4, m8), 1);
+	dcStructField(st, 'i', offsetof(struct A4, m9), 1);
+	dcStructField(st, 'f', offsetof(struct A4, m10), 1);
+	dcStructField(st, 's', offsetof(struct A4, m11), 1);
+	dcStructField(st, 'f', offsetof(struct A4, m12), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {dijpiccjpf} */
+struct A5 { d m0; i m1; j m2; p m3; i m4; c m5; c m6; j m7; p m8; f m9; };
+void f_cpA5(struct A5 *x, const struct A5 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; x->m3 = y->m3; x->m4 = y->m4; x->m5 = y->m5; x->m6 = y->m6; x->m7 = y->m7; x->m8 = y->m8; x->m9 = y->m9; };
+int f_cmpA5(const struct A5 *x, const struct A5 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2 && x->m3 == y->m3 && x->m4 == y->m4 && x->m5 == y->m5 && x->m6 == y->m6 && x->m7 == y->m7 && x->m8 == y->m8 && x->m9 == y->m9; };
+DCstruct* f_newdcstA5() {
+	DCstruct* st = dcNewStruct(10, sizeof(struct A5), 0, 1);
+	dcStructField(st, 'd', offsetof(struct A5, m0), 1);
+	dcStructField(st, 'i', offsetof(struct A5, m1), 1);
+	dcStructField(st, 'j', offsetof(struct A5, m2), 1);
+	dcStructField(st, 'p', offsetof(struct A5, m3), 1);
+	dcStructField(st, 'i', offsetof(struct A5, m4), 1);
+	dcStructField(st, 'c', offsetof(struct A5, m5), 1);
+	dcStructField(st, 'c', offsetof(struct A5, m6), 1);
+	dcStructField(st, 'j', offsetof(struct A5, m7), 1);
+	dcStructField(st, 'p', offsetof(struct A5, m8), 1);
+	dcStructField(st, 'f', offsetof(struct A5, m9), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {lcpfcflpsiilfsjp} */
+struct A6 { l m0; c m1; p m2; f m3; c m4; f m5; l m6; p m7; s m8; i m9; i m10; l m11; f m12; s m13; j m14; p m15; };
+void f_cpA6(struct A6 *x, const struct A6 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; x->m3 = y->m3; x->m4 = y->m4; x->m5 = y->m5; x->m6 = y->m6; x->m7 = y->m7; x->m8 = y->m8; x->m9 = y->m9; x->m10 = y->m10; x->m11 = y->m11; x->m12 = y->m12; x->m13 = y->m13; x->m14 = y->m14; x->m15 = y->m15; };
+int f_cmpA6(const struct A6 *x, const struct A6 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2 && x->m3 == y->m3 && x->m4 == y->m4 && x->m5 == y->m5 && x->m6 == y->m6 && x->m7 == y->m7 && x->m8 == y->m8 && x->m9 == y->m9 && x->m10 == y->m10 && x->m11 == y->m11 && x->m12 == y->m12 && x->m13 == y->m13 && x->m14 == y->m14 && x->m15 == y->m15; };
+DCstruct* f_newdcstA6() {
+	DCstruct* st = dcNewStruct(16, sizeof(struct A6), 0, 1);
+	dcStructField(st, 'l', offsetof(struct A6, m0), 1);
+	dcStructField(st, 'c', offsetof(struct A6, m1), 1);
+	dcStructField(st, 'p', offsetof(struct A6, m2), 1);
+	dcStructField(st, 'f', offsetof(struct A6, m3), 1);
+	dcStructField(st, 'c', offsetof(struct A6, m4), 1);
+	dcStructField(st, 'f', offsetof(struct A6, m5), 1);
+	dcStructField(st, 'l', offsetof(struct A6, m6), 1);
+	dcStructField(st, 'p', offsetof(struct A6, m7), 1);
+	dcStructField(st, 's', offsetof(struct A6, m8), 1);
+	dcStructField(st, 'i', offsetof(struct A6, m9), 1);
+	dcStructField(st, 'i', offsetof(struct A6, m10), 1);
+	dcStructField(st, 'l', offsetof(struct A6, m11), 1);
+	dcStructField(st, 'f', offsetof(struct A6, m12), 1);
+	dcStructField(st, 's', offsetof(struct A6, m13), 1);
+	dcStructField(st, 'j', offsetof(struct A6, m14), 1);
+	dcStructField(st, 'p', offsetof(struct A6, m15), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {jdcfcsdjjlcdjlipfji} */
+struct A7 { j m0; d m1; c m2; f m3; c m4; s m5; d m6; j m7; j m8; l m9; c m10; d m11; j m12; l m13; i m14; p m15; f m16; j m17; i m18; };
+void f_cpA7(struct A7 *x, const struct A7 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; x->m3 = y->m3; x->m4 = y->m4; x->m5 = y->m5; x->m6 = y->m6; x->m7 = y->m7; x->m8 = y->m8; x->m9 = y->m9; x->m10 = y->m10; x->m11 = y->m11; x->m12 = y->m12; x->m13 = y->m13; x->m14 = y->m14; x->m15 = y->m15; x->m16 = y->m16; x->m17 = y->m17; x->m18 = y->m18; };
+int f_cmpA7(const struct A7 *x, const struct A7 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2 && x->m3 == y->m3 && x->m4 == y->m4 && x->m5 == y->m5 && x->m6 == y->m6 && x->m7 == y->m7 && x->m8 == y->m8 && x->m9 == y->m9 && x->m10 == y->m10 && x->m11 == y->m11 && x->m12 == y->m12 && x->m13 == y->m13 && x->m14 == y->m14 && x->m15 == y->m15 && x->m16 == y->m16 && x->m17 == y->m17 && x->m18 == y->m18; };
+DCstruct* f_newdcstA7() {
+	DCstruct* st = dcNewStruct(19, sizeof(struct A7), 0, 1);
+	dcStructField(st, 'j', offsetof(struct A7, m0), 1);
+	dcStructField(st, 'd', offsetof(struct A7, m1), 1);
+	dcStructField(st, 'c', offsetof(struct A7, m2), 1);
+	dcStructField(st, 'f', offsetof(struct A7, m3), 1);
+	dcStructField(st, 'c', offsetof(struct A7, m4), 1);
+	dcStructField(st, 's', offsetof(struct A7, m5), 1);
+	dcStructField(st, 'd', offsetof(struct A7, m6), 1);
+	dcStructField(st, 'j', offsetof(struct A7, m7), 1);
+	dcStructField(st, 'j', offsetof(struct A7, m8), 1);
+	dcStructField(st, 'l', offsetof(struct A7, m9), 1);
+	dcStructField(st, 'c', offsetof(struct A7, m10), 1);
+	dcStructField(st, 'd', offsetof(struct A7, m11), 1);
+	dcStructField(st, 'j', offsetof(struct A7, m12), 1);
+	dcStructField(st, 'l', offsetof(struct A7, m13), 1);
+	dcStructField(st, 'i', offsetof(struct A7, m14), 1);
+	dcStructField(st, 'p', offsetof(struct A7, m15), 1);
+	dcStructField(st, 'f', offsetof(struct A7, m16), 1);
+	dcStructField(st, 'j', offsetof(struct A7, m17), 1);
+	dcStructField(st, 'i', offsetof(struct A7, m18), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {jjlff{jdcfcsdjjlcdjlipfji}csijld} */
+struct A8 { j m0; j m1; l m2; f m3; f m4; struct A7 m5; c m6; s m7; i m8; j m9; l m10; d m11; };
+void f_cpA8(struct A8 *x, const struct A8 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; x->m3 = y->m3; x->m4 = y->m4; f_cpA7(&x->m5, &y->m5); x->m6 = y->m6; x->m7 = y->m7; x->m8 = y->m8; x->m9 = y->m9; x->m10 = y->m10; x->m11 = y->m11; };
+int f_cmpA8(const struct A8 *x, const struct A8 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2 && x->m3 == y->m3 && x->m4 == y->m4 && f_cmpA7(&x->m5, &y->m5) && x->m6 == y->m6 && x->m7 == y->m7 && x->m8 == y->m8 && x->m9 == y->m9 && x->m10 == y->m10 && x->m11 == y->m11; };
+DCstruct* f_newdcstA8() {
+	DCstruct* st = dcNewStruct(12, sizeof(struct A8), 0, 1);
+	dcStructField(st, 'j', offsetof(struct A8, m0), 1);
+	dcStructField(st, 'j', offsetof(struct A8, m1), 1);
+	dcStructField(st, 'l', offsetof(struct A8, m2), 1);
+	dcStructField(st, 'f', offsetof(struct A8, m3), 1);
+	dcStructField(st, 'f', offsetof(struct A8, m4), 1);
+	dcStructField(st, DC_SIGCHAR_STRUCT, offsetof(struct A8, m5), 1, f_newdcstA7());
+	dcStructField(st, 'c', offsetof(struct A8, m6), 1);
+	dcStructField(st, 's', offsetof(struct A8, m7), 1);
+	dcStructField(st, 'i', offsetof(struct A8, m8), 1);
+	dcStructField(st, 'j', offsetof(struct A8, m9), 1);
+	dcStructField(st, 'l', offsetof(struct A8, m10), 1);
+	dcStructField(st, 'd', offsetof(struct A8, m11), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {c} */
+struct A9 { c m0; };
+void f_cpA9(struct A9 *x, const struct A9 *y) { x->m0 = y->m0; };
+int f_cmpA9(const struct A9 *x, const struct A9 *y) { return x->m0 == y->m0; };
+DCstruct* f_newdcstA9() {
+	DCstruct* st = dcNewStruct(1, sizeof(struct A9), 0, 1);
+	dcStructField(st, 'c', offsetof(struct A9, m0), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {cjilpcp} */
+struct A10 { c m0; j m1; i m2; l m3; p m4; c m5; p m6; };
+void f_cpA10(struct A10 *x, const struct A10 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; x->m3 = y->m3; x->m4 = y->m4; x->m5 = y->m5; x->m6 = y->m6; };
+int f_cmpA10(const struct A10 *x, const struct A10 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2 && x->m3 == y->m3 && x->m4 == y->m4 && x->m5 == y->m5 && x->m6 == y->m6; };
+DCstruct* f_newdcstA10() {
+	DCstruct* st = dcNewStruct(7, sizeof(struct A10), 0, 1);
+	dcStructField(st, 'c', offsetof(struct A10, m0), 1);
+	dcStructField(st, 'j', offsetof(struct A10, m1), 1);
+	dcStructField(st, 'i', offsetof(struct A10, m2), 1);
+	dcStructField(st, 'l', offsetof(struct A10, m3), 1);
+	dcStructField(st, 'p', offsetof(struct A10, m4), 1);
+	dcStructField(st, 'c', offsetof(struct A10, m5), 1);
+	dcStructField(st, 'p', offsetof(struct A10, m6), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {ddd} */
+struct A11 { d m0; d m1; d m2; };
+void f_cpA11(struct A11 *x, const struct A11 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; };
+int f_cmpA11(const struct A11 *x, const struct A11 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2; };
+DCstruct* f_newdcstA11() {
+	DCstruct* st = dcNewStruct(3, sizeof(struct A11), 0, 1);
+	dcStructField(st, 'd', offsetof(struct A11, m0), 1);
+	dcStructField(st, 'd', offsetof(struct A11, m1), 1);
+	dcStructField(st, 'd', offsetof(struct A11, m2), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {dd} */
+struct A12 { d m0; d m1; };
+void f_cpA12(struct A12 *x, const struct A12 *y) { x->m0 = y->m0; x->m1 = y->m1; };
+int f_cmpA12(const struct A12 *x, const struct A12 *y) { return x->m0 == y->m0 && x->m1 == y->m1; };
+DCstruct* f_newdcstA12() {
+	DCstruct* st = dcNewStruct(2, sizeof(struct A12), 0, 1);
+	dcStructField(st, 'd', offsetof(struct A12, m0), 1);
+	dcStructField(st, 'd', offsetof(struct A12, m1), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {ii} */
+struct A13 { i m0; i m1; };
+void f_cpA13(struct A13 *x, const struct A13 *y) { x->m0 = y->m0; x->m1 = y->m1; };
+int f_cmpA13(const struct A13 *x, const struct A13 *y) { return x->m0 == y->m0 && x->m1 == y->m1; };
+DCstruct* f_newdcstA13() {
+	DCstruct* st = dcNewStruct(2, sizeof(struct A13), 0, 1);
+	dcStructField(st, 'i', offsetof(struct A13, m0), 1);
+	dcStructField(st, 'i', offsetof(struct A13, m1), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {ici} */
+struct A14 { i m0; c m1; i m2; };
+void f_cpA14(struct A14 *x, const struct A14 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; };
+int f_cmpA14(const struct A14 *x, const struct A14 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2; };
+DCstruct* f_newdcstA14() {
+	DCstruct* st = dcNewStruct(3, sizeof(struct A14), 0, 1);
+	dcStructField(st, 'i', offsetof(struct A14, m0), 1);
+	dcStructField(st, 'c', offsetof(struct A14, m1), 1);
+	dcStructField(st, 'i', offsetof(struct A14, m2), 1);
+	dcCloseStruct(st);
+	return st;
+};
 /* {il} */
-struct A3{ i m0; l m1; };
-void f_cpA3(struct A3 *x, const struct A3 *y) { x->m0 = y->m0; x->m1 = y->m1; };
-int f_cmpA3(const struct A3 *x, const struct A3 *y) { return x->m0 == y->m0 && x->m1 == y->m1; };
-DCstruct* f_newdcstA3() { DCstruct* st = dcNewStruct(2, sizeof(struct A3), 0, 1); dcStructField(st, 'i', offsetof(struct A3, m0), 1); dcStructField(st, 'l', offsetof(struct A3, m1), 1);  dcCloseStruct(st); return st; };
-/* 0:viiiii{ii} */ v f0(i a1,i a2,i a3,i a4,i a5,struct A1 a6){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA1(V_a[6],&a6);ret_v(6)}
-/* 1:viiiii{ici} */ v f1(i a1,i a2,i a3,i a4,i a5,struct A2 a6){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA2(V_a[6],&a6);ret_v(6)}
-/* 2:viiiii{il} */ v f2(i a1,i a2,i a3,i a4,i a5,struct A3 a6){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA3(V_a[6],&a6);ret_v(6)}
-/* 3:vfiiiii{il} */ v f3(f a1,i a2,i a3,i a4,i a5,i a6,struct A3 a7){V_f[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_i[6]=a6;f_cpA3(V_a[7],&a7);ret_v(7)}
-/* 4:viiiiif{il} */ v f4(i a1,i a2,i a3,i a4,i a5,f a6,struct A3 a7){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;f_cpA3(V_a[7],&a7);ret_v(7)}
-/* 5:viiiiif{li} */ v f5(i a1,i a2,i a3,i a4,i a5,f a6,struct A4 a7){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;f_cpA4(V_a[7],&a7);ret_v(7)}
-/* 6:viiiii{il}f */ v f6(i a1,i a2,i a3,i a4,i a5,struct A3 a6,f a7){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA3(V_a[6],&a6);V_f[7]=a7;ret_v(7)}
-/* 7:viiiii{li}f */ v f7(i a1,i a2,i a3,i a4,i a5,struct A4 a6,f a7){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA4(V_a[6],&a6);V_f[7]=a7;ret_v(7)}
-/* 8:viiffiii{ps} */ v f8(i a1,i a2,f a3,f a4,i a5,i a6,i a7,struct A5 a8){V_i[1]=a1;V_i[2]=a2;V_f[3]=a3;V_f[4]=a4;V_i[5]=a5;V_i[6]=a6;V_i[7]=a7;f_cpA5(V_a[8],&a8);ret_v(8)}
-/* 9:viiiiiff{li} */ v f9(i a1,i a2,i a3,i a4,i a5,f a6,f a7,struct A4 a8){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;V_f[7]=a7;f_cpA4(V_a[8],&a8);ret_v(8)}
-/* 10:viiiiiff{il} */ v f10(i a1,i a2,i a3,i a4,i a5,f a6,f a7,struct A3 a8){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;V_f[7]=a7;f_cpA3(V_a[8],&a8);ret_v(8)}
-/* 11:viiiii{il}ff */ v f11(i a1,i a2,i a3,i a4,i a5,struct A3 a6,f a7,f a8){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA3(V_a[6],&a6);V_f[7]=a7;V_f[8]=a8;ret_v(8)}
-/* 12:viiiii{li}ff */ v f12(i a1,i a2,i a3,i a4,i a5,struct A4 a6,f a7,f a8){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA4(V_a[6],&a6);V_f[7]=a7;V_f[8]=a8;ret_v(8)}
-/* 13:i */ i f13(){ret_i(0)}
-/* 14:i{} */ i f14(struct A6 a1){f_cpA6(V_a[1],&a1);ret_i(1)}
-/* 15:i{i} */ i f15(struct A7 a1){f_cpA7(V_a[1],&a1);ret_i(1)}
-/* 16:i{ii} */ i f16(struct A1 a1){f_cpA1(V_a[1],&a1);ret_i(1)}
-/* 17:i{iii} */ i f17(struct A8 a1){f_cpA8(V_a[1],&a1);ret_i(1)}
-/* 18:i{iiii} */ i f18(struct A9 a1){f_cpA9(V_a[1],&a1);ret_i(1)}
-/* 19:f */ f f19(){ret_f(0)}
-/* 20:f{} */ f f20(struct A6 a1){f_cpA6(V_a[1],&a1);ret_f(1)}
-/* 21:f{i} */ f f21(struct A7 a1){f_cpA7(V_a[1],&a1);ret_f(1)}
-/* 22:f{ii} */ f f22(struct A1 a1){f_cpA1(V_a[1],&a1);ret_f(1)}
-/* 23:d{ii} */ d f23(struct A1 a1){f_cpA1(V_a[1],&a1);ret_d(1)}
-/* 24:f{iii} */ f f24(struct A8 a1){f_cpA8(V_a[1],&a1);ret_f(1)}
-/* 25:f{iiii} */ f f25(struct A9 a1){f_cpA9(V_a[1],&a1);ret_f(1)}
-/* 26:ss{ii} */ s f26(s a1,struct A1 a2){V_s[1]=a1;f_cpA1(V_a[2],&a2);ret_s(2)}
+struct A15 { i m0; l m1; };
+void f_cpA15(struct A15 *x, const struct A15 *y) { x->m0 = y->m0; x->m1 = y->m1; };
+int f_cmpA15(const struct A15 *x, const struct A15 *y) { return x->m0 == y->m0 && x->m1 == y->m1; };
+DCstruct* f_newdcstA15() {
+	DCstruct* st = dcNewStruct(2, sizeof(struct A15), 0, 1);
+	dcStructField(st, 'i', offsetof(struct A15, m0), 1);
+	dcStructField(st, 'l', offsetof(struct A15, m1), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {li} */
+struct A16 { l m0; i m1; };
+void f_cpA16(struct A16 *x, const struct A16 *y) { x->m0 = y->m0; x->m1 = y->m1; };
+int f_cmpA16(const struct A16 *x, const struct A16 *y) { return x->m0 == y->m0 && x->m1 == y->m1; };
+DCstruct* f_newdcstA16() {
+	DCstruct* st = dcNewStruct(2, sizeof(struct A16), 0, 1);
+	dcStructField(st, 'l', offsetof(struct A16, m0), 1);
+	dcStructField(st, 'i', offsetof(struct A16, m1), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {ps} */
+struct A17 { p m0; s m1; };
+void f_cpA17(struct A17 *x, const struct A17 *y) { x->m0 = y->m0; x->m1 = y->m1; };
+int f_cmpA17(const struct A17 *x, const struct A17 *y) { return x->m0 == y->m0 && x->m1 == y->m1; };
+DCstruct* f_newdcstA17() {
+	DCstruct* st = dcNewStruct(2, sizeof(struct A17), 0, 1);
+	dcStructField(st, 'p', offsetof(struct A17, m0), 1);
+	dcStructField(st, 's', offsetof(struct A17, m1), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {iii} */
+struct A18 { i m0; i m1; i m2; };
+void f_cpA18(struct A18 *x, const struct A18 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; };
+int f_cmpA18(const struct A18 *x, const struct A18 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2; };
+DCstruct* f_newdcstA18() {
+	DCstruct* st = dcNewStruct(3, sizeof(struct A18), 0, 1);
+	dcStructField(st, 'i', offsetof(struct A18, m0), 1);
+	dcStructField(st, 'i', offsetof(struct A18, m1), 1);
+	dcStructField(st, 'i', offsetof(struct A18, m2), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* {iiii} */
+struct A19 { i m0; i m1; i m2; i m3; };
+void f_cpA19(struct A19 *x, const struct A19 *y) { x->m0 = y->m0; x->m1 = y->m1; x->m2 = y->m2; x->m3 = y->m3; };
+int f_cmpA19(const struct A19 *x, const struct A19 *y) { return x->m0 == y->m0 && x->m1 == y->m1 && x->m2 == y->m2 && x->m3 == y->m3; };
+DCstruct* f_newdcstA19() {
+	DCstruct* st = dcNewStruct(4, sizeof(struct A19), 0, 1);
+	dcStructField(st, 'i', offsetof(struct A19, m0), 1);
+	dcStructField(st, 'i', offsetof(struct A19, m1), 1);
+	dcStructField(st, 'i', offsetof(struct A19, m2), 1);
+	dcStructField(st, 'i', offsetof(struct A19, m3), 1);
+	dcCloseStruct(st);
+	return st;
+};
+/* 0:pscd{}pclc{i}scli */ p f0(s a1,c a2,d a3,struct A1 a4,p a5,c a6,l a7,c a8,struct A2 a9,s a10,c a11,l a12,i a13){V_s[1]=a1;V_c[2]=a2;V_d[3]=a3;f_cpA1(V_a[4],&a4);V_p[5]=a5;V_c[6]=a6;V_l[7]=a7;V_c[8]=a8;f_cpA2(V_a[9],&a9);V_s[10]=a10;V_c[11]=a11;V_l[12]=a12;V_i[13]=a13;ret_p(13)}
+/* 1:sslfjiji{s}ipc{}{}{}cc */ s f1(s a1,l a2,f a3,j a4,i a5,j a6,i a7,struct A3 a8,i a9,p a10,c a11,struct A1 a12,struct A1 a13,struct A1 a14,c a15,c a16){V_s[1]=a1;V_l[2]=a2;V_f[3]=a3;V_j[4]=a4;V_i[5]=a5;V_j[6]=a6;V_i[7]=a7;f_cpA3(V_a[8],&a8);V_i[9]=a9;V_p[10]=a10;V_c[11]=a11;f_cpA1(V_a[12],&a12);f_cpA1(V_a[13],&a13);f_cpA1(V_a[14],&a14);V_c[15]=a15;V_c[16]=a16;ret_s(16)}
+/* 2:i{dlclpfifpifsf}lpldl{dijpiccjpf}{lcpfcflpsiilfsjp}pp{}ssj */ i f2(struct A4 a1,l a2,p a3,l a4,d a5,l a6,struct A5 a7,struct A6 a8,p a9,p a10,struct A1 a11,s a12,s a13,j a14){f_cpA4(V_a[1],&a1);V_l[2]=a2;V_p[3]=a3;V_l[4]=a4;V_d[5]=a5;V_l[6]=a6;f_cpA5(V_a[7],&a7);f_cpA6(V_a[8],&a8);V_p[9]=a9;V_p[10]=a10;f_cpA1(V_a[11],&a11);V_s[12]=a12;V_s[13]=a13;V_j[14]=a14;ret_i(14)}
+/* 3:fci{jjlff{jdcfcsdjjlcdjlipfji}csijld}sj */ f f3(c a1,i a2,struct A8 a3,s a4,j a5){V_c[1]=a1;V_i[2]=a2;f_cpA8(V_a[3],&a3);V_s[4]=a4;V_j[5]=a5;ret_f(5)}
+/* 4:{}lffic{}pip{}{c}s{} */ struct A1 f4(l a1,f a2,f a3,i a4,c a5,struct A1 a6,p a7,i a8,p a9,struct A1 a10,struct A9 a11,s a12,struct A1 a13){V_l[1]=a1;V_f[2]=a2;V_f[3]=a3;V_i[4]=a4;V_c[5]=a5;f_cpA1(V_a[6],&a6);V_p[7]=a7;V_i[8]=a8;V_p[9]=a9;f_cpA1(V_a[10],&a10);f_cpA9(V_a[11],&a11);V_s[12]=a12;f_cpA1(V_a[13],&a13);ret_a(13,struct A1)}
+/* 5:clsc{cjilpcp}sfspdc{}j{c}fs */ c f5(l a1,s a2,c a3,struct A10 a4,s a5,f a6,s a7,p a8,d a9,c a10,struct A1 a11,j a12,struct A9 a13,f a14,s a15){V_l[1]=a1;V_s[2]=a2;V_c[3]=a3;f_cpA10(V_a[4],&a4);V_s[5]=a5;V_f[6]=a6;V_s[7]=a7;V_p[8]=a8;V_d[9]=a9;V_c[10]=a10;f_cpA1(V_a[11],&a11);V_j[12]=a12;f_cpA9(V_a[13],&a13);V_f[14]=a14;V_s[15]=a15;ret_c(15)}
+/* 6:ljdcjsl{}i{c}{}s */ l f6(j a1,d a2,c a3,j a4,s a5,l a6,struct A1 a7,i a8,struct A9 a9,struct A1 a10,s a11){V_j[1]=a1;V_d[2]=a2;V_c[3]=a3;V_j[4]=a4;V_s[5]=a5;V_l[6]=a6;f_cpA1(V_a[7],&a7);V_i[8]=a8;f_cpA9(V_a[9],&a9);f_cpA1(V_a[10],&a10);V_s[11]=a11;ret_l(11)}
+/* 7:v{ddd} */ v f7(struct A11 a1){f_cpA11(V_a[1],&a1);ret_v(1)}
+/* 8:vd{ddd} */ v f8(d a1,struct A11 a2){V_d[1]=a1;f_cpA11(V_a[2],&a2);ret_v(2)}
+/* 9:vdd{ddd} */ v f9(d a1,d a2,struct A11 a3){V_d[1]=a1;V_d[2]=a2;f_cpA11(V_a[3],&a3);ret_v(3)}
+/* 10:vddd{ddd} */ v f10(d a1,d a2,d a3,struct A11 a4){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;f_cpA11(V_a[4],&a4);ret_v(4)}
+/* 11:vdddd{ddd} */ v f11(d a1,d a2,d a3,d a4,struct A11 a5){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;f_cpA11(V_a[5],&a5);ret_v(5)}
+/* 12:vddddd{ddd} */ v f12(d a1,d a2,d a3,d a4,d a5,struct A11 a6){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;f_cpA11(V_a[6],&a6);ret_v(6)}
+/* 13:vdddddd{ddd} */ v f13(d a1,d a2,d a3,d a4,d a5,d a6,struct A11 a7){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;f_cpA11(V_a[7],&a7);ret_v(7)}
+/* 14:vddddddd{ddd} */ v f14(d a1,d a2,d a3,d a4,d a5,d a6,d a7,struct A11 a8){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;V_d[7]=a7;f_cpA11(V_a[8],&a8);ret_v(8)}
+/* 15:vdddddddd{ddd} */ v f15(d a1,d a2,d a3,d a4,d a5,d a6,d a7,d a8,struct A11 a9){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;V_d[7]=a7;V_d[8]=a8;f_cpA11(V_a[9],&a9);ret_v(9)}
+/* 16:v{dd} */ v f16(struct A12 a1){f_cpA12(V_a[1],&a1);ret_v(1)}
+/* 17:vd{dd} */ v f17(d a1,struct A12 a2){V_d[1]=a1;f_cpA12(V_a[2],&a2);ret_v(2)}
+/* 18:vdd{dd} */ v f18(d a1,d a2,struct A12 a3){V_d[1]=a1;V_d[2]=a2;f_cpA12(V_a[3],&a3);ret_v(3)}
+/* 19:vddd{dd} */ v f19(d a1,d a2,d a3,struct A12 a4){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;f_cpA12(V_a[4],&a4);ret_v(4)}
+/* 20:vdddd{dd} */ v f20(d a1,d a2,d a3,d a4,struct A12 a5){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;f_cpA12(V_a[5],&a5);ret_v(5)}
+/* 21:vddddd{dd} */ v f21(d a1,d a2,d a3,d a4,d a5,struct A12 a6){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;f_cpA12(V_a[6],&a6);ret_v(6)}
+/* 22:vdddddd{dd} */ v f22(d a1,d a2,d a3,d a4,d a5,d a6,struct A12 a7){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;f_cpA12(V_a[7],&a7);ret_v(7)}
+/* 23:vddddddd{dd} */ v f23(d a1,d a2,d a3,d a4,d a5,d a6,d a7,struct A12 a8){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;V_d[7]=a7;f_cpA12(V_a[8],&a8);ret_v(8)}
+/* 24:vdddddddd{dd} */ v f24(d a1,d a2,d a3,d a4,d a5,d a6,d a7,d a8,struct A12 a9){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;V_d[7]=a7;V_d[8]=a8;f_cpA12(V_a[9],&a9);ret_v(9)}
+/* 25:viiiii{ii} */ v f25(i a1,i a2,i a3,i a4,i a5,struct A13 a6){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA13(V_a[6],&a6);ret_v(6)}
+/* 26:viiiii{ici} */ v f26(i a1,i a2,i a3,i a4,i a5,struct A14 a6){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA14(V_a[6],&a6);ret_v(6)}
+/* 27:viiiii{il} */ v f27(i a1,i a2,i a3,i a4,i a5,struct A15 a6){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA15(V_a[6],&a6);ret_v(6)}
+/* 28:vfiiiii{il} */ v f28(f a1,i a2,i a3,i a4,i a5,i a6,struct A15 a7){V_f[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_i[6]=a6;f_cpA15(V_a[7],&a7);ret_v(7)}
+/* 29:viiiiif{il} */ v f29(i a1,i a2,i a3,i a4,i a5,f a6,struct A15 a7){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;f_cpA15(V_a[7],&a7);ret_v(7)}
+/* 30:viiiiif{li} */ v f30(i a1,i a2,i a3,i a4,i a5,f a6,struct A16 a7){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;f_cpA16(V_a[7],&a7);ret_v(7)}
+/* 31:viiiii{il}f */ v f31(i a1,i a2,i a3,i a4,i a5,struct A15 a6,f a7){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA15(V_a[6],&a6);V_f[7]=a7;ret_v(7)}
+/* 32:viiiii{li}f */ v f32(i a1,i a2,i a3,i a4,i a5,struct A16 a6,f a7){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA16(V_a[6],&a6);V_f[7]=a7;ret_v(7)}
+/* 33:viiffiii{ps} */ v f33(i a1,i a2,f a3,f a4,i a5,i a6,i a7,struct A17 a8){V_i[1]=a1;V_i[2]=a2;V_f[3]=a3;V_f[4]=a4;V_i[5]=a5;V_i[6]=a6;V_i[7]=a7;f_cpA17(V_a[8],&a8);ret_v(8)}
+/* 34:viiiiiff{li} */ v f34(i a1,i a2,i a3,i a4,i a5,f a6,f a7,struct A16 a8){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;V_f[7]=a7;f_cpA16(V_a[8],&a8);ret_v(8)}
+/* 35:viiiiiff{il} */ v f35(i a1,i a2,i a3,i a4,i a5,f a6,f a7,struct A15 a8){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;V_f[7]=a7;f_cpA15(V_a[8],&a8);ret_v(8)}
+/* 36:viiiii{il}ff */ v f36(i a1,i a2,i a3,i a4,i a5,struct A15 a6,f a7,f a8){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA15(V_a[6],&a6);V_f[7]=a7;V_f[8]=a8;ret_v(8)}
+/* 37:viiiii{li}ff */ v f37(i a1,i a2,i a3,i a4,i a5,struct A16 a6,f a7,f a8){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA16(V_a[6],&a6);V_f[7]=a7;V_f[8]=a8;ret_v(8)}
+/* 38:i */ i f38(){ret_i(0)}
+/* 39:i{} */ i f39(struct A1 a1){f_cpA1(V_a[1],&a1);ret_i(1)}
+/* 40:i{i} */ i f40(struct A2 a1){f_cpA2(V_a[1],&a1);ret_i(1)}
+/* 41:i{ii} */ i f41(struct A13 a1){f_cpA13(V_a[1],&a1);ret_i(1)}
+/* 42:i{iii} */ i f42(struct A18 a1){f_cpA18(V_a[1],&a1);ret_i(1)}
+/* 43:i{iiii} */ i f43(struct A19 a1){f_cpA19(V_a[1],&a1);ret_i(1)}
+/* 44:f */ f f44(){ret_f(0)}
+/* 45:f{} */ f f45(struct A1 a1){f_cpA1(V_a[1],&a1);ret_f(1)}
+/* 46:f{i} */ f f46(struct A2 a1){f_cpA2(V_a[1],&a1);ret_f(1)}
+/* 47:f{ii} */ f f47(struct A13 a1){f_cpA13(V_a[1],&a1);ret_f(1)}
+/* 48:d{ii} */ d f48(struct A13 a1){f_cpA13(V_a[1],&a1);ret_d(1)}
+/* 49:f{iii} */ f f49(struct A18 a1){f_cpA18(V_a[1],&a1);ret_f(1)}
+/* 50:f{iiii} */ f f50(struct A19 a1){f_cpA19(V_a[1],&a1);ret_f(1)}
+/* 51:ss{ii} */ s f51(s a1,struct A13 a2){V_s[1]=a1;f_cpA13(V_a[2],&a2);ret_s(2)}
+/* 52:v{ddd}ijf */ v f52(struct A11 a1,i a2,j a3,f a4){f_cpA11(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_v(4)}
+/* 53:vd{ddd}ijf */ v f53(d a1,struct A11 a2,i a3,j a4,f a5){V_d[1]=a1;f_cpA11(V_a[2],&a2);V_i[3]=a3;V_j[4]=a4;V_f[5]=a5;ret_v(5)}
+/* 54:vdd{ddd}ijf */ v f54(d a1,d a2,struct A11 a3,i a4,j a5,f a6){V_d[1]=a1;V_d[2]=a2;f_cpA11(V_a[3],&a3);V_i[4]=a4;V_j[5]=a5;V_f[6]=a6;ret_v(6)}
+/* 55:vddd{ddd}ijf */ v f55(d a1,d a2,d a3,struct A11 a4,i a5,j a6,f a7){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;f_cpA11(V_a[4],&a4);V_i[5]=a5;V_j[6]=a6;V_f[7]=a7;ret_v(7)}
+/* 56:vdddd{ddd}ijf */ v f56(d a1,d a2,d a3,d a4,struct A11 a5,i a6,j a7,f a8){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;f_cpA11(V_a[5],&a5);V_i[6]=a6;V_j[7]=a7;V_f[8]=a8;ret_v(8)}
+/* 57:vddddd{ddd}ijf */ v f57(d a1,d a2,d a3,d a4,d a5,struct A11 a6,i a7,j a8,f a9){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;f_cpA11(V_a[6],&a6);V_i[7]=a7;V_j[8]=a8;V_f[9]=a9;ret_v(9)}
+/* 58:vdddddd{ddd}ijf */ v f58(d a1,d a2,d a3,d a4,d a5,d a6,struct A11 a7,i a8,j a9,f a10){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;f_cpA11(V_a[7],&a7);V_i[8]=a8;V_j[9]=a9;V_f[10]=a10;ret_v(10)}
+/* 59:vddddddd{ddd}ijf */ v f59(d a1,d a2,d a3,d a4,d a5,d a6,d a7,struct A11 a8,i a9,j a10,f a11){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;V_d[7]=a7;f_cpA11(V_a[8],&a8);V_i[9]=a9;V_j[10]=a10;V_f[11]=a11;ret_v(11)}
+/* 60:vdddddddd{ddd}ijf */ v f60(d a1,d a2,d a3,d a4,d a5,d a6,d a7,d a8,struct A11 a9,i a10,j a11,f a12){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;V_d[7]=a7;V_d[8]=a8;f_cpA11(V_a[9],&a9);V_i[10]=a10;V_j[11]=a11;V_f[12]=a12;ret_v(12)}
+/* 61:v{dd}ijf */ v f61(struct A12 a1,i a2,j a3,f a4){f_cpA12(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_v(4)}
+/* 62:vd{dd}ijf */ v f62(d a1,struct A12 a2,i a3,j a4,f a5){V_d[1]=a1;f_cpA12(V_a[2],&a2);V_i[3]=a3;V_j[4]=a4;V_f[5]=a5;ret_v(5)}
+/* 63:vdd{dd}ijf */ v f63(d a1,d a2,struct A12 a3,i a4,j a5,f a6){V_d[1]=a1;V_d[2]=a2;f_cpA12(V_a[3],&a3);V_i[4]=a4;V_j[5]=a5;V_f[6]=a6;ret_v(6)}
+/* 64:vddd{dd}ijf */ v f64(d a1,d a2,d a3,struct A12 a4,i a5,j a6,f a7){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;f_cpA12(V_a[4],&a4);V_i[5]=a5;V_j[6]=a6;V_f[7]=a7;ret_v(7)}
+/* 65:vdddd{dd}ijf */ v f65(d a1,d a2,d a3,d a4,struct A12 a5,i a6,j a7,f a8){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;f_cpA12(V_a[5],&a5);V_i[6]=a6;V_j[7]=a7;V_f[8]=a8;ret_v(8)}
+/* 66:vddddd{dd}ijf */ v f66(d a1,d a2,d a3,d a4,d a5,struct A12 a6,i a7,j a8,f a9){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;f_cpA12(V_a[6],&a6);V_i[7]=a7;V_j[8]=a8;V_f[9]=a9;ret_v(9)}
+/* 67:vdddddd{dd}ijf */ v f67(d a1,d a2,d a3,d a4,d a5,d a6,struct A12 a7,i a8,j a9,f a10){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;f_cpA12(V_a[7],&a7);V_i[8]=a8;V_j[9]=a9;V_f[10]=a10;ret_v(10)}
+/* 68:vddddddd{dd}ijf */ v f68(d a1,d a2,d a3,d a4,d a5,d a6,d a7,struct A12 a8,i a9,j a10,f a11){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;V_d[7]=a7;f_cpA12(V_a[8],&a8);V_i[9]=a9;V_j[10]=a10;V_f[11]=a11;ret_v(11)}
+/* 69:vdddddddd{dd}ijf */ v f69(d a1,d a2,d a3,d a4,d a5,d a6,d a7,d a8,struct A12 a9,i a10,j a11,f a12){V_d[1]=a1;V_d[2]=a2;V_d[3]=a3;V_d[4]=a4;V_d[5]=a5;V_d[6]=a6;V_d[7]=a7;V_d[8]=a8;f_cpA12(V_a[9],&a9);V_i[10]=a10;V_j[11]=a11;V_f[12]=a12;ret_v(12)}
+/* 70:viiiii{ii}ijf */ v f70(i a1,i a2,i a3,i a4,i a5,struct A13 a6,i a7,j a8,f a9){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA13(V_a[6],&a6);V_i[7]=a7;V_j[8]=a8;V_f[9]=a9;ret_v(9)}
+/* 71:viiiii{ici}ijf */ v f71(i a1,i a2,i a3,i a4,i a5,struct A14 a6,i a7,j a8,f a9){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA14(V_a[6],&a6);V_i[7]=a7;V_j[8]=a8;V_f[9]=a9;ret_v(9)}
+/* 72:viiiii{il}ijf */ v f72(i a1,i a2,i a3,i a4,i a5,struct A15 a6,i a7,j a8,f a9){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA15(V_a[6],&a6);V_i[7]=a7;V_j[8]=a8;V_f[9]=a9;ret_v(9)}
+/* 73:vfiiiii{il}ijf */ v f73(f a1,i a2,i a3,i a4,i a5,i a6,struct A15 a7,i a8,j a9,f a10){V_f[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_i[6]=a6;f_cpA15(V_a[7],&a7);V_i[8]=a8;V_j[9]=a9;V_f[10]=a10;ret_v(10)}
+/* 74:viiiiif{il}ijf */ v f74(i a1,i a2,i a3,i a4,i a5,f a6,struct A15 a7,i a8,j a9,f a10){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;f_cpA15(V_a[7],&a7);V_i[8]=a8;V_j[9]=a9;V_f[10]=a10;ret_v(10)}
+/* 75:viiiiif{li}ijf */ v f75(i a1,i a2,i a3,i a4,i a5,f a6,struct A16 a7,i a8,j a9,f a10){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;f_cpA16(V_a[7],&a7);V_i[8]=a8;V_j[9]=a9;V_f[10]=a10;ret_v(10)}
+/* 76:viiiii{il}fijf */ v f76(i a1,i a2,i a3,i a4,i a5,struct A15 a6,f a7,i a8,j a9,f a10){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA15(V_a[6],&a6);V_f[7]=a7;V_i[8]=a8;V_j[9]=a9;V_f[10]=a10;ret_v(10)}
+/* 77:viiiii{li}fijf */ v f77(i a1,i a2,i a3,i a4,i a5,struct A16 a6,f a7,i a8,j a9,f a10){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA16(V_a[6],&a6);V_f[7]=a7;V_i[8]=a8;V_j[9]=a9;V_f[10]=a10;ret_v(10)}
+/* 78:viiffiii{ps}ijf */ v f78(i a1,i a2,f a3,f a4,i a5,i a6,i a7,struct A17 a8,i a9,j a10,f a11){V_i[1]=a1;V_i[2]=a2;V_f[3]=a3;V_f[4]=a4;V_i[5]=a5;V_i[6]=a6;V_i[7]=a7;f_cpA17(V_a[8],&a8);V_i[9]=a9;V_j[10]=a10;V_f[11]=a11;ret_v(11)}
+/* 79:viiiiiff{li}ijf */ v f79(i a1,i a2,i a3,i a4,i a5,f a6,f a7,struct A16 a8,i a9,j a10,f a11){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;V_f[7]=a7;f_cpA16(V_a[8],&a8);V_i[9]=a9;V_j[10]=a10;V_f[11]=a11;ret_v(11)}
+/* 80:viiiiiff{il}ijf */ v f80(i a1,i a2,i a3,i a4,i a5,f a6,f a7,struct A15 a8,i a9,j a10,f a11){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;V_f[6]=a6;V_f[7]=a7;f_cpA15(V_a[8],&a8);V_i[9]=a9;V_j[10]=a10;V_f[11]=a11;ret_v(11)}
+/* 81:viiiii{il}ffijf */ v f81(i a1,i a2,i a3,i a4,i a5,struct A15 a6,f a7,f a8,i a9,j a10,f a11){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA15(V_a[6],&a6);V_f[7]=a7;V_f[8]=a8;V_i[9]=a9;V_j[10]=a10;V_f[11]=a11;ret_v(11)}
+/* 82:viiiii{li}ffijf */ v f82(i a1,i a2,i a3,i a4,i a5,struct A16 a6,f a7,f a8,i a9,j a10,f a11){V_i[1]=a1;V_i[2]=a2;V_i[3]=a3;V_i[4]=a4;V_i[5]=a5;f_cpA16(V_a[6],&a6);V_f[7]=a7;V_f[8]=a8;V_i[9]=a9;V_j[10]=a10;V_f[11]=a11;ret_v(11)}
+/* 83:iijf */ i f83(i a1,j a2,f a3){V_i[1]=a1;V_j[2]=a2;V_f[3]=a3;ret_i(3)}
+/* 84:i{}ijf */ i f84(struct A1 a1,i a2,j a3,f a4){f_cpA1(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_i(4)}
+/* 85:i{i}ijf */ i f85(struct A2 a1,i a2,j a3,f a4){f_cpA2(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_i(4)}
+/* 86:i{ii}ijf */ i f86(struct A13 a1,i a2,j a3,f a4){f_cpA13(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_i(4)}
+/* 87:i{iii}ijf */ i f87(struct A18 a1,i a2,j a3,f a4){f_cpA18(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_i(4)}
+/* 88:i{iiii}ijf */ i f88(struct A19 a1,i a2,j a3,f a4){f_cpA19(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_i(4)}
+/* 89:fijf */ f f89(i a1,j a2,f a3){V_i[1]=a1;V_j[2]=a2;V_f[3]=a3;ret_f(3)}
+/* 90:f{}ijf */ f f90(struct A1 a1,i a2,j a3,f a4){f_cpA1(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_f(4)}
+/* 91:f{i}ijf */ f f91(struct A2 a1,i a2,j a3,f a4){f_cpA2(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_f(4)}
+/* 92:f{ii}ijf */ f f92(struct A13 a1,i a2,j a3,f a4){f_cpA13(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_f(4)}
+/* 93:d{ii}ijf */ d f93(struct A13 a1,i a2,j a3,f a4){f_cpA13(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_d(4)}
+/* 94:f{iii}ijf */ f f94(struct A18 a1,i a2,j a3,f a4){f_cpA18(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_f(4)}
+/* 95:f{iiii}ijf */ f f95(struct A19 a1,i a2,j a3,f a4){f_cpA19(V_a[1],&a1);V_i[2]=a2;V_j[3]=a3;V_f[4]=a4;ret_f(4)}
+/* 96:ss{ii}ijf */ s f96(s a1,struct A13 a2,i a3,j a4,f a5){V_s[1]=a1;f_cpA13(V_a[2],&a2);V_i[3]=a3;V_j[4]=a4;V_f[5]=a5;ret_s(5)}
 funptr G_funtab[] = {
 	(funptr)&f0,
 	(funptr)&f1,
@@ -98,8 +397,103 @@
 	(funptr)&f24,
 	(funptr)&f25,
 	(funptr)&f26,
+	(funptr)&f27,
+	(funptr)&f28,
+	(funptr)&f29,
+	(funptr)&f30,
+	(funptr)&f31,
+	(funptr)&f32,
+	(funptr)&f33,
+	(funptr)&f34,
+	(funptr)&f35,
+	(funptr)&f36,
+	(funptr)&f37,
+	(funptr)&f38,
+	(funptr)&f39,
+	(funptr)&f40,
+	(funptr)&f41,
+	(funptr)&f42,
+	(funptr)&f43,
+	(funptr)&f44,
+	(funptr)&f45,
+	(funptr)&f46,
+	(funptr)&f47,
+	(funptr)&f48,
+	(funptr)&f49,
+	(funptr)&f50,
+	(funptr)&f51,
+	(funptr)&f52,
+	(funptr)&f53,
+	(funptr)&f54,
+	(funptr)&f55,
+	(funptr)&f56,
+	(funptr)&f57,
+	(funptr)&f58,
+	(funptr)&f59,
+	(funptr)&f60,
+	(funptr)&f61,
+	(funptr)&f62,
+	(funptr)&f63,
+	(funptr)&f64,
+	(funptr)&f65,
+	(funptr)&f66,
+	(funptr)&f67,
+	(funptr)&f68,
+	(funptr)&f69,
+	(funptr)&f70,
+	(funptr)&f71,
+	(funptr)&f72,
+	(funptr)&f73,
+	(funptr)&f74,
+	(funptr)&f75,
+	(funptr)&f76,
+	(funptr)&f77,
+	(funptr)&f78,
+	(funptr)&f79,
+	(funptr)&f80,
+	(funptr)&f81,
+	(funptr)&f82,
+	(funptr)&f83,
+	(funptr)&f84,
+	(funptr)&f85,
+	(funptr)&f86,
+	(funptr)&f87,
+	(funptr)&f88,
+	(funptr)&f89,
+	(funptr)&f90,
+	(funptr)&f91,
+	(funptr)&f92,
+	(funptr)&f93,
+	(funptr)&f94,
+	(funptr)&f95,
+	(funptr)&f96,
 };
 char const * G_sigtab[] = {
+	"pscd{}pclc{i}scli",
+	"sslfjiji{s}ipc{}{}{}cc",
+	"i{dlclpfifpifsf}lpldl{dijpiccjpf}{lcpfcflpsiilfsjp}pp{}ssj",
+	"fci{jjlff{jdcfcsdjjlcdjlipfji}csijld}sj",
+	"{}lffic{}pip{}{c}s{}",
+	"clsc{cjilpcp}sfspdc{}j{c}fs",
+	"ljdcjsl{}i{c}{}s",
+	"v{ddd}",
+	"vd{ddd}",
+	"vdd{ddd}",
+	"vddd{ddd}",
+	"vdddd{ddd}",
+	"vddddd{ddd}",
+	"vdddddd{ddd}",
+	"vddddddd{ddd}",
+	"vdddddddd{ddd}",
+	"v{dd}",
+	"vd{dd}",
+	"vdd{dd}",
+	"vddd{dd}",
+	"vdddd{dd}",
+	"vddddd{dd}",
+	"vdddddd{dd}",
+	"vddddddd{dd}",
+	"vdddddddd{dd}",
 	"viiiii{ii}",
 	"viiiii{ici}",
 	"viiiii{il}",
@@ -127,49 +521,134 @@
 	"f{iii}",
 	"f{iiii}",
 	"ss{ii}",
+	"v{ddd}ijf",
+	"vd{ddd}ijf",
+	"vdd{ddd}ijf",
+	"vddd{ddd}ijf",
+	"vdddd{ddd}ijf",
+	"vddddd{ddd}ijf",
+	"vdddddd{ddd}ijf",
+	"vddddddd{ddd}ijf",
+	"vdddddddd{ddd}ijf",
+	"v{dd}ijf",
+	"vd{dd}ijf",
+	"vdd{dd}ijf",
+	"vddd{dd}ijf",
+	"vdddd{dd}ijf",
+	"vddddd{dd}ijf",
+	"vdddddd{dd}ijf",
+	"vddddddd{dd}ijf",
+	"vdddddddd{dd}ijf",
+	"viiiii{ii}ijf",
+	"viiiii{ici}ijf",
+	"viiiii{il}ijf",
+	"vfiiiii{il}ijf",
+	"viiiiif{il}ijf",
+	"viiiiif{li}ijf",
+	"viiiii{il}fijf",
+	"viiiii{li}fijf",
+	"viiffiii{ps}ijf",
+	"viiiiiff{li}ijf",
+	"viiiiiff{il}ijf",
+	"viiiii{il}ffijf",
+	"viiiii{li}ffijf",
+	"iijf",
+	"i{}ijf",
+	"i{i}ijf",
+	"i{ii}ijf",
+	"i{iii}ijf",
+	"i{iiii}ijf",
+	"fijf",
+	"f{}ijf",
+	"f{i}ijf",
+	"f{ii}ijf",
+	"d{ii}ijf",
+	"f{iii}ijf",
+	"f{iiii}ijf",
+	"ss{ii}ijf",
 };
 const char* G_agg_sigs[]  = {
-	"{ici}",
-	"{ii}",
-	"{ps}",
-	"{iiii}",
-	"{iii}",
-	"{li}",
 	"{}",
 	"{i}",
-	"{il}"
+	"{s}",
+	"{dlclpfifpifsf}",
+	"{dijpiccjpf}",
+	"{lcpfcflpsiilfsjp}",
+	"{jdcfcsdjjlcdjlipfji}",
+	"{jjlff{jdcfcsdjjlcdjlipfji}csijld}",
+	"{c}",
+	"{cjilpcp}",
+	"{ddd}",
+	"{dd}",
+	"{ii}",
+	"{ici}",
+	"{il}",
+	"{li}",
+	"{ps}",
+	"{iii}",
+	"{iiii}"
 };
 int G_agg_sizes[] = {
+	sizeof(struct A1),
 	sizeof(struct A2),
-	sizeof(struct A1),
+	sizeof(struct A3),
+	sizeof(struct A4),
 	sizeof(struct A5),
-	sizeof(struct A9),
-	sizeof(struct A8),
-	sizeof(struct A4),
 	sizeof(struct A6),
 	sizeof(struct A7),
-	sizeof(struct A3)
+	sizeof(struct A8),
+	sizeof(struct A9),
+	sizeof(struct A10),
+	sizeof(struct A11),
+	sizeof(struct A12),
+	sizeof(struct A13),
+	sizeof(struct A14),
+	sizeof(struct A15),
+	sizeof(struct A16),
+	sizeof(struct A17),
+	sizeof(struct A18),
+	sizeof(struct A19)
 };
 funptr G_agg_newdcstfuncs[] = {
+	(funptr)&f_newdcstA1,
 	(funptr)&f_newdcstA2,
-	(funptr)&f_newdcstA1,
+	(funptr)&f_newdcstA3,
+	(funptr)&f_newdcstA4,
 	(funptr)&f_newdcstA5,
-	(funptr)&f_newdcstA9,
-	(funptr)&f_newdcstA8,
-	(funptr)&f_newdcstA4,
 	(funptr)&f_newdcstA6,
 	(funptr)&f_newdcstA7,
-	(funptr)&f_newdcstA3
+	(funptr)&f_newdcstA8,
+	(funptr)&f_newdcstA9,
+	(funptr)&f_newdcstA10,
+	(funptr)&f_newdcstA11,
+	(funptr)&f_newdcstA12,
+	(funptr)&f_newdcstA13,
+	(funptr)&f_newdcstA14,
+	(funptr)&f_newdcstA15,
+	(funptr)&f_newdcstA16,
+	(funptr)&f_newdcstA17,
+	(funptr)&f_newdcstA18,
+	(funptr)&f_newdcstA19
 };
 funptr G_agg_cmpfuncs[] = {
+	(funptr)&f_cmpA1,
 	(funptr)&f_cmpA2,
-	(funptr)&f_cmpA1,
+	(funptr)&f_cmpA3,
+	(funptr)&f_cmpA4,
 	(funptr)&f_cmpA5,
-	(funptr)&f_cmpA9,
-	(funptr)&f_cmpA8,
-	(funptr)&f_cmpA4,
 	(funptr)&f_cmpA6,
 	(funptr)&f_cmpA7,
-	(funptr)&f_cmpA3
+	(funptr)&f_cmpA8,
+	(funptr)&f_cmpA9,
+	(funptr)&f_cmpA10,
+	(funptr)&f_cmpA11,
+	(funptr)&f_cmpA12,
+	(funptr)&f_cmpA13,
+	(funptr)&f_cmpA14,
+	(funptr)&f_cmpA15,
+	(funptr)&f_cmpA16,
+	(funptr)&f_cmpA17,
+	(funptr)&f_cmpA18,
+	(funptr)&f_cmpA19
 };
-int G_maxargs = 8;
+int G_maxargs = 16;
--- a/test/suite_aggrs/design.txt	Sun Jan 23 23:20:02 2022 +0100
+++ b/test/suite_aggrs/design.txt	Mon Jan 24 12:41:27 2022 +0100
@@ -1,3 +1,9 @@
+pscd{}pclc{i}scli
+sslfjiji{s}ipc{}{}{}cc
+i{dlclpfifpifsf}lpldl{dijpiccjpf}{lcpfcflpsiilfsjp}pp{}ssj
+fci{jjlff{jdcfcsdjjlcdjlipfji}csijld}sj
+{}lffic{}pip{}{c}s{}
+clsc{cjilpcp}sfspdc{}j{c}fs
 ljdcjsl{}i{c}{}s
 v{ddd}
 vd{ddd}
--- a/test/suite_aggrs/main.c	Sun Jan 23 23:20:02 2022 +0100
+++ b/test/suite_aggrs/main.c	Mon Jan 24 12:41:27 2022 +0100
@@ -71,7 +71,7 @@
     sig += len;
 
 	rtype_st_cmp = G_agg_cmpfuncs[i];
-    rtype_st = ((DCstruct*(*)())G_agg_newdcstfuncs[i])(NULL);
+    rtype_st = ((DCstruct*(*)())G_agg_newdcstfuncs[i])();
     dcBeginCallStruct(p, rtype_st, DC_FALSE);
   }
   else
@@ -98,7 +98,7 @@
           printf("unknown sig at '%s' ;", sig);
           return 0;
         }
-        DCstruct *st = ((DCstruct*(*)())G_agg_newdcstfuncs[i])(NULL);
+        DCstruct *st = ((DCstruct*(*)())G_agg_newdcstfuncs[i])();
         dcArgStruct(p, st, K_a[pos]);
         sig += len-1; /* advance to next arg char */
         break;
--- a/test/suite_aggrs/mk-cases.lua	Sun Jan 23 23:20:02 2022 +0100
+++ b/test/suite_aggrs/mk-cases.lua	Mon Jan 24 12:41:27 2022 +0100
@@ -161,12 +161,10 @@
     end
 
     -- convenient dcnewstruct helper funcs
-    io.write('static int nfields'..v[2]..' = '..(#v[1]>>1)..';\n')
-    io.write('DCstruct* f_newdcst'..v[2]..'(DCstruct* parent) {\n\tDCstruct* st = parent;\n\tif(!st) st = dcNewStruct(nfields'..v[2]..', sizeof('..st..'), 0, 1);\n\t')
+    io.write('DCstruct* f_newdcst'..v[2]..'() {\n\tDCstruct* st = dcNewStruct('..(#v[1]>>1)..', sizeof('..st..'), 0, 1);\n\t')
     for i = 1, #v[1], 2 do
       if string.match(v[1][i], '^struct') then
-	    io.write('dcSubStruct(st, nfields'..v[1][i]:sub(8)..', offsetof('..st..', '..v[1][i+1]..'), sizeof('..v[1][i]..'), 0, DC_TRUE, 1);\n\t')
-        io.write("f_newdcst"..v[1][i]:sub(8)..'(st);\n\t')
+	    io.write('dcStructField(st, DC_SIGCHAR_STRUCT, offsetof('..st..', '..v[1][i+1]..'), 1, f_newdcst'..v[1][i]:sub(8)..'());\n\t')
 	  else
         io.write("dcStructField(st, '"..v[1][i].."', offsetof("..st..', '..v[1][i+1]..'), 1);\n\t')
 	  end