adding stdint.i, the ISO C99 int types
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7852 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
ad651438dc
commit
da1f4a04eb
3 changed files with 177 additions and 0 deletions
|
|
@ -161,6 +161,7 @@ CPP_TEST_CASES += \
|
||||||
li_carrays \
|
li_carrays \
|
||||||
li_cdata \
|
li_cdata \
|
||||||
li_cpointer \
|
li_cpointer \
|
||||||
|
li_stdint \
|
||||||
li_typemaps \
|
li_typemaps \
|
||||||
li_windows \
|
li_windows \
|
||||||
long_long_apply \
|
long_long_apply \
|
||||||
|
|
|
||||||
67
Examples/test-suite/li_stdint.i
Normal file
67
Examples/test-suite/li_stdint.i
Normal file
|
|
@ -0,0 +1,67 @@
|
||||||
|
%module li_stdint
|
||||||
|
|
||||||
|
%include <stdint.i>
|
||||||
|
|
||||||
|
%inline %{
|
||||||
|
struct StdInts {
|
||||||
|
int8_t int8_member;
|
||||||
|
int16_t int16_member;
|
||||||
|
int32_t int32_member;
|
||||||
|
int64_t int64_member;
|
||||||
|
uint8_t uint8_member;
|
||||||
|
uint16_t uint16_member;
|
||||||
|
uint32_t uint32_member;
|
||||||
|
uint64_t uint64_member;
|
||||||
|
};
|
||||||
|
|
||||||
|
int8_t int8_td (int8_t i) { return i; }
|
||||||
|
int16_t int16_td(int16_t i) { return i; }
|
||||||
|
int32_t int32_td(int32_t i) { return i; }
|
||||||
|
int64_t int64_td(int64_t i) { return i; }
|
||||||
|
uint8_t uint8_td (int8_t i) { return i; }
|
||||||
|
uint16_t uint16_td(int16_t i) { return i; }
|
||||||
|
uint32_t uint32_td(int32_t i) { return i; }
|
||||||
|
uint64_t uint64_td(int64_t i) { return i; }
|
||||||
|
|
||||||
|
struct StdIntFasts {
|
||||||
|
int_fast8_t int_fast8_member;
|
||||||
|
int_fast16_t int_fast16_member;
|
||||||
|
int_fast32_t int_fast32_member;
|
||||||
|
int_fast64_t int_fast64_member;
|
||||||
|
uint_fast8_t uint_fast8_member;
|
||||||
|
uint_fast16_t uint_fast16_member;
|
||||||
|
uint_fast32_t uint_fast32_member;
|
||||||
|
uint_fast64_t uint_fast64_member;
|
||||||
|
};
|
||||||
|
|
||||||
|
int_fast8_t int_fast8_td (int_fast8_t i) { return i; }
|
||||||
|
int_fast16_t int_fast16_td(int_fast16_t i) { return i; }
|
||||||
|
int_fast32_t int_fast32_td(int_fast32_t i) { return i; }
|
||||||
|
int_fast64_t int_fast64_td(int_fast64_t i) { return i; }
|
||||||
|
uint_fast8_t uint_fast8_td (int_fast8_t i) { return i; }
|
||||||
|
uint_fast16_t uint_fast16_td(int_fast16_t i) { return i; }
|
||||||
|
uint_fast32_t uint_fast32_td(int_fast32_t i) { return i; }
|
||||||
|
uint_fast64_t uint_fast64_td(int_fast64_t i) { return i; }
|
||||||
|
|
||||||
|
struct StdIntLeasts {
|
||||||
|
int_least8_t int_least8_member;
|
||||||
|
int_least16_t int_least16_member;
|
||||||
|
int_least32_t int_least32_member;
|
||||||
|
int_least64_t int_least64_member;
|
||||||
|
uint_least8_t uint_least8_member;
|
||||||
|
uint_least16_t uint_least16_member;
|
||||||
|
uint_least32_t uint_least32_member;
|
||||||
|
uint_least64_t uint_least64_member;
|
||||||
|
};
|
||||||
|
|
||||||
|
int_least8_t int_least8_td (int_least8_t i) { return i; }
|
||||||
|
int_least16_t int_least16_td(int_least16_t i) { return i; }
|
||||||
|
int_least32_t int_least32_td(int_least32_t i) { return i; }
|
||||||
|
int_least64_t int_least64_td(int_least64_t i) { return i; }
|
||||||
|
uint_least8_t uint_least8_td (int_least8_t i) { return i; }
|
||||||
|
uint_least16_t uint_least16_td(int_least16_t i) { return i; }
|
||||||
|
uint_least32_t uint_least32_td(int_least32_t i) { return i; }
|
||||||
|
uint_least64_t uint_least64_td(int_least64_t i) { return i; }
|
||||||
|
|
||||||
|
%}
|
||||||
|
|
||||||
109
Lib/stdint.i
Normal file
109
Lib/stdint.i
Normal file
|
|
@ -0,0 +1,109 @@
|
||||||
|
/*
|
||||||
|
* ISO C99: 7.18 Integer types <stdint.h>
|
||||||
|
*/
|
||||||
|
|
||||||
|
%{
|
||||||
|
#include <stdint.h>
|
||||||
|
%}
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __WORDSIZE64
|
||||||
|
# if defined(__x86_64__) || (__WORDSIZE == 64)
|
||||||
|
# define __WORDSIZE64
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Exact integral types. */
|
||||||
|
|
||||||
|
/* Signed. */
|
||||||
|
|
||||||
|
typedef signed char int8_t;
|
||||||
|
typedef short int int16_t;
|
||||||
|
typedef int int32_t;
|
||||||
|
#if defined(__WORDSIZE64)
|
||||||
|
typedef long int int64_t;
|
||||||
|
#else
|
||||||
|
typedef long long int int64_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Unsigned. */
|
||||||
|
typedef unsigned char uint8_t;
|
||||||
|
typedef unsigned short int uint16_t;
|
||||||
|
typedef unsigned int uint32_t;
|
||||||
|
#if defined(__WORDSIZE64)
|
||||||
|
typedef unsigned long int uint64_t;
|
||||||
|
#else
|
||||||
|
typedef unsigned long long int uint64_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Small types. */
|
||||||
|
|
||||||
|
/* Signed. */
|
||||||
|
typedef signed char int_least8_t;
|
||||||
|
typedef short int int_least16_t;
|
||||||
|
typedef int int_least32_t;
|
||||||
|
#if defined(__WORDSIZE64)
|
||||||
|
typedef long int int_least64_t;
|
||||||
|
#else
|
||||||
|
typedef long long int int_least64_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Unsigned. */
|
||||||
|
typedef unsigned char uint_least8_t;
|
||||||
|
typedef unsigned short int uint_least16_t;
|
||||||
|
typedef unsigned int uint_least32_t;
|
||||||
|
#if defined(__WORDSIZE64)
|
||||||
|
typedef unsigned long int uint_least64_t;
|
||||||
|
#else
|
||||||
|
typedef unsigned long long int uint_least64_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Fast types. */
|
||||||
|
|
||||||
|
/* Signed. */
|
||||||
|
typedef signed char int_fast8_t;
|
||||||
|
#if defined(__WORDSIZE64)
|
||||||
|
typedef long int int_fast16_t;
|
||||||
|
typedef long int int_fast32_t;
|
||||||
|
typedef long int int_fast64_t;
|
||||||
|
#else
|
||||||
|
typedef int int_fast16_t;
|
||||||
|
typedef int int_fast32_t;
|
||||||
|
typedef long long int int_fast64_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Unsigned. */
|
||||||
|
typedef unsigned char uint_fast8_t;
|
||||||
|
#if defined(__WORDSIZE64)
|
||||||
|
typedef unsigned long int uint_fast16_t;
|
||||||
|
typedef unsigned long int uint_fast32_t;
|
||||||
|
typedef unsigned long int uint_fast64_t;
|
||||||
|
#else
|
||||||
|
typedef unsigned int uint_fast16_t;
|
||||||
|
typedef unsigned int uint_fast32_t;
|
||||||
|
typedef unsigned long long int uint_fast64_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Types for `void *' pointers. */
|
||||||
|
#if defined(__WORDSIZE64)
|
||||||
|
typedef long int intptr_t;
|
||||||
|
typedef unsigned long int uintptr_t;
|
||||||
|
#else
|
||||||
|
typedef int intptr_t;
|
||||||
|
typedef unsigned int uintptr_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Largest integral types. */
|
||||||
|
#if defined(__WORDSIZE64)
|
||||||
|
typedef long int intmax_t;
|
||||||
|
typedef unsigned long int uintmax_t;
|
||||||
|
#else
|
||||||
|
typedef long long int intmax_t;
|
||||||
|
typedef unsigned long long int uintmax_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue