SWIG and __int64

M

Matt Whelan

Supposedly, recent versions of SWIG can be made to work with MS VC++'s
non-standard integer data types. According to a recent SWIG ChangeLog
entry:

%apply long long { __int64 };

should make Swig happy. But it doesn't. I get Syntax Errors on each
line where __int64 appears.

Am I missing something? I'm new to SWIG (but not to Python or C++).
My searches to date have turned up no examples of successful __int64
and SWIG interaction. If anyone could provide such an example, it
would be deeply appreciated.

I also need to do similar things for __int8 * and __int32, but I
assume once I get __int64 working the solutions for those will become
obvious.
 
L

Lyle Johnson

Matt said:
Supposedly, recent versions of SWIG can be made to work with MS VC++'s
non-standard integer data types. According to a recent SWIG ChangeLog
entry:

%apply long long { __int64 };

should make Swig happy. But it doesn't. I get Syntax Errors on each
line where __int64 appears.

Just to clarify: are you getting errors when running SWIG (i.e. to
generate the wrapper code) or when compiling the code that SWIG
generated for you?
 
M

Matt Whelan

Lyle Johnson said:
Just to clarify: are you getting errors when running SWIG (i.e. to
generate the wrapper code) or when compiling the code that SWIG
generated for you?

Yes, it's in the SWIG generation step.

I think I've figured out the problem, but I still don't know what to
do about it.

All the __int?? types are specified as unsigned in my code. SWIG
works great on default-signedness types, but it throws syntax errors
on "unsigned __int64" and friends.

So here's what I've got:

----Begin Code----
test.i:
%module test_wrap
%{
#include "test.h"
%}

%apply long long { __int64 }

%include test.h

test.h:
#ifndef TEST_H
#define TEST_H

unsigned __int64 foo(); //body is {return 42;} in test.cpp

#endif
----End Code----

If I remove the unsigned qualifier, it works fine, but as it is I get
a syntax error on line 4 of test.h.

I've tried adding the unsigned qualifier to the %apply statment in all
possible ways; none of them help.

I'm beginning to suspect this is a bug in SWIG. If someone can give
me a work around (or educate me on what I'm doing wrong), I would
appreciate it.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top