1 #if DEBUG 2 #include <stdio.h> 3 #define DBG(x) fputs (x, stdout); fflush (stdout); 4 #else 5 #define DBG(x) 6 #endif 7 8 #define TEST_FUNCS(NAME, TYPE, PADT, VAL, VAL2) \ 9 extern void NAME##_f0 (TYPE a, PADT b); \ 10 extern void NAME##_f1 (PADT z0, TYPE a, PADT b); \ 11 extern void NAME##_f2 (PADT z0, PADT z1, TYPE a, PADT b); \ 12 extern void NAME##_f3 (PADT z0, PADT z1, PADT z2, TYPE a, PADT b); \ 13 extern void NAME##_f4 (PADT z0, PADT z1, PADT z2, PADT z3, TYPE a, \ 14 PADT b); \ 15 extern void NAME##_f5 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, \ 16 TYPE a, PADT b); \ 17 extern void NAME##_f6 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, \ 18 PADT z5, TYPE a, PADT b); \ 19 extern void NAME##_f7 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, \ 20 PADT z5, PADT z6, TYPE a, PADT b); \ 21 extern void NAME##_f8 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, \ 22 PADT z5, PADT z6, PADT z7, TYPE a, PADT b); \ 23 extern void NAME##_f9 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, \ 24 PADT z5, PADT z6, PADT z7, PADT z8, TYPE a, \ 25 PADT b); \ 26 extern void NAME##_fv (int n, ...); \ 27 \ 28 void NAME##_doit (void) \ 29 { \ 30 NAME##_f0 (VAL, VAL2); \ 31 DBG ("."); \ 32 NAME##_f1 ((PADT) 0, VAL, VAL2); \ 33 DBG ("."); \ 34 NAME##_f2 ((PADT) 0, (PADT) 0, VAL, VAL2); \ 35 DBG ("."); \ 36 NAME##_f3 ((PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2); \ 37 DBG ("."); \ 38 NAME##_f4 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2); \ 39 DBG ("."); \ 40 NAME##_f5 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, \ 41 VAL, VAL2); \ 42 DBG ("."); \ 43 NAME##_f6 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, \ 44 (PADT) 0, VAL, VAL2); \ 45 DBG ("."); \ 46 NAME##_f7 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, \ 47 (PADT) 0, (PADT) 0, VAL, VAL2); \ 48 DBG ("."); \ 49 NAME##_f8 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, \ 50 (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2); \ 51 DBG ("."); \ 52 NAME##_f9 ((PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, \ 53 (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2); \ 54 DBG ("."); \ 55 NAME##_fv (0, VAL, VAL2); \ 56 DBG ("."); \ 57 NAME##_fv (1, (PADT) 0, VAL, VAL2); \ 58 DBG ("."); \ 59 NAME##_fv (2, (PADT) 0, (PADT) 0, VAL, VAL2); \ 60 DBG ("."); \ 61 NAME##_fv (3, (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2); \ 62 DBG ("."); \ 63 NAME##_fv (4, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2); \ 64 DBG ("."); \ 65 NAME##_fv (5, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, \ 66 VAL, VAL2); \ 67 DBG ("."); \ 68 NAME##_fv (6, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, \ 69 (PADT) 0, VAL, VAL2); \ 70 DBG ("."); \ 71 NAME##_fv (7, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, \ 72 (PADT) 0, (PADT) 0, VAL, VAL2); \ 73 DBG ("."); \ 74 NAME##_fv (8, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, (PADT) 0, \ 75 (PADT) 0, (PADT) 0, (PADT) 0, VAL, VAL2); \ 76 DBG ("\n"); \ 77 } 78