[C2hs] [c2hs] #48: Interpreted an int64_t typedef as CInt
c2hs
cvs-ghc at haskell.org
Thu Jul 5 09:16:38 CEST 2012
#48: Interpreted an int64_t typedef as CInt
--------------------+-------------------------------------------------------
Reporter: guest | Type: defect
Status: new | Priority: blocker
Milestone: | Component: general
Version: 0.16.2 | Keywords:
--------------------+-------------------------------------------------------
Comment(by guest):
I managed to track down the problem. Turns out that the header in
question indirectly includes <sys/types.h> before it includes <stdint.h>,
and <sys/types.h> defines int64_t in a way that c2hs doesn't know how to
handle:
{{{
$ cpp /usr/include/stdint.h | grep -w int64_t
typedef long int int64_t;
$ cpp /usr/include/sys/types.h | grep -w int64_t
typedef int int64_t __attribute__ ((__mode__ (__DI__)));
}}}
I'd guess that c2hs ignores the GCC-specific __attribute__ that
overrides the size, and just sees "int".
--
Ticket URL: <http://hackage.haskell.org/trac/c2hs/ticket/48#comment:1>
c2hs <http://www.cse.unsw.edu.au/~chak/haskell/c2hs/>
C->Haskell, An Interface Generator for Haskell
More information about the C2hs
mailing list