-/* Copyright (C) 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2010, 2011 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
scm_t_uint32 test_ffi_u32_ (void);
scm_t_uint32 test_ffi_u32_ (void)
{
- return 4000000000;
+ return 4000000000U;
}
scm_t_uint32 test_ffi_u32_u8 (scm_t_uint8 a);
scm_t_uint32 test_ffi_u32_u8 (scm_t_uint8 a)
{
- return 4000000000 + a;
+ return 4000000000U + a;
}
scm_t_uint32 test_ffi_u32_s64 (scm_t_int64 a);
scm_t_uint32 test_ffi_u32_s64 (scm_t_int64 a)
{
- return 4000000000 + a;
+ return 4000000000U + a;
}
/* FIXME: use 64-bit literals */
scm_t_uint64 test_ffi_u64_ (void);
scm_t_uint64 test_ffi_u64_ (void)
{
- return 4000000000;
+ return 4000000000UL;
}
scm_t_uint64 test_ffi_u64_u8 (scm_t_uint8 a);
scm_t_uint64 test_ffi_u64_u8 (scm_t_uint8 a)
{
- return 4000000000 + a;
+ return 4000000000UL + a;
}
scm_t_uint64 test_ffi_u64_s64 (scm_t_int64 a);
scm_t_uint64 test_ffi_u64_s64 (scm_t_int64 a)
{
- return 4000000000 + a;
+ return 4000000000UL + a;
}
}
+scm_t_int64 test_ffi_sum_many (scm_t_uint8 a, scm_t_uint16 b,
+ scm_t_uint32 c, scm_t_uint64 d,
+ scm_t_int8 e, scm_t_int16 f,
+ scm_t_int32 g, scm_t_int64 h,
+ scm_t_int8 i, scm_t_int16 j,
+ scm_t_int32 k, scm_t_int64 l);
+scm_t_int64 test_ffi_sum_many (scm_t_uint8 a, scm_t_uint16 b,
+ scm_t_uint32 c, scm_t_uint64 d,
+ scm_t_int8 e, scm_t_int16 f,
+ scm_t_int32 g, scm_t_int64 h,
+ scm_t_int8 i, scm_t_int16 j,
+ scm_t_int32 k, scm_t_int64 l)
+{
+ return l + k + j + i + h + g + f + e + d + c + b + a;
+}
+
+
struct foo
{
scm_t_int8 a;