1 #include <stdarg.h> 2 3 #include "compat-common.h" 4 5 #include "union-defs.h" 6 #include "union-init.h" 7 8 #define T(TYPE) \ 9 extern TYPE g01##TYPE, g02##TYPE, g03##TYPE, g04##TYPE; \ 10 extern TYPE g05##TYPE, g06##TYPE, g07##TYPE, g08##TYPE; \ 11 extern TYPE g09##TYPE, g10##TYPE, g11##TYPE, g12##TYPE; \ 12 extern TYPE g13##TYPE, g14##TYPE, g15##TYPE, g16##TYPE; \ 13 \ 14 extern void check##TYPE (TYPE x, int i); \ 15 \ 16 void \ 17 checkg##TYPE (void) \ 18 { \ 19 check##TYPE (g01##TYPE, 1); \ 20 check##TYPE (g02##TYPE, 2); \ 21 check##TYPE (g03##TYPE, 3); \ 22 check##TYPE (g04##TYPE, 4); \ 23 check##TYPE (g05##TYPE, 5); \ 24 check##TYPE (g06##TYPE, 6); \ 25 check##TYPE (g07##TYPE, 7); \ 26 check##TYPE (g08##TYPE, 8); \ 27 check##TYPE (g09##TYPE, 9); \ 28 check##TYPE (g10##TYPE, 10); \ 29 check##TYPE (g11##TYPE, 11); \ 30 check##TYPE (g12##TYPE, 12); \ 31 check##TYPE (g13##TYPE, 13); \ 32 check##TYPE (g14##TYPE, 14); \ 33 check##TYPE (g15##TYPE, 15); \ 34 check##TYPE (g16##TYPE, 16); \ 35 } \ 36 \ 37 TYPE \ 38 test0##TYPE (void) \ 39 { \ 40 return g01##TYPE; \ 41 } \ 42 \ 43 TYPE \ 44 test1##TYPE (TYPE x01) \ 45 { \ 46 return x01; \ 47 } \ 48 \ 49 TYPE \ 50 testva##TYPE (int n, ...) \ 51 { \ 52 int i; \ 53 TYPE rslt; \ 54 va_list ap; \ 55 va_start (ap, n); \ 56 for (i = 0; i < n; i++) \ 57 rslt = va_arg (ap, TYPE); \ 58 va_end (ap); \ 59 return rslt; \ 60 } 61 62 T(Ucs) 63 T(Uci) 64 T(Ucl) 65 T(Ucll) 66 T(Usi) 67 T(Usl) 68 T(Usll) 69 T(Uil) 70 T(Uill) 71 T(Ulll) 72