[Haskell-cafe] Interfacing C++ iterators does not work as expected

Albert Y. C. Lai trebla at vex.net
Tue May 3 04:36:58 CEST 2011


On 11-05-02 05:31 PM, Huynh Huu Long wrote:
> Big thanks, that works for me as well. Doesn't GHC check whether a
> type is allowed (like CInt,...) or not (like Bool,...)?

No, it doesn't, since version 6.10.1:
http://www.haskell.org/ghc/docs/6.10.1/html/users_guide/ffi-ghc.html#glasgow-foreign-headers

As it happens, FFI requires translating Haskell Bool from C int 
(unlikely to be 1 byte), while GCC translates C++ bool to 1 byte. At a 
suitable moon phase and planet alignment (or data alignment), mixing up 
an int with a byte will be funny.



More information about the Haskell-Cafe mailing list