kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

variadic_05_double.c (407B)


      1 /* Variadic double args — exercises the AAPCS64 FP save area (v0..v7)
      2  * and the va_arg FP path (16-byte stride into the FP region). */
      3 double sum_d(int n, ...) {
      4   __builtin_va_list ap;
      5   __builtin_va_start(ap, n);
      6   double s = 0.0;
      7   for (int i = 0; i < n; i++) s = s + __builtin_va_arg(ap, double);
      8   __builtin_va_end(ap);
      9   return s;
     10 }
     11 
     12 int test_main(void) { return (int)sum_d(3, 10.0, 20.0, 12.0); }