~ubuntu-branches/ubuntu/trusty/python3.4/trusty-proposed

« back to all changes in this revision

Viewing changes to Modules/_ctypes/libffi/testsuite/libffi.call/cls_uint.c

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-11-25 09:44:27 UTC
  • Revision ID: package-import@ubuntu.com-20131125094427-lzxj8ap5w01lmo7f
Tags: upstream-3.4~b1
ImportĀ upstreamĀ versionĀ 3.4~b1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Area:        closure_call
 
2
   Purpose:     Check return value uint.
 
3
   Limitations: none.
 
4
   PR:          none.
 
5
   Originator:  <andreast@gcc.gnu.org> 20030828  */
 
6
 
 
7
/* { dg-do run } */
 
8
#include "ffitest.h"
 
9
 
 
10
static void cls_ret_uint_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
 
11
                            void* userdata __UNUSED__)
 
12
{
 
13
  *(ffi_arg *)resp = *(unsigned int *)args[0];
 
14
 
 
15
  printf("%d: %d\n",*(unsigned int *)args[0],
 
16
         (int)*(ffi_arg *)(resp));
 
17
}
 
18
typedef unsigned int (*cls_ret_uint)(unsigned int);
 
19
 
 
20
int main (void)
 
21
{
 
22
  ffi_cif cif;
 
23
  void *code;
 
24
  ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
 
25
  ffi_type * cl_arg_types[2];
 
26
  unsigned int res;
 
27
 
 
28
  cl_arg_types[0] = &ffi_type_uint;
 
29
  cl_arg_types[1] = NULL;
 
30
 
 
31
  /* Initialize the cif */
 
32
  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
 
33
                     &ffi_type_uint, cl_arg_types) == FFI_OK);
 
34
 
 
35
  CHECK(ffi_prep_closure_loc(pcl, &cif, cls_ret_uint_fn, NULL, code)  == FFI_OK);
 
36
 
 
37
  res = (*((cls_ret_uint)code))(2147483647);
 
38
  /* { dg-output "2147483647: 2147483647" } */
 
39
  printf("res: %d\n",res);
 
40
  /* { dg-output "\nres: 2147483647" } */
 
41
 
 
42
  exit(0);
 
43
}