#include "harness.h" #include typedef struct n_a { signed char m1; short m2; int m3; double m4; vector float m5; } n_a; void varlistn_a(signed char p1, va_list ap) { n_a q; q.m1 = p1; q.m2 = va_arg(ap, int); q.m3 = va_arg(ap, int); q.m4 = va_arg(ap, double); q.m5 = va_arg(ap, vector float); check(q.m1 == 77, "q.m1"); check(q.m2 == 1924, "q.m2"); check(q.m3 == -1471601920, "q.m3"); check(q.m4 == 3.65e+18, "q.m4"); check(vec_all_eq(q.m5, ((vector float){-1.38e+09, 5.96e+08, 6.88e+08, -3.2e+08})), "q.m5"); } void varargsn_a(signed char p1, ...) { n_a r, s; va_list ap; va_start(ap, p1); r.m1 = p1; r.m2 = va_arg(ap, int); r.m3 = va_arg(ap, int); r.m4 = va_arg(ap, double); r.m5 = va_arg(ap, vector float); va_end(ap); check(r.m1 == 77, "r.m1"); check(r.m2 == 1924, "r.m2"); check(r.m3 == -1471601920, "r.m3"); check(r.m4 == 3.65e+18, "r.m4"); check(vec_all_eq(r.m5, ((vector float){-1.38e+09, 5.96e+08, 6.88e+08, -3.2e+08})), "r.m5"); va_start(ap, p1); s.m1 = p1; s.m2 = va_arg(ap, int); s.m3 = va_arg(ap, int); s.m4 = va_arg(ap, double); s.m5 = va_arg(ap, vector float); va_end(ap); check(s.m1 == 77, "s.m1"); check(s.m2 == 1924, "s.m2"); check(s.m3 == -1471601920, "s.m3"); check(s.m4 == 3.65e+18, "s.m4"); check(vec_all_eq(s.m5, ((vector float){-1.38e+09, 5.96e+08, 6.88e+08, -3.2e+08})), "s.m5"); va_start(ap, p1); varlistn_a(p1, ap); va_end(ap); } void test() { varargsn_a(77, 1924, -1471601920, 3.65e+18, ((vector float){-1.38e+09, 5.96e+08, 6.88e+08, -3.2e+08})); }