Skip to content

Commit 8e2e6de

Browse files
authored
Merge pull request #171 from swig-fortran/sizet
Normalize size_t usage in Fortran.
2 parents 54ff1cd + b2321f4 commit 8e2e6de

File tree

4 files changed

+21
-14
lines changed

4 files changed

+21
-14
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
! File : typedef_sizet_runme.F90
2+
3+
#include "fassert.h"
4+
5+
program typedef_sizet_runme
6+
use typedef_sizet
7+
use ISO_C_BINDING
8+
implicit none
9+
integer(C_SIZE_T) :: inp, outp
10+
11+
inp = 1234_c_size_t
12+
outp = identity_size(inp)
13+
ASSERT(inp == outp)
14+
end program

Examples/test-suite/typedef_sizet.i

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
%module typedef_sizet
22

3+
#ifdef SWIGFORTRAN
4+
// Avoid shadowing intrinsic size
5+
%rename("identity_size") size;
6+
#endif
7+
38
typedef unsigned long long size_t;
49
%inline %{
5-
size_t size(size_t x) {return x; }
10+
size_t size(size_t x) {return x; }
611
%}

Lib/fortran/fundamental.swg

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,6 @@
1010

1111
%include <typemaps/swigmacros.swg>
1212

13-
#ifdef __cplusplus
14-
namespace std
15-
{
16-
#endif
17-
typedef unsigned long long size_t;
18-
typedef long long ptrdiff_t;
19-
#ifdef __cplusplus
20-
}
21-
using std::size_t;
22-
using std::ptrdiff_t;
23-
#endif
24-
2513
/* -------------------------------------------------------------------------
2614
* FRAGMENTS
2715
* ------------------------------------------------------------------------- */

Lib/fortran/std_set.i

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public:
1515
// Typedefs
1616
typedef _Key value_type;
1717
typedef _Key key_type;
18-
typedef std::size_t size_type;
18+
typedef size_t size_type;
1919
typedef ptrdiff_t difference_type;
2020
typedef value_type *pointer;
2121
typedef const value_type *const_pointer;

0 commit comments

Comments
 (0)