Sha256: e2287d01c135aab6d2c4489da3e5b7f16587f951f5dbc9e71e4e2a96bd4d21d2

Contents?: true

Size: 1.53 KB

Versions: 5646

Compression:

Stored size: 1.53 KB

Contents

/* Area:	ffi_call
   Purpose:	Check return value double, with many arguments
   Limitations:	none.
   PR:		none.
   Originator:	From the original ffitest.c  */

/* { dg-do run } */
#include "ffitest.h"

#include <stdlib.h>
#include <float.h>
#include <math.h>

static double many(double f1,
		  double f2,
		  long int i1,
		  double f3,
		  double f4,
		  long int i2,
		  double f5,
		  double f6,
		  long int i3,
		  double f7,
		  double f8,
		  long int i4,
		  double f9,
		  double f10,
		  long int i5,
		  double f11,
		  double f12,
		  long int i6,
		  double f13)
{
  return ((double) (i1 + i2 + i3 + i4 + i5 + i6) + (f1/f2+f3/f4+f5/f6+f7/f8+f9/f10+f11/f12) * f13);
}

int main (void)
{
  ffi_cif cif;
  ffi_type *args[19];
  void *values[19];
  double fa[19];
  long int la[19];
  double f, ff;
  int i;

  for (i = 0; i < 19; i++)
    {
	  if( (i - 2) % 3 == 0) {
	    args[i] = &ffi_type_slong;
	    la[i] = (long int) i;
	    values[i] = &la[i];
	  }
	  else {
	    args[i] = &ffi_type_double;
	    fa[i] = (double) i;
	    values[i] = &fa[i];
	  }
    }

    /* Initialize the cif */
    CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 19,
		       &ffi_type_double, args) == FFI_OK);

    ffi_call(&cif, FFI_FN(many), &f, values);

    ff =  many(fa[0], fa[1], la[2],
               fa[3], fa[4], la[5],
               fa[6], fa[7], la[8],
               fa[9], fa[10], la[11],
               fa[12], fa[13], la[14],
               fa[15], fa[16], la[17],
               fa[18]);
    if (fabs(f - ff) < FLT_EPSILON)
      exit(0);
    else
      abort();
}

Version data entries

5,646 entries across 5,629 versions & 41 rubygems

Version Path
cybrid_api_id_ruby-0.115.132 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_id_ruby-0.115.131 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_organization_ruby-0.115.131 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_bank_ruby-0.115.131 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_id_ruby-0.115.130 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_organization_ruby-0.115.130 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_bank_ruby-0.115.129 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_organization_ruby-0.115.129 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_id_ruby-0.115.129 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_organization_ruby-0.115.128 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_id_ruby-0.115.128 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_bank_ruby-0.115.127 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_organization_ruby-0.115.127 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_id_ruby-0.115.127 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_bank_ruby-0.115.126 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_id_ruby-0.115.126 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_organization_ruby-0.115.126 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_bank_ruby-0.115.125 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_id_ruby-0.115.125 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
cybrid_api_organization_ruby-0.115.125 vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c