1#include <stdarg.h> 2 3#include "compat-common.h" 4 5#include "mixed-struct-defs.h" 6#include "mixed-struct-init.h" 7 8#define T(TYPE) \ 9extern TYPE g01##TYPE, g02##TYPE, g03##TYPE, g04##TYPE; \ 10extern TYPE g05##TYPE, g06##TYPE, g07##TYPE, g08##TYPE; \ 11extern TYPE g09##TYPE, g10##TYPE, g11##TYPE, g12##TYPE; \ 12extern TYPE g13##TYPE, g14##TYPE, g15##TYPE, g16##TYPE; \ 13 \ 14extern void check##TYPE (TYPE x, int i); \ 15 \ 16void \ 17checkg##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 \ 37TYPE \ 38test0##TYPE (void) \ 39{ \ 40 return g01##TYPE; \ 41} \ 42 \ 43TYPE \ 44test1##TYPE (TYPE x01) \ 45{ \ 46 return x01; \ 47} \ 48 \ 49TYPE \ 50testva##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 62T(Scdc) 63T(Sd) 64T(Sdi) 65T(Scsdsc) 66T(Scsdis) 67T(Scsdisc) 68T(Ssds) 69T(Ssdsc) 70T(Scssdssc) 71